mysql备份自动校验_MySQL自动备份还原校验设计详解(2)

5、数据库机器上汇报

1)库表汇报程序地址:自行下载和修改

https://github.com/kevin6386/db_table_report/blob/master/db_table_report

运行即可。

2)SQL汇报程序

程序地址:https://github.com/kevin6386/db_sql_report/blob/master/db_sql_report

运行即可。

6、数据库备份还原

下载备份并还原(简单分解介绍):

用 rsync 下载备份到本地,并解压

rsync -zrtoapg –progress root@172.16.20.6::back5/备份文件名 ./

恢复命令:

/usr/local/bin/myloader -u user -p pass -o -d 备份地址 -t 8

7、校验

此时才是整个流程设计的重点,针对还原后的数据,怎么做校验才是重要的,而且校验的样例或方法直接关系数据备份有效性的指标。

1)还原后数据库表的校验

程序地址:https://github.com/kevin6386/db_table_diff/blob/master/db_table_diff

比较结果如下:

邮件截图

333a895bba9e623a878087a73b102c15.png

2)还原后数据SQL的校验

程序地址:https://github.com/kevin6386/db_sql_diff

比较结果如下:

邮件截图:如果正常则附件会有SQL,否则为空。

aa67bc4a68265db1433435cae1b0d716.png

异常截图

191615f1403b7429bef6beaa7b71a7bf.png

出现异常有如下几种情况:

备份时和general_log提取有时间的差异;当获取SQL出现在备份前或备份后有数据修改的情况下会出现。(可采用低峰时或很少修改的字段进行提取样例)

某些表还原异常,数据丢失。(比如我遇到过触发器的情况,表与表有依赖)

我用从库的备份比对主库的SQL。(有可能从库和主库不一致)

备份时有丢失的表或记录。(有时备份的命令问题或漏备份)

附件SQL信息

3f8be681a8bda8629d4e99f99e6035b2.png

8、关于备份的汇报

我是汇报每天的备份大小及文件名,然后写SQL比对今天的备份和前2天的信息。

如下:

c36a4175c9383a0b1c834fed209157e7.png

c6b22cf71d3cd11d7fbef88f2a492790.png

总结

设计完这个方案后开始编写分程序花了一段时间,同时感谢我的同事帮我重复测试这个设计方案,发现之前备份还原过程中出现的问题改善了很多,重要的是不用人工去抽取还原后的数据结果。当这个方案固定后基本上很少有人工的参与,减少了人工还原备份和校验备份重复的工作;并且可以准确地知道哪部分有问题,减少了对数据库备份是否正常的担忧。当然还有很多要完善的方面,欢迎有兴趣的朋友在留言区提出建议,一起交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值