Il s'agit de la commande pg_dumpall qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
pg_dumpall - extraire un cluster de bases de données PostgreSQL dans un fichier de script
SYNOPSIS
pg_dumpall [option-connexion...] [option...]
DESCRIPTION
pg_dumpall est un utilitaire pour écrire ("vider") toutes les bases de données PostgreSQL d'un cluster
dans un fichier de script. Le fichier de script contient des commandes SQL qui peuvent être utilisées comme entrée pour
psql(1) pour restaurer les bases de données. Il le fait en appelant pg_dump(1) pour chaque base de données dans
Un groupe. pg_dumpall sauvegarde également les objets globaux communs à toutes les bases de données.
(pg_dump n'enregistre pas ces objets.) Cela inclut actuellement des informations sur la base de données
les utilisateurs et les groupes, les tablespaces et les propriétés telles que les autorisations d'accès qui s'appliquent à
bases de données dans leur ensemble.
Étant donné que pg_dumpall lit les tables de toutes les bases de données, vous devrez probablement vous connecter en tant que
superutilisateur de la base de données afin de produire un dump complet. Vous aurez également besoin d'un superutilisateur
les privilèges pour exécuter le script enregistré afin d'être autorisé à ajouter des utilisateurs et des groupes, et
pour créer des bases de données.
Le script SQL sera écrit sur la sortie standard. Utilisez l'option [-f|file] ou le shell
opérateurs pour le rediriger dans un fichier.
pg_dumpall doit se connecter plusieurs fois au serveur PostgreSQL (une fois par base de données). Si
vous utilisez l'authentification par mot de passe, il vous demandera un mot de passe à chaque fois. Il est commode de
avoir un ~/.pgpass fichier dans de tels cas. Voir Section 31.15, « Le fichier de mots de passe », dans le
documentation pour plus d'informations.
OPTIONS
Les options de ligne de commande suivantes contrôlent le contenu et le format de la sortie.
-a
--données uniquement
Videz uniquement les données, pas le schéma (définitions de données).
-c
--nettoyer
Incluez des commandes SQL pour nettoyer (supprimer) les bases de données avant de les recréer. GOUTTE commandes
pour les rôles et les tablespaces sont également ajoutés.
-f nom de fichier
--fichier=nom de fichier
Envoyer la sortie vers le fichier spécifié. Si cela est omis, la sortie standard est utilisée.
-g
--globaux uniquement
Videz uniquement les objets globaux (rôles et tablespaces), pas de bases de données.
-o
--oïdes
Videz les identificateurs d'objet (OID) dans le cadre des données de chaque table. Utilisez cette option si
votre application référence les colonnes OID d'une manière ou d'une autre (par exemple, dans une clé étrangère
contrainte). Sinon, cette option ne doit pas être utilisée.
-O
--pas de propriétaire
N'affichez pas de commandes pour définir la propriété des objets afin qu'ils correspondent à la base de données d'origine. Par
par défaut, problèmes pg_dumpall ALTER PROPRIÉTAIRE or SET SESSION AUTORISATION déclarations à définir
propriété des éléments de schéma créés. Ces instructions échoueront lorsque le script est
exécuté à moins qu'il ne soit démarré par un superutilisateur (ou le même utilisateur qui possède tous les objets
dans le scénario). Pour créer un script qui peut être restauré par n'importe quel utilisateur, mais qui lui donnera
propriété de l'utilisateur de tous les objets, spécifiez -O.
-r
--rôles uniquement
Videz uniquement les rôles, pas de bases de données ni d'espaces de table.
-s
--schéma uniquement
Videz uniquement les définitions d'objets (schéma), pas les données.
-S Nom d'utilisateur
--superutilisateur=Nom d'utilisateur
Spécifiez le nom d'utilisateur superutilisateur à utiliser lors de la désactivation des déclencheurs. Ceci n'est pertinent que
if --disable-triggers est utilisé. (Habituellement, il vaut mieux laisser cela de côté, et à la place
démarrez le script résultant en tant que superutilisateur.)
-t
--tablespaces-uniquement
Videz uniquement les tablespaces, pas de bases de données ni de rôles.
-v
--verbeux
Spécifie le mode détaillé. Cela obligera pg_dumpall à afficher les heures de démarrage/d'arrêt au
dump et les messages de progression jusqu'à l'erreur standard. Il permettra également la sortie verbeuse
dans pg_dump.
-V
--version
Imprimez la version de pg_dumpall et quittez.
-x
--pas de privilèges
--no-acl
Empêcher le dumping des privilèges d'accès (commandes d'octroi/révocation).
--mise à niveau binaire
Cette option est destinée aux utilitaires de mise à niveau sur place. Son utilisation à d'autres fins est
non recommandé ou pris en charge. Le comportement de l'option peut changer dans les versions futures
sans préavis.
--column-insertions
--attribute-insertions
Vider les données en tant que INSERT commandes avec des noms de colonnes explicites (INSERT INTO table (colonne,
...) VALEURS ...). Cela rendra la restauration très lente ; il est surtout utile pour faire
dumps pouvant être chargés dans des bases de données non PostgreSQL.
--disable-dollar-quoting
Cette option désactive l'utilisation des guillemets en dollars pour les corps de fonction et les oblige à
être entre guillemets en utilisant la syntaxe de chaîne standard SQL.
--disable-triggers
Cette option n'est pertinente que lors de la création d'un vidage de données uniquement. Il indique à pg_dumpall
d'inclure des commandes pour désactiver temporairement les déclencheurs sur les tables cibles pendant que le
les données sont rechargées. Utilisez ceci si vous avez des contrôles d'intégrité référentielle ou d'autres déclencheurs
sur les tables que vous ne souhaitez pas appeler lors du rechargement des données.
Actuellement, les commandes émises pour --disable-triggers doit être fait en tant que superutilisateur. Donc,
vous devez également spécifier un nom de superutilisateur avec -S, ou de préférence attention à commencer
le script résultant en tant que superutilisateur.
--if-existe
Utilisez des commandes conditionnelles (c'est-à-dire ajoutez une clause IF EXISTS) pour nettoyer les bases de données et autres
objets. Cette option n'est valide que si --nettoyer est également précisé.
--insertions
Vider les données en tant que INSERT commandes (plutôt que COPY). Cela rendra la restauration très lente ;
il est principalement utile pour créer des dumps pouvant être chargés dans des bases de données non PostgreSQL.
Notez que la restauration peut échouer complètement si vous avez réorganisé l'ordre des colonnes. Les
--column-insertions L'option est plus sûre, mais encore plus lente.
--lock-attente-timeout=temps mort
N'attendez pas indéfiniment pour acquérir des verrous de table partagés au début du vidage.
Au lieu de cela, échouez s'il est impossible de verrouiller une table dans le temps mort. Le délai d'attente peut
être spécifié dans l'un des formats acceptés par SET instruction_timeout. Valeurs autorisées
varient en fonction de la version du serveur à partir de laquelle vous effectuez le vidage, mais un nombre entier de
millisecondes est accepté par toutes les versions depuis 7.3. Cette option est ignorée lorsque
vidage à partir d'un serveur pré-7.3.
--no-étiquettes-de-sécurité
Ne jetez pas d'étiquettes de sécurité.
--pas d'espaces de table
N'émettez pas de commandes pour créer des tablespaces et ne sélectionnez pas de tablespaces pour des objets. Avec
cette option, tous les objets seront créés dans n'importe quel tablespace est la valeur par défaut pendant
restaurer.
--no-unlogged-table-data
Ne videz pas le contenu des tables non journalisées. Cette option n'a aucun effet sur
les définitions de table (schéma) ne sont pas supprimées ; il supprime seulement le vidage de la table
revendre.
--quote-all-identifiants
Forcer la citation de tous les identifiants. Cela peut être utile lors du vidage d'une base de données pour
migration vers une future version qui peut avoir introduit des mots-clés supplémentaires.
--use-set-session-autorisation
Sortie standard SQL SET SESSION AUTORISATION commandes au lieu de ALTER PROPRIÉTAIRE commandes
pour déterminer la propriété de l'objet. Cela rend le vidage plus compatible avec les normes, mais
selon l'historique des objets dans le vidage, peut ne pas être restauré correctement.
-?
--Aidez-moi
Affichez l'aide sur les arguments de ligne de commande de pg_dumpall et quittez.
Les options de ligne de commande suivantes contrôlent les paramètres de connexion à la base de données.
-d connstr
--nombd=connstr
Spécifie les paramètres utilisés pour se connecter au serveur, sous forme de chaîne de connexion. Voir
Section 31.1.1, « Chaînes de connexion », dans la documentation pour plus d'informations.
L'option s'appelle --dbname par souci de cohérence avec les autres applications clientes, mais
car pg_dumpall doit se connecter à de nombreuses bases de données, nom de la base de données dans la connexion
la chaîne sera ignorée. Utilisez l'option -l pour spécifier le nom de la base de données utilisée pour le vidage
objets globaux et de découvrir quelles autres bases de données doivent être vidées.
-h hôte
--hôte=hôte
Spécifie le nom d'hôte de la machine sur laquelle le serveur de base de données s'exécute. Si la
La valeur commence par une barre oblique, elle est utilisée comme répertoire pour le socket de domaine Unix. Les
par défaut est tiré du PGHOST variable d'environnement, si définie, sinon un domaine Unix
la connexion socket est tentée.
-l dbname
--base de données=dbname
Spécifie le nom de la base de données à laquelle se connecter pour vider les objets globaux et
découvrir quelles autres bases de données devraient être vidés. Si non spécifié, le postgres
base de données sera utilisée, et si cela n'existe pas, template1 sera utilisé.
-p port
--port=port
Spécifie le port TCP ou l'extension de fichier socket de domaine Unix local sur lequel le serveur
est à l'écoute des connexions. Par défaut à la PGPORT variable d'environnement, si elle est définie, ou
une valeur par défaut compilée.
-U Nom d'utilisateur
--nom d'utilisateur=Nom d'utilisateur
Nom d'utilisateur sous lequel se connecter.
-w
--pas de mot de passe
N'émettez jamais d'invite de mot de passe. Si le serveur requiert une authentification par mot de passe et un
le mot de passe n'est pas disponible par d'autres moyens tels qu'un fichier .pgpass, la connexion
tentative échouera. Cette option peut être utile dans les tâches par lots et les scripts où aucun utilisateur
est présent pour saisir un mot de passe.
-W
--le mot de passe
Force pg_dumpall à demander un mot de passe avant de se connecter à une base de données.
Cette option n'est jamais indispensable, car pg_dumpall demandera automatiquement un
mot de passe si le serveur demande une authentification par mot de passe. Cependant, pg_dumpall gaspillera
une tentative de connexion découvrant que le serveur veut un mot de passe. Dans certains cas, c'est
vaut la peine d'être tapé -W pour éviter la tentative de connexion supplémentaire.
Notez que l'invite de mot de passe se produira à nouveau pour chaque base de données à vider.
En général, il vaut mieux mettre en place un ~/.pgpass fichier que de se fier à la saisie manuelle du mot de passe.
--rôle=nom de rôle
Spécifie un nom de rôle à utiliser pour créer le vidage. Cette option fait que pg_dumpall
émettre un SET RÔLE nom de rôle après la connexion à la base de données. C'est utile quand
l'utilisateur authentifié (spécifié par -U) n'a pas les privilèges nécessaires à pg_dumpall, mais
peut passer à un rôle avec les droits requis. Certaines installations ont une politique
contre la connexion directe en tant que superutilisateur, et l'utilisation de cette option permet aux dumps d'être
fait sans enfreindre la politique.
ENVIRONNEMENT
PGHOST
OPTIONS
PGPORT
UtilisateurPGU
Paramètres de connexion par défaut
Cet utilitaire, comme la plupart des autres utilitaires PostgreSQL, utilise également les variables d'environnement
supporté par libpq (voir Section 31.14, « Variables d'environnement », dans la documentation).
NOTES
Puisque pg_dumpall appelle pg_dump en interne, certains messages de diagnostic feront référence à pg_dump.
Une fois restauré, il est sage de lancer ANALYSE sur chaque base de données afin que l'optimiseur ait
statistiques. Vous pouvez également courir videdb -a -z pour analyser toutes les bases de données.
pg_dumpall requiert que tous les répertoires d'espace de table nécessaires existent avant la restauration ;
sinon, la création de la base de données échouera pour les bases de données dans des emplacements autres que ceux par défaut.
EXEMPLES
Pour vider toutes les bases de données :
$ pg_dumpall > db.out
Pour recharger la ou les bases de données à partir de ce fichier, vous pouvez utiliser :
$ psql -f db.out postgres
(Peu importe à quelle base de données vous vous connectez ici puisque le fichier de script créé par
pg_dumpall contiendra les commandes appropriées pour créer et se connecter au fichier sauvegardé
bases de données.)
Utilisez pg_dumpall en ligne en utilisant les services onworks.net