XX002: index_corrupted
PostgreSQLNe demek?
Bir index yapısında bozulma saptandı. Index'in işaret ettiği veri, heap'teki gerçek satırlarla tutarsız olduğu için index kullanan sorgular hatalı sonuç verebilir ya da başarısız olur.
Neden olur?
Donanım/depolama hatası, işletim sistemi (glibc/ICU) yükseltmelerinde collation (harf sıralama kuralı) değişmesi nedeniyle B-tree sırasının bozulması, ya da ani kesinti. Özellikle işletim sistemi collation güncellemeleri metin index'lerinde sinsi bozulmaya yol açar.
Nasıl çözülür?
Bozulan index'i yeniden oluşturun: REINDEX INDEX indeks_adi; veya REINDEX TABLE tablo; Büyük tablolarda lock'u azaltmak için REINDEX INDEX CONCURRENTLY kullanın. Collation kaynaklı ise etkilenen tüm metin index'lerini yeniden oluşturun ve amcheck eklentisiyle (bt_index_check) doğrulayın. Kök neden donanımsa depolamayı değiştirin.