带一个备用实例的 Amazon RDS 多可用区

自动故障转移 保护数据库性能 增强持久性 增加可用性
通过自动数据库故障转移支持应用程序的高可用性,该故障转移最快可在 60 秒内完成,不会丢失数据,无需手动干预。
通过从备用实例进行备份,避免在备份过程中暂停主实例上的输入/输出活动。
使用 Amazon RDS 多可用区同步复制技术使备用数据库实例上的数据与主数据库实例保持一致。 通过在第二个可用区中部署备用实例来增强可用性,并在可用区或数据库实例出现故障时获得容错能力。

工作原理

在 Amazon RDS 多可用区部署中,Amazon RDS 会自动创建主数据库(DB)实例,并将数据同步复制到其他可用区中的实例。当检测到故障时,Amazon RDS 会自动故障转移到备用实例,无需手动干预。
Amazon RDS Multi-AZ 部署工作原理图

带两个可读备用实例的 Amazon RDS Multi-AZ

通常在 35 秒内自动进行失效转移 使用单独的端点进行读取和写入 事务提交延迟缩短多达 2 倍 通常可在 1 秒内完成次要版本升级
通常在 35 秒内自动进行失效转移,不会丢失数据,无需手动干预。 将查询路由到写服务器和适当的只读副本备用实例,以最大限度地提高性能和可扩展性。  与带有一个备用实例的 Multi-AZ 相比,写入延迟提高了 2 倍。 将次要版本升级停机时间缩短到通常低于 35 秒。通过在部署中添加开源RDS 代理,进一步将停机时间缩短到通常在 1 秒以下。

工作原理

使用 Amazon RDS Multi-AZ 在三个可用区中部署具有高可用性和持久性的 MySQL 或 PostgreSQL 数据库,并提供两个可读备用实例。通常在不到 35 秒的时间内实现自动失效转移,与带一个备用实例的 Amazon RDS Multi-AZ 相比,事务提交延迟快 2 倍,拥有额外的读取容量,还可选择由基于 AWS Graviton2 或 Intel 的实例进行计算。
Amazon RDS Multi-AZ 简介(1:20)

Amazon RDS Multi-AZ 简介

Amazon RDS Multi-AZ 部署为 Amazon RDS 数据库(DB)实例提供增强的可用性和持久性,使其成为生产数据库工作负载的理想之选。通过两种不同的部署选项,您可以自定义工作负载以获得所需的可用性。
Amazon RDS Multi-AZ 简介
Amazon RDS Multi-AZ 部署为 Amazon RDS 数据库(DB)实例提供增强的可用性和持久性,使其成为生产数据库工作负载的理想之选。通过两种不同的部署选项,您可以自定义工作负载以获得所需的可用性。

对照表

Amazon RDS 单可用区,或带一个备用实例的 Amazon RDS 多可用区,或带两个可读备用实例的 Amazon RDS 多可用区

功能

单可用区

带一个备用实例的多可用区

带两个可读备用实例的多可用区

可用引擎

  • Amazon RDS for PostgreSQL
  • Amazon RDS for MySQL
  • Amazon RDS for MariaDB
  • Amazon RDS for SQL Server
  • Amazon RDS for Oracle
  • Amazon RDS for Db2
  • Amazon RDS for PostgreSQL
  • Amazon RDS for MySQL
  • Amazon RDS for MariaDB
  • Amazon RDS for SQL Server
  • Amazon RDS for Oracle
  • Amazon RDS for Db2
  • Amazon RDS for PostgreSQL
  • Amazon RDS for MySQL

更多读取
容量

  • 无:读取容量仅限于您的主数据库实例
  • 无:备用数据库实例只是被动故障转移目标,用于实现高可用性
  • 两个备用数据库实例用作故障转移目标,为读取流量提供服务
  • 读取容量由主数据库实例的写入事务开销决定

·        

事务提交延迟更低(吞吐量更高)

 

 

  • 与带一个备用实例的 Amazon RDS 多可用区相比,事务提交速度提高了 2 倍

自动故障转移持续时间

  • 不可用:对于用户,将需要用户启动的时间点恢复操作。
  • 该操作可能需要几个小时才能完成
  • 最近的可恢复时间后(一般为最近 5 分钟内)发生的任何数据更新均不可用
  • 新的主数据库实例最快在 60 秒内即可为您的新工作负载提供服务
  • 故障转移时间与写入吞吐量无关
  • 新的主数据库实例通常在 35 秒内即可为您的新工作负载提供服务
  • 失效转移时间取决于副本滞后的长度
