我在Amazon RS中有一个Postgres数据库。
当我向DB询问它的大小时,它会给我:
SELECT pg_size_pretty(pg_database_size('mydb'));
> 333 GB.
然而,RDS实例已经在使用2TB的存储空间并且每天都在变得越来越大。
答案 0 :(得分:2)
RDS 不允许您减少分配给数据库实例的存储量,只能增加它。
要将数据库移动到更少的存储空间,您将不得不使用所需的存储空间创建一个新的RDS实例,然后使用 pg_dump / pg_restore 之类的东西将数据从旧数据库移动到新数据库一个。
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
注意:-另外请注意,具有 1,000GB SSD存储的RDS实例的基本IOPS为3,000 。具有 100GB SSD存储的RDS实例的基本IOPS为300 ,偶尔突发多达3,000。
答案 1 :(得分:0)
执行 vacuum full 命令,小心因为生成锁(vacull full)
答案 2 :(得分:0)
检查日志占用的空间