我有一个7gb大的生产数据库。 24小时后,它跃升至10gb,24小时后达到14GB。我已经尝试过pg_dumping并恢复它。我试过吸尘它。我试过重新索引它。还有什么可能导致这种规模的扩大?我目前正在使用PostgreSQL 9.1。
非常感谢任何有关从何处出发的建议。
答案 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
之类的命令行工具。您可能必须使用head
或tail
来限制投放到diff
的数据量。