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

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

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

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

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

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

【问题讨论】:

    标签: postgresql postgresql-9.2 vacuum autovacuum


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 2015-02-25
      • 2019-07-27
      • 2013-12-15
      • 2014-03-02
      • 1970-01-01
      相关资源
      最近更新 更多