为Aurora MySQL 数据库集群禁用基于 GTID 的复制 - Amazon Aurora

Aurora MySQL 数据库集群禁用基于 GTID 的复制

您可以为 Aurora MySQL 数据库集群禁用基于 GTID 的复制。这样做意味着 Aurora 集群不能对使用基于 GTID 的复制的外部数据库执行入站或出站二进制日志复制。

注意

在以下过程中,只读副本 表示采用对外部数据库执行二进制日志复制的 Aurora 配置中的复制目标。它不表示只读 Aurora 副本数据库实例。例如,当 Aurora 集群接受来自外部源的传入复制时,Aurora 主实例充当二进制日志复制的只读副本。

有关此部分提到的存储过程的更多详细信息,请参阅 Aurora MySQL 存储过程参考

Aurora MySQL 数据库集群禁用基于 GTID 的复制
  1. 在 Aurora 副本上,运行以下过程:

    对于版本 3

    CALL mysql.rds_set_source_auto_position(0);

    对于版本 2

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

    1. 确保与 Aurora MySQL 集群关联的数据库集群参数组将 gtid_mode 设置为 ON_PERMISSIVE

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

    2. 重启 Aurora MySQL 数据库集群。

  3. gtid_mode 重置为 OFF_PERMISSIVE

    1. 确保与 Aurora MySQL 集群关联的数据库集群参数组将 gtid_mode 设置为 OFF_PERMISSIVE

    2. 重启 Aurora MySQL 数据库集群。

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

    1. Aurora 主实例上,运行 SHOW MASTER STATUS 命令。

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

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

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

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

      对于版本 3

      SELECT SOURCE_POS_WAIT('file', position);

      对于版本 2

      SELECT MASTER_POS_WAIT('file', position);

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

      对于版本 3

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

      对于版本 2

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

    1. 确保与 Aurora MySQL 集群关联的数据库集群参数组具有以下参数设置:

      • gtid_modeOFF

      • enforce_gtid_consistencyOFF

    2. 重启 Aurora MySQL 数据库集群。