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

使用 Amazon Aurora Global Database

Amazon Aurora Global Database 跨越多个 Amazon Web Services 区域,可实现低延迟的全局读取,并可从可能影响整个 Amazon Web Services 区域 的罕见停机事件中快速恢复。一个 Aurora 全局数据库在一个区域中有一个主数据库集群,在不同区域中最多有五个辅助数据库集群。

Amazon Aurora Global Database 概览

使用 Amazon Aurora Global Database,您可以通过跨多个 Amazon Web Services 区域 的单个 Aurora 数据库来运行您的全局分布式应用程序。

Aurora Global Database 由一个写入数据的 Amazon Web Services 区域 和最多五个只读 Amazon Web Services 区域 组成。您可将写入操作直接发送到主 Amazon Web Services 区域 中的主数据库集群。Aurora 会将数据复制到使用专用基础设施的辅助 Amazon Web Services 区域,延迟通常不到一秒。

下图显示了跨越两个 Amazon Web Services 区域 的 Aurora Global Database 示例。


        Aurora全局数据库只有一个主数据库集群,并有至少一个 Aurora 辅助数据库集群。

您可以通过添加一个或多个 Aurora 副本(只读 Aurora 数据库实例)以承担只读工作负载,从而独立地扩展每个辅助集群。

只有主集群才能执行写入操作。执行写入操作的客户端连接到主数据库集群的数据库集群终端节点。如图所示,Aurora 全局数据库使用集群存储卷进行复制,而不是使用数据库引擎。要了解更多信息,请参阅“Amazon Aurora 存储概述”。

Aurora 全局数据库专为遍布全球的应用程序而设计。只读备用数据库集群(Amazon Web Services 区域)允许您支持更靠近应用程序用户的读取操作。借助写入转发功能,您还可以配置 Aurora 全局数据库,以使辅助集群将数据发送到主集群。有关更多信息,请参阅在 Amazon Aurora Global Database 中使用写入转发

Aurora 全球数据库支持两种不同的操作来更改主数据库集群的区域,具体视情况而定:全球数据库切换全球数据库失效转移

  • 对于计划的操作过程(如区域轮换),请使用全球数据库切换(以前称为“托管式计划失效转移”)。通过此特征,您可以将运行正常的 Aurora Global Database 的主集群重新定位到其辅助区域之一,而不会造成数据丢失。要了解更多信息,请参阅 对 Amazon Aurora 全球数据库执行切换

  • 要在主区域中发生停机后恢复 Aurora 全球数据库,请使用全球数据库失效转移进程。通过此特征,您可以将主数据库集群失效转移到另一个区域(跨区域失效转移)。要了解更多信息,请参阅 执行 Aurora 全球数据库的托管式失效转移

Amazon Aurora Global Database 的优势

使用 Aurora 全局数据库,您可以获得以下优势:

  • 全局读取本地延迟 - 如果您在世界各地设有办事处,则可以使用 Aurora Global Database 在主 Amazon Web Services 区域 保持主要信息来源为最新状态。您其他区域的办事处可以访问各自区域中的信息,存在本地延迟。

  • 可扩展辅助 Aurora 数据库集群 - 您可以通过向辅助 Amazon Web Services 区域 添加更多只读实例(Aurora 副本)来扩展辅助集群。辅助集群为只读模式,因此它最多可以支持 16 个只读 Aurora 副本实例,而不符合单个 Aurora 集群通常 15 个此类副本的限制。

  • 从主到辅助 Aurora 数据库集群快速复制 – Aurora 全局数据库执行的复制对主数据库集群造成的性能影响不大。数据库实例的资源完全专用于承担应用程序读取和写入工作负载。

  • 从区域范围内的中断中恢复 - 辅助集群使您能够比传统复制解决方案更快地(RTO 更低)在新的主 Amazon Web Services 区域 中使用 Aurora Global Database,并且数据损失更少(RPO 更低)。

区域和版本可用性

特征可用性和支持因每个 Aurora 数据库引擎的特定版本以及 Amazon Web Services 区域而异。有关 Aurora 和全局数据库的版本和区域可用性的更多信息,请参阅 Aurora 全局数据库

Amazon Aurora Global Database 的限制

