为具有只读副本的 MySQL 数据库实例禁用基于 GTID 的复制 - Amazon Relational Database Service

具有只读副本的 MySQL 数据库实例禁用基于 GTID 的复制

您可以为 一个具有只读副本的 MySQL 数据库实例。

具有只读副本的 MySQL 数据库实例禁用基于 GTID 的复制
  1. 在每个只读副本上,运行以下过程:

    CALL mysql.rds_set_master_auto_position(0);
  2. gtid_mode 重置为 ON_PERMISSIVE

    1. 确保与 MySQL 数据库实例和每个只读副本关联的参数组将 gtid_mode 设置为 ON_PERMISSIVE

      有关使用参数组设置配置参数的更多信息,请参阅 Amazon RDS 的参数组

    2. 重新引导 MySQL 数据库实例和每个只读副本。有关重新引导的更多信息,请参阅重启中的数据库实例

  3. gtid_mode 重置为 OFF_PERMISSIVE

    1. 确保与 MySQL 数据库实例和每个只读副本关联的参数组将 gtid_mode 设置为 OFF_PERMISSIVE

    2. 重新引导 MySQL 数据库实例和每个只读副本。

  4. 等待在所有只读副本上应用所有 GTID 事务。要检查是否应用了这些事务,请按以下步骤操作:

    1. MySQL 数据库 实例上,运行 SHOW MASTER STATUS 命令。

      您的输出应类似于以下输出。

      File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------

      记下输出中的文件和位置。

    2. 在每个只读副本上,使用上一步中的源实例上的文件和位置信息运行以下查询:

      对于 MySQL 8.0.26 及更高的 MySQL 8.0 版本

      SELECT SOURCE_POS_WAIT('file', position);

      对于 MySQL 5.7 版本

      SELECT MASTER_POS_WAIT('file', position);

      例如,如果文件名是 mysql-bin-changelog.000031 并且位置是 107,请运行以下语句:

      对于 MySQL 8.0.26 及更高的 MySQL 8.0 版本

      SELECT SOURCE_POS_WAIT('mysql-bin-changelog.000031', 107);

      对于 MySQL 5.7 版本

      SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);
  5. 重置 GTID 参数以禁用基于 GTID 的复制。

    1. 确保与 MySQL 数据库实例和每个只读副本关联的参数组具有以下参数设置:

      • gtid_modeOFF

      • enforce_gtid_consistencyOFF

    2. 重新引导 MySQL 数据库实例和每个只读副本。