深入了解复制-延迟复制

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,表示设置成功。


深入了解复制-延迟复制_第1张图片

4)设置取消延迟复制

STOP SLAVE ;

CHANGE MASTER TO MASTER_DELAY=0;

START SLAVE;

SHOW

SLAVE STATUS\G;�n��74��

你可能感兴趣的:(深入了解复制-延迟复制)