Bonjour,
Je suis sur Ubuntu 10.04 (virtualisé sous VM) et ai été confronté à un crash de Postgres 8.4, avec le message d'erreur suivant:
précédé par les warnings:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CEST Fatal: The database system is in recovery mode
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part postgres terminating connection because crash of another process
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory
Après avoir tué et redémarré tous les processus liés à PostgreSQL, j'ai récupéré la base, apparemment intacte.
D'après ce que j'ai lu, le crash pourrait être liée à un problème sous Linux: quand une requête amène Postgres à empiéter sur un bloc de RAM préalloué pour un autre service (par exemple java), l'OS peut purement et simplement décider de "killer" PostgreSQL.
Ca contredit un peu le troisième message d'erreur fourni par PostgreSQL, qui indique qu'un autre service se serait crashé avant postgres (apparemment pas Tomcat, qui tournait toujours)
Seulement voilà, j'aimerais bien identifier la requête et/ou le service qui a provoqué l'interruption pour être certain de la cause de l'erreur et de la manière de la prévenir. Les logs ne me renseignent que sur l'heure. Est-ce que c'est possible?
Partager