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;
错误应该与VACUUM
或REINDEX
运行无关。您最近是否遇到过操作系统崩溃的情况?
错误表示数据损坏;您的数据目录中缺少一个文件。
最简单的选择是从备份中恢复。
除此之外,您可以删除属于丢失文件的对象以恢复完整性(同时可能会丢失数据)。
【讨论】:
以上是关于org.postgresql.util.PSQLException:错误无法打开文件“base/16384/19048”:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章