暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

17.3.10 Delayed Replication

原创 由迪 2020-04-01
1516

MySQL 5.6支持延迟复制,以便从属服务器故意落后于主服务器至少指定的时间。默认延迟为0秒。使用 MASTER_DELAY选项 CHANGE MASTER TO将延迟设置为N秒:

CHANGE MASTER TO MASTER_DELAY = N;
从主机接收到的事件N要比在主机上执行的事件至少 晚几秒钟后才执行。唯一的例外是格式描述事件或日志文件轮换事件没有延迟,这些延迟仅影响SQL线程的内部状态。

延迟复制可用于多种目的:

防止主机上的用户错误。DBA可以将延迟的从属服务器回滚到灾难发生前的时间。

测试出现延迟时系统的行为。例如,在一个应用程序中,延迟可能是由于从站上的负载过重引起的。但是,可能很难生成此负载水平。延迟复制可以模拟延迟,而不必模拟负载。它还可以用于调试与滞后从站有关的条件。

无需重新加载备份即可检查数据库的外观。例如,如果延迟是一周,并且DBA需要在开发最后几天之前查看数据库的外观,则可以检查延迟的从属服务器。

START SLAVE并 STOP SLAVE立即生效,而忽略任何延迟。RESET SLAVE 将延迟重置为0。

SHOW SLAVE STATUS 有三个字段可提供有关延迟的信息:

SQL_Delay:一个非负整数,指示从站必须落后于主站的秒数。

SQL_Remaining_Delay:当 Slave_SQL_Running_State为时Waiting until MASTER_DELAY seconds after master executed event,此字段包含一个整数,指示延迟剩余的秒数。在其他时间,此字段为NULL。

Slave_SQL_Running_State:一个字符串,指示SQL线程的状态(类似于 Slave_IO_State)。该值与State所显示的SQL线程的值相同SHOW PROCESSLIST。

当从SQL线程在执行事件之前等待延迟过去时,将SHOW PROCESSLIST其State值显示为Waiting until MASTER_DELAY seconds after master executed event。

relay-log.info现在, 该文件包含延迟值,因此文件格式已更改。请参见 第17.2.2.2节“从站状态日志”。特别是,文件的第一行现在指示文件中有多少行。如果将从属服务器降级到MySQL 5.6之前的版本,则较旧的服务器将无法正确读取文件。要解决此问题,请在文本编辑器中修改文件以删除包含行数的初始行。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论