XX001: data_corrupted
PostgreSQL含义
PostgreSQL 在表/堆页中检测到数据损坏。由于读取的块内容不一致('invalid page in block'),查询无法安全完成。
原因
磁盘/存储故障、文件系统损坏、突然断电时 fsync 保证未被遵守、硬件故障(RAM/控制器),或少数情况下的软件缺陷。启用校验和后能更早发现损坏。
解决方法
首先检查硬件/存储,并尽可能立即计划回退到物理备份(PITR)。如果有完好的备份,进行还原。为了恢复,可以在承担数据风险的前提下、仅作为最后手段,用 zero_damaged_pages = on 将损坏页清零并导出可读数据(这会导致数据丢失)。启用 data_checksums(在 PG12+ 的现有集群上,于服务器停止时执行 pg_checksums --enable),运行 RAM 测试并定期进行 PITR 备份。