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

#1 09/03/2009 11:33:18

pascal76
Membre

demarrage postgresql impossible suite test restore ?

Bonjour,


Après avoir activé les WAL, effectué une sauvegarde , supprimé le répertoire de la base postgres puis effectué la  restore de base. Cela a fonctionné sans probleme.
Mais après l'arret suivant , la base ne demarre plus. Lorsque j'essaye de démarrer avec pg_ctl voici les messages renvoyés:

Mar  9 10:26:54 akf-pg02 postgres[27547]: [1-1] user=,db= LOG:  database system was shut down at 2009-03-06 09:31:51 CET
Mar  9 10:26:54 akf-pg02 postgres[27547]: [2-1] user=,db= LOG:  unexpected timeline ID 1 in log file 3, segment 39, offset 0
Mar  9 10:26:54 akf-pg02 postgres[27547]: [3-1] user=,db= LOG:  invalid primary checkpoint record
Mar  9 10:26:54 akf-pg02 postgres[27547]: [4-1] user=,db= LOG:  unexpected timeline ID 1 in log file 3, segment 39, offset 0
Mar  9 10:26:54 akf-pg02 postgres[27547]: [5-1] user=,db= LOG:  invalid secondary checkpoint record
Mar  9 10:26:54 akf-pg02 postgres[27547]: [6-1] user=,db= PANIC:  could not locate a valid checkpoint record
Mar  9 10:26:54 akf-pg02 postgres[27546]: [1-1] user=,db= LOG:  startup process (PID 27547) was terminated by signal 6: Aborted
Mar  9 10:26:54 akf-pg02 postgres[27546]: [2-1] user=,db= LOG:  aborting startup due to startup process failure

postgresql 8.3  sous red hat

Merci pour votre aide.

Dernière modification par pascal76 (09/03/2009 11:51:20)

Hors ligne

#2 09/03/2009 15:13:18

gleu
Administrateur

Re : demarrage postgresql impossible suite test restore ?

Après avoir activé les WAL

Vous voulez dire l'archivage ? parce que les WAL sont toujours activés.

supprimé le répertoire de la base postgres

Rassurez-moi, vous n'avez pas supprimé réellement le répertoire correspondant à la base postgres ?

Votre message d'erreur indique un problème grave dans les journaux de transactions. Le genre de problème où on arrête le serveur, on fait un initdb et on restaure tout à partir des sauvegardes.


Guillaume.

Hors ligne

#3 10/03/2009 09:46:47

pascal76
Membre

Re : demarrage postgresql impossible suite test restore ?

oui c'est bien l'archivage des wal et si, j'ai bien supprimé le répertoire de la base.
dans une future étape nous restorerons sur un autre serveur et nous partirons également d'un répertoire de base vierge. en effet j'ai arrété le serveur, mis en place un recovery.conf et restoré. je n'ai pas fait d'initdb

Hors ligne

#4 10/03/2009 09:56:47

gleu
Administrateur

Re : demarrage postgresql impossible suite test restore ?

Il faudrait être plus précis dans votre description. Vous avez supprimé quoi ? tout pgdata (ie le cluster complet) ou seulement le répertoire correspondant à la seule base de données postgres (ie $PGDATA/base/11511) ? Vous avez sauvegardé quoi ? tout pgdata ou seulement la base de données postgres ? La restauration a été faite avant ou après l'arrêt du serveur ?

Il serait bien de décrire exactement les étapes que vous avez suivi, sinon il ne sera pas possible de vous dire ce qui n'a pas été.


Guillaume.

Hors ligne

#5 10/03/2009 11:25:34

pascal76
Membre

Re : demarrage postgresql impossible suite test restore ?

j'ai fait
   pg_start_backup , tar de tout le   répertoire /data/pgsql/cluster1, pg_stop_backup
   generation d'insert dans la base
   arret postgres
   mis de coté les log archivés
   suppression de tous les fichiers sous /data/pgsql/cluster1
   restore le tar de /data/pgsql/cluster1
   recopier les log archivés vers pg_xlog
   mis en place du recovery.conf avec target_time (mais il n'en a pas tenu compte il a tout restoré)
   relancé postgres
   cela fonctionnait pendant plusieurs jours sans souci
   nouvel arret de la base postgres
   elle n'a alors plus redemarré.

Hors ligne

#6 10/03/2009 11:36:03

gleu
Administrateur

Re : demarrage postgresql impossible suite test restore ?

Normalement, on ne recopie pas les logs archivés dans pg_xlog. On les laisse dans le répertoire d'archives et on configure restore_command pour qu'il aille chercher les journaux dans ce répertoire.


Guillaume.

Hors ligne

#7 10/03/2009 11:54:48

pascal76
Membre

Re : demarrage postgresql impossible suite test restore ?

ok, voyez vous une solution pour faire redémarrer ma base ?

Hors ligne

#8 10/03/2009 12:14:53

gleu
Administrateur

Re : demarrage postgresql impossible suite test restore ?

À priori, le message « timeline id 1 » semble indiquer qu'il a cherché à relire des journaux de transactions et qu'il en a trouvé d'anciens ne correspondant pas à sa timeline id (qui doit être deux, si vous n'avez fait qu'une restauration à partir des WAL). S'il cherche à relire ses journaux et qu'il ne trouve pas le dernier checkpoint, c'est que l'arrêt (le deuxième) a dû être fait de façon peu orthodoxe. Là, sans avoir plus d'infos, il me semble que le plus sage est de faire un initdb et de recharger votre dernière sauvegarde.

Si elle est vraiment trop ancienne, vous pouvez tenter d'utiliser pg_resetxlog, mais prenez le temps de bien lire la page man de cet outil avant de l'utiliser. (http://docs.postgresqlfr.org/8.3/app-pgresetxlog.html)


Guillaume.

Hors ligne

Pied de page des forums