我们使用mysql的主从同步来实现mysql数据的实时同步和备份,但由于正常情况下,数据是实时同步的,当人为在主库上误操作数据时,备份库实时地也操作了错误数据。
为了避免上述数据错误的情况,希望能建立一个延迟同步的mysql备份库,当主库数据被误操作时,备份库还保留未操作前的正确数据,便于数据恢复。
使用第三方工具percona-toolkit可实现延迟复制的需求。
实现环境:
192.168.189.143 (mysql主库)
192.168.189.144 (mysql备库,延迟3分钟)
步骤:
1:在服务器上安装mysql,并配置主从复制。(省略)
2:查看144从库的复制状态,确认同步正常,也可在主库上写入数据测试。
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
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 注:
--user=:延时服务器中授权用户的用户名。
--password=:延时服务器中授权用户的密码。
--delay=3m:延时同步的时间,这里设置为3分钟。
--interval=20s:检查同步的时间,这里设置为20s。
192.168.189.144:延时服务器的IP地址。
这时候查看144的slave同步状态,可以看到Slave_SQL_Running状态变为NO。延迟复制现在已经生效了。
6:测试:
在143主库插入一条数据:
---------
查看144从库,数据还未同步过来:
-----------
3分钟左右,日志显示开始同步数据:
这时查看144从库,发现数据已经同步完成,说明延迟复制已经开始发生作用:
------------
附件是porcona-toolkit的安装文件,大家可以下载……