0

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

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

在对较大的表执行完全真空并重新索引后,我面临以下错误。

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

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

4

1 回答 1

0

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

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

错误应该独立于VACUUMREINDEX运行。您最近是否遇到过操作系统崩溃?

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

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

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

于 2018-03-06T10:41:06.710 回答