mysql中使用shell语句实现xtrabackup自动物理备份增量备份
作者:Rallina
这篇文章主要为大家介绍了mysql数据库使用shell实现xtrabackup自动物理备份增量备份脚本,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
实现脚本
[root@mysql_summary ~]# vim full_backup.sh #!/bin/bash { innobackupex --user=admin --password=123 /full_xtraback &> /dev/null } & #全备 { #测试在全备过程中插入数据是否有效 mysql -e "create database test211" -uroot -p123456 &> /dev/null mysql -e "create database test212" -uroot -p123456 &> /dev/null mysql -e "create database test213" -uroot -p123456 &> /dev/null mysql -e "create database test214" -uroot -p123456 &> /dev/null } wait export full_path=$(cd /full_xtraback && ls | grep -E "$(date +%Y-%m-%d)_.\{8\}$") innobackupex --user=admin --password=123 --apply-log --redo-only /full_xtrabackup/${full_path} &> /dev/null #向全备 中整合日志 [root@mysql_summary ~]# vim incr_backup.sh #!/bin/bash { innobackupex --user=admin --password=123 --incremental /incre_backup --incremental-basedir=/full_xtrabackup/${full_path}&> /dev/null }& { for i in {11..13} do mysql -e "create database db$i" -uroot -p123456; done } wait incr_path=$( cd /incre_backup && ls | grep -e "^$(date +%Y-%m-%d)_.\{8\}$") innobackupex --user=admin --password=123 --apply-log /full_xtrabackup/${full_path} --incremental-dir=/incre_backup/${incr_path} &> /dev/null crontab -e 30 1 * * 0 /root/full_backup.sh 30 1 * * 1 /root/incr_backup.sh 30 1 * * 2 /root/incr_backup.sh 30 1 * * 3 /root/full_backup.sh 30 1 * * 4 /root/incr_backup.sh 30 1 * * 5 /root/incr_backup.sh 30 1 * * 6 /root/incr_backup.sh
难点解决
难点:
- 1.物理备份时,默认存储的路径是以时间为目录的,而且我们不能够去确定我们能够在多长时间内完成这个任务,因此我们需要使用正则表达式去精准匹配这个目录,而且增量备份的脚本中也需要这个参数。
解决:
使用正则表达式去匹配到天,将此匹配到的结果使用export作为全局变量
- 2.我们很难去测试这个脚本是否能够在物理备份或者增量备份的时候,是否可以将我们的代码写进去,而且必须得保证实现了物理备份再去整合日志。
解决:
采用同步代码块去测试,首先进行物理备份,将其挂载到后台,我们执行创建数据库的语句,使用wait语句,当这两个代码块全部执行完毕,我们再执行整合日志的操作。如果说在模拟故障之后,我们的数据库中有这些我们插入的数据,就说明备份成功。
以上就是mysql数据库使用shell语句实现xtrabackup自动物理备份增量备份的详细内容,更多关于mysql xtrabackup物理备份增量备份的资料请关注脚本之家其它相关文章!