PostgreSQL大小增加了一倍

时间:2014-04-04 15:09:36

标签: postgresql

我有一个7gb大的生产数据库。 24小时后,它跃升至10gb,24小时后达到14GB。我已经尝试过pg_dumping并恢复它。我试过吸尘它。我试过重新索引它。还有什么可能导致这种规模的扩大?我目前正在使用PostgreSQL 9.1。

非常感谢任何有关从何处出发的建议。

2 个答案:

答案 0 :(得分:1)

使用< v9.1来自the postgres wiki的查询将查询所有关系及其大小。这适用于任何版本的PGSQL。

如果您使用的是v9.1 +,则可以执行

\d+

这将显示所有关系的大小。

仅适用于表格:     \ DT +

对于序列:

\ds+

等等

您可能还想检查并查看您的autovacuum是否正在发生:

select * from pg_stat_all_tables;

您也可以手动运行真空:

vacuum full verbose

正常真空不会移除真空充满的死行。使用verbose运行它将输出大量有关死行数等的有用信息。

答案 1 :(得分:0)

如果磁盘大小增加,可能会有很多原因发生。

但是由于pg_dump文件的大小越来越大,几乎可以肯定是因为有人将数据插入到数据库中,或者用更大的值更新现有行。

也许您可以设置log_statement = 'mod'来解决问题。

或者您可以在连续的pg_dump文件之间使用diff之类的命令行工具。您可能必须使用headtail来限制投放到diff的数据量。