Amazon RDS 多可用区部署为 RDS 数据库 (DB) 实例提供增强的可用性和持久性,使其成为生产数据库工作负载的理想之选。当您预置多可用区数据库实例时,Amazon RDS 会自动创建主数据库实例,并将数据同步复制到其他可用区 (AZ) 中的备用实例。每个可用区在其独立的、物理上显著不同的基础设施中运行,并已设计为具备高可靠性。万一发生基础设施故障,Amazon RDS 可自动故障转移至备用实例中 (如果是 Amazon Aurora,则会故障转移至只读副本中),以便您能够在故障转移结束后立即恢复数据库操作。由于故障转移后数据库实例的终端节点维持不变,因此应用程序可在无需手动管理干预的情况下恢复数据库操作。

通过多种 Amazon RDS 引擎,您可以添加只读副本提高扩展能力,并保持数据库在发生可用区故障时的可用性。Amazon RDS 只读副本可以通过其自身在不同可用区中的备用实例来设置。对于 Aurora,您可以选择跨多个可用区放置只读副本。

Amazon Aurora 通过部署专为数据库工作负载构建的 SSD 支持虚拟存储层进一步扩展了多可用区的优势。它可以跨三个可用区,通过六种方法自动复制存储。Amazon Aurora 存储具有容错能力,能以透明方式应对多达两个数据副本的丢失,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对多达三个副本的丢失。无论您的数据库是否使用只读副本,Aurora 始终可以跨三个可用区复制您的数据。

将 Amazon RDS 实例转换为多可用区部署 (3:01)

优势

增强的持久性

适用于 MySQL、MariaDB、Oracle 和 PostgreSQL 引擎的多可用区部署使用同步物理复制,让备用实例中的数据与主实例中的数据保持同步。适用于 SQL Server 引擎的多可用区部署则采用 SQL Server 本地镜像技术,通过同步逻辑复制实现同步。Amazon Aurora 使用专为数据库工作负载构建的 SSD 型虚拟存储层。所有方法均可以在数据库实例发生故障或丢失可用区时保护您的数据。

更高的可用性

运行多可用区部署时,您会受益于更高的数据库可用性。如果发生可用区故障或数据库实例故障,您的可用性受到的影响将仅限于完成自动故障转移所需的时间:对于 Amazon Aurora,通常为一分钟以内(当使用 MariaDB Connector/J 时更是短达 30 秒);对于其他数据库引擎,通常为一到两分钟(请参见 RDS 常见问题以了解详细信息)。

多可用区部署的可用性优势还可延伸到计划的维护和备份操作。如果遇到系统升级,如操作系统修补或数据库实例扩展,这些操作首先会应用到备用实例,然后才用于自动故障转移。因此,可用性影响将仅为完成自动故障转移所需的时间。

对数据库性能的保护

与单可用区部署不同的是,当 MySQL、MariaDB、Oracle 和 PostgreSQL 引擎进行多可用区部署备份时,主实例的 I/O 活动不会暂停,因为备份取自备用实例。然而,请注意,在备份多可用区部署时,您可能仍需要等待几分钟。

当实例在 Amazon Aurora 部署中发生故障时,Amazon RDS 使用 RDS 多可用区技术自动将故障转移到您在三个可用区的任何一个中创建的 15 个 Amazon Aurora 副本中的一个。如果未预置任何 Amazon Aurora 副本,在发生故障的情况下,Amazon RDS 将尝试为您自动创建新的 Amazon Aurora 数据库实例。

自动故障转移

如果主实例上的存储卷在多可用区部署中发生故障,则 Amazon RDS 会自动故障转移至最新的备用实例中 (如果是 Amazon Aurora,则会故障转移至只读副本中)。将其与单可用区部署进行比较:如果单可用区数据库发生故障,将需要由用户启动 Point-in-time-restore 操作。此操作需要几个小时才能完成,而最近的可恢复时间后(一般为最近 5 分钟内)发生的任何更新均不可用。

