postgresql - 为什么将 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
解决方案
最近将 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 应该告诉您在升级之前需要增加存储大小 - 类似于它可能告诉您当前实例类型不支持升级。
推荐阅读
- r - 错误:在 Linux 上编译 R 3.6.0 时无法在包“graphics”中加载 R 代码
- html - 如何在此动画中将光标跳转到下一行?
- html - HTML按钮在按下之前被执行
- sql - SQL:获取具有条件逻辑 (CASE WHEN) 的两个字段 (DATEDIFF) 的计算的聚合 (SUM)
- php - 从默认库重命名按钮
- scala - 除非终止,否则 Scala 未来不会写入资源目录
- multithreading - 如何从另一个线程(Glib 线程)中取消一个线程?
- javascript - 确保承诺失败
- php - 使用 PHP 变量绑定查询结果
- bash - Mac Mojave 完全禁用了我的本地主机