Amazon Aurora
Aurora 用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Amazon Aurora 进行复制

Aurora 有几个复制选项。以下部分说明选择每种方法的方式和时间。

Aurora 副本

Aurora 副本是 Aurora 数据库集群中的独立终端节点,最适合用于扩展读取操作以及提高可用性。对于数据库集群在 AWS 区域中所跨的多个可用区,最多可以分配 15 个 Aurora 副本。数据库集群卷由该数据库集群的多个数据副本组成。不过,集群卷中的数据,对于主实例和数据库集群中的 Aurora 副本表示为单个逻辑卷。

因此,所有 Aurora 副本均返回相同的查询结果数据,且副本滞后时间非常短 - 通常远远少于主实例写入更新后的 100 毫秒。副本滞后因数据库更改速率而异。也就是说,在对数据库执行大量写入操作期间,您可能发现副本滞后时间变长。

Aurora 副本十分适用于读取扩展,因为它们完全专用于集群卷上的读取操作。写入操作由主实例进行管理。由于集群卷是在数据库集群中的所有数据库实例间共享的,因此无需其他操作即可复制每个 Aurora 副本的数据副本。

要提高可用性,可以使用 Aurora 副本作为故障转移目标。也就是说,如果主实例失败,Aurora 副本将提升为主实例。提升过程只造成短暂的中断,在此期间,对主实例发出的读写请求将失败,同时会出现异常,并且 Aurora 副本会重启。如果您的 Aurora 数据库集群不包含任何 Aurora 副本,则您的数据库集群将在数据库实例从故障事件中恢复的持续时间内不可用。不过,提升 Aurora 副本要比重新创建主实例快得多。对于高可用性场景,建议您创建一个或多个 Aurora 副本。您的 Aurora 数据库集群应该与主实例具有相同的数据库实例类,并且位于不同可用区中。有关将 Aurora 副本作为故障转移目标的更多信息,请参阅Aurora 数据库集群的容错能力

注意

您无法为未加密的 Aurora 数据库集群创建已加密的 Aurora 副本。您无法为加密的 Aurora 数据库集群创建未加密的 Aurora 副本。

有关如何创建 Aurora 副本的详细信息,请参阅将 Aurora 副本添加到数据库集群

使用 Aurora MySQL 进行复制

除了 Aurora 副本以外,您还可以通过以下选项与 Aurora MySQL 进行复制:

  • 不同 AWS 区域中的两个 Aurora MySQL 数据库集群(通过在不同的 AWS 区域中创建 Aurora MySQL 数据库集群的 Aurora 只读副本)。

  • 相同区域中的两个 Aurora MySQL 数据库集群 (通过使用 MySQL 二进制日志 (binlog) 复制)。

  • 一个 Amazon RDS MySQL 数据库实例(作为主实例)和一个 Aurora MySQL 数据库集群(通过创建 Amazon RDS MySQL 数据库实例的 Aurora 只读副本)。此方法通常用于迁移到 Aurora MySQL 而不是持续复制。

有关与 Aurora MySQL 进行复制的更多信息,请参阅使用 Amazon Aurora MySQL 进行复制

使用 Aurora PostgreSQL 进行复制

除了 Aurora 副本以外,您还可以在作为主实例的 Amazon RDS PostgreSQL 数据库实例和 Aurora PostgreSQL 数据库集群之间设置复制。您可以创建 Amazon RDS PostgreSQL 数据库实例的 Aurora 只读副本以完成该操作。

有关与 Aurora PostgreSQL 进行复制的更多信息,请参阅使用 Amazon Aurora PostgreSQL 进行复制