哪些因素会影响 Amazon RDS 中的停机时间或数据库性能?

上次更新日期:2021 年 6 月9 日

我尝试更改 Amazon Relational Database Service (Amazon RDS) 数据库实例。在此更改期间,对数据库可用性或性能的潜在影响有哪些?

解决方法

在 Amazon RDS 中修改实例类

在 Amazon RDS 中修改单可用区实例的实例类时,将创建一个新的 Amazon Elastic Compute Cloud (Amazon EC2) 主机。使用更新的实例类创建新的 Amazon EC2 主机后,现有主机的数据库将关闭。然后,数据存储将从旧主机中分离并重新连接到请求的实例类的新主机。之后,重新启动数据库,引擎将执行恢复,以确保数据库保持一致状态。此过程中的任何中断都将与数据库恢复的持续时间成正比。

在 Amazon RDS 中修改多可用区实例的实例类时,首先会更新备用实例。更新之后,会进行故障转移,切换备用实例和主实例的角色。故障转移机制还将数据库实例的 DNS 终端节点传播到新主机。数据库恢复后,应用程序将可以访问数据库。然后,将在新的备用实例上执行实例类修改。

完成故障切换可能需要比平时更长的时间,具体取决于数据库活动或任何长时间运行的事务。故障转移通常在 60-120 秒内完成。但是,大型事务或冗长的恢复过程可能会增加故障切换时间。最佳实践是确保在实例修改期间,关闭数据库中的所有事务。您还可以安排维护任务,以避免任何中断。

在 Amazon RDS 修改存储

如果您需要额外的数据空间或不同的存储性能属性,Amazon RDS 支持对以下内容进行更新(不影响性能):

  • 存储分配
  • IOPS
  • 卷类型

Amazon RDS 利用 Amazon Elastic Block Store (Amazon EBS) Elastic Volumes 来最大程度地减少存储扩展操作所需的时间。根据所请求存储的容量,Amazon RDS 自动将多个 Amazon EBS 卷分成条状以增强性能。

为了增加存储而修改实例时,数据库实例将完全运行应用程序查询。修改 RDS 实例上的存储之后,您需要六个小时的宽限期限,才能进行其他存储更新。在此期间,实例状态显示为“存储优化”。实例进入“存储优化”阶段时,将完全启用新的存储属性,且性能不受影响。

在 Amazon RDS 中扩展存储

扩展存储是一个在线过程,数据库在此过程中可以处于完全运行状态。但是,某些传统 RDS 实例需要进行一次性存储转换。

在此操作期间,当 Amazon RDS 从旧卷集中读取数据并写入新卷时,I/O 性能可能会受到影响。此外,当扩展到 400GB 以上(对于 Oracle 数据库实例来说超过 200GB)时,Amazon RDS 仍然使用传统方法进行扩展。在使用传统方法期间,可能会出现性能下降的情况。后续的所有扩展存储修改都将使用弹性扩展方法。

在 Amazon RDS 中,从单可用区转换到多可用区

将数据库实例从单可用区转换到多可用区时,Amazon RDS 首先创建数据库的副本。然后,副本将在不同的可用区中恢复。由于在此流程中还会还原 EBS 快照,因此会将数据块复制到新卷。因此,从单可用区转换到多可用区可能会影响延迟和数据库实例性能。有关更多信息,请参阅 Amazon RDS 的高可用性(多可用区)

在高工作负载期间,转换到多可用区的影响对于存储量较大的写入密集型数据库实例更为明显。此外,任何涉及还原卷的操作(例如创建只读副本或将快照还原到新的数据库实例中)都将导致延迟增加。将存储块从 Amazon Simple Storage Service (Amazon S3) 复制到新卷之后,所有延迟都将消失。


这篇文章对您有帮助吗?


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