pg_dump
¶
pg_dump
est l’outil standard de sauvegarde des bases de données PostgreSQL.
Note
Pour le serveur PostgreSQL, pg_dump
est un client comme les autres. Si vous avez activé les statistiques, les parcours séquentiels réalisés par pg_dump seront comptabilisés. Néanmoins, il vous est possible de supprimer ce comportement avec les options track_counts
(pour les versions 8.3 et ultérieures), et avec les options stats_block_level
et stats_row_level
(pour les versions antérieures à la 8.3).
Sauvegarde complète d’une instance¶
pg_dump
permet d’exporter une base de données à la fois, et il est conseillé d’utiliser le format custom ou directory pour faciliter les restaurations partielles :
pg_dump -U postgres -Fc -f fichier.dump la_base
pg_dump -U postgres -Fd -j5 -f repertoire_dump.d la_base
Pour sauvegarder les rôles et tablespaces globaux :
Pour restaurer partiellement les données, par exemple, uniquement la structure dans une base préalablement créée :
L’aide de pg_restore
(--help
) donne des options pour la restauration partielle. Utilisez -l
pour sauvegarder la table des matières du dump dans un fichier, puis éditez ce fichier pour sélectionner ce qui doit être restauré et utilisez -L
pour appliquer cette liste à pg_restore
.
Pour automatiser la sauvegarde de toutes les bases, vous pouvez utiliser un script, tel que :
Exemples¶
Déplacer une base de données¶
Assurez-vous que les utilisateurs existent sur le nouveau serveur, sauf si vous ne souhaitez pas conserver les droits sur les objets.
Configurer l’ancien serveur pour autoriser les connexions depuis le nouveau serveur pour l’utilisateur monuser
et la base mabase
.
Sur le nouveau serveur, exécutez :
Cela utilise les possibilités de connexion des commandes Unix entre elles pour transférer les données.