Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 15/10/2013 18:35:28
- genamiga
- Membre
en-tête de page invalide dans le bloc xxxxx de la relation base/xxxxx/
Bonjour,
J'utilise PostreSQL 9.2.4, lors d'un vacuumdb : l'exécution de VACUUM sur la base de données « xxx » a échoué : ERREUR: en-tête de page invalide dans le bloc 39639 de la relation base/16384/599662
Après qlq recherches
Lors d'un
SELECT * FROM pg_catalog.pg_largeobject
Résultat
ERREUR: en-tête de page invalide dans le bloc 39639 de la relation base/16384/599662
Je suppose que les données du LargeObject 599662 sont corrompues...
La question est : Comment puis-je savoir où ce LargeObject est utilisé ?
Je peux, bien-sûr, ajouter l'option "zero_damaged_pages = on" au postgresql.conf. Puis faire un dump/restore.
Mais dans ce cas je ne saurais pas où est utilisé ce LargeObject corrompu...
Si vous avez une idée...
Merci d'avance.
Hors ligne
#2 15/10/2013 22:50:41
- gleu
- Administrateur
Re : en-tête de page invalide dans le bloc xxxxx de la relation base/xxxxx/
Ça dépend du schéma de votre base. Cherchez les colonnes de type lo ou oid.
Guillaume.
Hors ligne
#3 15/10/2013 22:57:54
- genamiga
- Membre
Re : en-tête de page invalide dans le bloc xxxxx de la relation base/xxxxx/
J'ai rechercher dans toutes mes tables l'oid 599662 mais je ne l'ai pas trouvé...étrange...
Hors ligne
#4 16/10/2013 14:15:11
- rjuju
- Administrateur
Re : en-tête de page invalide dans le bloc xxxxx de la relation base/xxxxx/
599662 correspond au champ relfilenode de pg_class (à priori correspondant à la table pg_largeobject).
Les largeobject sont généralement utilisés en créant une colonne de type oid dans une table utilisateur, ce champ pointant vers le numéro du largeobject (loid), dans la table pg_largeobject. Il faut donc rechercher des tables utilisateur avec ce type de champ pour savoir où il pourrait être utilisé.
Julien.
https://rjuju.github.io/
Hors ligne