Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
pg_restore est un outil pour restaurer une base de donn�es PostgreSQL � partir d'une archive cr��e par pg_dump dans un des formats non textuel. Il lancera les commandes n�cessaires pour reconstruire la base de donn�es dans l'�tat o� elle �tait au moment de sa sauvegarde. Les fichiers d'archive permettent aussi � pg_restore d'�tre s�lectif sur ce qui est restaur� ou m�me de r�ordonner les �l�ments avant d'�tre restaur�. Les fichiers d'archive sont con�us pour �tre portables au travers des architectures.
pg_restore peut op�rer dans deux modes : si un nom de base de donn�es est sp�cifi�, l'archive est restaur�e directement dans la base de donn�es. (Les gros objets peuvent seulement �tre restaur�s en utilisant une connexion directe � la base de donn�es.) Sinon, un script contenant les commandes SQL n�cessaires pour reconstruire la base de donn�es est cr�� (et �crit dans un fichier ou sur la sortie standard), similaire � ceux cr��s par le format en texte plein de pg_dump. Quelques-unes des options contr�lant la sortie du script sont du coup analogues aux options de pg_dump.
De toute �vidence, pg_restore ne peut pas restaurer l'information qui ne se trouve pas dans le fichier d'archive. Par exemple, si l'archive a �t� r�alis�e en utilisant l'option donnant les <<�donn�es sauvegard�es par des commandes INSERT�>>, pg_restore ne sera pas capable de charger les donn�es en utilisant des instructions COPY.
pg_restore accepte les arguments suivant en ligne de commande.
Sp�cifie l'emplacement du fichier d'archive � restaurer. S'il n'est pas sp�cifi�, l'entr�e standard est utilis�e.
Restaure seulement les donn�es, pas le sch�ma (d�finitions des donn�es).
Nettoie (supprime) les objets de la base de donn�es avant de les cr�er.
Cr�e la base de donn�es avant de la restaurer. (Quand cette option est utilis�e, la base de donn�es nomm�e avec -d est utilis�e seulement pour lancer la commande initiale CREATE DATABASE. Toutes les donn�es sont restaur�es dans le nom de la base de donn�es qui appara�t dans l'archive.)
Se connecte � la base de donn�es nom_base et restaure directement dans la base de donn�es.
Sp�cifie le fichier en sortie pour le script g�n�r� ou pour la liste lorsqu'elle est utilis�e avec -l. Par d�faut, il s'agit de la sortie standard.
Sp�cifie le format de l'archive. Il n'est pas n�cessaire de le sp�cifier car pg_restore d�terminera le format automatiquement. Si sp�cifi�, il peut �tre un des suivants :
L'archive est une archive tar. Utiliser ce format d'archive permet le r�ordonnancement et/ou l'exclusion des �l�ments du sch�ma au moment de la restauration de la base de donn�es. Il est aussi possible de limiter les donn�es � recharger au moment de la restauration.
L'archive est dans le format personnalis� de pg_dump. Ceci est le format le plus flexible dans le fait qu'il permet le r�ordonnancement du chargement des donn�es ainsi que des �l�ments du sch�ma. Ce format est aussi compress� par d�faut.
Ignore la v�rification de version de la base de donn�es.
Restaure uniquement la d�finition des index nomm�s.
Liste le contenu de l'archive. La sortie de cette op�ration peut �tre utilis�e avec l'option -L pour restreindre et r�ordonner les �l�ments � restaurer.
Restaure seulement les �l�ments dans fichier_liste et dans leur ordre d'apparition dans le fichier. Les lignes peuvent �tre d�plac�es et pourraient aussi �tre comment�es en pla�ant un ; au d�but de la ligne. (Voir ci-dessous pour des exemples.)
Restaure les �l�ments dans l'ordre o� ils ont �t� g�n�r�s au d�part avec pg_dump. Cette option n'a pas d'utilisation pratique connue car pg_dump g�n�re les �l�ments dans l'ordre qui l'arrange, ce qui a peu de chances d'�tre le bon ordre pour les restaurer. (Ce n'est pas l'ordre dans lequel les �l�ments sont list�s dans la table des mati�res de l'archive.) Voir aussi -r.
Restaure les �l�ments dans l'ordre des OID. Cette option a une utilit� limit�e car les OID sont seulement une indication approximative de l'ordre de cr�ation originale. Cette option surcharge -N si les deux sont sp�cifi�s. Voir aussi -r.
Ne pas donner les commandes initialisant les propri�taires des objets pour correspondre � la base de donn�es originale. Par d�faut, pg_restore lance des instructions SET SESSION AUTHORIZATION pour configurer le propri�taire des �l�ments du sch�ma cr��. Ces instructions �choueront sauf si la connexion initiale � la base de donn�es est r�alis�e par un superutilisateur (ou le m�me utilisateur que le propri�taire des objets du script). Avec -O, tout nom d'utilisateur peut �tre utilis� pour la connexion initiale et cet utilisateur sera le propri�taire des objets cr��s.
Restaure seulement la fonction nomm�e. Faites attention � �peler le nom de la fonction et les arguments exactement comme ils apparaissent dans la table des mati�res du fichier de sauvegarde.
R�arrange les �l�ments par type d'objet (ceci survient apr�s le tri sp�cifi� par -N ou -o, au cas o� ils seraient indiqu�s). Le r�arrangement a pour but de donner les meilleures performances pour la restauration.
Quand aucune des options -N, -o et -r n'apparaisse, pg_restore restaure les �l�ments dans l'ordre o� ils apparaissent dans la table des mati�res de la sauvegarde ou dans l'ordre o� ils apparaissent dans le fichier_liste si -L est sp�cifi�. La combinaison de -o et -r duplique le tri effectu� par pg_dump avant de cr�er la table des mati�res de la sauvegarde. Du coup, il n'est normalement pas n�cessaire de le sp�cifier.
Cette option est obsol�te mais est toujours accept�e pour des raisons de compatibilit� ascendante.
Restaure uniquement le sch�ma (d�finition des donn�es), et non pas les donn�es elles-m�me. Les valeurs de s�quence seront r�initialis�es.
Sp�cifie le nom d'utilisateur du superutilisateur � utiliser pour d�sactiver les d�clencheurs. Ceci est seulement n�cessaire si --disable-triggers est utilis�.
Restaure uniquement la d�finition et/ou les donn�es de la table nomm�e.
Restaure uniquement le d�clencheur nomm�.
Sp�cifie le mode verbeux.
Emp�che la restauration des droits d'acc�s (commandes grant/revoke).
Cette option est obsol�te mais est toujours accept�e pour des raisons de compatibilit� ascendante. pg_restore se comporte maintenant toujours de la fa�on pr�c�demment s�lectionn�e par cette option.
Cette option est seulement int�ressante lors de l'unique restauration des donn�es. Elle demande � pg_restore d'ex�cuter des commandes pour d�sactiver temporairement les d�clencheurs sur les tables cibles pendant que la donn�e est recharg�e. Utilisez ceci si vous avez des v�rifications d'int�grit� r�f�rentielle sur les tables que vous ne voulez pas appeler lors du rechargement des donn�es.
Actuellement, les commandes �mises pour --disable-triggers doivent �tre ex�cut�es par un superutilisateur. Donc, vous devriez aussi sp�cifier un nom de superutilisateur avec -S ou, de pr�f�rence, lancer pg_restore en tant que superutilisateur PostgreSQL.
pg_restore accepte aussi les arguments suivants en ligne de commande pour les param�tres de connexion :
Sp�cifie le nom de l'h�te de la machine sur lequel le serveur est en cours d'ex�cution. Si la valeur commence par un slash, elle est utilis�e comme r�pertoire du socket de domaine Unix. La valeur par d�faut est prise dans 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 sur lequel le serveur �coute les connexions. Par d�faut, l'outil utilise la variable d'environnement PGPORT, si elle est configur�e, sinon elle utilise la valeur compil�e.
Se connecte en tant que cet utilisateur
Force une demande de mot de passe. Ceci devrait arriver automatiquement si le serveur requiert une authentification par mot de passe.
Quand une connexion directe � la base de donn�es est sp�cifi�e avec l'option -d, pg_restore ex�cute en interne des instructions SQL. Si vous avez des probl�mes en ex�cutant pg_restore, assurez-vous d'�tre capable de s�lectionner l'information � partir de la base de donn�es utilis�e, par exemple � partir de psql.
Si votre installation dispose d'ajouts locaux � la base de donn�es template1, faites attention � charger la sortie de pg_restore dans une base de donn�es r�ellement vide ; sinon, vous avez des risques d'obtenir des erreurs d�es aux d�finitions dupliqu�es des objets ajout�s. Pour cr�er une base de donn�es vide sans ajout local, copiez � partir de template0, et non pas de template1, par exemple :
CREATE DATABASE foo WITH TEMPLATE template0;
Les limitations de pg_restore sont d�taill�es ci-dessous.
Lors de la restauration des donn�es dans une table pr�-existante et que l'option --disable-triggers est utilis�e, pg_restore �met des commandes pour d�sactiver les d�clencheurs sur les tables utilisateur avant d'ins�rer les donn�es, puis �met les commandes pour les r�activer apr�s l'insertion des donn�es. Si la restauration est stopp�e en plein milieu, les catalogues syst�me pourraient �tre abandonn�s dans un mauvais �tat.
pg_restore ne restaurera pas les objets larges pour une seule table. Si une archive contient des objets larges, alors ils seront restaur�s.
Voir aussi la documentation de pg_dump pour les d�tails sur les limitations de pg_dump.
Une fois restaur�e, il est conseill� de lancer ANALYZE sur chaque table restaur�e de fa�on � ce que l'optimiseur dispose de statistiques utiles.
Pour sauvegarder une base de donn�es appel�e ma_base, contenant des objets larges dans un fichier tar :
$ pg_dump -Ft -b ma_base > base.tar
Pour recharger cette base de donn�es (avec les objets larges) dans une base de donn�es existante appel�e nouvelle_base :
$ pg_restore -d nouvelle_base base.tar
Pour r�ordonner les �l�ments de la base de donn�es, il est tout d'abord n�cessaire de sauvegarder la table des mati�res de l'archive :
$ pg_restore -l archive.fichier > archive.liste
Le fichier de liste consiste en un en-t�te et d'une ligne par �l�ment, par exemple
; ; Archive created at Fri Jul 28 22:28:36 2000 ; dbname: birds ; TOC Entries: 74 ; Compression: 0 ; Dump Version: 1.4-0 ; Format: CUSTOM ; ; ; Selected TOC Entries: ; 2; 145344 TABLE species postgres 3; 145344 ACL species 4; 145359 TABLE nt_header postgres 5; 145359 ACL nt_header 6; 145402 TABLE species_records postgres 7; 145402 ACL species_records 8; 145416 TABLE ss_old postgres 9; 145416 ACL ss_old 10; 145433 TABLE map_resolutions postgres 11; 145433 ACL map_resolutions 12; 145443 TABLE hs_old postgres 13; 145443 ACL hs_old
Les points virgules commencent un commentaire et les num�ros au d�but des lignes se r�f�rent � l'ID d'archive interne affect�e � chaque �l�ment.
Les lignes dans le fichier peuvent �tre comment�es, supprim�es et r�ordonn�es. Par exemple,
10; 145433 TABLE map_resolutions postgres ;2; 145344 TABLE species postgres ;4; 145359 TABLE nt_header postgres 6; 145402 TABLE species_records postgres ;8; 145416 TABLE ss_old postgres
pourrait �tre utilis� en entr�e de pg_restore et pourrait seulement restaurer les �l�ments 10 et 6 dans cet ordre :
$ pg_restore -L archive.liste archive.fichier
Pr�c�dent | Sommaire | Suivant |
pg_dumpall | Niveau sup�rieur | pgtclsh |