Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Verifying Replication of Anonymous Transactions

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。