如何解决 Amazon RDS 数据库实例用尽存储空间时出现的问题?

上次更新日期:2022 年 6 月 7 日

我的 Amazon Relational Database Service (Amazon RDS) 数据库实例存储空间不足,我无法停止、重新启动或连接到该实例。

简短描述

要避免 storage-full(存储已满)状态,请考虑使用以下一种或多种预防措施:

解决方法

处于 storage-full(存储已满)状态的 Amazon RDS 数据库实例没有足够的可用空间来执行基本操作,例如连接或重新启动实例。要解决此问题,请执行以下操作:

  1. 确认数据库实例状态storage-full
  2. 增加分配给数据库实例的存储
    注意:如果数据库实例处于 storage-full 状态,则该实例仅接受对分配存储进行的修改。对其他任何值的修改将被拒绝。
    注意:您必须至少增加 10% 的分配存储。如果增加的分配存储低于 10%,则会报错。

当数据库实例处于 storage-optimization(存储优化)状态时,该实例会正常运行。但是,在实例上完成存储优化后的至少六个小时内,您不能进行其他存储修改。

在大多数情况下,稍微增加 Allocated Storage(分配存储),即可重新连接到实例,以便您执行其他问题排查操作。如果您的 Amazon RDS 数据库实例未处于 storage-full 状态,请参阅无法连接到 Amazon RDS 数据库实例,以了解其他问题排查步骤。

Amazon RDS for SQL Server

某些数据库实例存在修改存储限制。在 Amazon RDS 控制台中,如果数据库实例不符合修改条件,则系统会停用 Allocated Storage(分配存储)选项。如果您想扩展 Amazon RDS for SQL Server 实例的存储,但修改存储大小的选项不可用,则可以使用原生备份和还原功能迁移数据。也可以使用数据迁移工具将数据迁移到具有预调配 IOPS 或通用型(SSD)存储类型的新实例。有关更多信息,请参阅修改 Amazon RDS 数据库实例

您可以使用以下 AWS Command Line Interface (AWS CLI) 命令检查资格条件,以返回数据库实例的有效存储选项:

describe-valid-db-instance-modifications

您可以通过执行以下操作,减少 Amazon RDS SQL Server 实例中使用的空间:

  • 如果您的 Amazon RDS 实例出现 storage full(存储已满)情况,或者您需要控制数据库日志的大小,请运行 DBCC SQLPERF(LOGSPACE) TSQL 查询以查看 SQL Server 事务日志的大小和使用的日志空间百分比。有关此查询的更多信息,请参阅有关 DBCC SQLPERF (Transact-SQL) 的 Microsoft 文档。如果使用的日志空间百分比较低,但事务日志文件大小较大,则缩小事务日志文件可恢复磁盘空间。有关更多信息,请参阅连接到运行 Microsoft SQL Server 数据库引擎的数据库实例
  • 请注意,开启自动增长时,SQL Server tempdb 会自动增长。最佳实践是,如果 tempdb 正在占用大量存储空间,则应缩减 tempdb 数据库的大小。
    如果未在 maxsize 中指定限制,则 tempdb 会消耗可用存储空间。