首页 > 解决方案 > 为什么将 RDS 从 Postgres 10.11 升级到 11.6 会导致 storage-full 错误?

问题描述

我有一个版本为 9.6.6 的 RDS Postgres 数据库,并负责将其升级到版本 11。

为此,我创建了一个快照,然后配置了一个新的 9.6.6 数据库。接下来,我在 RDS 控制台中点击了“修改”,并将这个新实例升级到了 10.11 版本。一旦它在主要版本 10 上,然后 RDS 允许我再次升级到版本 11.6。

但是,在完成此过程后的一个小时内,新的 11.6 数据库就卡住并进入了storage-full状态。以下 CloudWatch 事件发生在此之前...

数据库实例的可用存储容量:my_new_db 低至预置存储的 2% [预置存储:4.78 GB,可用存储:77.81 MB]。您可能希望增加预置存储来解决此问题。

新旧数据库都分配了 5GiB 的磁盘空间。我不相信我的数据库表的大小是一个因素,因为以下查询返回 330MB,这只是分配空间的 7%。

SELECT pg_size_pretty(pg_database_size('my_old_db'));

由于我的数据库表的大小显然不是罪魁祸首,什么可能导致我的 RDS 实例耗尽磁盘空间?

规格:
实例类:db.t2.medium
内存:4GB
vCPU:2
加密:已启用
存储类型:通用 (SSD)
存储:5GiB

标签: postgresqlstorageamazon-rds

解决方案


最近将 9.6.22 数据库实例就地升级到 13.3 时,我遇到了类似的问题。

实例只有5GB的存储空间,DB大概2.5GB,升级到1GB左右(一个小时左右)后磁盘空间迅速减少,然后趋于稳定。没有磁盘已满错误,但存储已使用约 80%。

  • 我浏览了RDS 的“磁盘已满”故障排除页面,该页面没有帮助,因为额外的存储不在 Postgres 数据库集群中(即本例中的一组数据库)。
  • 缓解措施是将其调整为具有超过 20 GB 存储的数据库实例。

我相信这两个问题都可能归结为 RDS 实例的最小存储大小增加 - 在某些时候,AWS 必须将其从 5 GB 增加到 20 GB。创建新实例时,请参阅AWS 文档的这一部分和适用于 RDS 的 AWS 控制台。

我想说这里存在 RDS 问题,因为控制台或 API 应该告诉您在升级之前需要增加存储大小 - 类似于它可能告诉您当前实例类型不支持升级。


推荐阅读