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

使用基于 GTID 的复制

以下内容说明了如何在 Aurora MySQL 集群和外部源之间使用采用二进制日志(binlog)复制的全局事务标识符(GTID)。

注意

对于 Aurora,只能通过对外部 MySQL 数据库使用二进制日志复制的 Aurora MySQL 集群使用此功能。另一个数据库可能是其他 Amazon Web Services 区域的 Amazon RDS MySQL 实例、本地 MySQL 数据库或 Aurora 数据库集群。要了解如何配置此类复制,请参阅 Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库集群之间的复制(二进制日志复制)

如果您使用的是二进制日志复制,不熟悉 MySQL 的基于 GTID 的复制,请参阅 MySQL 文档中的 Replication with global transaction identifiers

Aurora MySQL 版本 2 和 3 支持基于 GTID 的复制。

全局事务标识符 (GTID) 概述

全局事务标识符 (GTID) 是为提交的 MySQL 事务生成的唯一标识符。您可以使用 GTID 让二进制日志复制的故障排除更加简单便捷。

注意

当 Aurora 在集群中的数据库实例之间同步数据时,该复制机制不会涉及二进制日志 (binlog)。对于 Aurora MySQL,基于 GTID 的复制仅在您还使用二进制日志复制从外部的 MySQL 兼容数据向 Aurora MySQL 数据库集群复制或从中复制时应用。

MySQL 使用两种不同类型的事务进行二进制日志复制:

  • GTID 事务 – 由 GTID 标识的事务。

  • 匿名事务 – 未分配 GTID 的事务。

在复制配置中,GTID 在所有数据库实例中是唯一的。GTID 简化了复制配置,因为在使用它们时,您不必引用日志文件位置。通过使用 GTID,还可以更轻松地跟踪复制的事务并确定源实例和副本是否一致。

在从外部的 MySQL 兼容数据向 Aurora 集群复制时,通常使用 Aurora 的基于 GTID 的复制。您可以将此复制配置设置为从本地数据库或 Amazon RDS 数据库迁移到 Aurora MySQL 的一部分。如果外部数据库已使用 GTID,为 Aurora 集群启用基于 GTID 的复制可以简化复制过程。

为 Aurora MySQL 集群配置基于 GTID 的复制的方法是先在数据库集群参数组中设置相关配置参数。然后将该参数组与集群关联。

基于 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 的复制,请为 Aurora MySQL 数据库集群的数据库集群参数组使用这些设置:

  • ONON_PERMISSIVE 仅适用于从 Aurora MySQL 集群的传出复制。这两个值都可以让 Aurora 数据库集群为复制到外部数据库的事务使用 GTID。ON 要求外部数据库也使用基于 GTID 的复制。ON_PERMISSIVE 让基于 GTID 的复制成为外部数据库上的可选项。

  • OFF_PERMISSIVE(如果设置)表明您的 Aurora 数据库集群可以接受来自外部数据库的传入复制。不论外部数据库是否使用基于 GTID 的复制,它都可以接受。

  • OFF(如果设置)表明您的 Aurora 数据库集群只接受来自不使用基于 GTID 的复制的外部数据库的传入复制。

提示

传入复制是 Aurora MySQL 集群最常见的二进制日志复制场景。对于传入复制,建议您将 GTID 模式设置为 OFF_PERMISSIVE。该设置允许来自外部数据库的传入复制,不论复制源的 GTID 设置如何。

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