Dies ist der Befehl pg_dumpall, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
pg_dumpall – Extrahieren Sie einen PostgreSQL-Datenbankcluster in eine Skriptdatei
ZUSAMMENFASSUNG
pg_dumpall [Anschlussmöglichkeit...] [ganz ohne irgendetwas tun oder drücken zu müssen....]
BESCHREIBUNG
pg_dumpall ist ein Dienstprogramm zum Ausschreiben („Dumping“) aller PostgreSQL-Datenbanken eines Clusters
in eine Skriptdatei. Die Skriptdatei enthält SQL-Befehle, die als Eingabe verwendet werden können
psql(1) um die Datenbanken wiederherzustellen. Dies geschieht durch einen Aufruf pg_dump(1) für jede Datenbank in
ein Cluster. pg_dumpall speichert auch globale Objekte, die allen Datenbanken gemeinsam sind.
(pg_dump speichert diese Objekte nicht.) Dies umfasst derzeit Informationen zur Datenbank
Benutzer und Gruppen, Tablespaces und Eigenschaften wie z. B. Zugriffsberechtigungen, die gelten
Datenbanken als Ganzes.
Da pg_dumpall Tabellen aus allen Datenbanken liest, müssen Sie höchstwahrscheinlich eine Verbindung als herstellen
Datenbank-Superuser, um einen vollständigen Dump zu erstellen. Außerdem benötigen Sie einen Superuser
Berechtigungen zum Ausführen des gespeicherten Skripts, um Benutzer und Gruppen hinzufügen zu dürfen, und
Datenbanken zu erstellen.
Das SQL-Skript wird in die Standardausgabe geschrieben. Verwenden Sie die Option [-f|file] oder die Shell
Operatoren, um es in eine Datei umzuleiten.
pg_dumpall muss mehrmals eine Verbindung zum PostgreSQL-Server herstellen (einmal pro Datenbank). Wenn
Wenn Sie die Passwortauthentifizierung verwenden, werden Sie jedes Mal nach einem Passwort gefragt. Es ist bequem
haben ein ~/.pgpass in solchen Fällen eine Akte einreichen. Siehe Abschnitt 31.15, „Die Passwortdatei“, im
Dokumentation für weitere Informationen.
OPTIONAL
Die folgenden Befehlszeilenoptionen steuern den Inhalt und das Format der Ausgabe.
-a
--nur Daten
Nur die Daten sichern, nicht das Schema (Datendefinitionen).
-c
--sauber
Fügen Sie SQL-Befehle ein, um Datenbanken zu bereinigen (zu löschen), bevor Sie sie neu erstellen. DROP Befehle
für Rollen und Tablespaces werden ebenfalls hinzugefügt.
-f Dateinamen
--Datei=Dateinamen
Ausgabe an die angegebene Datei senden. Wenn dies weggelassen wird, wird die Standardausgabe verwendet.
-g
--globals-only
Nur globale Objekte (Rollen und Tablespaces) sichern, keine Datenbanken.
-o
--oids
Geben Sie Objektkennungen (OIDs) als Teil der Daten für jede Tabelle aus. Verwenden Sie diese Option, wenn
Ihre Anwendung verweist auf irgendeine Weise auf die OID-Spalten (z. B. in einem Fremdschlüssel).
Zwang). Andernfalls sollte diese Option nicht verwendet werden.
-O
--kein Besitzer
Geben Sie keine Befehle aus, um den Besitz von Objekten so festzulegen, dass sie mit der ursprünglichen Datenbank übereinstimmen. Von
Standardmäßig treten pg_dumpall-Probleme auf ALTER EIGENTÜMER or SET SESSION AUTORISIERUNG Aussagen zu setzen
Eigentum an erstellten Schemaelementen. Diese Anweisungen schlagen fehl, wenn das Skript ausgeführt wird
wird ausgeführt, es sei denn, es wird von einem Superuser (oder demselben Benutzer, der alle Objekte besitzt) gestartet
im Drehbuch). Um ein Skript zu erstellen, das von jedem Benutzer wiederhergestellt werden kann, das aber nicht funktioniert
Benutzereigentum an allen Objekten angeben -O.
-r
--roles-only
Nur Rollen sichern, keine Datenbanken oder Tablespaces.
-s
--schema-only
Nur die Objektdefinitionen (Schema) sichern, keine Daten.
-S Benutzername
--superuser=Benutzername
Geben Sie den Superuser-Benutzernamen an, der beim Deaktivieren von Triggern verwendet werden soll. Das ist nur relevant
if --disable-triggers wird eingesetzt. (Normalerweise ist es besser, dies wegzulassen und stattdessen
Starten Sie das resultierende Skript als Superuser.)
-t
--tablespaces-only
Nur Tablespaces sichern, keine Datenbanken oder Rollen.
-v
- ausführlich
Gibt den ausführlichen Modus an. Dies führt dazu, dass pg_dumpall Start-/Stoppzeiten an ausgibt
Dump-Datei und Fortschrittsmeldungen auf Standardfehler. Es ermöglicht auch eine ausführliche Ausgabe
in pg_dump.
-V
--Version
Drucken Sie die pg_dumpall-Version und beenden Sie den Vorgang.
-x
--keine-privilegien
--no-acl
Verhindern Sie das Dumping von Zugriffsrechten (Befehle zum Gewähren/Entziehen).
--binary-upgrade
Diese Option ist für die Verwendung durch In-Place-Upgrade-Dienstprogramme vorgesehen. Seine Verwendung für andere Zwecke ist
nicht empfohlen oder unterstützt. Das Verhalten der Option kann sich in zukünftigen Versionen ändern
ohne vorherige Ankündigung.
--column-inserts
--attribute-inserts
Daten sichern als INSERT Befehle mit expliziten Spaltennamen (INSERT INTO Tabelle (Überblick,
...) WERTE ...). Dadurch wird die Wiederherstellung sehr langsam; Es ist hauptsächlich für die Herstellung nützlich
Dumps, die in Nicht-PostgreSQL-Datenbanken geladen werden können.
--disable-dollar-quoting
Diese Option deaktiviert die Verwendung von Dollar-Anführungszeichen für Funktionskörper und zwingt sie dazu
unter Verwendung der SQL-Standardzeichenfolgensyntax in Anführungszeichen gesetzt werden.
--disable-triggers
Diese Option ist nur relevant, wenn Sie einen Nur-Daten-Dump erstellen. Es weist pg_dumpall an
um Befehle einzuschließen, um Trigger für die Zieltabellen vorübergehend zu deaktivieren, während die
Daten werden neu geladen. Verwenden Sie dies, wenn Sie referenzielle Integritätsprüfungen oder andere Auslöser haben
für die Tabellen, die Sie beim erneuten Laden der Daten nicht aufrufen möchten.
Derzeit werden die ausgegebenen Befehle für --disable-triggers muss als Superuser erfolgen. Also,
Sie sollten auch einen Superuser-Namen mit angeben -S, oder am besten vorsichtig starten
Führen Sie das resultierende Skript als Superuser aus.
--wenn-existiert
Verwenden Sie bedingte Befehle (z. B. fügen Sie eine IF EXISTS-Klausel hinzu), um Datenbanken und anderes zu bereinigen
Objekte. Diese Option ist nur gültig, wenn --sauber ist ebenfalls angegeben.
--inserts
Daten sichern als INSERT Befehle (statt COPY). Dadurch wird die Wiederherstellung sehr langsam;
Es ist hauptsächlich zum Erstellen von Dumps nützlich, die in Nicht-PostgreSQL-Datenbanken geladen werden können.
Beachten Sie, dass die Wiederherstellung möglicherweise vollständig fehlschlägt, wenn Sie die Spaltenreihenfolge geändert haben. Der
--column-inserts Option ist sicherer, aber auch langsamer.
--lock-wait-timeout=Timeout
Warten Sie nicht ewig, bis Sie zu Beginn des Dumps gemeinsame Tabellensperren erhalten.
Scheitern Sie stattdessen, wenn eine Tabelle innerhalb des angegebenen Bereichs nicht gesperrt werden kann Timeout. Die Zeitüberschreitung kann
in einem der von akzeptierten Formate angegeben werden SET Anweisung_Timeout. Zulässige Werte
variieren abhängig von der Serverversion, von der Sie Dumps durchführen, es handelt sich jedoch um eine ganze Zahl von
Millisekunden werden von allen Versionen seit 7.3 akzeptiert. Diese Option wird ignoriert, wenn
Dumping von einem Server vor 7.3.
--no-security-labels
Werfen Sie keine Sicherheitsetiketten weg.
--no-tablespaces
Geben Sie keine Befehle aus, um Tablespaces zu erstellen oder Tablespaces für Objekte auszuwählen. Mit
Bei dieser Option werden alle Objekte in dem Tablespace erstellt, der währenddessen der Standard ist
wiederherstellen.
--no-unlogged-table-data
Den Inhalt nicht protokollierter Tabellen nicht sichern. Diese Option hat keinen Einfluss darauf, ob oder
nicht die Tabellendefinitionen (Schema) werden gedumpt; Es unterdrückt lediglich das Dumping der Tabelle
Daten.
--quote-all-identifiers
Erzwingen Sie die Anführungszeichen aller Bezeichner. Dies kann nützlich sein, wenn Sie eine Datenbank sichern
Migration auf eine zukünftige Version, die möglicherweise zusätzliche Schlüsselwörter eingeführt hat.
--use-set-session-authorization
Ausgabe SQL-Standard SET SESSION AUTORISIERUNG Befehle statt ALTER EIGENTÜMER Befehle
um den Objektbesitz zu bestimmen. Dies macht den Dump aber standardkompatibel
je nach Verlauf der Objekte im Dump wird möglicherweise nicht richtig wiederhergestellt.
-?
--help
Hilfe zu pg_dumpall-Befehlszeilenargumenten anzeigen und beenden.
Die folgenden Befehlszeilenoptionen steuern die Datenbankverbindungsparameter.
-d connstr
--dbname=connstr
Gibt Parameter an, die zum Herstellen einer Verbindung mit dem Server verwendet werden, als Verbindungszeichenfolge. Sehen
Weitere Informationen finden Sie in Abschnitt 31.1.1, „Verbindungszeichenfolgen“, in der Dokumentation.
Aus Gründen der Konsistenz mit anderen Clientanwendungen heißt die Option jedoch --dbname
Da pg_dumpall eine Verbindung zu vielen Datenbanken herstellen muss, muss der Datenbankname in der Verbindung angegeben werden
Zeichenfolge wird ignoriert. Verwenden Sie die Option -l, um den Namen der für den Dump verwendeten Datenbank anzugeben
globale Objekte und um herauszufinden, welche anderen Datenbanken gesichert werden sollten.
-h Gastgeber
--host=Gastgeber
Gibt den Hostnamen des Computers an, auf dem der Datenbankserver ausgeführt wird. Wenn die
Wenn der Wert mit einem Schrägstrich beginnt, wird er als Verzeichnis für den Unix-Domänen-Socket verwendet. Der
Standard wird aus dem genommen PGHOST Umgebungsvariable, falls gesetzt, sonst eine Unix-Domain
Socket-Verbindung wird versucht.
-l Datenbankname
--Datenbank=Datenbankname
Gibt den Namen der Datenbank an, mit der eine Verbindung zum Dumping globaler Objekte hergestellt werden soll
Herausfinden, welche anderen Datenbanken gesichert werden sollten. Wenn nicht angegeben, wird der Postgres
Datenbank wird verwendet, und wenn diese nicht vorhanden ist, wird Vorlage1 verwendet.
-p port
--port=port
Gibt den TCP-Port oder die lokale Unix-Domain-Socket-Dateierweiterung an, auf der der Server
lauscht auf Verbindungen. Standardeinstellungen für die PGPORT Umgebungsvariable, falls gesetzt, oder
ein einkompilierter Standardwert.
-U Benutzername
--Benutzername=Benutzername
Benutzername für die Verbindung.
-w
--kein Passwort
Geben Sie niemals eine Passwortabfrage aus. Wenn der Server eine Kennwortauthentifizierung erfordert und a
Passwort nicht auf andere Weise verfügbar ist, z. B. über eine .pgpass-Datei, die Verbindung
Versuch wird fehlschlagen. Diese Option kann in Batch-Jobs und Skripten nützlich sein, bei denen kein Benutzer
vorhanden ist, um ein Passwort einzugeben.
-W
--Passwort
Erzwingen Sie, dass pg_dumpall nach einem Passwort fragt, bevor eine Verbindung zu einer Datenbank hergestellt wird.
Diese Option ist niemals unbedingt erforderlich, da pg_dumpall automatisch zur Eingabe einer Datei auffordert
Kennwort, wenn der Server eine Kennwortauthentifizierung verlangt. Allerdings wird pg_dumpall verschwendet
ein Verbindungsversuch, der herausfindet, dass der Server ein Passwort benötigt. In einigen Fällen ist es
es lohnt sich zu tippen -W um den zusätzlichen Verbindungsversuch zu vermeiden.
Beachten Sie, dass die Passwortabfrage für jede zu sichernde Datenbank erneut erfolgt.
Normalerweise ist es besser, eine einzurichten ~/.pgpass Datei, anstatt sich auf die manuelle Passworteingabe zu verlassen.
--rolle=Rollenname
Gibt einen Rollennamen an, der zum Erstellen des Dumps verwendet werden soll. Diese Option bewirkt, dass pg_dumpall
Ausgabe a SET ROLLE Rollenname Befehl nach dem Herstellen einer Verbindung zur Datenbank. Es ist nützlich, wenn
der authentifizierte Benutzer (angegeben durch -U) fehlen die von pg_dumpall benötigten Privilegien, aber
kann in eine Rolle mit den erforderlichen Rechten wechseln. Für einige Installationen gibt es eine Richtlinie
gegen die direkte Anmeldung als Superuser, und die Verwendung dieser Option ermöglicht das Erstellen von Dumps
ohne Verstoß gegen die Richtlinie vorgenommen werden.
PGHOST
PGOPTIONEN
PGPORT
PGBENUTZER
Standardverbindungsparameter
Dieses Dienstprogramm verwendet wie die meisten anderen PostgreSQL-Dienstprogramme auch die Umgebungsvariablen
unterstützt von libpq (siehe Abschnitt 31.14, „Umgebungsvariablen“, in der Dokumentation).
ANMERKUNG
Da pg_dumpall pg_dump intern aufruft, beziehen sich einige Diagnosemeldungen auf pg_dump.
Nach der Wiederherstellung ist es ratsam zu laufen ANALYSIEREN auf jeder Datenbank, damit der Optimierer nützlich ist
Statistiken. Sie können auch laufen Vakuumdb -a -z um alle Datenbanken zu analysieren.
pg_dumpall erfordert, dass alle benötigten Tablespace-Verzeichnisse vor der Wiederherstellung vorhanden sind;
Andernfalls schlägt die Datenbankerstellung für Datenbanken an nicht standardmäßigen Speicherorten fehl.
Beispiele:
So sichern Sie alle Datenbanken:
$ pg_dumpall > db.out
Um Datenbank(en) aus dieser Datei neu zu laden, können Sie Folgendes verwenden:
$ psql -f db.out Postgres
(Es ist nicht wichtig, mit welcher Datenbank Sie hier eine Verbindung herstellen, da die Skriptdatei von erstellt wurde
pg_dumpall enthält die entsprechenden Befehle zum Erstellen und Herstellen einer Verbindung zu den gespeicherten Dateien
Datenbanken.)
Verwenden Sie pg_dumpall online über die Dienste von onworks.net