Postgres:如何清理未使用的表空间文件

时间:2014-06-04 19:25:45

标签: postgresql tablespace

我有一个构建过程,它在第一次运行时引导数据库。之后,使用pg_dump导出数据库,然后重新导入以用于后续构建,直到执行“强制引导”构建。问题是数据库名称是由构建创建和定义的,然后在构建的开始/结束时删除以强制初始化。有六个表空间,但每个构建都创建最终在/ var / lib / pgsql / tablespaces中的对象,最终填满文件系统。我不能删除表空间,因为可能有另一个并发构建正在运行。

当不再引用/ var / lib / pgsql / tablespaces中的文件时,是否存在真空作业或删除文件?

我猜测数据库导出每次导入时都会创建新的表空间对象,这就是它无限增长的原因。

1 个答案:

答案 0 :(得分:1)

您似乎必须删除当前引用任何表空间的所有数据库。然后,只有这样,postgres才会执行清理并删除表空间。这似乎完全是疯了。但是从构建节点的角度来看,我可以配置一个构建作业来在静默期间运行所有数据库的清理。