DBAtlas · Атлас эксплуатации баз данных

XX001: data_corrupted

PostgreSQL

Что это значит?

PostgreSQL обнаружил повреждение данных на странице таблицы/heap. Запрос не может безопасно завершиться, так как содержимое прочитанного блока несогласованно ('invalid page in block').

Почему возникает?

Отказ диска/хранилища, повреждение файловой системы, несоблюдение гарантий fsync при внезапной потере питания, неисправное оборудование (RAM/контроллер) или, изредка, программная ошибка. При включённых контрольных суммах повреждение выявляется раньше.

Как исправить

Сначала проверьте оборудование/хранилище и, если возможно, сразу запланируйте возврат к физическому бэкапу (PITR). Если есть исправный бэкап, восстановите его. Для восстановления, С РИСКОМ ДЛЯ ДАННЫХ и только в крайнем случае, можно обнулить повреждённые страницы с помощью zero_damaged_pages = on и выгрузить читаемые данные (это приводит к потере данных). Включите data_checksums (в существующем кластере с PG12+ — pg_checksums --enable при остановленном сервере), проведите тесты RAM и делайте регулярные PITR-бэкапы.

Открыть в DBAtlas →

Ещё по этой СУБД