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 09/09/2024 14:46:14

laurar
Membre

[Linux Pratique] Sauvegarder une instance PostgreSQL

Depuis juin et avec l'autorisation des Éditions Diamond, Guillaume Lelarge reprend sa série d'articles destinée aux DBA débutant avec PostgreSQL, initialement publiée dans Linux Pratique.


Voici le 3e article : Linux Pratique - Sauvegardes d’une instance PostgreSQL .

Hors ligne

#2 16/09/2024 22:31:22

pifor
Membre

Re : [Linux Pratique] Sauvegarder une instance PostgreSQL

Dommage que cet article ne mentionne pas que le fait d'utiliser un outil comme pgbackrest ne sait restaurer que toutes les bases de l'instance.


Dans l'exemple mentionné pgbackrest va restaurer les 3 bases applicatives b1, b2 et b3 ainsi que les bases "système" postgresql, template0 et template1 alors qu'idéalement on ne voudrait que restaurer la base b2.


Ceci n'est ni  une limitation de pgbackrest (ni de barman d'ailleurs - même s'il n'est pas ici utilisé -) mais une limitation de PostgreSQL qui ne prend ni en compte la sauvegarde physique d'une base individuelle ni la restauration physique d'une base individuelle.


Cet article pourrait être complété en montrant :
- comment restaurer l'instance source dans une instance temporaire avec pgbackrest
- et ensuite comment utiliser pg_dump/pg_restore pour uniquement restaurer la base b2 de l'instance temporaire vers l'instance source.

Dernière modification par pifor (16/09/2024 22:32:43)


Pierre

Hors ligne

#3 17/09/2024 09:17:38

laurar
Membre

Re : [Linux Pratique] Sauvegarder une instance PostgreSQL

Bonjour Pierre,
Votre commentaire est transmis à l'auteur de l'article, merci pour votre intérêt.
Bonne journée,
Laura

Hors ligne

#4 17/09/2024 10:01:49

ruizsebastien
Membre

Re : [Linux Pratique] Sauvegarder une instance PostgreSQL

Bonjour Pifor,

détrompez-vous, pgbackrest est en capacité de ne restaurer que certaines bases d'une instance :

Exclude Database Option (--db-exclude)
Restore excluding the specified databases.
Databases excluded will be restored as sparse, zeroed files to save space but still allow PostgreSQL to perform recovery. After recovery, those databases will not be accessible but can be removed with the drop database command. The --db-exclude option can be passed multiple times to specify more than one database to exclude.


https://pgbackrest.org/configuration.ht … db-exclude


bonne journée à vous


Cordialement,

Sébastien.

Hors ligne

#5 17/09/2024 11:26:38

pifor
Membre

Re : [Linux Pratique] Sauvegarder une instance PostgreSQL

Bonjour Sébastien,

En effet pgbackrest ne peut restaurer qu'une seule base mais en écrasant les autres bases qui sont de fait inutilisables.


Cela ne permet donc pas de restaurer une seule base sans impact sur les autres bases. Est-ce qu'il y a un logiciel qui sait faire ça ?

Dernière modification par pifor (17/09/2024 12:00:29)


Pierre

Hors ligne

#6 17/09/2024 11:56:38

yohmartin
Membre

Re : [Linux Pratique] Sauvegarder une instance PostgreSQL

Bonjour pifor,
a ma connaissance, il n'existe pas d'outil qui permette de restaurer une seule base "in place" dans une instance donnée.
l'unité de restauration est l'instance par défaut.
Pour moi, la seule solution est pg_dump/pg_restore qui permet de restaurer logiquement une base.
Si vous voulez faire une restauration PITR d'une seule base parmi plusieurs, il faut restaurer la base (vi --db-exclude) ou l'instance a un autre endroit et faire pg_dump/pg_restore ensuite.

Hors ligne

#7 17/09/2024 17:41:37

gleu
Administrateur

Re : [Linux Pratique] Sauvegarder une instance PostgreSQL

Si l'article ne mentionne pas le fait que pgbackrest sauvegarde l'instance complète, c'est que c'est justement une limitation de PostgreSQL et pas une limitation de pgbackrest. Même si pgbackrest sait restaurer une seule base, cette "fonctionnalité" est pour moi un contournement pas très propre.


Guillaume.

Hors ligne

Pied de page des forums