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

使用 Amazon 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 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 进行复制