文档主页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man 页面 (TGZ) - 258.2Kb
Man 页面 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 参考手册  /  ...  /  验证匿名事务的复制

19.1.4.4 验证匿名事务的复制

本节说明如何监控复制拓扑并验证所有匿名事务是否已复制。这在在线更改复制模式时很有帮助,因为您可以验证更改为 GTID 事务是否安全。

有多种方法可以等待事务复制

最简单的方法是,无论您的拓扑结构如何,它都依赖于时间,如下所示:如果您确定副本永远不会落后超过 N 秒,请等待任何时间段,该时间段比 N 秒长,您认为这对您的部署来说是安全的。

一个更安全的方法,因为它不依赖于时间,如果您只有一个源和一个或多个副本,请执行以下两个步骤

  1. 在源上,执行以下语句

    SHOW BINARY LOG STATUS;

    记下输出中 FilePosition 列显示的值。

  2. 在每个副本上,使用源中的文件和位置信息执行此处显示的语句

    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。