使用基于 GTID 的复制
以下内容说明了如何在 Amazon RDS for MySQL 数据库实例间使用采用二进制日志(binlog)复制的全局事务标识符(GTID)。
如果您使用的是二进制日志复制,不熟悉 MySQL 的基于 GTID 的复制,请参阅 MySQL 文档中的 Replication with global transaction identifiers
所有 RDS for MySQL 5.7 版本、RDS for MySQL 版本 8.0.26 及更高的 MySQL 8.0 版本均支持基于 GTID 的复制。复制配置中的所有 MySQL 数据库实例必须满足该要求。
主题
全局事务标识符 (GTID) 概述
全局事务标识符 (GTID) 是为提交的 MySQL 事务生成的唯一标识符。您可以使用 GTID 让二进制日志复制的故障排除更加简单便捷。
MySQL 使用两种不同类型的事务进行二进制日志复制:
-
GTID 事务 – 由 GTID 标识的事务。
-
匿名事务 – 未分配 GTID 的事务。
在复制配置中,GTID 在所有数据库实例中是唯一的。GTID 简化了复制配置,因为在使用它们时,您不必引用日志文件位置。通过使用 GTID,还可以更轻松地跟踪复制的事务并确定源实例和副本是否一致。
您可以使用基于 GTID 的复制,通过 RDS for MySQL 只读副本复制数据。您可以在创建新的只读副本时配置基于 GTID 的复制,也可以转换现有的只读副本以使用基于 GTID 的复制。
您还可以在与 RDS for MySQL 之间的延迟复制配置中使用基于 GTID 的复制。有关更多信息,请参阅 使用 MySQL 配置延迟复制。
基于 GTID 的复制的参数
可以使用以下参数配置基于 GTID 的复制。
参数 | 有效值 | 描述 |
---|---|---|
|
|
|
|
|
|
注意
在 Amazon Web Services Management Console中,gtid_mode
参数显示为 gtid-mode
。
对于基于 GTID 的复制,请为数据库实例或只读副本的参数组使用这些设置:
-
ON
和ON_PERMISSIVE
仅适用于从 RDS 数据库实例的传出复制。这两个值都可以让 RDS 数据库实例为复制的事务使用 GTID。ON
要求目标数据库也使用基于 GTID 的复制。ON_PERMISSIVE
让基于 GTID 的复制成为目标数据库上的可选项。 -
OFF_PERMISSIVE
(如果设置)表明您的 RDS 数据库实例可以接受来自源数据库的传入复制。无论源数据库是否使用基于 GTID 的复制,它们都可以这样做。 -
OFF
(如果设置)表明您的 RDS 数据库实例只接受来自不使用基于 GTID 的复制的源数据库的传入复制。
有关参数组的更多信息,请参阅 Amazon RDS 的参数组。