次要版本升级停机时间
  • 使用自动次要版本升级时,在 Amazon RDS 30 分钟维护时段期间会发生次要版本升级停机
  • 使用自动次要版本升级时,在 Amazon RDS 30 分钟维护时段期间会发生次要版本升级停机
  • 当客户将开源或 Amazon RDS 代理添加到其部署中时,通常不到 1 秒
  • 对于仅带两个可读备用实例的 Multi-AZ,通常不到 35 秒

更高的可用区中断恢复能力

  • 无:如果发生可用区故障,您将面临数据丢失和数小时故障转移时间的风险
  • 如果发生可用区故障,您的工作负载将自动故障转移到最新的备用实例
  • 如果发生故障,剩下的两个备用实例中的一个将接管主数据库实例并为其工作负载(写入)提供服务

事务提交抖动更低

  • 没有针对抖动的优化
  • 访问专用日志卷
  • 使用本地存储来存储事务日志以减少抖动

客户

SysCloud 为关键的软件即服务(SaaS)应用程序创建自动备份,监控恶意文件,并提供关于您的数据和合规性的强大洞察,所有这些都在一个控制面板中完成。SysCloud 使用带两个可读备用实例的 Amazon RDS 多可用区用于其内部监控系统:“新的 Amazon RDS 多可用区部署选项为我们提供了一种成本高效的方式来实现更好的性能、可用性和读取可扩展性,”SysCloud 基础设施总监 Vikram Srinivasan 说。“我们希望通过新的 Amazon RDS 多可用区部署选项,为我们的客户创造更好的体验。”

定价

Amazon RDS Multi-AZ 可用于 RDS for PostgreSQLRDS for MySQLRDS for MariaDBRDS for SQL ServerRDS for OracleRDS for Db2。带两个可读备用实例的 Amazon RDS Multi-AZ 可用于 RDS for PostgreSQL 和 RDS for MySQL。要了解 Amazon Aurora 如何通过让您的数据在三个可用区保持持久性来增强可用性,请参阅包含 Aurora 副本的多可用区部署

对于单可用区部署、带一个备用实例的多可用区部署和带两个可读备用实例的多可用区部署,定价按照使用的数据库实例小时数计费,起止时间分别为数据库实例的启动和停止或删除时间。部分数据库实例小时以一秒为增量计费,最低收取 10 分钟的费用,然后提供可计费状态更改(例如创建、启动或修改数据库实例类)。

有关 Amazon RDS Multi-AZ 定价的更多信息,请参阅 Amazon RDS 定价页面。

资源

入门

使用以下用户指南和教程快速开始使用 Amazon RDS Multi-AZ。

文档


介绍带一个备用实例的 Amazon RDS Multi-AZ 的概念,并提供有关将数据库实例修改为多可用区部署以及 Amazon RDS 失效转移过程的说明。

文档


介绍带两个可读备用实例的 Amazon RDS Multi-AZ 的概念,并提供有关修改、重命名、重新启动和删除集群的说明;使用只读副本;并将 PostgreSQL 逻辑复制与多可用区数据库集群结合使用。

入门教程


在本教程中,将使用“附带许可”模型在 Amazon RDS 上创建 Oracle 数据库标准版 2 实例,并介绍如何启用 Multi-AZ 和 Performance Insights 等功能。

视频

观看会议、网络研讨会和其他视频,深入了解 Amazon RDS Multi-AZ。

在线技术讲座


在本次会议中,我们将简要介绍 Multi-AZ、其部署选项、每个选项的优点,并深入探讨两个可读备用选项及其最新增强功能。

博客

阅读有关 Amazon RDS Multi-AZ 的最新改进,并深入了解如何将其用于您的 Amazon RDS 用例。 

常见问题

以多可用区部署模式运行数据库实例意味着什么?

创建或修改数据库实例并以多可用区部署模式运行后,Amazon RDS 将自动在不同的可用区预置和维护同步“备用”副本。对数据库实例的更新将同步复制到可用区的备用副本中,以保持同步并保护最新的数据库更新,以防数据库实例出现故障。