数据库实例故障转移完全自动化,无需管理干预。Amazon RDS 会监控您的主实例和备用实例的运行状况,并且会启动故障转移以应对各种故障条件。

故障转移条件

Amazon RDS 可检测多可用区部署中最常见的故障并自动从中恢复过来,这样您可在无管理干预的情况下尽快恢复数据库操作。如果发生以下任何一种情况,Amazon RDS 将自动执行故障转移:

  • 主可用区的可用性受损
  • 主节点的网络连接受损
  • 主节点的计算单位出现故障
  • 主区域的存储故障

注意:为了获得更强的可用性,对多可用区部署启动诸如数据库实例扩展或系统升级 (如操作系统安装补丁程序) 之类的操作时,这些操作首先会应用于备用实例,之后才自动进行故障转移。(请参阅 Aurora 文档,了解有关更新操作的详细信息)。因此,可用性仅会在执行自动故障转移的时段内受到影响。请注意,Amazon RDS 多可用区部署不会自动转移来响应某些数据库操作,如长时间运行查询、死锁或数据库崩溃错误。

跨多个数据中心的容错能力

设置

使用 AWS 管理控制台,您可以轻松创建新的多可用区部署,或修改现有单一可用区实例,使其成为多可用区部署。要使用 AWS 管理控制台创建新的多可用区部署,只需在启动数据库实例时,单击针对“Multi-AZ Deployment”的“Yes”选项即可。要将现有单可用区数据库实例转换为多可用区部署,可使用 AWS 管理控制台中与您的数据库实例相应的“修改”选项。

多可用区部署、多区域部署和只读副本

Amazon RDS 多可用区部署是对多区域部署和只读副本的补充。虽然这三种功能都可以通过保留额外的数据副本来提高可用性与持久性,但是它们之间存在不同:

多可用区部署

多区域部署

只读副本

主要目的是高可用性

主要目的是灾难恢复和本地性能

主要目的是可扩展性

非 Aurora:同步复制;Aurora:异步复制

异步复制

异步复制

非 Aurora:只有主实例活跃;Aurora:所有实例都活跃

所有区域均可访问且可用于读取

所有只读副本均可访问且可用于读取扩展

非 Aurora:从备用实例自动备份;Aurora:从共享存储层自动备份

自动备份可在每个区域中进行

默认不配置备份

始终跨单个区域中的至少两个可用区

每个区域中均可有多可用区部署

可以在一个可用区,也可以跨可用区或区域

非 Aurora:数据库引擎版本升级发生在主实例上;Aurora:所有实例一起更新

非 Aurora:每个区域中的数据库引擎版本升级独立进行;Aurora:所有实例一起更新

非 Aurora:数据库引擎版本升级从源实例独立进行;Aurora:所有实例一起更新

检测到问题时自动故障转移到备用(非 Aurora)或只读副本 (Aurora)

Aurora 允许将辅助区域升级为主区域

可手动升级到独立的数据库实例(非 Aurora)或主实例 (Aurora)

您可以组合使用多可用区部署与其他 Amazon RDS 功能以获得它们各自的优势。例如,您可以用多可用区部署的方式配置源数据库以实现高可用性,并创建只读副本(在单可用区中)以实现读取可扩展性。或者,您也可以使用 Aurora Global Database 将数据从您的多可用区 Aurora 部署复制到其他区域中。

借助 RDS for MySQL、MariaDB、PostgreSQL 和 Oracle,您还可以用多可用区部署的方式设置只读副本,从而将只读副本用作灾难恢复目标。将只读副本升级到独立的数据库时,便已启用多可用区部署。

详细了解 Amazon RDS 的功能
了解有关 RDS 功能的更多信息

了解 Amazon RDS 的主要功能。 

了解更多 
注册 AWS 账户
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中使用 Amazon RDS 构建
开始在控制台中构建

通过 Amazon RDS 管理控制台开始使用。

登录