首先在这里我要感谢我的同事 @mamiya_c3 哥的指教。。。QQQ
最近数据库的数据猛然增多,以前的每天一个正备份的方式显然压力越来越大,对备份的数据传输考验也随之加大,所以考虑改成每周二服务器维护的时候坐全备份,剩下每天做增量备份。
工作原理就是把每次完整备份的binlog 和postion取出,做增量备份的时候取当时的binlog和postion,使用mysqlbinlog 把这之间的数据读出到另一个文件。
注:本文中可能有个别地方会有些纰漏,请大家自行调试,因为下面的脚本是我用在真实环境中copy过来的,只是临时改了里面个别的参数,例如文件夹位置,密码等。。。。如有问题敬请谅解
一、完整备份
vi full_mysqldump.sh
#!/bin/sh
###########
#########
#########DIR_INFO############
date=`date +%Y%m%d`
BACK_DIR="/home/profiles/liuhaifeng/fullbackup"
FILE_DIR="/home/profiles/liuhaifeng"
#############################3MYSQL_BACK#########################
if [ ! -d $BACK_DIR$date ];then
mkdir -p $BACK_DIR$date
fi
/usr/local/mysql/bin/mysql -uroot -p'123456' -h 127.0.0.1