使用基于 GTID 的复制
以下内容说明了如何在 Aurora MySQL 集群和外部源之间使用采用二进制日志(binlog)复制的全局事务标识符(GTID)。
注意
对于 Aurora,只能通过对外部 MySQL 数据库使用二进制日志复制的 Aurora MySQL 集群使用此功能。另一个数据库可能是其他 AWS 区域的 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 的复制。
参数 | 有效值 | 描述 |
---|---|---|
|
|
|
|
|
|
注意
在 AWS Management Console中,gtid_mode
参数显示为 gtid-mode
。
对于基于 GTID 的复制,请为 Aurora MySQL 数据库集群的数据库集群参数组使用这些设置:
-
ON
和ON_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 的参数组。