1. MySQLdump增量备份配置
执行增量备份的前提条件是MySQL打开binlog日志功能,在my.cnf中[mysqld]加入
#log-bin=mysql-bin
#server-id=1
然后重启mysql。
2. 定时备份脚本实现:
a.全量备份脚本实现(假设mysql登录密码为123456;注意脚本中的命令路径):
#!/bin/bash
# Program
# use mysqldump to Fully backup mysql data per week!
# History
# 2013-04-27 guo first
# Path
# ....
BakDir=/data/mysql/backup
LogFile=/data/mysql/backup/bak.log
Date=`date +%Y%m%d`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql
mysqldump -uroot -p12345678 --quick --all-databases > $DumpFile
Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
cd $BakDir/daily
rm -f *
将上面的shell脚本保存在一个.sh文件里,然后
chmod +x xxx.sh 提升权限
注意:
需要提前创建好路径下的文件夹
3. 手动执行上面两个脚本,测试下备份效果
a. 执行全量备份脚本
[root@localhost data]# /bin/bash /home/wake/DBfullybak.sh
1.设置crontab任务,执行备份脚本。 a.周一到周六凌晨3:00做全量备份
0 3 1-6 /bin/bash /home/wake/DBfullybak.sh >/dev/null 2>&1
b.只保留5天的全量备份数据,清楚之前所有的文件:
删除所有过期的数据库备份文件:
#!/bin/sh
location="/data/mysql/backup/"
find $location -name '2*.sql' -mtime +5 -type f |xargs rm -f
实现每天的1点30分钟实现删除,可以按照如下标准:
30 1 * * * root /bin/sh /home/wake/del.sh
评论区