MySQL 9.0 发行说明
本节说明如何监控复制拓扑并验证所有匿名事务是否已复制。这在在线更改复制模式时很有帮助,因为您可以验证更改为 GTID 事务是否安全。
有多种方法可以等待事务复制
最简单的方法是,无论您的拓扑结构如何,它都依赖于时间,如下所示:如果您确定副本永远不会落后超过 N
秒,请等待任何时间段,该时间段比 N
秒长,您认为这对您的部署来说是安全的。
一个更安全的方法,因为它不依赖于时间,如果您只有一个源和一个或多个副本,请执行以下两个步骤
在源上,执行以下语句
SHOW BINARY LOG STATUS;
记下输出中
File
和Position
列显示的值。在每个副本上,使用源中的文件和位置信息执行此处显示的语句
SELECT SOURCE_POS_WAIT(file, position);
如果您有一个源和多级副本(即副本的副本),请从源开始,然后在其所有副本上,然后在其副本的所有副本上,依此类推,在每个级别上重复第二步。
如果您使用的是循环复制拓扑,其中多个服务器可能具有写入客户端,请对每个源副本连接执行第二步,直到完成整个循环。重复此过程,以便您完成两次完整的循环。
例如,如果有三个服务器 A、B 和 C,它们以循环方式复制,以便 A 复制到 B,B 复制到 C,C 复制到 A,请按照所示顺序执行以下操作
在 A 上执行步骤 1,在 B 上执行步骤 2。
在 B 上执行步骤 1,在 C 上执行步骤 2。
在 C 上执行步骤 1,在 A 上执行步骤 2。
在 A 上执行步骤 1,在 B 上执行步骤 2。
在 B 上执行步骤 1,在 C 上执行步骤 2。
在 C 上执行步骤 1,在 A 上执行步骤 2。