(PostgreSQL)错误:无法打开关系

时间:2013-04-08 09:13:49

标签: sql postgresql

我得到了这个奇怪的错误

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

如何从中恢复? 有什么想法吗?

由于

2 个答案:

答案 0 :(得分:7)

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

您可以确定它是哪个表格:

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

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

你可以做的事情可能不多。仅从备份恢复。

答案 1 :(得分:1)

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

如果不希望从备份恢复,则需要停止Postmaster,制作数据库副本,并尽快获得专业帮助。数据可能是也可能不是可恢复的,你需要知道这种情况。另外我建议超出Craig指向的链接,在这种情况下(文件可能被删除),从复制中恢复,最好是另一个系统上整个文件系统的块级副本。

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

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