Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
pg_dump est un utilitaire pour sauvegarder une base de donn�es PostgreSQL. Il r�alise des sauvegardes consistantes m�me si la base de donn�es est en cours d'utilisation concurrente. pg_dump ne bloque pas l'acc�s des autres utilisateurs (ni en lecture ni en �criture).
Les sauvegardes peuvent �tre sous forme de script ou de fichier d'archive. Les sauvegardes script sont au format texte et contiennent les commandes SQL requises pour reconstruire la base de donn�es dans l'�tat o� elle �tait au moment de la sauvegarde. Pour restaurer � partir de ces scripts, utilisez psql. Ils peuvent �tre utilis�s pour reconstruire la base de donn�es y compris sur d'autres machines et d'autres architectures, et m�me avec quelques modifications, sur d'autres produits de bases de donn�es SQL.
Les autres formats de fichiers d'archive doivent �tre utilis�s avec pg_restore pour reconstruire la base de donn�es. Ils permettent aussi � pg_restore de s�lectionner ce qui doit �tre restaur� ou m�me de r�ordonner les �l�ments avant qu'ils ne soient restaur�s. Les formats d'archive permettent aussi de sauvegarder et restaurer les <<�objets larges�>>, ce qui n'est pas possible dans une sauvegarde script�e. Les fichiers d'archive sont aussi con�us pour �tre portable suivant les architectures.
Lorsqu'il est utilis� avec un des formats de fichier d'archive et combin� avec pg_restore, pg_dump fournit un m�canisme flexible d'archivage et de transfert. pg_dump peut �tre utilis� pour sauvegarder une base de donn�es enti�re, puis pg_restore peut �tre utilis� pour examiner l'archive et/ou s�lectionner quelles parties de la base de donn�es seront restaur�es. Le format de fichier en sortie le plus flexible est le format <<�personnalis�>> (-Fc). Il permet la s�lection et le r�ordonnancement de tous les �l�ments archiv�s et est compress� par d�faut. Le format tar (-Ft) n'est pas compress� et il n'est pas possible de r�ordonner les donn�es au chargement mais est assez flexible ; de plus, il est manipulable avec d'autres outils Unix standard comme tar.
Lorsque pg_dump est en cours d'ex�cution, il il faudrait examiner la sortie � la recherche de tout message d'avertissement (affich� sur la sortie standard des erreurs), sp�cialement � la lumi�re des limitations indiqu�es ci-dessous.
Les options suivantes en ligne de commande contr�lent le contenu et le format de sortie.
Sp�cifie le nom de la base de donn�es � sauvegarder. Si elle n'est pas sp�cifi�e, la variable d'environnement PGDATABASE est utilis�e. Dans le cas contraire, le nom de l'utilisateur sp�cifi� pour la connexion est utilis�.
Sauvegarde seulement les donn�es, pas le sch�ma (d�finition des donn�es).
Cette option est seulement int�ressante pour le format texte. Pour les formats d'archive, vous devez sp�cifier l'option a l'appel de pg_restore.
Inclut les objets larges dans la sauvegarde. Un format non textuel doit �tre choisi.
Ajoute les commandes pour nettoyer (supprimer) les objets de la base avant (les commandes pour) les cr�er.
Cette option est seulement int�ressante pour le format texte. Pour les formats d'archive, vous devez sp�cifier l'option � l'appel de pg_restore.
Commence la sortie avec une commande de cr�ation de la base de donn�es elle-m�me et de reconnexion � la nouvelle base de donn�es. (Avec un script de cette forme, peu importe la base de donn�es � laquelle vous vous connectez avant de lancer le script.)
Cette option est seulement int�ressante pour le format texte. Pour les formats d'archive, vous devez sp�cifier l'option � l'appel de pg_restore.
Sauvegarde les donn�es avec des commandes INSERT (plut�t qu'une commande COPY). Ceci ralentit la restauration ; c'est principalement utile pour cr�er des sauvegardes qui seront charg�es dans des bases de donn�es autres que PostgreSQL. Notez que la restauration pourrait �chouer si vous avez r�ordonn� l'ordre des colonnes. L'option -D est plus s�re, bien qu'encore plus lente.
Sauvegarde les donn�es avec des commandes INSERT et des noms de colonnes explicites (INSERT INTO table (colonne, ...) VALUES ...). Ceci ralentit de beaucoup la restauration ; c'est principalement utile pour cr�er des sauvegardes qui seront charg�es dans des bases de donn�es autres que PostgreSQL..
Envoie la sortie dans le fichier sp�cifi�. Si ceci est omis, la sortie standard est utilis�e.
S�lectionne le format de la sortie. format correspond � un des �l�ments suivants :
Cr�e un fichier de scripts SQL en texte simple (par d�faut).
Cr�e une archive tar utilisable par pg_restore. Utiliser ce format d'archives permet le r�ordonnancement et/ou l'exclusion d'objets de la base lors de la restauration de la base de donn�es. Il est aussi possible de s�lectionner les donn�es recharg�es au moment de la restauration.
Cr�e une archive personnalis�e convenable pour pg_restore. C'est le format le plus flexible dans le fait qu'il permet le r�ordonnancement du chargement des donn�es ainsi que la d�finition des objets. Ce format est aussi compress� par d�faut.
Ignore les diff�rences de version entre pg_dump et le serveur de bases de donn�es.
pg_dump 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 (actuellement celles pr�c�dant la 7.0). Utilisez cette option si vous avez besoin de ne pas v�rifier la version (et si pg_dump �choue � ce moment, ne pr�tendez pas que vous n'avez pas �t� pr�venu).
Sauvegarde seulement le contenu de schema. Si cette option n'est pas sp�cifi�e, tous les sch�mas non syst�me de la base de donn�es cible sont sauvegard�s.
Note�: Dans ce mode, pg_dump ne tente pas de sauvegarder tous les objets de la base de donn�es qui ne font pas partie du sch�ma s�lectionn�. Du coup, il n'y a pas de garantie que la sauvegarde d'un seul sch�ma puisse �tre restaur�e avec succ�s dans une base de donn�es propre.
Sauvegarde les identifiants d'objets (OID) comme faisant parti des donn�es de chaque table. Utilisez cette option si votre application r�f�rence les colonnes OID (par exemple dans une contrainte de cl� �trang�re). Sinon, cette option ne devrait pas �tre utilis�e.
N'affiche pas les commandes d'initialisation du propri�taire des objets pour correspondre � la base de donn�es originale. Par d�faut, pg_dump lance des instructions ALTER OWNER ou SET SESSION AUTHORIZATION pour initialiser le propri�taire des objets de la base de donn�es. Ces instructions �chouent lorsque le script n'est pas lanc� par un superutilisateur (ou par l'utilisateur qui poss�de tous les objets de ce script). Pour cr�er un script qui peut restaurer tous les utilisateurs et remplace le propri�taire de tous les objets, sp�cifiez -O.
Cette option est seulement utile pour le format texte. Pour les formats d'archive, vous devez sp�cifier l'option � l'appel de pg_restore.
Cette option est obsol�te mais est toujours accept�e pour des raisons de compatibilit� ascendante.
Sauvegarde uniquement la d�finition des objets (le sch�ma), pas les donn�es.
Sp�cifie le nom du superutilisateur � utiliser lors de la d�sactivation des d�clencheurs. Ceci est seulement utile si --disable-triggers est utilis�. (Habituellement, il est mieux ne pas utiliser ceci et de lancer le script en tant que ce superutilisateur.)
Sauvegarde uniquement les donn�es de table. Il est possible d'avoir plusieurs tables avec le m�me nom dans diff�rents sch�mas ; si c'est le cas, toutes les tables correspondantes sont sauvegard�es. Sp�cifiez � la fois --schema et --table pour s�lectionner seulement une table.
Note�: Dans ce mode, pg_dump ne fait aucune tentative de sauvegarde des autres objets de la base de donn�es dont la table s�lectionn�e pourrait d�pendre. Du coup, il n'existe aucune garantie que cette sauvegarde d'une seule table pourra �tre restaur�e toute seule dans une base de donn�es propre.
Sp�cifie le mode verbeux. Ceci fait que pg_dump affiche des commentaires d�taill�s sur les objets et les heures de d�but et de fin pour le fichier de sauvegarde, ainsi que des messages de progression sur la sortie standard des erreurs.
Emp�che la sauvegarde des droits d'acc�s (commandes grant/revoke).
Cette option d�sactive l'utilisation des guillemets dollar pour les corps des fonctions et les force � �tre entre guillemets en utilisant la syntaxe standard des cha�nes dans SQL.
Cette option est seulement utile pour cr�er une sauvegarde des donn�es seules. Elle demande � pg_dump d'inclure des commandes pour d�sactiver temporairement les d�clencheurs sur les tables cibles pendant que les donn�es sont en cours de chargement. Utilisez ceci si vous avez des v�rifications d'int�grit� ou d'autres d�clencheurs sur les tables, d�clencheurs que vous ne souhaitez pas ex�cuter pendant le chargement des donn�es.
Actuellement, les commandes �mises pour --disable-triggers doivent �tre lanc�es par le superutilisateur. Donc, vous devez aussi sp�cifier le nom du superutilisateur avec -S ou, de pr�f�rence, faire attention � lancer le script r�sultant en tant que superutilisateur.
Cette option est seulement utile pour le format texte. Pour les formats d'archive, vous devez sp�cifier l'option � l'appel de pg_restore.
Affiche les commandes SET SESSION AUTHORIZATION du standard SQL au lieu des commandes OWNER TO. Ceci rend la sauvegarde plus compatible avec le standard mais, suivant l'historique des objets dans la sauvegarde, pourrait ne pas restaurer correctement.
Sp�cifie le niveau de compression � utiliser. Z�ro signifie sans compression. Pour le format d'archive personnalis�, cela signifie la compression des segments individuels des donn�es des tables. La valeur par d�faut est de compresser � un niveau mod�r�. Pour le format texte, indiquer une valeur diff�rente de z�ro fait que le fichier entier est compress�, bien qu'il a �t� envoy� � gzip ; mais par d�faut, la sortie n'est pas compress�e. Le format d'archive tar ne supporte pas du tout la compression.
pg_dump accepte aussi les arguments suivants comme param�tres de connexion :
Indique le nom d'h�te de la machine sur laquelle le serveur de bases de donn�es est ex�cut�. Si la valeur commence par une barre oblique (/), elle est utilis�e comme r�pertoire pour le socket de domaine Unix.
Indique le port TCP ou le fichier local de socket de domaine Unix sur lequel le serveur �coute pour la connexion.
Nom d'utilisateur � utiliser pour se connecter.
Force la demande d'un mot de passe.
pg_dump ex�cute en interne des instructions SELECT. Si vous avez des probl�mes en lan�ant pg_dump, assurez-vous d'�tre capable de s�lectionner des informations de la base de donn�es en utilisant, par exemple, psql.
Si votre groupe de bases de donn�es a des ajouts suppl�mentaires dans la base de donn�es template1, faites attention � restaurer la sortie de pg_dump dans une base de donn�es r�ellement vide ; sinon vous obtiendrez certainement des erreurs d�es � la d�finition dupliqu�e des objets ajout�s. Pour faire qu'une base de donn�es soit vide et sans ajout local, copiez � partir de template0, et non pas � partir de template1, par exemple :
CREATE DATABASE foo WITH TEMPLATE template0;
pg_dump a quelques limitations :
Lors de la sauvegarde d'une table seule ou en texte standard, pg_dump ne g�re pas les objets larges. Ceux-ci doivent �tre sauvegard�s avec la base de donn�es compl�te en utilisant un des autres formats d'archive.
Lorsqu'une sauvegarde des donn�es seules est choisie et que l'option --disable-triggers est utilis�e, pg_dump �met des commandes pour d�sactiver les d�clencheurs sur les tables utilisateur avant d'ins�rer les donn�es et des commandes pour les r�activer apr�s que les donn�es sont ins�r�es. Si la restauration est stopp�e en plein milieu, les catalogues syst�me pourraient �tre laiss�s dans le mauvais �tat.
Les membres des archives tar sont limit�s � une taille inf�rieure � 8 Go. (Ceci est une limitation inh�rente au format des fichiers tar.) Du coup, ce format ne peut pas �tre utilis� si la repr�sentation textuelle d'une table d�passe cette taille. La taille totale d'une archive tar et de tout autre format de sortie n'est pas limit�e, sauf peut-�tre par le syst�me d'exploitation.
Le fichier de sauvegarde produit par pg_dump ne contient pas les statistiques utilis�es par l'optimiseur pour prendre les d�cisions de planification des requ�tes. Du coup, il est conseill� de lancer ANALYZE apr�s avoir restaur� une sauvegarde pour s'assurer de bonnes performances.
Pour sauvegarder une base de donn�es :
$ pg_dump mabase > base.out
Pour recharger cette base de donn�es :
$ psql -d base -f base.out
Pour sauvegarder une base de donn�es nomm�e mabase, contenant des objets larges dans un fichier tar :
$ pg_dump -Ft -b mabase > base.tar
Pour recharger cette base de donn�es (avec des objets larges) dans une base de donn�es existante appel�e nouvellebase :
$ pg_restore -d nouvellebase base.tar
L'outil pg_dump est d'abord apparu dans Postgres95 version 0.02. Les formats de sortie non texte ont �t� introduits dans la version 7.1 de PostgreSQL.
Pr�c�dent | Sommaire | Suivant |
pg_config | Niveau sup�rieur | pg_dumpall |