MySQL定时增量备份的恢复处理脚本(mysqlbinlog)
在通过 MySQL定时增量备份处理脚本备份了数据后,我们还需要做恢复操作的脚本。
恢复起来相对简单,找到最近一天的数据或指定某天的数据,然后使用 mysqllogbin 根据日志做恢复处理。
步骤1:复制基准的全量数据
从备份目录下将最近备份的全量数据复制到工作目录下
-
#!/bin/bash
-
-
PATH=/usr/local/sbin:/usr/bin:/bin
-
-
#get cur date str 2008-10-12
-
DATE=`date -I`
-
TIME=' 01:0:0'
-
DAYSTARTTIME=" $DATE $TIME"
-
-
#set backup path info
-
DATADIR="/var/lib/mysql"
-
BAK_DIR="/backup/$DATE"
-
-
#set mysql user name and password
-
MYSQL_USER="root"
-
MYSQL_PWD="rootpwd"
-
MYACC=" -u'$MYSQL_USER' -p'$MYSQL_PWD' "
-
-
cp -r $BAK_DIR $DATA_DIR
步骤2:根据日志文件对基准数据做恢复
对使用使用mysqlbinlog做数据的恢复。
-
HOST=`hostname -s`
-
-
for binfile in `ls $DATA_DIR/$HOST-bin.0* |sort`; do
-
CMD="mysqlbinlog –start-datetime='$DAYSTARTTIME' $binfile | mysql $MYACC "
-
eval $CMD
-
done
完整恢复脚本:
-
#!/bin/bash
-
-
PATH=/usr/local/sbin:/usr/bin:/bin
-
-
#get cur date str 2008-10-12
-
DATE=`date -I`
-
TIME=' 01:0:0'
-
DAYSTARTTIME=" $DATE $TIME"
-
-
#set backup path info
-
DATADIR="/var/lib/mysql"
-
BAK_DIR="/backup/$DATE"
-
-
#set mysql user name and password
-
MYSQL_USER="root"
-
MYSQL_PWD="rootpwd"
-
MYACC=" -u'$MYSQL_USER' -p'$MYSQL_PWD' "
-
-
cp -r $BAK_DIR $DATA_DIR
-
-
HOST=`hostname -s`
-
-
for binfile in `ls $DATA_DIR/$HOST-bin.0* |sort`; do
-
RESTORECMD="mysqlbinlog –start-datetime='$DAYSTARTTIME' $binfile | mysql $MYACC "
-
eval $RESTORECMD
-
done
Popularity: 4% [?]