MySQL定时增量备份的恢复处理脚本(mysqlbinlog)

在通过 MySQL定时增量备份处理脚本备份了数据后,我们还需要做恢复操作的脚本。
恢复起来相对简单,找到最近一天的数据或指定某天的数据,然后使用 mysqllogbin 根据日志做恢复处理。

步骤1:复制基准的全量数据

从备份目录下将最近备份的全量数据复制到工作目录下

  1. #!/bin/bash
  2.  
  3. PATH=/usr/local/sbin:/usr/bin:/bin
  4.  
  5. #get cur date str 2008-10-12
  6. DATE=`date -I`
  7. TIME=' 01:0:0'
  8. DAYSTARTTIME=" $DATE $TIME"
  9.  
  10. #set backup path info
  11. DATADIR="/var/lib/mysql"
  12. BAK_DIR="/backup/$DATE"
  13.  
  14. #set mysql user name and password
  15. MYSQL_USER="root"
  16. MYSQL_PWD="rootpwd"
  17. MYACC=" -u'$MYSQL_USER' -p'$MYSQL_PWD' "
  18.  
  19. cp -r $BAK_DIR $DATA_DIR

步骤2:根据日志文件对基准数据做恢复

对使用使用mysqlbinlog做数据的恢复。

  1.   HOST=`hostname -s`
  2.  
  3.   for binfile in `ls $DATA_DIR/$HOST-bin.0* |sort`; do
  4.      CMD="mysqlbinlog –start-datetime='$DAYSTARTTIME' $binfile  | mysql $MYACC "
  5.      eval $CMD
  6.   done

完整恢复脚本:

  1. #!/bin/bash
  2.  
  3. PATH=/usr/local/sbin:/usr/bin:/bin
  4.  
  5. #get cur date str 2008-10-12
  6. DATE=`date -I`
  7. TIME=' 01:0:0'
  8. DAYSTARTTIME=" $DATE $TIME"
  9.  
  10. #set backup path info
  11. DATADIR="/var/lib/mysql"
  12. BAK_DIR="/backup/$DATE"
  13.  
  14. #set mysql user name and password
  15. MYSQL_USER="root"
  16. MYSQL_PWD="rootpwd"
  17. MYACC=" -u'$MYSQL_USER' -p'$MYSQL_PWD' "
  18.  
  19. cp -r $BAK_DIR $DATA_DIR
  20.  
  21. HOST=`hostname -s`
  22.  
  23. for binfile in `ls $DATA_DIR/$HOST-bin.0* |sort`; do
  24.    RESTORECMD="mysqlbinlog –start-datetime='$DAYSTARTTIME' $binfile  | mysql $MYACC "
  25.    eval $RESTORECMD
  26. done

Popularity: 4% [?]

Related