在Postgresql中检测并修复损坏的indeces?

今天我遇到了一个案例,表格中存在记录缺失的情况.我将问题追溯到可能是损坏的索引.在我做了REINDEX之后,问题就解决了.

事情是,通常当我运行报告时,我得到超过10000条记录.我不可能知道是否有丢失的记录.今天我很幸运能找到问题所在.

有没有办法在索引损坏时获取通知?

如果没有,我如何编写一个REINDEX我的架构中的所有权限的函数?

最佳答案
索引损坏是非常糟糕的问题.我认为你需要从根本上诊断和解决这个问题,而不是试图在你的查询中帮助它.这可能是由于任何Postgres进程的kill -9等糟糕的管理操作引起的.

对于您的问题:没有验证工具AFAIK.我相信一个扫描整个索引的查询,例如index on index会在indeces中找到损坏的页面.

我建议你阅读this blog.

转载注明原文:在Postgresql中检测并修复损坏的indeces? - 代码日志