XX002: index_corrupted
PostgreSQL含义
在索引结构中检测到损坏。由于索引指向的数据与堆中的实际行不一致,使用该索引的查询可能返回错误结果或失败。
原因
硬件/存储故障、操作系统 glibc/ICU 升级后排序规则(collation)变化导致 B-tree 顺序被破坏,或突然宕机。尤其是操作系统排序规则的更新会在文本索引中造成静默损坏。
解决方法
重建损坏的索引:REINDEX INDEX idx_name; 或 REINDEX TABLE my_table; 在大表上使用 REINDEX INDEX CONCURRENTLY 以减少锁定。如果原因是排序规则,重建所有受影响的文本索引,并用 amcheck 扩展(bt_index_check)进行验证。如果根本原因是硬件,更换存储。