温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL延时复制简介

发布时间:2020-08-09 22:38:00 来源:ITPUB博客 阅读:91 作者:angle 栏目:MySQL数据库
MySQL延时复制简介

公司有一套mysqlAB复制架构的生产库,一主一从的架构, 每周一凌晨0天都自动做全备。

一切正常,但今天(假设为周6)不小心误删除了一张表,从库也会跟着做误删除。假设这张表里有好几年的业务数据, 如何恢复呢?

有以下几种思路:

需要把这几年内所有的二进制日志先合并,再通过sed,grep,awk等命令处理把这张表从建表到现在的所有操 作按顺序找出来(当然要除掉你最后误删除的那条),然后导回去(数据量太大就不建议了)

先恢复周一的全备到测试库上,然后再恢复全备到现在的二进制日志(除了误删除的那句),再把那张表导出 来,导回到生产库上

有延时复制的话,在延时库上导出这张表,导回A, 再用二进制日志恢复延时时间内的误删表的操作(除了误删除的那句)

从上面的分析来看,延时复制能够在一定程序上简化恢复的过程。

Maatkit是一个Perl写的Mysql开源管理工具包,里面有一个可以在www.maatkit.org网站上下载软件包。我这里软包为

mk-slave-delay

maatkit-7540.tar.gz

命令可以实现延时复制。

搭建过程

首先需要搭建好mysqlAB复制(传统AB复制,基于GTIDs的AB复制,半同步复制等都可以),然后做以下过程

1, 在需要做延时复制的slave上安装mattkit

(注意: master和正常的slave不用安装)

MySQL延时复制简介

2, 确认整个架构所有机器时间同步

因为延时是要按时间来计算的,所以时间必须要一致, 所有服务器执行下面的命令,并比较时间

MySQL延时复制简介

3, 运行延时复制进程

确认时间一致, 并且AB复制正常的情况下, 在slave上执行下面的命令

MySQL延时复制简介

MySQL延时复制简介

4, 测试

在slave上查看复制状态,会发现SQL线程为NO,这是正常的,因为延时复制里IO线程是实时的,只是把SQL线程延时了

MySQL延时复制简介

然后在master上找一个测试表插入几条数据,等待1分钟后,才会看到数据在salve上复制成功。


来源于:黑马程序员百家号。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI