mysql增量备份

2479阅读 0评论2011-12-09 xiaozhenggang
分类:Mysql/postgreSQL


点击(此处)折叠或打开

  1. #!/bin/bash
  2. #
  3. #desc:backup db point_in_time
  4. #
  5. #creator:xiaozhenggang
  6. #
  7. #date:2011/12/08
  8. #

  9. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin
  10. export PATH

  11. DATA_DIR=/data/mysql/data
  12. LOG_BIN_BAK=/data_bak/log_bin_bak
  13. DATE_BAK=`date +'%Y-%m-%d %H:%M:%S'`
  14. USER_BAK=backup
  15. PASSWD_BAK="backup"
  16. HOST_HOST=192.168.161.250
  17. DB_BAK=efast
  18. TAR_DATE=`date +'%Y-%m-%d'`
  19. BAK_LOG=/data_bak/$BAK_DB.log
  20. BIN_LOG_NAME=`grep 'log_bin=' /etc/my.cnf | awk -F '=' '{print $2}'`
  21. BIN_LOG_LIST=`cat $DATA_DIR/$BIN_LOG_NAME.index`

  22. #flush mysql-bin.index
  23. # cd $DATA_DIR
  24. # /bin/ls -l $BIN_LOG_NAME.[0-9]* > $DATA_DIR/$BIN_LOG_NAME.index

  25. #check $BAK_LOG ,$TMP_BAK_DIR,$DATA_BAK
  26. if [ ! -f $BAK_LOG ];then
  27.    touch $BAK_LOG
  28.    echo "[$DATE_BAK]:$BAK_LOG not exsits,created it!"
  29. fi


  30. if [ ! -d $LOG_BIN_BAK ];then
  31.    mkdir $LOG_BIN_BAK
  32.    echo "[$DATA_BAK]:$LOG_BIN_BAK not exsits,created it!"
  33. fi

  34. #flush logs
  35. mysqladmin flush-logs

  36. for file in $BIN_LOG_LIST
  37. do
  38.    BASE=`basename $file`
  39.    echo $BASE
  40.    
  41.    if [ -e "$LOG_BIN_BAK/$BASE" ];then
  42.       echo "[$DATE_BAK]: $BASE exists,skip it!"
  43.    else
  44.       echo "[$DATE_BAK]: $BASE does not exists,copy it to $LOG_BIN_BAK"
  45.       cp $DATA_DIR/$BASE $LOG_BIN_BAK
  46.       if [ $? -eq 0 ];then
  47.          echo "[$DATE_BAK]: copy successed!"
  48.       else
  49.          echo "[$DATE_BAK]: copy failed!Please check it out!"
  50.          exit 111
  51.       fi
  52.    fi
  53. done


上一篇:mysqldump导出--数据+结构+(函数+存储过程)
下一篇:ipvsadm命令参考