有许多queue_promotion_n表,其中n为1到100。 用一个非常简单的查询在73表上出现错误
SELECT count(DISTINCT queue_id)
FROM "queue_promotion_73"
WHERE status_new > NOW() - interval '3 days';
错误:无法打开文件“ base / 16387 / 357386324.1”(目标块 200005):没有这样的文件或目录
正常运行时间DB为23天。如何解决?
答案 0 :(得分:0)
rsync
全部所有PostgreSQL文件停止到安全位置。物理上存储表的文件似乎丢失。您可以使用以下方法检查PostgreSQL在磁盘上的数据存储位置:
SELECT pg_relation_filepath('queue_promotion_73');
pg_relation_filepath
----------------------
base/16387/357386324
(1 row)
如果您确定硬盘驱动器/ RAID控制器工作正常,则可以尝试重建表。最好先对数据库的副本或备份快照进行尝试。
VACUUM FULL queue_promotion_73;
再次检查关系路径:
SELECT pg_relation_filepath('queue_promotion_73');
应该不同,希望所有必需的文件都可以。
原因可能与硬件问题有关,请确保检查数据库一致性。