如何在 PostgreSQL 9.5 中找到导致死锁错误/失败的原因,当使用选项 --jobs 对数据库执行完全真空数据库以并行运行完全真空时。
我只是得到一些进程号和表名......如何防止这种情况,以便我可以成功地并行对数据库进行完全真空处理?
如何在 PostgreSQL 9.5 中找到导致死锁错误/失败的原因,当使用选项 --jobs 对数据库执行完全真空数据库以并行运行完全真空时。
我只是得到一些进程号和表名......如何防止这种情况,以便我可以成功地并行对数据库进行完全真空处理?
完成VACUUM FULL
负载不足是一项非常艰巨的任务。问题是 Postgres 正在收缩表占用的空间,因此任何数据操作都会干扰它。
要实现完全真空,您有以下选择:
create new table - swap (rename tables) - move data - drop original
技术。这样您就不会收缩原始表下的空间,只需删除表即可释放它。当然,您正在重建所有索引、重定向 FK 等。另一个问题是:你需要VACUUM FULL
吗?它唯一没有VACUUM ANALYZE
做的就是在文件系统上收缩表。如果您不受磁盘空间的限制,则不需要做那么多的完全真空。
希望有帮助。