Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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
Pas facilement, non. C'est complexe, et les erreurs/oublis sont faciles.
Guillaume.
Hors ligne
Pages : 1