Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql xtrabackup备份

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

难点解决

难点:

解决:

使用正则表达式去匹配到天,将此匹配到的结果使用export作为全局变量

解决:

采用同步代码块去测试,首先进行物理备份,将其挂载到后台,我们执行创建数据库的语句,使用wait语句,当这两个代码块全部执行完毕,我们再执行整合日志的操作。如果说在模拟故障之后,我们的数据库中有这些我们插入的数据,就说明备份成功。

以上就是mysql数据库使用shell语句实现xtrabackup自动物理备份增量备份的详细内容,更多关于mysql xtrabackup物理备份增量备份的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文