XX001: data_corrupted
PostgreSQLQue signifie cette erreur ?
PostgreSQL a détecté une corruption de données dans une page de table/heap. La requête ne peut pas se terminer en toute sécurité car le contenu du bloc lu est incohérent ('invalid page in block').
Cause
Panne de disque/stockage, corruption du système de fichiers, garanties fsync non respectées lors d'une coupure de courant soudaine, matériel défectueux (RAM/contrôleur) ou, rarement, un bug logiciel. Avec les checksums activés, la corruption est détectée plus tôt.
Comment la corriger
Vérifiez d'abord le matériel/le stockage et, si possible, prévoyez immédiatement un retour à une sauvegarde physique (PITR). Si une sauvegarde saine existe, restaurez-la. Pour la récupération, AU RISQUE DE PERDRE DES DONNÉES et uniquement en dernier recours, vous pouvez mettre à zéro les pages endommagées avec zero_damaged_pages = on et exporter les données lisibles (cela entraîne une perte de données). Activez data_checksums (sur un cluster existant en PG12+, pg_checksums --enable serveur arrêté), lancez des tests de RAM et effectuez des sauvegardes PITR régulières.