跨 AWS 区域复制 Amazon Aurora MySQL 数据库集群
您可以在与源数据库集群不同的 AWS 区域中创建 Amazon Aurora MySQL 数据库集群作为只读副本。采用此方法可增强灾难恢复能力,允许您将读取操作扩展到更靠近用户的 AWS 区域,并使从一个 AWS 区域迁移到另一个区域变得更轻松。
您可以创建加密和不加密数据库集群的只读副本。如果加密了源数据库集群,则必须加密只读副本。
对于每个源数据库集群,您最多可以具有 5 个作为只读副本的跨区域数据库集群。
注意
作为跨区域只读副本的替代方案,您可以使用 Aurora 全局数据库以最小的延迟时间来扩展读取操作。一个 Aurora 全局数据库在一个 AWS 区域中有一个主 Aurora 数据库集群,在不同区域中最多有五个备用只读数据库集群。每个辅助数据库集群最多可以包含 16 个(而不是 15)Aurora 副本。从主数据库集群到所有辅助集群的复制由 Aurora 存储层而不是由数据库引擎处理,因此复制更改的延迟最短,通常不到 1 秒。将数据库引擎排除在复制过程之外意味着数据库引擎专用于处理工作负载。这还意味着您不需要配置或管理 Aurora MySQL 二进制日志(二进制日志记录)复制。要了解更多信息,请参阅 使用 Amazon Aurora Global Database。
当您在另一个 AWS 区域中创建 Aurora MySQL 数据库集群只读副本时,您应了解:
-
源数据库集群和跨区域只读副本数据库集群最多可以具有 15 个 Aurora 副本以及数据库集群的主实例。通过使用该功能,您可以扩展源 AWS 区域和复制目标 AWS 区域的读取操作。
-
在跨区域方案中,由于各 AWS 区域之间的网络通道更长,因此,源数据集群和只读副本之间的滞后时间更长。
-
跨区域复制时传输的数据可产生 Amazon RDS 数据传输费用。以下跨区域复制操作会针对传输到源 AWS 区域以外的数据收取费用:
-
在创建只读副本时,Amazon RDS 将创建源集群的快照,并将快照传输到保存只读副本的 AWS 区域。
-
对于源数据库中做出的每项数据修改,Amazon RDS 都会将数据从源区域传输到保存只读副本的 AWS 区域。
有关 Amazon RDS 数据传输定价的更多信息,请参阅 Amazon Aurora 定价
。 -
-
您可以为引用相同源数据库集群的只读副本运行多个并发创建或删除操作。不过,您必须保持在每个源数据库集群中具有 5 个只读副本的限制。
-
为了有效地进行复制,每个只读副本应具有与源数据库集群相同数量的计算和存储资源。如果扩展源数据库集群,您还应扩展只读副本。
开始前的准备工作
在创建作为跨区域只读副本的 Aurora MySQL 数据库集群之前,必须先在源 Aurora MySQL 数据库集群上开启二进制日志记录。Aurora MySQL 的跨区域复制使用 MySQL 二进制复制来重放对跨区域只读副本数据库集群的更改。
要在 Aurora MySQL 数据库集群上开启二进制日志记录,请更新源数据库集群的 binlog_format
参数。binlog_format
参数是默认集群参数组中的集群级参数。如果数据库集群使用默认的数据库集群参数组,则需创建新的数据库集群参数组来修改 binlog_format
设置。建议您将 binlog_format
设置为 MIXED
。不过,您也可以将 binlog_format
设置为 ROW
或 STATEMENT
(如果您需要特定的二进制日志格式)。重启您的 Aurora 数据库集群以使更改生效。
有关对 Aurora MySQL 使用二进制日志记录的更多信息,请参阅 Aurora 与 MySQL 之间或 Aurora 与其他 Aurora 数据库集群之间的复制(二进制日志复制)。有关修改 Aurora MySQL 配置参数的更多信息,请参阅 Amazon Aurora 数据库集群和数据库实例参数 和 Amazon Aurora 的参数组。