MySQL 8.3 Release Notes
本节解释如何监控复制拓扑结构并验证所有匿名事务是否已被复制。这在在线更改复制模式时非常有用,因为您可以验证是否安全地更改为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。