# PG12 中索引损坏，如何修复？

**URL:** <https://meta.discourse.org/t/corrupt-indexes-in-pg12-how-do-i-fix/152570>\
**Category:** Self-hosting\
**Created:** [2020年五月25日 02:45 UTC](https://meta.discourse.org/t/corrupt-indexes-in-pg12-how-do-i-fix/152570 "2020-05-25T02:45:43Z")\
**Posts on this page:** 1\
**Showing post:** 35

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2020年五月27日 20:25 UTC](https://meta.discourse.org/t/corrupt-indexes-in-pg12-how-do-i-fix/152570/35 "2020-05-27T20:25:58Z")

</div>

如果并发 REINDEX 因表包含无效数据而失败，您需要执行以下操作：

1. 修复无效数据，方法可参考 [此处](https://meta.discourse.org/t/corrupt-indexes-in-pg12-how-do-i-fix/152570/5?u=falco)。

2. 使用以下语句列出无效索引：`SELECT pg_class.relname FROM pg_class, pg_index WHERE pg_index.indisvalid = false AND pg_index.indexrelid = pg_class.oid;`

3. 使用 `DROP INDEX <indexname>;` 删除上述列出的每个无效索引。

4. 再次尝试执行 `REINDEX`。

---

_[View the full topic](https://meta.discourse.org/t/corrupt-indexes-in-pg12-how-do-i-fix/152570)._