如果遇到特定类型的计划内维护或很少出现的数据库实例故障或可用区故障,Amazon RDS 将自动故障转移到备用副本,以便在提升备用副本后尽快恢复数据库写入和读取操作。由于数据库实例的名称记录相同,所以应用程序无需手动管理干预即可恢复数据库操作。借助多可用区部署,您可以透明地进行复制。无需与备用副本交互,而且它不可用来服务读取流量。有关多可用区部署的更多信息,请参阅 Amazon RDS 用户指南

什么是可用区域?

可用区是区域内的不同位置,旨在隔离其他可用区的故障。每个可用区在其独立的、物理上显著不同的基础设施中运行,具有高度可靠性。可用区之间不共用像发电机和冷却设备那样的常见故障点。此外,它们在物理上也是相互独立的,即使火灾、龙卷风或洪涝等极为罕见的灾难也只会影响单个可用区。同一区域内的可用区之间具有低延迟的网络连接。

在多可用区部署环境中,“主要”和“备用”指什么?

以多可用区部署模式运行数据库实例时,“主”副本服务于数据库写入和读取操作。此外,Amazon RDS 会在场景后预配置和维护“备用”副本,它是主副本的最新副本。在故障转移情况下,会“提升”备用副本。故障转移后,备用副本将成为主副本,并接受数据库操作。在提升前的任何时候,无需与备用副本直接交互(例如,执行读取操作)。如果您有兴趣扩展读取流量,以突破单个数据库实例的流量限制,请参阅关于只读副本常见问题

多可用区部署有哪些优势?

以多可用区部署模式运行数据库实例的主要优势是可提高数据库的持久性和可用性。多可用区部署提供了增强的可用性和容错功能,这使其自然而然成为生产环境的理想之选。

在遇到罕见的数据库实例组件故障或某个可用区的可用性受损的情况时,以多可用区部署模式运行数据库实例可确保数据安全无虞。例如,如果主副本中的存储卷出现故障,Amazon RDS 将自动启动故障转移到备用副本,在此您的所有数据库更新完整无缺。相对于单一可用区的标准部署,这种方式提供更长的数据持久性,否则将需要用户启动还原操作且最近可还原时间(通常在最后五分钟内)之后进行的更新将不可用。

此外,以多可用区部署模式运行时,您还可获得增强数据库可用性的优势。如果发生可用区故障或数据库实例故障,可用性影响将仅限于完成自动故障转移的时间。多可用区部署的可用性优势还可延伸到计划内维护。

例如,对于自动备份,由于从备用副本进行备份,所以在首选的备份窗口期间不会再暂停主副本中的 I/O 活动。至于打补丁或数据库实例类扩展,这些操作在自动故障转移前会首先在备用副本上执行。因此,可用性影响将仅限于完成自动故障转移的时间。

以多可用区部署模式运行数据库实例的另一潜在优势是,系统将自动执行数据库实例故障转移,无需进行管理。在 Amazon RDS 环境中,这意味着出现可用区故障或数据库实例故障时,无需监控数据库实例事件及启动手动数据库实例恢复(通过 RestoreDBInstanceToPointInTime 或 RestoreDBInstanceFromSnapshot API)。
 

作为多可用区部署运行我的数据库实例是否会影响性能?

您可以看到,由于是代您执行同步数据复制,所以相对于单一可用区中的标准数据库实例部署,延迟有所提升。

如何设置多可用区域数据库实例部署?

要创建多可用区数据库实例部署,只需在使用 AWS 管理控制台启动数据库实例时,单击“多可用区部署”的“是”选项。

另外,如果您使用的是 Amazon RDS API,则可调用 CreateDBInstance API 并将“多可用区”参数的值设置为“true”。 要将现有的标准(单一可用区)数据库实例转换为多可用区,请在 AWS 管理控制台中修改数据库实例,或使用 ModifyDBInstance API 并将“多可用区”参数的值设置为“是”。
 

当我将 Amazon RDS 实例从单可用区转换为多可用区时,会发生什么情况?

对于 RDS for PostgreSQLRDS for MySQLRDS for MariaDBRDS for SQL ServerRDS for OracleRDS for Db2 数据库引擎,当您选择将 Amazon RDS 实例从单可用区转换为多可用区时,会发生以下情况:

  • 已拍摄主实例的快照。
  • 在不同的可用区,从该快照创建新的备用实例。
  • 在主实例和备用实例之间配置同步复制。

