#### 17.1.4.4验证匿名交易的复制

[](<>)

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

有几种可能的方法可以等待事务复制：

最简单的方法是：如果您确定复制副本的延迟时间不会超过N秒，那么只需等待N秒多一点。或者等待一天，或者任何你认为安全部署的时间段。

更安全的方法是，它不依赖于时间：如果只有一个源具有一个或多个副本，请执行以下操作：

1.  在源代码上，执行：

    ```
    SHOW MASTER STATUS;
    ```

    记下表格中的值`文件`和`位置`柱

2.  在每个副本上，使用源中的文件和位置信息执行：

    ```
    SELECT MASTER_POS_WAIT(file, position);

    Or from MySQL 8.0.26:
    SELECT SOURCE_POS_WAIT(file, position);
    ```

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

    如果使用循环复制拓扑，其中多台服务器可能有写客户端，请对每个源副本连接执行步骤2，直到完成整个循环。重复整个过程，完成整个循环*两次*.

    例如，假设您有三台服务器A、B和C，它们在一个圆圈中复制，因此->B->C->A.程序如下：

-   在A上执行步骤1，在B上执行步骤2。

-   在B上执行步骤1，在C上执行步骤2。

-   在C上做第一步，在A上做第二步。

-   在A上执行步骤1，在B上执行步骤2。

-   在B上执行步骤1，在C上执行步骤2。

-   在C上做第一步，在A上做第二步。
