我们使用mysql的主从同步来实现mysql数据的实时同步和备份,但由于正常情况下,数据是实时同步的,当人为在主库上误操作数据时,备份库实时地也操作了错误数据。

为了避免上述数据错误的情况,希望能建立一个延迟同步的mysql备份库,当主库数据被误操作时,备份库还保留未操作前的正确数据,便于数据恢复。

   使用第三方工具percona-toolkit可实现延迟复制的需求。

 

实现环境:

          192.168.189.143 (mysql主库)

   192.168.189.144 (mysql备库,延迟3分钟)

 

步骤:

1:在服务器上安装mysql,并配置主从复制。(省略)

 

2:查看144从库的复制状态,确认同步正常,也可在主库上写入数据测试。

   wKioL1WbfMvSSE7SAAKB1LuCF-4285.jpg

 

3:下载percona-toolkit软件包,并上传至143主库,并安装:

下载地址:http://www.percona.com/downloads/percona-toolkit/

#wget http://www.percona.com/downloads/perconatoolkit/2.2.14/RPM/percona-toolkit-2.2.14-1.noarch.rpm

#yum -y install percona-toolkit-2.2.14-1.noarch.rpm

注:若安装提示pulic key问题,导致失败,则修改/etc/yum.conf中的gpgcheck参数为0

安装成功,查看pt-slave-delay是否可用:

#pt-slave-delay --help

wKioL1WbfXjBQEiFAAOyML3B92w751.jpg

 

4:144从库上配置一个用户,供延迟复制工具连接使用。

mysql> grant all on *.* to 'delay_rep'@'192.168.189.%' identified by '123456';

mysql>flush privileges;

 

5:开启延迟复制:

#pt-slave-delay --user='delay_rep' --password='123456' --delay=3m --interval=20s 192.168.189.144 wKioL1WbfpOApJgIAAH_maJXMsg742.jpg   注:

--user=:延时服务器中授权用户的用户名。

--password=:延时服务器中授权用户的密码。

--delay=3m:延时同步的时间,这里设置为3分钟。

--interval=20s:检查同步的时间,这里设置为20s

192.168.189.144:延时服务器的IP地址。

  这时候查看144slave同步状态,可以看到Slave_SQL_Running状态变为NO。延迟复制现在已经生效了。

wKioL1WbfxriyFwnAAJ5-uZ4nE4447.jpg 

 

6:测试:

143主库插入一条数据:

wKiom1WbfjGh_1GAAAAzWz8HDFw129.jpg

---------

wKiom1WbfkGDiXVmAAEcRo1dLBw969.jpg 

查看144从库,数据还未同步过来:

wKioL1WbgIXTYFDjAABIZJomXUA210.jpg

-----------

wKiom1WbftyTjtE9AACrl2Wrvdo899.jpg

3分钟左右,日志显示开始同步数据:

wKioL1Wbg7eiHoL2AAHCI1uRnxE300.jpg 

这时查看144从库,发现数据已经同步完成,说明延迟复制已经开始发生作用:

wKiom1Wbgg_wFqI3AABIDKuUe-U258.jpg

------------

wKiom1WbgiDiWFmqAACyevwTlxo373.jpg



附件是porcona-toolkit的安装文件,大家可以下载……