PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 16/09/2016 09:23:39

pitpoule
Membre

Problème fichier transaction pg_clog

Bonjour,

Je rencontre cette erreur au cours de l'analyze sur une table
INFO:  analyzing "public.toto"
ERROR:  could not access status of transaction 2305722024
Could not open file "pg_clog/0896": No such file or directory.

J'ai rapidement cherché et la seule solution que j'ai vue est de faire un dd pour récréer manuellement le fichier.... je suis à la recherche d'une solution moins cavalière... est ce que vous avez ça dans vos musettes ?

Détail qui peut avoir son importance, je suis sous postgresql 8.2 (oui je sais, ça date)

Merci

Hors ligne

#2 16/09/2016 10:29:39

Marc Cousin
Membre

Re : Problème fichier transaction pg_clog

Si ce fichier est corrompu, c'est très très mauvais. La clog, c'est ce qui permet à PostgreSQL de savoir comment se sont terminées chaque transaction, et donc de déterminer la visibilité de chaque enregistrement. La seule solution est effectivement de faire un dd, qui va créer un clog disant que toutes les transactions qu'il contient sont validées… ce qui va probablement entraîner de la corruption dans les données.


Marc.

Hors ligne

#3 16/09/2016 10:37:13

gleu
Administrateur

Re : Problème fichier transaction pg_clog

Ce n'est pas que la 8.2 date. C'est surtout qu'elle n'est plus maintenue, et que faire tourner un serveur ayant des données importantes pour vous avec une version 8.2, c'est juste irresponsable.

Concernant ce problème, un fichier a disparu alors qu'il n'aurait pas dû. Généralement, c'est un problème disque. Recréer manuellement le fichier va régler temporairement le problème d'une très mauvaise façon. Ce fichier contient l'état des transactions (validées/annulées en gros). Sans ce fichier là, PostgreSQL ne peut pas savoir si les lignes présentes dans les tables sont réellement visibles ou pas (uniquement pour les transactions dont le statut est indiqué dans ce fichier).

La meilleure solution est donc de restaurer la dernière sauvegarde disponible. De préférence sur un autre disque.

Si vous n'avez pas de sauvegarde et que les données sont quand même importantes, la solution de créer le fichier se tente mais ne vous étonnez pas si certaines données valides disparaissent ou si des données anciennement supprimées réapparaissent. Le mieux dans ce cas est de tout sauvegarder et de tout restaurer. Cela permet au moins de s'assurer d'avoir quelque chose de propre et que les contraintes (notamment clés étrangères) sont respectées.


Guillaume.

Hors ligne

#4 16/09/2016 11:14:50

pitpoule
Membre

Re : Problème fichier transaction pg_clog

Merci pour le retour... même si les nouvelles ne sont pas très bonnes...

Est ce que l'on a un moyen à partir de l'id d'une transaction de remonter aux données mise en jeu ?

Dernière modification par pitpoule (16/09/2016 11:15:02)

Hors ligne

#5 16/09/2016 16:41:30

gleu
Administrateur

Re : Problème fichier transaction pg_clog

Pas facilement, non. C'est complexe, et les erreurs/oublis sont faciles.


Guillaume.

Hors ligne

Pied de page des forums