为什么 Amazon RDS 数据库实例在我尝试增加分配的存储空间时卡在正在修改状态?

1 分钟阅读
0

我希望增加为 Amazon Relational Database Service (Amazon RDS) 数据库实例分配的存储空间,但操作卡在正在修改状态。

解决方法

根据设计,Amazon RDS 数据库实例的存储扩展操作对正在运行的数据库操作的影响很小。在大多数情况下,存储扩展操作完全卸载到 Amazon Elastic Block Store (Amazon EBS) 层,并且对数据库透明。此过程通常在几分钟内完成。但是,对于某些旧版 Amazon RDS 存储卷来说,您可能需要不同的流程来修改 Amazon RDS 存储的大小、IOPS 或卷类型。您可能需要使用较长时间运行的 I/O 操作来制作数据的完整副本。

根据分配存储的大小,大多数 RDS 卷几何图形包括 RAID0 配置中的一个 Amazon EBS 卷或四个条状 EBS 卷。必须在以下任一条件下使用传统方法:

  • 您的 RDS 实例没有一个或四个卷。
  • 修改的目标大小会将分配的存储增加到 400 GB 以上。

您可以使用增强型监控指标查看 RDS 实例上正在使用的卷数。此外,任何使用上一代 EBS 卷的源卷都需要使用传统方法来修改已分配存储的大小。

以下因素会影响增加 RDS 数据库实例分配的存储空间所需的时间:

  • 传统方法使用 I/O 资源,这可能会增加数据库工作负载。尽可能使用影响最小的方法是最佳做法。影响最小的方法不使用数据库上的任何资源。如果必须使用传统方法,那么最佳做法是将存储增加操作安排在非高峰时段。这可能会减少完成存储增加操作所需的时间。
  • 如果在高负载条件下并且必须使用传统方法,则可以为 RDS 数据库实例创建只读副本。您可以对只读副本执行存储扩展操作,然后将只读副本数据库实例提升为主数据库实例。
  • 如果在高负载条件下,那么请执行以下操作:
  1. 为 Amazon RDS 数据库实例创建只读副本
  2. 对只读副本执行存储扩展操作。
  3. 将只读副本数据库实例升级为主数据库实例。

存储修改一旦开始,将无法取消。在 Amazon EBS 操作完成之前,数据库实例的状态处于修改状态。您可以将数据库实例还原到指定时间从数据库快照还原来使用原始存储配置创建新数据库实例。还原的数据库实例不会处于正在修改状态。


相关信息

Amazon RDS 问题排查

ModifyDBInstance

使用“立即应用”设置

相关视频

AWS 官方
AWS 官方已更新 3 年前