1)什么是延迟复制
延迟复制是一个很简单的概念,区别于传统的异步复制(接近实时),比如用户误操作,删除了重要的表,延迟复制特性保证了用户有机会从延迟的slave中恢复误删除的表.该特性的问题在于需要保证用户有足够的时间从slave阻止误操作复制的发生.从5.6版本开始支持。延时特性是在slave中实现的,不会影响master,relay log的接收等,只是sql_thread执行更新的过程延迟了指定的时间。
2)延迟复制作用
存在即合理,延迟复制可以用来解决以下三类问题:
1.用来在数据库误操作后,快速的恢复数据。比如有人误操作的表,那么这个操作在延迟时间内,从库的数据并没有发生变化,可以用从库的数据进行快速恢复。
2.用来做延迟测试,比如你做好的数据库读写分离,把从库作为读库,那么你想知道当数据产生延迟的时候到底会发生什么。那么你就可以使用这个特性也模拟延迟。
3.用于老数据的查询等需求,比如你经常需要查看某天前一个表或者字段的数值,你可能需要把备份恢复后进行查看,如果有延迟从库,比如延迟一周,那么就可以解决这样类似的需求。当然,并不是所有团队都有这样的需求。
3)设置延迟复制
延迟复制配置,通过设置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,表示设置成功。
4)设置取消延迟复制
STOP SLAVE ;
CHANGE MASTER TO MASTER_DELAY=0;
START SLAVE;
SHOW
SLAVE STATUS\G;�n��74��
网友评论