org.postgresql.util.PSQLException:错误无法打开文件“base / 16384/19048”:没有这样的文件或目录

时间:2018-03-06 09:56:00

标签: postgresql postgresql-9.2 vacuum autovacuum

尽管自动真空已启用,但很少有表和索引膨胀。

两个回收空间真空,我已经在较大的表上运行了真空,并且还对较大尺寸的索引执行了重新索引。现在数据库的大小处于控制之中。

在完成真空并重新索引更大的桌子后,我面临以下错误。

org.postgresql.util.PSQLException:错误无法打开文件“base / 16384/19048”:没有这样的文件或目录

请指导我如何解决上述错误,并告诉我这是否与我执行的vacumm full或重建索引操作有任何关系。

1 个答案:

答案 0 :(得分:0)

您应该使用OID 16384连接到数据库,并找出该文件是什么:

SELECT oid::regclass FROM pg_class WHERE relfilenode = 19048;

错误应独立于VACUUMREINDEX次运行。你最近遇到过操作系统崩溃吗?

错误表示数据损坏;数据目录中缺少一个文件。

最简单的选择是从备份恢复。

除此之外,您可以删除属于丢失文件的对象以恢复完整性(同时可能会丢失数据)。