Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Précédent | Arrière rapide | Avance rapide | Suivant |
pg_dumpall est un outil pour écrire (<< sauvegarder >>) toutes les bases de données PostgreSQL d'un groupe dans un fichier script. Celui-ci contient les commandes SQL pouvant être utilisées pour restaurer les bases de données avec psql. Il fait ceci en appelant pg_dump pour chaque base de données du groupe. pg_dumpall sauvegarde aussi les objets globaux, communs à toutes les bases de données. (pg_dump ne sauvegarde pas ces objets.) Cela inclut aussi les informations concernant les utilisateurs et groupes de la base de données ainsi que les droits d'accès s'appliquant aux bases de données.
Du coup, pg_dumpall est une solution intégrée pour sauvegarder vos bases de données. Mais, notez une limitation : il ne peut pas sauvegarder les << objets larges >>, car pg_dump ne peut pas sauvegarder de tels objets dans des fichiers texte. Si vous disposez de bases de données contenant des objets larges, elles devront être sauvegardées en utilisant un des modes de sorties non textuelles de pg_dump.
Comme pg_dumpall lit les tables à partir de toutes les bases de données, vous vous connecterez plutôt en tant que superutilisateur d'une base de données pour avoir une sauvegarde complète. De plus, vous aurez besoin des droits superutilisateur pour produire une sauvegarde complète. Enfin, vous aurez besoin des droits superutilisateurs pour ajouter utilisateurs et groupes et pour créer des bases de données.
Le script SQL écrira sur la sortie standard. Les opérateurs shell devront être utilisés pour la rediriger dans un fichier.
pg_dumpall a besoin de se connecter plusieurs fois au serveur PostgreSQL et pourrait avoir besoin de demander un mot de passe à chaque fois. Il est intéressant d'avoir un fichier $HOME/.pgpass dans de tels cas.
Les options suivantes en ligne de commande sont utilisées pour contrôler le contenu et le format de la sortie.
Sauvegarde seulement les données, pas le schéma (définition des données).
Inclut les commandes SQL pour nettoyer (supprimer) les bases de données avant de les recréer.
Sauvegarde les données en tant que commandes INSERT (plutôt que des COPY). Ceci ralentira la restauration mais rendra la sortie plus portable vers les autres systèmes de gestion de bases de données SQL.
Sauvegarde les données en tant que commandes INSERT avec les noms de colonnes explicites (INSERT INTO table (colonne, ...) VALUES ...). Ceci ralentira la restauration mais est nécessaire si vous souhaitez arranger l'ordre des colonnes.
Sauvegarde seulement les objets globaux (utilisateurs et groupes), pas les bases de données.
Ignore la différence de version entre pg_dumpall et le serveur de bases de données.
pg_dumpall peut gérer des bases de données à partir des versions précédentes de PostgreSQL, mais les très anciennes versions ne sont plus supportées (avant la 7.0). Utilisez cette option si vous avez besoin de surcharger la vérification de la version (et si pg_dumpall échoue, ne dites pas que vous n'avez pas été prévenu).
Sauvegarde les identifiants des objets (OID) pour chaque table. Utilisez cette option si votre application référence les colonnes d'une certaine façon (par exemple, dans une contrainte de clé étrangère). Sinon, cette option ne devrait pas être utilisée.
Sauvegarde seulement le schéma (définition des données), pas les données.
Spécifie le mode verbeux. Ceci fait que pg_dumpall affiche des messages de progression sur la sortie standard des erreurs.
Empêche la sauvegarde des droits d'accès (commandes grant/revoke).
Les options suivantes en ligne de commande contrôlent les paramètres de connexion à la base de données.
Spécifie le nom de l'hôte de la machine où le serveur de bases de données est en cours d'exécution. Si la valeur commence avec un slash, elle est utilisée comme répertoire du socket de domaine Unix. La valeur par défaut est prise à partir de la variable d'environnement PGHOST, si elle est initialisée, sinon une connexion socket de domaine Unix est tentée.
Spécifie le port TCP ou l'extension du fichier socket de domaine Unix local où le serveur est en écoute des connexions. La valeur par défaut est la variable d'environnement PGPORT, si elle est initialisée, ou la valeur compilée.
Se connecter en tant que cet utilisateur.
Force une demande de mot de passe. Ceci devrait arriver automatiquement si le serveur réclame une authentification par mot de passe.
Comme pg_dumpall appelle pg_dump en interne, certains messages de diagnostique se réfèrent en fait à pg_dump.
Une fois restauré, il est conseillé de lancer ANALYZE sur chaque base de données, de façon à ce que l'optimiseur dispose de statistiques utiles. Vous pouvez aussi lancer vacuumdb -a -z pour analyser toutes les bases de données.
Pour sauvegarder toutes les bases de données :
$ pg_dumpall > db.out
Pour recharger cette base de données, utilisez par exemple :
$ psql -f db.out template1
(La base de données à laquelle vous vous connectez n'a pas d'importance ici car le fichier de script créé par pg_dumpall contiendra les commandes appropriées pour se créer et se connecter aux bases de données sauvegardées.)
Précédent | Sommaire | Suivant |
pg_dump | Niveau supérieur | pg_restore |