为具有只读副本的 MySQL 数据库实例禁用基于 GTID 的复制
您可以为 一个具有只读副本的 MySQL 数据库实例。
为 具有只读副本的 MySQL 数据库实例禁用基于 GTID 的复制
-
在每个只读副本上,运行以下过程:
CALL mysql.rds_set_master_auto_position(0);
-
将
gtid_mode
重置为ON_PERMISSIVE
。-
确保与 MySQL 数据库实例和每个只读副本关联的参数组将
gtid_mode
设置为ON_PERMISSIVE
。有关使用参数组设置配置参数的更多信息,请参阅 Amazon RDS 的参数组。
-
重新引导 MySQL 数据库实例和每个只读副本。有关重新引导的更多信息,请参阅重启中的数据库实例。
-
-
将
gtid_mode
重置为OFF_PERMISSIVE
。-
确保与 MySQL 数据库实例和每个只读副本关联的参数组将
gtid_mode
设置为OFF_PERMISSIVE
。 -
重新引导 MySQL 数据库实例和每个只读副本。
-
-
等待在所有只读副本上应用所有 GTID 事务。要检查是否应用了这些事务,请按以下步骤操作:
-
在 MySQL 数据库 实例上,运行
SHOW MASTER STATUS
命令。您的输出应类似于以下输出。
File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------
记下输出中的文件和位置。
-
在每个只读副本上,使用上一步中的源实例上的文件和位置信息运行以下查询:
对于 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);
-
-
重置 GTID 参数以禁用基于 GTID 的复制。
-
确保与 MySQL 数据库实例和每个只读副本关联的参数组具有以下参数设置:
-
gtid_mode
–OFF
-
enforce_gtid_consistency
–OFF
-
-
重新引导 MySQL 数据库实例和每个只读副本。
-