我得到了这个奇怪的错误
Caused by: org.postgresql.util.PSQLException: ERROR: could not open
relation base/17369/1684: No such file or directory
如何从中恢复? 有什么想法吗?
由于
答案 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在严重滥用的硬件上运行,并且当硬件超出限制时会看到许多索引损坏问题(例如,在热门的,不通风的壁橱中,数据库服务器高于门级),但这看起来不像一个(索引损坏相对容易修复,但通常错误消息有点不同)。
现在,另外,可能可以使用当前数据库和恢复数据。显然,在我们尝试之前我们不会知道这一点。