如何减少我的RDS实例的存储(缩小)?

Hel*_*lad 21 postgresql amazon-web-services amazon-rds

我有一个带有SSD 1000GB的RDS(Postgres)实例,但数据只有100GB大小.

如何轻松缩小RDS的存储资源?

Mar*_*k B 20

RDS不允许您减少分配给数据库实例的存储量,只增加它.

要将数据库移动到更少的存储空间,您必须使用所需的存储空间创建新的RDS实例,然后使用类似pg_dump/pg_restore的数据将数据从旧数据库移动到新数据库.

另请注意,具有1,000GB SSD存储的RDS实例的基本IOPS为3,000.具有100GB SSD存储的RDS实例的基本IOPS为300,偶尔突发高达3,000.

  • @Dave 我在那篇文章中没有看到任何关于更改存储卷大小的内容。那篇文章与更改实例大小有关,即可用的 CPU 和 RAM 量。不是磁盘空间。 (2认同)
  • 除了答案中提到的 pg_dump 等数据库特定实用程序之外,您还可以使用 AWS Database Migration Service。这是相同的[入门](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)链接。 (2认同)

Luk*_*uke 14

基于AWS的帮助下在这里,这是为我工作的全过程:

1)将数据库转储到文件:在具有数据库网络访问权限的计算机上运行: pg_dump -Fc -v -h your-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username your-databasename > your-databasename.dump

2)在AWS控制台中,创建具有较小存储的新RDS实例.(您可能希望使用相同的用户名,密码和数据库名称进行设置.)

3)在新的RDS实例上恢复数据库:运行此命令(显然在与上一个命令相同的机器上): pg_restore -v -h the-new-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username -d your-databasename your-databasename.dump

(注意,在步骤3中,我正在使用新RDS实例的端点.还要注意:5432端点地址末尾没有.)


小智 6

Amazon不允许减小RDS实例的HDD大小,您可能有两个选择来减小存储大小。

1:-如果您可以承受停机时间,则可以将旧实例的mysqldump备份还原到存储大小较小的新实例。

2:-您可以使用数据库迁移服务将数据从一个实例移动到另一个实例,而无需停机。

  • 感谢您提出数据库迁移服务的建议。它几乎对我有用-直到我发现它不(当前)不支持JSON或JSONB列的正确迁移:-( (3认同)