pg_dump est l'utilitaire qui permet de faire des backups d'une base de données PostgreSQL. Il permet de garantir l'intégrité des backups et de ne pas bloquer les utilisateurs (en lecture comme en écriture) lors du dump.
Il propose plusieurs formats :
Réaliser un backup au format custom
pg_dump --format=custom --file [mon_fichier.dump] [nom_de_la_base]
Réaliser un backup au format text avec les instructions de creation de la base
pg_dump --format=plain--file --create [mon_fichier.sql] [nom_de_la_base]
Les dumps réalisés avec le format texte sont de simples fichiers contenant une suite de commandes SQL. Ils sont donc directement utilisables avec la commande psql :
psql --file [mon_fichier.sql] [nom_de_la_base]
Pour restaurer un dump réaliser en mode tar ou custom on doit utiliser la commande pg_restore. Elle notamment de faire un DROP des objets existants avant de les réinsérer ou encore de choisir dans un dump global quelle base doit être restaurée.
Voir le contenu d'un dump (tables, index, contraintes) :
pg_restore --list [mon_fichier.dump]
Restaurer une base dumpée avec le format custom :
pg_restore --clean --dbname [nom_de_la_base_de_destination] [mon_fichier.dump]