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

高可用性 (多可用区)

Amazon RDS 使用多可用区部署为数据库实例提供高可用性和故障转移支持。Amazon RDS 使用几种不同的技术来提供故障转移支持。用于 Oracle、PostgreSQL、MySQL 和 MariaDB 数据库实例的多可用区部署使用 Amazon 的故障转移技术。SQL Server 数据库实例使用 SQL Server 镜像。无论数据库集群中的实例是否跨多个可用区,Amazon Aurora 实例都在单个 AWS 区域的多个可用区中存储数据库集群的数据的副本。有关 Amazon Aurora 的更多信息,请参阅 Amazon RDS 上的 Amazon Aurora

在多可用区部署中,Amazon RDS 会自动在不同可用区中配置和维护一个同步备用副本。主数据库实例将跨可用区同步复制到备用副本,以提供数据冗余、消除 I/O 冻结并在系统备份期间将延迟峰值降至最小。在计划内的系统维护期间,运行高性能的数据库实例可以提高可用性,并帮助保护数据库以防数据库实例发生故障和可用区中断。有关可用区的更多信息,请参阅区域和可用区

注意

高可用性功能不是面向只读情况的扩展解决方案;您不能使用备用副本处理读取流量。要处理只读流量,您应当使用只读副本。有关更多信息,请参阅 使用 MariaDB、MySQL 和 PostgreSQL 数据库实例的只读副本

 高性能方案

使用 RDS 控制台,您只需在创建数据库实例时指定多可用区,即可创建多可用区部署。您还可以使用控制台修改数据库实例并指定多可用区选项,从而将现有数据库实例转换为多可用区部署。RDS 控制台显示备用副本的可用区 (称为辅助可用区)。

您还可以使用 CLI 指定多可用区部署。通过 AWS CLI describe-db-instances 命令或 Amazon RDS API DescribeDBInstances 操作,可显示备用副本的可用区 (称为辅助可用区)。

RDS 控制台会显示备用副本的可用区 (称为辅助可用区),或可以通过 AWS CLI describe-db-instances 命令或 Amazon RDS API DescribeDBInstances 操作找到辅助可用区。

与单可用区部署相比,使用多可用区部署的数据库实例由于执行同步数据复制,因此,可能会增加写入和提交延迟。尽管 AWS 设计用于处理可用区之间的低延迟网络连接,但如果您的部署故障转移到备用副本,延迟可能会发生更改。对于生产工作负载,建议您使用配置的 IOPS 和针对配置的 IOPS 进行了优化的数据库实例类 (m4.large 及更大的类),以实现高速、一致的性能。

注意

在多可用区配置中,主和辅助数据库实例之间的网络流量不通过公共 Internet 传输。

将数据库实例修改为多可用区部署

如果您有一个单可用区部署的数据库实例,并且要将它修改为多可用区部署 (对于 SQL Server 或 Amazon Aurora 之外的引擎),则 Amazon RDS 需要执行几个步骤。首先,Amazon RDS 从您的部署中创建主数据库实例的快照,然后将该快照还原到另一个可用区。然后 Amazon RDS 在主数据库实例与新实例之间设置同步复制。该操作可避免在从单可用区转换到多可用区时出现停机,但您会在首次转换到多可用区时体验明显的性能影响。对于大型写入密集型数据库实例来说,此影响更明显。

在修改完成后,Amazon RDS 会触发事件 (RDS-EVENT-0025),表示该过程已完成。您可以监视 Amazon RDS 事件,有关更多信息,请参阅 使用 Amazon RDS 事件通知

Amazon RDS 的故障转移过程

数据库实例发生计划内或计划外的中断时,如果您已启用多可用区,则 Amazon RDS 会自动切换到另一个可用区中的备用副本。完成故障转移所用的时间取决于在主数据库实例变为不可用时的数据库活动和其他条件。故障转移时间通常为 60-120 秒。但是,事务较多或时间较长的恢复过程可能延长故障转移时间。完成故障转移后,RDS 控制台 UI 还需要一段时间才能反映新的可用区。

故障转移机制自动更改数据库实例的 DNS 记录,使其指向备用数据库实例。因此,您需要重新建立与数据库实例之间的所有现有连接。由于 Java DNS 缓存机制的工作原理,您可能需要重新配置 JVM 环境。有关如何管理在故障转移的情况下缓存 DNS 值的 Java 应用程序的更多信息,请参阅 AWS SDK for Java

Amazon RDS 会自动处理故障转移,因此,您可以尽快恢复数据库操作而无需管理干预。如果出现以下任一情况,主数据库实例会自动切换到备用副本:

  • 可用区发生停机。

  • 主数据库实例发生故障.

  • 数据库实例的数据库实例类已更改。

  • 数据库实例的操作系统在进行软件修补.

  • 数据库实例的手动故障转移是使用故障转移重启启动的。

可通过多种方法确定多可用区数据库实例是否进行了故障转移:

  • 数据库事件订阅可设置为在故障转移启动时向您发送电子邮件或 SMS 通知。有关事件的更多信息,请参阅 使用 Amazon RDS 事件通知

  • 您可以使用 Amazon RDS 控制台或 API 操作查看数据库事件。

  • 您可以使用 Amazon RDS 控制台 API 操作查看多可用区部署的当前状态。

有关如何响应故障转移、缩短恢复时间以及 Amazon RDS 的其他最佳实践的信息,请参阅 针对 Amazon RDS 的最佳实践

相关主题