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).

#2 Re : Réplication » problème replication avec postgresql 8.3 » 08/03/2012 15:22:22

avec le 2>&1 positionné, j'ai le massage suivant dans le fichier /var/log/postgresql/RestaurationDebug.log:
cp: cannot stat `/var/lib/pgsql/xlog_maitre/00000001.history': No such file or directory
cp: cannot stat `/var/lib/pgsql/xlog_maitre/00000001.history': No such file or directory

ce fichier n'est pas contenu dans le pg_xlog du maitre
Pourquoi pg_standby cherche t il a acceder à ce fichier ?

Il semblerait cependant que malgré ce compte rendu negatif du retour de pg_standby,
les wal buffers soient bien copiés dans la database esclave, si j'arrête le processus de replication

#3 Réplication » problème replication avec postgresql 8.3 » 08/03/2012 11:59:26

mlecot
Réponses : 4

bonjour,
j'essaie de tester la replication avec la version 8.3 de postgresql.
pour ce faire j'ai un service "replication" sur la machine slave qui la lance.
ce service positionne sur le maitre l'archiving par une commande ssh :
archive_mode = on
                                # (change requires restart)
archive_command = '/usr/bin/archivage.sh %p %f'
puis relance le service.   

le script /usr/bin/archivage.sh  fait notamment:
scp $p ${SLAVE}:/var/lib/pgsql/xlog_maitre/$f et logge le resultat dans un fichier de log.

le service replication sur l'esclave lance un backup sur le maitre par un script qui execute les actions suivantes:
psql -c "SELECT pg_start_backup('label')" postgres
scp -r /var/lib/pgsql/data ${SLAVE}:/var/lib/pgsql &> $LOG
psql -c "SELECT pg_stop_backup()" postgres &> $LOG

puis copy le fichier recovery.conf sur le repertoire /var/lib/pgsql/data de l'esclave
(contenu du fichier :  )
restore_command = '/usr/bin/restauration.sh %f %p'

/usr/bin/restauration.sh:
#!/bin/sh
#


f=$1
p=$2

MASTER="arm-db"
SLAVE="arm-sp"
DATE=$(date +"%Y-%m-%d %H:%M:%S")
LOG=/var/log/postgresql/restauration.log
LOGDEBUG=/var/log/postgresql/restaurationDebug.log

pg_standby -k 100 -t /tmp/stopstandby /var/lib/pgsql/xlog_maitre $f $p >> $LOGDEBUG
RETVAL=$?

if $RETVAL -eq 0
then
  echo "$DATE LOG : journal $f restauration " >> $LOG
else
  echo "$DATE ERROR : journal $f restauration problem" >> $LOG
fi

le service de replication lance enfin le service postgres sur l'esclave.




Ce que je constate est:
les fichiers WAL sont bien envoyés sur l'esclave, mais ne sont pas correctement traités par celui ci
Dans mon fichier restauration.log , j'ai en effet :
2012-03-08 09:26:45 ERROR : journal 0000000100000000000000AF restauration problem
la commande pg_standby retourne une valeur différente de 0
Par contre, dans le fichier LOGDEBUG=/var/log/postgresql/restaurationDebug.log
je ne vois aucune ligne
Comment puis-je diagnostiquer pourquoi j'ai un problème de restauration ?

Merci de votre aide.

Pied de page des forums

Propulsé par FluxBB