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 01/07/2015 07:47:00

Stebli
Membre

Postgres recover d'un plantage

Bonjour,

J'ai un problème pour remettre une base d'aplomb après un arrêt forcé.

Une base a été stoppée en mode immediate et je soupçonne qu'il y avait encore des transactions en cours dessus. Au redémarrage la base est en "Fatal : database system is starting up", la base est en recovering sur le dernier xlog mais rien ne semble se passer, c'est comme si c'était bloqué (rien ne se passe au niveau file system ou strace).

Du coup j'ai effectué un pg_resetxlog et j'ai pu redémarrer la base. Cependant lorsque j'essaye de m'y connecter j'ai une erreur de type "cache lookup failed for relation XXXX", par conséquent je ne peux pas dumper les données.

Si je me connecte en mode single user mode et que je lance un REINDEX SYSTEM ma_base_cassée, je peux bien m'y connecter par la suite mais je vois qu'il me manque des tables et j'ai des erreurs comme quoi postgres n'arrive pas à locker ces tables manquantes quand j'essaye de faire un dump. Même résultat avec le paramètre ignore_system_indexes=on

Je suis en postgres 9.1.2 sur redhat 6.1

Je suis dans l'impasse la plus totale.

Hors ligne

#2 01/07/2015 08:55:27

gleu
Administrateur

Re : Postgres recover d'un plantage

Ne jamais utiliser pg_resetxlog. Jamais. Jamais. Jamais. Vous venez de corrompre votre système. Avez-vous une sauvegarde ? parce qu'il ne vous reste plus que ça à faire.


Guillaume.

Hors ligne

#3 01/07/2015 08:57:33

Stebli
Membre

Re : Postgres recover d'un plantage

J'ai effectivement une sauvegarde de PGDATA mais si je restaure et que je relance j'ai toujours le crash recovery qui bloque sur le dernier fichier wal.

Dernière modification par Stebli (01/07/2015 08:57:58)

Hors ligne

#4 01/07/2015 16:13:39

gleu
Administrateur

Re : Postgres recover d'un plantage

C'est une sauvegarde qui date d'avant le pg_restore ? et quel est le message d'erreur ?


Guillaume.

Hors ligne

#5 01/07/2015 16:19:12

Stebli
Membre

Re : Postgres recover d'un plantage

Au redémarrage la base est en "Fatal : database system is starting up", la base est en recovering sur le dernier xlog mais rien ne semble se passer, c'est comme si c'était bloqué (rien ne se passe au niveau file system ou strace).

Hors ligne

#6 01/07/2015 16:27:59

gleu
Administrateur

Re : Postgres recover d'un plantage

Quel est le log complet depuis le redémarrage ?


Guillaume.

Hors ligne

#7 02/07/2015 07:59:36

Stebli
Membre

Re : Postgres recover d'un plantage

LOG:  database system was interrupted; last known up at 2015-06-29 00:14:07 CEST
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  consistent recovery state reached at A9/D6D01F98
LOG:  redo starts at A9/D6D01F98
LOG:  record with zero length at A9/D6D29160
LOG:  redo done at A9/D6D29120
LOG:  last completed transaction was at log time 2015-06-29 00:44:42.586+02

Et là ça reste bloqué.
J'ai ce processus :
postgres: startup process   recovering 00000001000000A9000000D6
mais rien ne se passe.

Hors ligne

#8 02/07/2015 08:45:04

gleu
Administrateur

Re : Postgres recover d'un plantage

Apparemment, il a fini le rejeu des journaux suite au crash. Quels sont les autres processus en cours d'exécution au niveau de postgres ?


Guillaume.

Hors ligne

#9 02/07/2015 09:24:46

Stebli
Membre

Re : Postgres recover d'un plantage

Il y a le processus père postgres et postgres: logger process

en plus du postgres: startup process   recovering 00000001000000A9000000D6

Hors ligne

#10 02/07/2015 16:53:58

gleu
Administrateur

Re : Postgres recover d'un plantage

On pourrait avoir la sortie de la commande "ps -ef | grep postgres" ?


Guillaume.

Hors ligne

#11 03/07/2015 10:23:56

Stebli
Membre

Re : Postgres recover d'un plantage

On a résolu le problème en restaurant une sauvegarde antérieure. Merci

Hors ligne

Pied de page des forums