下文主要给大家带来通过innobackup结合计划任务实现备份MySQL,希望这些内容能够带给大家实际用处,这也是我编辑通过innobackup结合计划任务实现备份mysql的主要目的。好了,废话不多说,大家直接看下文吧。
为中卫等地区用户提供了全套网页设计制作服务,及中卫网站建设行业解决方案。主营业务为成都网站制作、做网站、外贸营销网站建设、中卫网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
写个脚本让其自动完全和增量备份
完全备份
vim /root/allbak.sh #!/bin/bash [ ! -e /backup ]&& mkdir /backup //新建个文件夹专门放备份文件的 day=`date +%F` //定义日期是时间 user=root pass=123456 innobackupex --user $user --password $pass /backup/allbak${day} --no-timestamp //用innobackupex做完全备份 mysql -u$user -p$pass -e "flush logs" ``` //启用binlog日志,每次完全备份之后,刷新一遍binlog日志
vim /root/newbak.sh
#!/bin/bash
d1=date +%F //定义时间,用日期来区分
d2=date +%F -d "-1 days" //找到昨天的日期,好指明上一次备份的备份文件
dir1=/backup/allbak${d2} //昨天做的完全备份文件
dir2=/backup/newbak${d2} //昨天做的增量备份文件
user=root
pass=123456
[ ! -e /backup ]&& mkdir /backup //如果文件不存在,则创建文件夹
if [ -e ${dir1} ];then //判断昨天做的是完全备份
innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir1} --no-timestamp //指定昨天备份的完全备份文件
elif [ -e ${dir2} ];then //判断昨天做的是增量备份
innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir2} --no-timestamp //指定昨天备份的增量备份文件
else
innobackupex --user $user --password $pass /backup/allbak${d1} --no-timestamp
//昨天既没有做增量备份,又没有做完全备份,则做一次完全备份。
fi
加权限: chmod +x /root/allbak.sh chmod +x /root/newbak.sh 写计划任务: crontab -e 00 03 * * 1 /root/allbak.sh &>/dev/null //每周一的凌晨3点执行完全备份 00 04 * * 2-7 /root/newbak.sh & >/dev/null //每周二到周7的凌晨4点执行增量备份 重启crond服务 systemctl restart crondsystemctl enable crond
对于以上关于通过innobackup结合计划任务实现备份mysql,大家是不是觉得非常有帮助。如果需要了解更多内容,请继续关注我们的行业资讯,相信你会喜欢上这些内容的。