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

上次更新时间:2019 年 9 月 16 日

我的 Amazon Relational Database Service (Amazon RDS) 数据库实例存储用尽,我无法停止、重新启动或连接到该实例。如何解决此问题?

简短描述

要避免 STORAGE_FULL 状态,请考虑使用以下一种或多种预防措施:

解决方法

处于 STORAGE_FULL 状态的 Amazon RDS 数据库实例没有足够的可用空间来执行基本操作,例如连接或重新启动实例。要解决此问题,请执行以下步骤:

  1. 确认数据库实例状态STORAGE_FULL
  2. 向实例添加更多存储空间
  3. 增加数据库实例的分配的存储属性。如果数据库实例处于 STORAGE_FULL 状态,则该实例仅接受对分配的存储进行的修改。对其他任何值的修改将被拒绝。
    注意:您必须至少增加 10% 的分配的存储。如果增加的分配的存储低于 10%,则会出错。

如果数据库实例处于存储优化状态,则可对该实例执行操作,但您无法在 6 小时内或数据库实例改变存储优化状态前对存储进行其他修改。在大多数情况下,稍微增加分配的存储,即可重新连接到实例,以便您执行其他问题排查操作。如果您的 Amazon RDS 数据库实例未处于 STORAGE_FULL 状态,请参阅无法连接到 Amazon RDS 数据库实例,以了解其他问题排查步骤。

Amazon RDS for SQL Server

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

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

describe-valid-db-instance-modifications

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

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