SUSE11停MYSQL的定时增量备份

SUSE11停MYSQL的定时增量备份

SUSE11下MYSQL的定时增量备份

参考以下文章:http://hi.baidu.com/liuyingan02/blog/item/4fef92d66c1c590c622798b9.html

mysql的增量备份其实是备份二进制日志文件,通过二进制日志文件即可对mysql进行增量恢复。

结合上篇写的全量备份,mysql总的备份思想即为:先全量备份,然后删除所有已产生的二进制日志文件,再增量备份,每次增量备份后都删除掉此次增量备份所备份的二进制日志文件,下次备份只需要备份新的二进制日志文件即可。

以下是增量备份add.sh脚本

#!/bin/sh

# mysql binlog backup script

/usr/bin/mysqladmin flush-logs -u root -p111111

DATADIR=/var/lib/mysql

DATEDIR=$(date +%Y%m%d%H%M%S)

echo $DATEDIR

BAKDIR=/home/liangfuming/backup/daily/$DATEDIR

if [ ! -e ${BAKDIR} ];then

mkdir -p $BAKDIR

fi

###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名

#HOSTNAME=`uname -n`

#echo $HOSTNAME

cd $DATADIR

FILELIST=`cat mysql-bin.index`

##计算行数,也就是文件数

COUNTER=0

for file in $FILELIST

do

COUNTER=`expr $COUNTER + 1 `

done

NextNum=0

for file in $FILELIST

do

base=`basename $file`

NextNum=`expr $NextNum + 1`

if [ $NextNum -eq $COUNTER ]

then

echo $base

/usr/bin/mysql -u root -p111111<<EOF

#删除二进制日志文件

purge binary logs to ‘$base’;

EOF

echo “skip lastest”

else

echo “copying $base”

cp $base $BAKDIR

fi

done

echo “backup mysql binlog ok”

定时任务的处理:

suse11下面,先执行命令

crontab  -e

然后往文件里面编写

*/1 * * * * /home/liangfuming/myscript/add.sh

然后wq

以上表示每一分钟执行一次add.sh

SUSE11停MYSQL的定时增量备份

相关文章:

你感兴趣的文章:

标签云: