PostgreSQL 操作后磁盘已满。现在该怎么办?

PostgreSQL 操作后磁盘已满。现在该怎么办?

我在 PostgreSQL 的一个大表中添加了一列。由于该表占用了 50% 以上的可用磁盘空间,并且该操作是在事务中运行的,因此在事务完成之前,所有磁盘空间都被编辑的行占用,操作失败。现在我知道应该如何正确地执行此操作 - 添加列,然后分批添加它们的值,但现在每次我尝试时,数据库在几个批次之后就会耗尽磁盘空间,即使我在VACUUM ANALYZE批次之间运行。

过去,我会运行VACUUM FULL并恢复可用空间。但是,从 9.0 版开始,该VACUUM FULL命令的工作方式与该命令类似CLUSTER,需要一些可用磁盘空间才能完成,而我没有。

有没有办法就地清理数据库并回收可用空间?

相关内容