使用基于 GTID 的复制 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用基于 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 的复制。

参数 有效值 描述

gtid_mode

OFF, OFF_PERMISSIVE, ON_PERMISSIVE, ON

OFF 指定新事务是匿名事务(即,没有 GTID),并且事务必须是匿名事务才能复制。

OFF_PERMISSIVE 指定新事务是匿名事务,但可以复制所有事务。

ON_PERMISSIVE 指定新事务是 GTID 事务,但可以复制所有事务。

ON 指定新事务是 GTID 事务,并且事务必须是 GTID 事务才能复制。

enforce_gtid_consistency

OFF, ON, WARN

OFF 允许事务违反 GTID 一致性。

ON 禁止事务违反 GTID 一致性。

WARN 允许事务违反 GTID 一致性,但在违反一致性时生成警告。

注意

在 Amazon Web Services Management Console中,gtid_mode 参数显示为 gtid-mode

对于基于 GTID 的复制,请为数据库实例或只读副本的参数组使用这些设置:

  • ONON_PERMISSIVE 仅适用于从 RDS 数据库实例的传出复制。这两个值都可以让 RDS 数据库实例为复制的事务使用 GTID。ON 要求目标数据库也使用基于 GTID 的复制。ON_PERMISSIVE 让基于 GTID 的复制成为目标数据库上的可选项。

  • OFF_PERMISSIVE(如果设置)表明您的 RDS 数据库实例可以接受来自源数据库的传入复制。无论源数据库是否使用基于 GTID 的复制,它们都可以这样做。

  • OFF(如果设置)表明您的 RDS 数据库实例只接受来自不使用基于 GTID 的复制的源数据库的传入复制。

有关参数组的更多信息,请参阅 Amazon RDS 的参数组