目录在pg_dump postgresql 9.5上缺少错误

时间:2017-06-05 09:25:38

标签: postgresql

我不能在postgresql 9.5中使数据库变得愚蠢。问题仅出在1个数据库中,当我们从视图中选择数据时。它显示目录缺少128个属性。这有什么解决方案吗?表中没有选择,插入和删除操作的问题。我无法更新VIEWS或删除它们。请帮我删除解决问题的意见。

1 个答案:

答案 0 :(得分:1)

您的数据库已损坏。

尝试找出受影响的表:

SELECT 183772::regclass;

你能得到这张桌子的描述吗?它应该有多少列?

如果pg_class目录中的属性数与pg_attribute中的实际属性数不对应,则会引发错误消息。这两个查询应返回相同的值,但在您的情况下,第一个将返回128 more 而不是第二个:

SELECT relnatts FROM pg_class
   WHERE oid = 183772;

SELECT count(*) FROM pg_attribute
   WHERE attrelid = 183772 AND attnum > 0;

我会从备份中恢复。

调查哪些列正确无误。

由于差异恰好是128,因此RAM中可能是bit flipped。你有fault tolerant RAM吗?如果没有,也许现在你有动力去获得一些。

检查您的硬件,特别是您的内存是否有错误!

获取最旧的备份并查看其中的内容 如果真的只有一位被翻转并且pg_class中的数字被关闭了128,那么您可以为表183772更新relnatts,并且您的问题将得到解决。< / p>