MySQL 8.4 Release Notes
19.1.4.4 验证匿名事务的复制
本节解释了如何监控复制拓扑结构并验证所有匿名事务已经被复制。这对于在线更改复制模式非常有帮助,因为可以验证是否安全地更改到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上执行第一个步骤,在B上执行第二个步骤。
-
在B上执行第一个步骤,在C上执行第二个步骤。
-
在C上执行第一个步骤,在A上执行第二个步骤。
-
在A上执行第一个步骤,在B上执行第二个步骤。
-
在B上执行第一个步骤,在C上执行第二个步骤。
-
在C上执行第一个步骤,在A上执行第二个步骤。