因此,在实例从单可用区转换为多可用区时,不会出现停机时间。不过,当备用实例在捕获数据以赶上主实例时,您可能会看到延迟增加。

哪种事件会导致 Amazon RDS 启动到备用副本的失效转移?

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

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

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

Amazon RDS 自动进行失效转移时,我是否会收到提醒?

会,Amazon RDS 将发出数据库实例事件,以通知您系统已执行自动失效转移。您可以单击 Amazon RDS 控制台的“事件”部分或使用 DescribeEvents API 返回数据库实例相关事件的相关信息。发生特定数据库事件时,您还可以通过 Amazon RDS 事件通知获取通知。

执行多可用区域失效转移时会发生什么状况?这种情况会持续多长时间?

Amazon RDS 将自动进行失效转移,以便尽快恢复数据库操作而无需管理干预。故障转移后,Amazon RDS 会轻松翻转数据库实例的别名记录 (CNAME) 以指向备用副本,备用副本继而被提升为新的主副本。我们鼓励您遵循最佳做法,在应用程序层实施数据库连接重试。

故障转移(即从在主副本上检测到故障到在备用副本上继续事务之间的时间)通常在一至两分钟内完成。故障转移时间也会受是否必须还原大型未提交事务这一因素的影响;为获得最佳效果,建议对多可用区使用足够大的实例类型。AWS 还建议对多可用区实例使用预配置 IOPS,以获得快速、可预测及一致的吞吐量性能。

我是否可以对多可用区域数据库实例部署执行“强制失效转移”?

在各种故障条件下,Amazon RDS 会自动进行失效转移,无需用户操作。此外,Amazon RDS 会在重新引导实例时提供启动故障转移的选项。您可以通过 AWS 管理控制台或调用 RebootDBInstance API 来访问此功能。

如何控制/配置多可用区域同步复制?

对于多可用区部署,可以轻松地将“多可用区”参数设置为“是”。创建备用副本、同步复制和故障转移都将自动进行处理。这意味着,无法选择部署备用副本的可用区或更改可用的备用副本数(Amazon RDS 会为每个数据库实例主副本预置一个专用的备用副本)。备用副本也不可以配置为接受数据库读取活动。了解关于多可用区配置的更多信息

备用副本与主副本可以位于同一区域吗?

可以。备用副本将自动预置到与数据库实例主副本所在区域的不同可用区。

是否可以查看我的主节点当前位于哪个可用区?

是的,您可以使用 AWS 管理控制台或 DescribeDBInstances API 查看当前主副本的位置。

失效转移后,我的主节点位于与其他 AWS 资源(如 EC2 实例)不同的可用区中。是否会产生延迟问题?

可用区与同一区域内的其他可用区之间可以实现低延迟网络连接。此外,您在设计应用程序及其他 AWS 资源的架构时可以跨多个可用区设置冗余,以便应用程序在出现可用区故障时能够灵活反应。多可用区部署可满足数据库层的此项需求,而无需用户干预管理。

在多可用区部署中如何应用数据库快照和自动备份?

您可以按照在单一可用区或多可用区部署中运行标准部署的相同方式与自动备份和数据库快照功能交互。如果您正在运行多可用区部署,将自动从备用副本执行自动备份和数据库快照,以免主副本中的 I/O 暂停。请注意,在备份单一可用区和多可用区部署时,您可能会经历更长时间的 I/O 延迟(一般持续几分钟)。

多可用区部署与标准、单一可用区部署的还原操作启动方式也完全相同(时间点还原或从数据库快照还原)。您可以使用 RestoreDBInstanceFromSnapshot 或 RestoreDBInstanceToPointInTime API 创建新数据库实例部署。无论在标准部署还是多可用区部署中启动源备份,这些新数据库实例部署都可能是标准或多可用区模式。

详细了解 Amazon RDS 功能
借助 10 分钟教程了解相关信息

通过简单教程了解 Amazon RDS。

探索动手实践培训 
注册 AWS 账户
使用 Amazon RDS 和 Amazon Aurora 开始构建

深入阅读《Amazon RDS 用户指南》以开始使用。

阅读文档 
开始在控制台中使用 Amazon RDS 构建
深入了解 Amazon RDS 多可用区

深入了解 Amazon RDS 多可用区的工作原理和不同的部署选项。

观看研讨会