4

我收到这个奇怪的错误

Caused by: org.postgresql.util.PSQLException: ERROR: could not open
relation base/17369/1684: No such file or directory

我如何从中恢复?有任何想法吗 ?

谢谢

4

2 回答 2

9

您丢失了与表 1684 和数据库 17369 相关的文件。检查目录 base/17369 中名称为 1684 的存在文件。

您可以确定它是哪个表:

1)获取数据库名称:select * from pg_database where oid=17369

2)获取表名(连接到受影响的数据库):select * from pg_class where oid=1684

可能你能做的不多了。只能从备份中恢复。

于 2014-04-07T09:01:02.267 回答
1

这可能有多种原因。如果合理,最好的选择是在通过诊断运行硬件后从备份中恢复。

如果不希望从备份中恢复,那么您需要停止 Postmaster,复制您的数据库,并尽快获得专业帮助。数据可能会或可能不会恢复,您需要知道这一点。此外,我建议在克雷格指向您的链接之外,在这种情况下(文件可能被删除),最好从副本中恢复整个文件系统的块级副本,在另一个系统上。

FWIW 我已经看到 PostgreSQL 在严重滥用的硬件上运行,并且当硬件超出限制时看到了许多索引损坏问题(例如,在热、不通风的壁橱中高于门级别的数据库服务器),但这看起来不像一个(索引损坏相对容易修复,但通常错误消息有点不同)。

现在,另外,可以使用当前数据库备份来恢复数据。显然,在有人尝试之前我们也不会知道这一点。

于 2013-05-15T01:10:01.390 回答