为具有只读副本的 MySQL 数据库实例禁用基于 GTID 的复制 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

具有只读副本的 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 数据库实例和每个只读副本。