XX001: data_corrupted
PostgreSQL의미
PostgreSQL이 테이블/heap 페이지에서 데이터 손상을 감지했다. 읽은 블록의 내용이 일관되지 않아('invalid page in block') 쿼리를 안전하게 완료할 수 없다.
원인
디스크/스토리지 장애, 파일 시스템 손상, 갑작스러운 정전 시 fsync 보장이 지켜지지 않음, 결함 있는 하드웨어(RAM/컨트롤러), 또는 드물게 소프트웨어 버그가 원인이다. 체크섬이 활성화되어 있으면 손상이 더 일찍 감지된다.
해결 방법
먼저 하드웨어/스토리지를 확인하고, 가능하면 즉시 물리 백업(PITR)으로 되돌릴 계획을 세운다. 정상 백업이 있으면 복원한다. 복구를 위해 데이터 손실을 감수하고 최후의 수단으로만 zero_damaged_pages = on으로 손상된 페이지를 0으로 채우고 읽을 수 있는 데이터를 내보낼 수 있다(데이터 손실이 발생한다). data_checksums를 활성화하고(기존 클러스터에서는 PG12+에서 서버 정지 상태로 pg_checksums --enable), RAM 테스트를 실행하며 정기적으로 PITR 백업을 수행한다.