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 23/11/2020 17:20:15

ruizsebastien
Membre

pg_create_restore_point

bonjour,

après avoir créer plusieurs points de restauration avec select pg_create_restore_point('xxx');
comment avoir la liste de tous les restore points créés ?
(PostgreSQL v11)

Dernière modification par ruizsebastien (23/11/2020 17:20:41)


Cordialement,

Sébastien.

Hors ligne

#2 24/11/2020 11:44:52

gleu
Administrateur

Re : pg_create_restore_point

Aucun outil n'existe réellement pour ça (à ma connaissance en tout cas). Il faut utiliser pg_waldump pour retrouver la liste des enregistrements XLOG d'un journal de transaction. J'avais écrit ce script pour ça :

pg_waldump -r XLOG $@ 2>&1                \
  | grep "RESTORE_POINT"                  \
  | sed -e 's/.*RESTORE_POINT \(.*\)/\1/'

$@ étant remplacé en bash par la liste des arguments fournis. En enregistrant ce script dans un fichier ~/bin/pg_list_restore_points.sh, ça me permet de faire :

$ ~/bin/pg_list_restore_points.sh 000000010000000400000005 
toto
ttiti

Et d'avoir ainsi la liste des restore points du journal 000000010000000400000005.


Guillaume.

Hors ligne

#3 24/11/2020 11:59:42

ruizsebastien
Membre

Re : pg_create_restore_point

Bonjour,

Merci Guillaume pour cette info.
C'est bien ce que je craignais.
Quel dommage qu'il n'y ai pas de vue dans le catalogue pour recenser les restore points.
C'est même étonnant que personne n'ai jamais penser à l'implémenter, ce serait pourtant simple par rapport à tout le développement complexe déjà en œuvre.


Cordialement,

Sébastien.

Hors ligne

#4 24/11/2020 12:17:56

gleu
Administrateur

Re : pg_create_restore_point

Pas si simple. Un restore point n'a d'intérêt qu'à partir du moment où on a conservé ce WAL. Tant qu'ils restent dans pg_wal, ça va. Mais en fait, ils en dégagent vite pour être archivés. Et là, PostgreSQL n'a plus aucun moyen de savoir quel WAL est conservé et quel WAL est supprimé. Du coup, comment faire de purge sur une table système qui conserverait cette information ? De ce fait, ça me paraît très difficile. Sans compter que je ne suis pas sûr que les restore points soient très utilisés. Je ne connais pas un seul client à Dalibo qui les utilise réellement.


Guillaume.

Hors ligne

#5 24/11/2020 12:32:21

ruizsebastien
Membre

Re : pg_create_restore_point

ah tiens je ne savais pas qu'on ne pouvait pas utiliser un restore point si celui ci est dans un WAL archivé... ça change tout effectivement.
En fait dans mon entreprise on est très friand des restore points "fonctionnels" à la sauce Oracle. Perso je préfère la technique PITR avec une date et une heure précise. Mais bon. il faut que je creuse ce point. ce n'est pas anodin.
Merci en tout cas c'est toujours intéressant d'avoir des avis éclairés.


Cordialement,

Sébastien.

Hors ligne

#6 24/11/2020 15:09:42

gleu
Administrateur

Re : pg_create_restore_point

Les WAL archivés sont le principal (seul ?) intérêt des restore points. Je ne vois pas quel autre cas t'intéresserait ?

Par contre, je préfère les restore point à une date/heure. Je peux placer le restore point quand je veux et donc être bien plus précis qu'une date/heure.


Guillaume.

Hors ligne

#7 24/11/2020 15:32:17

ruizsebastien
Membre

Re : pg_create_restore_point

gleu a écrit :

Les WAL archivés sont le principal (seul ?) intérêt des restore points. Je ne vois pas quel autre cas t'intéresserait ?

Par contre, je préfère les restore point à une date/heure. Je peux placer le restore point quand je veux et donc être bien plus précis qu'une date/heure.

bon là j'avoue que, comme je suis un peu fatigué, tu m'as perdu au passage ;-)
Pour nous l'intérêt des restore point et de bien identifier fonctionnellement une étape dans la vie de la base de données.
Par exemple "avant batch x" ou "avant traitement y".
C'est plus facile que de devoir chercher précisément une date et une heure de restauration (et moins hasardeux).
Mais si comme tu disais plus haut, que postgresql ne peut plus retrouver un restore point s'il est dans un wal archivé et plus dans le répertoire wal, alors je suis marron.
Et dans ce cas là je ne peux plus restaurer mon instance via un restore point de 24 ou 26 heures par exemple.
Ou alors je n'ai rien compris à ce que tu disais précédemment.


Cordialement,

Sébastien.

Hors ligne

#8 24/11/2020 15:32:32

rjuju
Administrateur

Re : pg_create_restore_point

Petite précision : vous pouvez utiliser un restore point qui se trouve dans un WAL archivé, ce n'est pas un problème (à partir du moment où celui-ci peut être restauré bien entendu).

Hors ligne

#9 24/11/2020 15:44:26

ruizsebastien
Membre

Re : pg_create_restore_point

et du coup avec pgbackrest, qui sait à tout moment tout ce qu'il a dans son repository, pas de problème.
Il faut que fasse des tests.


Cordialement,

Sébastien.

Hors ligne

#10 24/11/2020 16:46:31

gleu
Administrateur

Re : pg_create_restore_point

Au sujet de pgbackrest, ça pourrait être une fonctionnalité de ce dernier. Il indique bien ce qui est possible de restaurer, il pourrait aussi préciser les restore points des WAL archivés.


Guillaume.

Hors ligne

#11 25/11/2020 10:42:17

ruizsebastien
Membre

Re : pg_create_restore_point

gleu a écrit :

Au sujet de pgbackrest, ça pourrait être une fonctionnalité de ce dernier. Il indique bien ce qui est possible de restaurer, il pourrait aussi préciser les restore points des WAL archivés.

excellente idée ! y a t'il un endroit où on peut faire cette demande d'ajout de cette fonctionnalité dans une prochaine version de pgbackrest ?


Cordialement,

Sébastien.

Hors ligne

#12 25/11/2020 11:59:57

gleu
Administrateur

Re : pg_create_restore_point


Guillaume.

Hors ligne

Pied de page des forums