文档首页
MySQL 8.4 参考手册
相关文档 下载此手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


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

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。