系统是带有Postgresql 9.3.9的FC21。集群有6个数据库,在pgsql目录中使用38 GB的存储空间。最近删除了超过20GB的冗余数据。每个数据库已经用"vacuum all"命令抽真空两次,此外,整个集群已经用vacuumdb-a命令抽真空了两次。全部运行成功。Postgresql已停止并重新启动
为了进行验证,pg_dumpall命令会创建一个12GB的文件
删除了一个数据库中的所有表:
选择pg_size_pretty(pg_database_size('db'));
显示剩余6GB以上。如何回收空间?必须执行pg_restore来恢复空间似乎是不合理的。我已经阅读并重新阅读了"恢复磁盘空间"文档。
VACUUM
命令将只回收表文件末尾的空间。您将需要VACUUM FULL
或vacuumdb -f
。
您可能还需要考虑reindexdb
,因为所有这些行重写可能会使索引有点臃肿。