为Aurora MySQL 数据库集群禁用基于 GTID 的复制
您可以为 Aurora MySQL 数据库集群禁用基于 GTID 的复制。这样做意味着 Aurora 集群不能对使用基于 GTID 的复制的外部数据库执行入站或出站二进制日志复制。
注意
在以下过程中,只读副本 表示采用对外部数据库执行二进制日志复制的 Aurora 配置中的复制目标。它不表示只读 Aurora 副本数据库实例。例如,当 Aurora 集群接受来自外部源的传入复制时,Aurora 主实例充当二进制日志复制的只读副本。
有关此部分提到的存储过程的更多详细信息,请参阅 Aurora MySQL 存储过程参考。
为 Aurora MySQL 数据库集群禁用基于 GTID 的复制
-
在 Aurora 副本上,运行以下过程:
对于版本 3
CALL mysql.rds_set_source_auto_position(0);
对于版本 2
CALL mysql.rds_set_master_auto_position(0);
-
将
gtid_mode
重置为ON_PERMISSIVE
。-
确保与 Aurora MySQL 集群关联的数据库集群参数组将
gtid_mode
设置为ON_PERMISSIVE
。有关使用参数组设置配置参数的更多信息,请参阅 Amazon Aurora 的参数组。
-
重启 Aurora MySQL 数据库集群。
-
-
将
gtid_mode
重置为OFF_PERMISSIVE
。-
确保与 Aurora MySQL 集群关联的数据库集群参数组将
gtid_mode
设置为OFF_PERMISSIVE
。 -
重启 Aurora MySQL 数据库集群。
-
-
等待在 Aurora 主实例上应用所有 GTID 事务。要检查是否应用了这些事务,请按以下步骤操作:
-
在 Aurora 主实例上,运行
SHOW MASTER STATUS
命令。您的输出应类似于以下输出。
File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
记下输出中的文件和位置。
-
在每个只读副本上,使用上一步中的源实例上的文件和位置信息运行以下查询:
对于版本 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);
-
-
重置 GTID 参数以禁用基于 GTID 的复制。
-
确保与 Aurora MySQL 集群关联的数据库集群参数组具有以下参数设置:
-
gtid_mode
–OFF
-
enforce_gtid_consistency
–OFF
-
-
重启 Aurora MySQL 数据库集群。
-