• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 验证匿名事务的复制

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

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

    最简单的方法可以在不依赖于拓扑的情况下工作,但依赖于时序,如下所示:如果您确定从站的滞后时间不超过N秒,则只需等待N秒即可。或等待一天或您认为对部署安全的任何时间段。

    从某种意义上说,它是更安全的方法,它不依赖于时序:如果您只有一台主机具有一个或多个从属,请执行以下操作:

    1. 在主服务器上,执行:

      SHOW MASTER STATUS;
      

      记下Fileand Position列中的值。

    2. 在每个从站上,使用主站上的文件和位置信息执行:

      SELECT MASTER_POS_WAIT(file, position);
      

    如果您有一个主服务器和多个从属服务器,或者换句话说,您有多个从属服务器的从属服务器,请在每个级别上重复步骤2,从主服务器开始,然后是所有直接从属服务器,然后是从属服务器的所有从属服务器,依此类推。

    如果使用多个服务器可能具有写客户端的循环复制拓扑,请对每个主从连接执行步骤2,直到完成整个循环为止。重复整个过程,以便将整个圆圈重复两次

    例如,假设您有三个服务器A,B和C,它们以一个圆圈复制,从而使A-> B-> 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。