一 为什么需要延时备份
我们首先回顾下MySQL复制的相关要点。AB复制又称主从复制,实现的是数据同步。经过以下步骤:1)主服务器把数据更改记录到二进制日志中,这个操作叫做二进制日志事件;2)从服务器把主服务器的二进制日志事件拷贝到自己的中继日志(relay log)中;3)从服务器执行中继日志中的事件,把更改应用到自己的数据上。在生产中,我们在使用 mysql AB 复制技术不但可以起到数据库层面负载均衡的能力,还可以起到备份数据的功能,但有的时候我们可能由于不小心误操作导致数据被删除,这这个时候 slave服务器上的数据也会同时被删除,如果我们能够能是的其中的一台 slave 延时备份的话, 这样就可以从 slave服务器上找回被误删的数据了。从服务器到主服务器中拷贝二进制日志文件,如果在并发量高,网络延时严重的情况下,会对主服务器造成相当大的压力,负载高,必定会出现很多问题,比如访问��迟,IO瓶颈,网络拥塞等等。服务器压力过大是我们都不愿看到的情况,那有没有方案缓解这种情况呢?有,这就是本文讲到的延时备份。延时备份通过第三方工具,将检查同步和真正同步的时间控制在一定的范围内,而不是主服务器数据发生变化,从服务器立即去同步二进制事件到自己的中继日志中,这样的话可以大大减轻主服务器的压力,并且基于AB复制的优点,可以达到备份数据的目的。好了,看下延时备份的示意图。
二 延时备份示意图
三 延时备份模拟
三台服务器,一台主服务器,一台及时服务器,另一台是延时同步服务器。搭建过程同主从结构,不同的是需要在主服务器中使用percona工具包。延时备份通过percona-toolkit中的pt-slave-delay命令实现,核心命令如下:
pt-slave-delay --user='rep' --password='robin' --delay=3m --interval=20s --run-time=30m 192.168.1.19
命令解释
--user='rep':延时服务器中授权用户的用户名,这里设置为rep
--password='robin':延时服务器中授权用户的密码,这里设置为larry
--delay=3m:延时同步的时间,这里设置为3分钟
--interval=20s:检查同步的时间,这里设置为20s
--run-time=30m:pt-slave-delay的运行时间,这里设置为30分钟
192.168.1.19:延时服务器的IP地址
该贴由hui.chen转至本版2014-11-5 16:20:07
该贴由hui.chen转至本版2014-11-5 16:21:08
该贴由hui.chen转至本版2014-11-5 16:22:22