pg_dump

Nom

pg_dump — Extrait une base Postgres vers un fichier script
pg_dump [ dbname ]
pg_dump [ -h host ] [ -p port ]
    [ -t table ] [ -f outputfile ]
    [ -a ] [ -c ] [ -d ] [ -D ] [ -n ] [ -N ]
    [ -o ] [ -s ] [ -u ] [ -v ] [ -x ]
    [ dbname ]
  

Entrées

pg_dump accepte les arguments en ligne de commande suivants :

dbname

Spécifie le nom de la base a extraire dbname a par défaut la valeur de la variable d'environnement USER.

-a

extrait seulement les données, pas le schéma (définitions).

-c

Clean(drop) schema prior to create.

-d

Dump data as proper insert strings.

-D

Dump data as inserts with attribute names

-f filename

Spécifie le fichier de sortie. Par défaut vers stdout.

-n

Supprime les doubles guillemets entourant les identifiants unless absolutely necessary. Ceci peut causer des problèmes à l'extraction des données, s'il y a des mots réservés utilisés par les identifiants. C'était le comportement par défaut dans la version pre-v6.4 de pg_dump.

-N

Inclut des doubles guillemets autour des identifiants. Mode par défaut.

-o

Extrait des identifiants objet (OIDs) pour chaque table.

-s

Extrait seulement le schema (definitions), pas les données.

-t table

Extrait les données pour la table seulement.

-u

Utilise l'authentification par mot de passe. Demande le nom utilisateur et le mot de passe au prompt.

-v

Spécifie le mode verbeux.

-x

Prevent dumping of ACLs (grant/revoke commands) and table ownership information.

pg_dump accepte aussi les arguments en ligne de commande suivants pour les paramètres de connection.

-h host

Spécifie le nom d'hôte de la machine sur laquelle le postmaster tourne. Defaults to using a local Unix domain socket rather than an IP connection..

-p port

Spécifie le port TCP/IP Internett ou local Unix domain socket file extension sur lequel le postmaster est en attente de connections. Le numéro de port par défaut est 5432, ou la valeur de la variable d'environnement PGPORT si elle est placée.

-u

Utilise l'authentification par mot de passe. Prompts pour username et password.

Sorties

pg_dump créera un fichier ou écrira dans stdout.

Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'?

pg_dump ne peut pas se lier au processus postmaster sur le port et l'hôte spécifié. Si vous voyez ce message assurez vous que le postmaster tourne sur l'hôte approprié et que vous avez spécifié le bon port. Si votre site utilise un système d'authentification, assurez vous que vous avez les paramètres nécessaires pour vous identifer.

Connection to database 'dbname' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow'

vous ne devez pas avoir une entrée valide dans la relation pg_shadow et n'êtes pas autorisé a accéder à Postgres. Contactez votre administrateur Postgres.

dumpSequence(table): SELECT failed

Vous n'avez pas les permissions de lecture de la base. Contactez l'administrateur du site Postgres.

Note

pg_dump exécute en interne SELECT. Si vous avez des problèmes au lancement de pg_dump, assurez vous que vous pouvez sélectionner l'information des informations d'une base en utiliant, par exemple, psql.

Description

pg_dump est un utilitaire pour extraire une base Postgres vers un fichier script contenant des commandes de requêtes. Les fichiers script sont en format texte et peuvent être utilisés pour reconstruire la base même sur d'autres machines et d'autres architectures. pg_dump produira les requêtes nécessaires pour régénérer tous les types utilisateurs, fonctions, tables, index, agrégats, et opérateurs. De plus, toutes les données sont copiées en format texte et ainsi facilement copiables à nouveau, aussi bien qu'importables dans des éditeurs.

pg_dump est pratique pour transférer les contenus d'une base à déplacer depuis une installation Postgres vers une autre. Après avoir lancé pg_dump, one should examine the output script file for any warnings, spécialement en fonction des limitations ci-dessous.

Notes

pg_dump a quelques limitations. Ces limitations proviennent principalement de la difficulté d'extraction de certaines meta-informations des catalogues système.

Utilisation

Pour extraire une base de même nom qu'un utiliateur :
% pg_dump > db.out
   

Pour recharger cette base :
% psql -e database < db.out