以下限制目前适用于 Aurora 全局数据库:

  • Aurora Global Database 在某些 Amazon Web Services 区域 可用,且仅适用于特定 Aurora MySQL 和 Aurora PostgreSQL 版本。有关更多信息,请参阅Aurora 全局数据库

  • Aurora 全球数据库对于支持的 Aurora 数据库实例类、Amazon Web Services 区域的最大数量等有特定的配置要求。有关更多信息,请参阅Amazon Aurora Global Database 的配置要求

  • Aurora 全球数据库切换需要以下 Aurora 数据库引擎之一:

    • Aurora MySQL 与 MySQL 8.0 兼容,版本 3.01.0 及更高版本

    • Aurora MySQL 与 MySQL 5.7 兼容,版本 2.09.1 及更高版本

    • Aurora PostgreSQL 版本 13.3 及更高版本、12.4 及更高版本和 11.9 及更高版本

  • 仅当主数据库集群和辅助数据库集群具有相同的主要、次要和补丁级别引擎版本时,您才能对 Aurora 全球数据库执行托管式跨区域切换或失效转移。但是,如果次要引擎版本是以下版本之一,则补丁级别可能会有所不同。

    数据库引擎 次要引擎版本

    Aurora PostgreSQL

    • 版本 14.5 或更高的次要版本

    • 版本 13.8 或更高的次要版本

    • 版本 12.12 或更高的次要版本

    • 版本 11.17 或更高的次要版本

    有关更多信息,请参阅托管式跨区域切换和失效转移的补丁级别兼容性

  • Aurora 全局数据库目前不支持以下 Aurora 特征:

    • Aurora Serverless v1

    • 正在 Aurora 中回溯

  • 有关在全局数据库中使用 RDS 代理特征的限制,请参阅 对全局数据库使用 RDS 代理的限制

  • 自动次要版本升级不适用于作为 Aurora 全局数据库一部分的 Aurora MySQL 集群。请注意,您可以为属于全局数据库集群的数据库实例指定该设置,但该设置无效。

  • Aurora 全局数据库目前不支持备用数据库集群的 Aurora Auto Scaling。

  • 您可以在仅运行以下 Aurora MySQL 和 Aurora PostgreSQL 版本的 Aurora 全局数据库上启动数据库活动流。

    数据库引擎 主 Amazon Web Services 区域 辅助 Amazon Web Services 区域

    Aurora MySQL 5.7

    版本 2.08 及更高版本

    版本 2.08 及更高版本

    Aurora PostgreSQL

    版本 13.3 及更高版本

    版本 13.3 及更高版本

    版本 12.4 及更高版本

    版本 12.4 及更高版本

    版本 11.7 及更高版本

    版本 11.9 及更高版本

    版本 10.11 及更高版本

    版本 10.14 及更高版本

    有关数据库活动流的信息,请参阅 使用数据库活动流监控 Amazon Aurora

  • 以下限制目前适用于升级 Aurora 全局数据库:

    • 在对该 Aurora 全局数据库执行主要版本升级时,无法将自定义参数组应用于全局数据库集群。您可以在全局集群的每个区域中创建自定义参数组,然后在升级后手动将它们应用于区域集群。

    • 使用基于 Aurora MySQL 的 Aurora 全局数据库时,如果开启了 lower_case_table_names 参数,则无法执行从 Aurora MySQL 版本 2 到版本 3 的就地升级。有关可以使用的方法的更多信息,请参阅主要版本升级。

    • 使用基于 Aurora PostgreSQL 的 Aurora 全局数据库时,如果启用了恢复点目标 (RPO) 特征,则无法对 Aurora 数据库引擎执行主要版本升级。有关 RPO 特征的信息,请参阅 管理基于 Aurora PostgreSQL 的全局数据库的 RPO

    • 使用基于 Aurora MySQL 的 Aurora 全局数据库时,您无法使用标准流程从版本 3.01 或 3.02 升级到 3.03 或更高版本。有关要使用的过程的详细信息,请参阅通过修改引擎版本升级 Aurora MySQL

    有关升级 Aurora Global Database 的信息,请参阅 升级 Amazon Aurora Global Database

  • 您无法单独地停止或启动 Aurora 全局数据库中的 Aurora 数据库集群。要了解更多信息,请参阅 停止和启动 Amazon Aurora 数据库集群

  • 在某些情况下,附加到 Aurora 备用数据库集群的 Aurora 副本可能会重新启动。如果主 Amazon Web Services 区域 的写入器数据库实例重新启动或发生故障转移,辅助区域中的 Aurora 副本也会重新启动。随后辅助集群将不可用,直到所有副本与主数据库集群的写入器实例恢复同步。重启或失效转移时主集群的行为与单个非全局数据库集群的行为相同。有关更多信息,请参阅使用 Amazon Aurora 进行复制

    在更改主数据库集群之前,请务必了解对 Aurora 全局数据库的影响。要了解更多信息,请参阅 从计划外停机中恢复 Amazon Aurora Global Database

  • 当 Amazon Aurora 无法访问数据库集群的 Amazon KMS 密钥时,Aurora 全球数据库目前不支持 inaccessible-encryption-credentials-recoverable 状态。在这些情况下,加密的数据库集群会直接进入最终 inaccessible-encryption-credentials 状态。有关这些状态的更多信息,请参阅 查看数据库集群状态

  • 在 Aurora 全局数据库中运行的基于 Aurora PostgreSQL 的数据库集群存在以下限制:

    • 作为 Aurora 全局数据库一部分的 Aurora PostgreSQL 数据库集群不支持集群缓存管理。

    • 如果 Aurora 全局数据库的主数据库集群基于 Amazon RDS PostgreSQL 实例的副本,则无法创建辅助集群。切勿尝试使用 Amazon Web Services Management Console、Amazon CLI 或 CreateDBCluster API 操作从该集群创建辅助。尝试这样做会超时,也不会创建辅助集群。

我们建议您使用与主数据库相同版本的 Aurora 数据库引擎为 Aurora 全局数据库创建辅助数据库集群。有关更多信息,请参阅创建 Amazon Aurora Global Database