Pg dump
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Commandes | pg_dump / pg_restore / createdb
|
| Type de sauvegarde | logique (export/réimport de données) |
| Format recommandé | -Fc (custom, compressé)
|
| Voir aussi | Psql · PostgreSQL install |
pg_dump et pg_restore sont les outils standard de PostgreSQL pour la sauvegarde et
la restauration logiques (export des données/structure sous forme de requêtes ou de
format binaire propriétaire, par opposition à une sauvegarde physique des fichiers de
PGDATA).
Sauvegarde
pg_dump -Fc db_name -f db_name.dump
Le format -Fc (custom) est compressé par défaut et permet une restauration
sélective (table par table) avec pg_restore — c'est le format à privilégier pour
une sauvegarde d'exploitation. Autres formats disponibles :
-Fp(plain) — script SQL texte brut, rejouable avecpsqldirectement ;
pratique pour inspecter le contenu ou le versionner, mais pas compressé ;
-Ft(tar) — archive tar, restaurable sélectivement comme-Fc;-Fd(directory) — un fichier par table dans un répertoire, seul format permettant
la parallélisation de la sauvegarde (-j N).
pg_dump ne sauvegarde qu'une seule base. Les objets globaux au cluster (rôles,
tablespaces) ne sont pas inclus — il faut les sauvegarder séparément :
pg_dumpall -g -f globals.sql
Restauration
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
-T template0— crée la base à partir du template minimaltemplate0
plutôt quetemplate1, pour éviter d'hériter d'objets ajoutés entretemps danstemplate1sur l'instance de destination ;
--role=owner2— rejoue la restauration en réattribuant la propriété des objets
au rôle indiqué (utile quand on restaure sur une instance où le propriétaire d'origine n'existe pas ou doit changer).
Bonnes pratiques
- automatiser la sauvegarde (cron/systemd timer) avec rotation des fichiers dans le temps ;
- tester régulièrement la restauration sur un environnement séparé — une sauvegarde
jamais restaurée n'est pas une sauvegarde fiable ;
- penser à
pg_dumpall -gen complément si les rôles/tablespaces doivent être
reconstitués sur une nouvelle instance ;
- pour de gros volumes, comparer
-Fdavec parallélisation (-j) au
format -Fc mono-thread.
Voir aussi
- Psql — client en ligne de commande
- PostgreSQL install — configuration de l'instance
- PostgreSQL debian — cas concret multi-instances