将我的单可用区 Amazon RDS 实例修改为多可用区实例会产生什么影响,反过来呢?

上次更新日期:2022 年 5 月 19 日

我想知道将单可用区 Amazon Relational Database Service (Amazon RDS) 数据库实例更改为多可用区实例会产生什么影响。

-或者-

我想知道将多可用区 Amazon RDS 数据库实例更改为单可用区实例会产生什么影响。

简短描述

在单可用区设置中,一个 Amazon RDS 数据库实例和一个或多个 Amazon Elastic Block Store (Amazon EBS) 存储卷部署在一个可用区中。在多可用区配置中,数据库实例和 EBS 存储卷跨两个可用区部署。

在实例上启用多可用区时,Amazon RDS 会使用同步存储复制来维护冗余且一致的备用数据副本。对于多可用区部署,Amazon RDS 将检测并自动从最常见的基础设施故障场景中恢复。这种检测和恢复是为了尽可能快地恢复数据库操作。有关更多信息,请参阅 Amazon RDS 的高可用性 (多可用区)

要将数据库实例从单可用区部署更改为多可用区部署(或反过来),请参阅修改 Amazon RDS 实例

解决方法

将单可用区实例更改为多可用区实例的影响

将单可用区实例更改为多可用区时,不会出现任何实例停机的情况。在修改过程中,Amazon RDS 会创建实例卷的快照。然后,使用此快照在另一个可用区中创建新卷。尽管可以立即使用这些新卷,但您可能会遇到性能影响。这是因为新卷的数据仍然从 Amazon Simple Storage Service (Amazon S3) 加载。同时,数据库实例继续在后台加载数据。此过程称为延迟加载,可能会导致写入延迟增加,并在修改流程期间和修改后对性能产生影响。

性能影响的大小与卷类型、工作负载、实例和卷大小有关。对于操作高峰时段的大型写入密集型数据库实例,这种影响可能很大。因此,在生产环境中运行此修改之前,最好先测试对测试实例的影响。在维护或低吞吐量窗口中完成此修改也是一种最佳做法。

缩短装载时间

要主动减少加载的持续时间和影响,请执行以下操作:

  1. 将数据库实例存储类型更改为预置 IOPS。请务必预置大大高于工作负载要求的 IOPS 量。
    注意:如果实例使用自定义参数组,此步骤可能会导致短暂的停机时间。
  2. 将实例更改为多可用区。
  3. 在您的实例上启动故障转移以确保新可用区是主可用区。
  4. 在您的实例上运行数据的完整转储。或者,在最活跃的表中运行全表扫描查询,以加快将数据加载到卷中。
  5. 通过查看 Amazon CloudWatch 中的 WriteLatency 指标,确认写延迟已经恢复到正常水平。
  6. 将实例存储类型或 IOPS 更改回之前的配置。
    注意:此步骤不需要停机。

如果您的实例已经是多可用区,则减少延迟

如果您已将实例修改为多可用区,要减少延迟,请执行以下操作:

  1. 在您的实例上启动故障转移以确保新可用区是主可用区。
  2. 将数据库实例存储类型更改为预置 IOPS。请务必预置大大高于工作负载要求的 IOPS 量。
    注意:此步骤不需要停机。
  3. 在您的实例上运行数据的完整转储。或者,在最活跃的表中运行全表扫描查询,以加快将数据加载到卷中。

  4. 通过查看 Amazon CloudWatch 中的 WriteLatency 指标,确认写延迟已经恢复到正常水平。

  5. 将实例存储类型或 IOPS 更改回之前的配置。
    注意:此步骤不需要停机。

如果将数据库实例从单可用区修改为多可用区,则在另一个可用分区中会创建一个配置相同的备用实例。这会带来额外成本。另外,由于多可用区使用同步复制,因此写入速度比单可用区稍慢。

将单可用区实例修改为多可用区实例的影响

当您将实例从多可用区更改为单可用区时,实例不会出现停机时间。在修改期间,Amazon RDS 仅删除辅助实例和卷,主实例不受影响。

在将实例从多可用区部署更改为单可用区部署之前,需要考虑以下几点:

  • 如果是多可用区部署,在数据库实例发生计划内或计划外中断时,Amazon RDS 会自动切换到另一个可用区中的备用文案。然而,在单可用区实例中,您可能必须启动时间点还原操作。该操作可能需要几个小时才能完成。最近的可恢复时间后发生的任何数据更新均不可用。所以,如果发生故障,单可用区实例可能会出现额外的停机。
  • 在多可用区实例中,自动备份是在自动备份窗口从辅助实例创建的。对于 Amazon RDS for MariaDB、Amazon RDS for MySQL、Amazon RDS for Oracle 和 Amazon RDS for PostgreSQL,在备份多可用区部署期间,主实例上的 I/O 活动不会暂停,因为备份是从辅助实例中获取的。对于 Amazon RDS for SQL Server,在备份多可用区部署的过程中,I/O 活动会暂停。单可用区数据库实例上的备份过程会导致 I/O 暂停,暂停时间从几秒到几分钟不等。时间长短取决于数据库实例的大小和类。
  • 在多可用区部署中,操作系统维护首先应用于辅助实例。辅助实例被提升为主实例,然后在旧的主实例上执行维护,旧的主实例将成为新的备用实例。所以,在多可用区实例中执行某些操作系统补丁期间,停机时间最短。
  • 如果您正在扩展多可用区实例,则停机时间最短。这是因为,首先将会修改辅助实例。辅助实例升级为主实例。然后,修改旧的主实例(现在是辅助实例)。单可用区实例在扩展操作期间变得不可用。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?