XX002: index_corrupted
PostgreSQLЧто это значит?
Обнаружено повреждение структуры индекса. Поскольку данные, на которые указывает индекс, не согласуются с фактическими строками в heap, запросы, использующие индекс, могут возвращать неверные результаты или завершаться ошибкой.
Почему возникает?
Отказ оборудования/хранилища, нарушение порядка в B-дереве из-за изменения правил сортировки (collation) после обновления glibc/ICU операционной системы, либо внезапный сбой. Особенно обновления collation операционной системы вызывают незаметное повреждение текстовых индексов.
Как исправить
Перестройте повреждённый индекс: REINDEX INDEX idx_name; или REINDEX TABLE my_table; На больших таблицах используйте REINDEX INDEX CONCURRENTLY, чтобы уменьшить блокировки. Если причина в collation, перестройте все затронутые текстовые индексы и проверьте их с помощью расширения amcheck (bt_index_check). Если первопричина в оборудовании, замените хранилище.