为了数据的安全,有的时候数据库需要延迟备份,这里说下两种延迟备份的方法。
一、借助工具。
实现环境:
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。延迟复制现在已经生效了。
二、MySQL自己的配置。
Mysql (需5.6以上版本)延迟复制配置,通过设置Slave上的MASTER TO MASTER_DELAY参数实现:
CHANGE MASTER TO MASTER_DELAY = N;
N为多少秒,该语句设置从数据库延时N秒后,再与主数据库进行数据同步复制
具体操作:
登陆到Slave数据库服务器
mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_DELAY = 600;
mysql>start slave;
mysql>show slave status \G;
查看SQL_Delay的值为600,表示设置成功。
注释:
SQL_Delay:一个非负整数,表示秒数,Slave滞后多少秒于master。
SQL_Remaining_Delay:当 Slave_SQL_Running_State 等待,直到MASTER_DELAY秒后,Master执行的事件,
此字段包含一个整数,表示有多少秒左右的延迟。在其他时候,这个字段是NULL