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 21/09/2017 12:00:15

philwood
Membre

Problème de recovery en 9.6 pg_xlog/RECOVERYXLOG ?

Bonjour, je fais des tests de sauvegarde à chaud et restauration en 9.6 (je découvre cette version) et je rencontre un problème à la restauration.

J'ai restauré mes données data (PGDATA)

Je supprimer le contenu de pg_xlog :

ROOT@sv004285:/var/lib/pgsql/data/pg_xlog# ll
total 212996
-rw-------. 1 postgres postgres 16777216 Sep 21 10:14 00000001000000020000007D
-rw-------. 1 postgres postgres 16777216 Sep 21 10:14 00000001000000020000007E
-rw-------. 1 postgres postgres 16777216 Sep 21 10:14 00000001000000020000007F
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000080
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000081
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000082
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000083
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000084
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000085
-rw-------. 1 postgres postgres 16777216 Sep 21 10:15 000000010000000200000086
-rw-------. 1 postgres postgres 16777216 Sep 21 10:16 000000010000000200000087
-rw-------. 1 postgres postgres 16777216 Sep 21 10:16 000000010000000200000088
-rw-------. 1 postgres postgres 16777216 Sep 21 10:16 000000010000000200000089
drwx------. 2 postgres postgres     4096 Sep 21 10:16 archive_status
ROOT@sv004285:/var/lib/pgsql/data/pg_xlog# rm -Rf *
ROOT@sv004285:/var/lib/pgsql/data/pg_xlog# ll
total 0

J’ai restauré mes journaux :

ROOT@sv004285:/var/lib/pgsql/data/pg_xlog# ll ../../var/journaux/
total 87036
-rw-------. 1 postgres postgres  7810683 Sep 21 10:15 000000010000000200000081
-rw-------. 1 postgres postgres   290153 Sep 21 10:15 000000010000000200000082
-rw-------. 1 postgres postgres 10025179 Sep 21 10:15 000000010000000200000083
-rw-------. 1 postgres postgres      209 Sep 21 10:19 000000010000000200000083.0003E5A0.backup
-rw-------. 1 postgres postgres 10131125 Sep 21 10:15 000000010000000200000084
-rw-------. 1 postgres postgres  9780943 Sep 21 10:15 000000010000000200000085
-rw-------. 1 postgres postgres  9155957 Sep 21 10:15 000000010000000200000086
-rw-------. 1 postgres postgres  7750724 Sep 21 10:16 000000010000000200000087
-rw-------. 1 postgres postgres  6688723 Sep 21 10:16 000000010000000200000088
-rw-------. 1 postgres postgres  6216454 Sep 21 10:17 000000010000000200000089
-rw-------. 1 postgres postgres  5947763 Sep 21 10:18 00000001000000020000008A
-rw-------. 1 postgres postgres  4155467 Sep 21 10:18 00000001000000020000008B
-rw-------. 1 postgres postgres  5542338 Sep 21 10:18 00000001000000020000008C
-rw-------. 1 postgres postgres  5603097 Sep 21 10:19 00000001000000020000008D


La commande de restauration dans le recovery.conf :
restore_command = 'gunzip < /var/lib/pgsql/var/journaux/%f "%p"'

Je démarre l'instance :
systemctl start postgresql.service

et c'est le fail :

2017-09-21 11:51:07 CEST [26371]: [1-1] LOG:  00000: database system was interrupted; last known up at 2017-09-21 10:15:21 CEST
2017-09-21 11:51:07 CEST [26371]: [2-1] LOCATION:  StartupXLOG, xlog.c:6025
2017-09-21 11:51:07 CEST [26371]: [3-1] LOG:  00000: creating missing WAL directory "pg_xlog/archive_status"
2017-09-21 11:51:07 CEST [26371]: [4-1] LOCATION:  ValidateXLOGDirectoryStructure, xlog.c:3926
2017-09-21 11:51:07 CEST [26371]: [5-1] LOG:  00000: starting archive recovery
2017-09-21 11:51:07 CEST [26371]: [6-1] LOCATION:  StartupXLOG, xlog.c:6098
gzip: pg_xlog/RECOVERYXLOG.gz: No such file or directory
2017-09-21 11:51:07 CEST [26371]: [7-1] LOG:  00000: invalid checkpoint record
2017-09-21 11:51:07 CEST [26371]: [8-1] LOCATION:  ReadCheckpointRecord, xlog.c:7781
2017-09-21 11:51:07 CEST [26371]: [9-1] FATAL:  XX000: could not locate required checkpoint record
2017-09-21 11:51:07 CEST [26371]: [10-1] HINT:  If you are not restoring from a backup, try removing the file "/var/lib/pgsql/data/backup_label".
2017-09-21 11:51:07 CEST [26371]: [11-1] LOCATION:  StartupXLOG, xlog.c:6164
2017-09-21 11:51:07 CEST [26368]: [4-1] LOG:  00000: startup process (PID 26371) exited with exit code 1
2017-09-21 11:51:07 CEST [26368]: [5-1] LOCATION:  LogChildExit, postmaster.c:3495
2017-09-21 11:51:07 CEST [26368]: [6-1] LOG:  00000: aborting startup due to startup process failure
2017-09-21 11:51:07 CEST [26368]: [7-1] LOCATION:  reaper, postmaster.c:2769

C'est quoi ce fichier RECOVERYXLOG ?
Est ce que j'ai manqué qq chose ?

Merci pour votre aide !

Hors ligne

#2 21/09/2017 12:29:14

rjuju
Administrateur

Re : Problème de recovery en 9.6 pg_xlog/RECOVERYXLOG ?

Pouvez-vous détailler également les étapes de sauvegarde et restauration du pgdata ?

Hors ligne

#3 21/09/2017 14:05:12

philwood
Membre

Re : Problème de recovery en 9.6 pg_xlog/RECOVERYXLOG ?

Je fais un simple tar.gz de mes datas pour mes tests entre mon pg_start_backup et pg_stop_backup.
En suite, je fais un tar.gz de mes logs.
A noter que je fais ça quand mon instance est en charge histoire de générer des logs.

Pour la restauration, je supprime mon pgdata et mon répertoire de log et je restaure mes tar.gz.

Dernière modification par philwood (21/09/2017 14:10:27)

Hors ligne

#4 21/09/2017 14:24:35

gleu
Administrateur

Re : Problème de recovery en 9.6 pg_xlog/RECOVERYXLOG ?

Votre restore_command est mauvaise. Un test en ligne de commande le démontre sans problème. Il vous faut trouver la bonne syntaxe pour gunzip.


Guillaume.

Hors ligne

#5 21/09/2017 14:58:35

philwood
Membre

Re : Problème de recovery en 9.6 pg_xlog/RECOVERYXLOG ?

Bonjour Gleu, effectivement, il y avait une erreur dans la commande gunzip.
La bonne commande est : restore_command = 'gunzip < /mnt/server/archivedir/%f > %p'

Un grand merci !

Hors ligne

Pied de page des forums