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

Posted

技术标签:

【中文标题】org.postgresql.util.PSQLException:错误无法打开文件“base/16384/19048”:没有这样的文件或目录【英文标题】:org.postgresql.util.PSQLException: Error could not open file "base/16384/19048": No such file or directory 【发布时间】:2018-03-06 09:55:59 【问题描述】:

尽管启用了自动清理功能,但很少有表和索引臃肿。

两个回收空间真空,我在较大的表上运行了完全真空,并且还对较大的索引执行了重新索引。现在数据库的大小是可控的。

在较大的表上执行完清理并重新索引后,我面临以下错误。

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

【问题讨论】:

【参考方案1】:

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

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

错误应该与VACUUMREINDEX 运行无关。您最近是否遇到过操作系统崩溃的情况?

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

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

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

【讨论】:

以上是关于org.postgresql.util.PSQLException:错误无法打开文件“base/16384/19048”:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章