Dies ist der Befehl pg_dump, 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_dump – Extrahieren Sie eine PostgreSQL-Datenbank in eine Skriptdatei oder eine andere Archivdatei
ZUSAMMENFASSUNG
pg_dump [Anschlussmöglichkeit...] [zu erhalten...] [Datenbankname]
BESCHREIBUNG
pg_dump ist ein Dienstprogramm zum Sichern einer PostgreSQL-Datenbank. Es erstellt konsistente Backups
auch wenn die Datenbank gleichzeitig verwendet wird. pg_dump blockiert keine anderen Benutzer
Zugriff auf die Datenbank (Leser oder Schreiber).
pg_dump speichert nur eine einzelne Datenbank. Um globale Objekte zu sichern, die allen gemeinsam sind
Datenbanken in einem Cluster, wie Rollen und Tablespaces, verwenden pg_dumpall(1).
Dumps können im Skript- oder Archivdateiformat ausgegeben werden. Skript-Dumps sind reine Textdateien
Enthält die SQL-Befehle, die erforderlich sind, um die Datenbank wieder in den Zustand zu versetzen, in dem sie sich befand
die Zeit, in der es gespart wurde. Um ein solches Skript wiederherzustellen, geben Sie es ein psql(1). Skriptdateien können
kann zur Rekonstruktion der Datenbank auch auf anderen Maschinen und anderen Architekturen verwendet werden; mit
einige Änderungen, auch bei anderen SQL-Datenbankprodukten.
Es müssen die alternativen Archivdateiformate verwendet werden pg_restore(1) um die wieder aufzubauen
Datenbank. Sie ermöglichen es pg_restore, selektiv zu entscheiden, was wiederhergestellt wird, oder sogar neu anzuordnen
die Gegenstände vor der Restaurierung. Die Archivdateiformate sind portabel konzipiert
über Architekturen hinweg.
Bei Verwendung mit einem der Archivdateiformate und in Kombination mit pg_restore, pg_dump
Bietet einen flexiblen Archivierungs- und Übertragungsmechanismus. pg_dump kann zum Sichern einer Datei verwendet werden
gesamte Datenbank, dann kann pg_restore verwendet werden, um das Archiv zu untersuchen und/oder auszuwählen, welches
Teile der Datenbank sollen wiederhergestellt werden. Die flexibelsten Ausgabedateiformate sind
„benutzerdefiniertes“ Format (-Fc) und das „Verzeichnis“-Format(-Fd). Sie ermöglichen eine Auswahl und
Neuordnung aller archivierten Elemente, Unterstützung der parallelen Wiederherstellung und Komprimierung durch
Standard. Das „Verzeichnis“-Format ist das einzige Format, das parallele Dumps unterstützt.
Beim Ausführen von pg_dump sollte man die Ausgabe auf etwaige Warnungen untersuchen (ausgedruckt auf Standard).
Fehler), insbesondere im Hinblick auf die unten aufgeführten Einschränkungen.
OPTIONAL
Die folgenden Befehlszeilenoptionen steuern den Inhalt und das Format der Ausgabe.
Datenbankname
Gibt den Namen der Datenbank an, die gesichert werden soll. Wenn dies nicht angegeben ist, wird die
variable Umgebung PG-DATENBANK wird eingesetzt. Wenn dies nicht festgelegt ist, wird der Benutzername angegeben
für die Verbindung verwendet wird.
-a
--nur Daten
Nur die Daten sichern, nicht das Schema (Datendefinitionen). Tabellendaten, große Objekte usw
Sequenzwerte werden ausgegeben.
Diese Option ist ähnlich, aber aus historischen Gründen nicht identisch mit der Angabe von
--section=Daten.
-b
--kleckse
Fügen Sie große Objekte in den Dump ein. Dies ist das Standardverhalten, außer wenn --Schema,
--Tisch, oder auch --schema-only angegeben ist, also die -b Der Schalter ist nur nützlich, um große hinzuzufügen
Objekte in selektive Dumps.
-c
--sauber
Geben Sie Befehle zum Bereinigen (Löschen) von Datenbankobjekten aus, bevor Sie die Befehle für ausgeben
sie zu erschaffen. (Es sei denn --wenn-existiert ist ebenfalls angegeben, die Wiederherstellung könnte einige generieren
harmlose Fehlermeldungen, wenn Objekte in der Zieldatenbank nicht vorhanden waren.)
Diese Option ist nur für das Klartextformat sinnvoll. Für die Archivformate: Sie
Sie können die Option bei Ihrem Anruf angeben pg_restore.
-C
--schaffen
Beginnen Sie die Ausgabe mit einem Befehl zum Erstellen der Datenbank selbst und zum erneuten Herstellen einer Verbindung mit der Datenbank
erstellte Datenbank. (Bei einem Skript dieser Form spielt es keine Rolle, welche Datenbank im
Zielinstallation, zu der Sie eine Verbindung herstellen, bevor Sie das Skript ausführen.) Wenn --sauber ist auch
angegeben, löscht das Skript die Zieldatenbank und erstellt sie neu, bevor die Verbindung wiederhergestellt wird
es.
Diese Option ist nur für das Klartextformat sinnvoll. Für die Archivformate: Sie
Sie können die Option bei Ihrem Anruf angeben pg_restore.
-E Codierung
--encoding=Codierung
Erstellen Sie den Dump in der angegebenen Zeichensatzkodierung. Standardmäßig ist der Dump
in der Datenbankkodierung erstellt. (Eine andere Möglichkeit, das gleiche Ergebnis zu erzielen, besteht darin, Folgendes festzulegen
PGCLIENTENCODIERUNG Umgebungsvariable in die gewünschte Dump-Kodierung umwandeln.)
-f Datei
--Datei=Datei
Ausgabe an die angegebene Datei senden. Dieser Parameter kann für die dateibasierte Ausgabe weggelassen werden
In diesem Fall wird die Standardausgabe verwendet. Es muss für das Verzeichnis angegeben werden
Ausgabeformat, bei dem das Zielverzeichnis anstelle einer Datei angegeben wird. In
In diesem Fall wird das Verzeichnis von erstellt pg_dump und darf vorher nicht existieren.
-F Format
--format=Format
Wählt das Format der Ausgabe aus. Format kann einer der folgenden sein:
p
Ebene
Gibt eine Klartext-SQL-Skriptdatei aus (Standardeinstellung).
c
Original
Gibt ein Archiv im benutzerdefinierten Format aus, das für die Eingabe in pg_restore geeignet ist. Zusammen mit
Das Verzeichnisausgabeformat ist das flexibelste Ausgabeformat
ermöglicht die manuelle Auswahl und Neuordnung archivierter Elemente während der Wiederherstellung. Das
Das Format ist standardmäßig ebenfalls komprimiert.
d
Verzeichnis
Gibt ein Archiv im Verzeichnisformat aus, das für die Eingabe in pg_restore geeignet ist. Dieser Wille
Erstellen Sie ein Verzeichnis mit einer Datei für jede Tabelle und jedes Blob, das ausgegeben wird, plus einer
sogenannte Inhaltsverzeichnisdatei, die die abgelegten Objekte in einem beschreibt
maschinenlesbares Format, das pg_restore lesen kann. Ein Archiv im Verzeichnisformat kann
mit Standard-Unix-Tools manipuliert werden; zum Beispiel Dateien in einer unkomprimierten Datei
Das Archiv kann mit dem gzip-Tool komprimiert werden. Dieses Format ist standardmäßig komprimiert
und unterstützt auch parallele Dumps.
t
Teer
Ausgabe a Teer-formatiertes Archiv, das für die Eingabe in pg_restore geeignet ist. Das TAR-Format ist
Kompatibel mit dem Verzeichnisformat: Das Extrahieren eines Archivs im TAR-Format erzeugt ein
gültiges Archiv im Verzeichnisformat. Das TAR-Format wird jedoch nicht unterstützt
Kompression. Bei Verwendung des TAR-Formats gilt außerdem die relative Reihenfolge der Tabellendatenelemente
kann während der Wiederherstellung nicht geändert werden.
-j njobs
--jobs=njobs
Führen Sie den Dump parallel durch Dumping aus njobs Tische gleichzeitig. Diese Option reduziert
Dies verlängert die Dump-Zeit, erhöht aber auch die Belastung des Datenbankservers. Du kannst
Verwenden Sie diese Option nur mit dem Verzeichnisausgabeformat, da dies die einzige Ausgabe ist
Format, in dem mehrere Prozesse ihre Daten gleichzeitig schreiben können.
pg_dump wird geöffnet njobs + 1 Verbindungen zur Datenbank, stellen Sie also sicher, dass Ihre
Die Einstellung „max_connections“ ist hoch genug, um alle Verbindungen aufzunehmen.
Das Anfordern exklusiver Sperren für Datenbankobjekte während der Ausführung eines parallelen Dumps könnte möglich sein
dazu führen, dass der Dump fehlschlägt. Der Grund dafür ist, dass der pg_dump-Masterprozess die Anforderungen gemeinsam nutzt
Sperrt die Objekte, die der Worker verarbeitet, um sie später zu sichern
Stellen Sie sicher, dass niemand sie löscht und verschwinden lässt, während der Dump läuft.
Wenn ein anderer Client dann eine exklusive Sperre für eine Tabelle anfordert, erfolgt diese Sperre nicht
gewährt, wird aber in die Warteschlange gestellt und wartet auf die gemeinsame Sperre des Masterprozesses
freigegeben. Folglich wird auch kein anderer Zugriff auf die Tabelle gewährt
wird nach der exklusiven Sperranforderung in die Warteschlange gestellt. Dazu gehört auch der Versuch des Arbeitsprozesses
den Tisch wegwerfen. Ohne jegliche Vorsichtsmaßnahmen wäre dies eine klassische Deadlock-Situation.
Um diesen Konflikt zu erkennen, fordert der Arbeitsprozess pg_dump eine weitere gemeinsame Sperre an
die NOWAIT-Option. Wenn dem Arbeitsprozess diese gemeinsame Sperre nicht gewährt wird, jemand
else muss in der Zwischenzeit eine exklusive Sperre beantragt haben und es gibt keine Möglichkeit dazu
Fahren Sie mit dem Dump fort, sodass pg_dump keine andere Wahl hat, als den Dump abzubrechen.
Für eine konsistente Sicherung muss der Datenbankserver synchronisierte Snapshots unterstützen.
eine Funktion, die in PostgreSQL 9.2 eingeführt wurde. Mit dieser Funktion können Datenbank-Clients
können sicherstellen, dass sie denselben Datensatz sehen, auch wenn sie unterschiedliche Verbindungen verwenden.
pg_dump -j verwendet mehrere Datenbankverbindungen; Es stellt einmal eine Verbindung zur Datenbank her
den Masterprozess und noch einmal für jeden Worker-Job. Ohne die synchronisierte
Mit der Snapshot-Funktion kann nicht garantiert werden, dass die verschiedenen Worker-Jobs dasselbe sehen
Daten in jeder Verbindung, was zu einer inkonsistenten Sicherung führen könnte.
Wenn Sie einen parallelen Dump eines Servers vor 9.2 ausführen möchten, müssen Sie sicherstellen, dass der
Der Datenbankinhalt ändert sich zwischen dem Zeitpunkt, zu dem der Master eine Verbindung herstellt, nicht
Datenbank, bis der letzte Worker-Job eine Verbindung zur Datenbank hergestellt hat. Der einfachste Weg dazu
Dadurch werden alle datenverändernden Prozesse (DDL und DML) gestoppt, die auf die Datenbank zugreifen
bevor Sie mit der Sicherung beginnen. Sie müssen auch angeben --no-synchronized-snapshots
Parameter beim Ausführen pg_dump -j gegen einen PostgreSQL-Server vor Version 9.2.
-n Schema
--schema=Schema
Nur übereinstimmende Schemata sichern Schema; Dadurch wird sowohl das Schema selbst als auch alle seine ausgewählt
enthaltene Objekte. Wenn diese Option nicht angegeben ist, werden alle Nicht-Systemschemata in der
Die Zieldatenbank wird gedumpt. Durch Schreiben mehrerer Schemata können mehrere Schemata ausgewählt werden
-n Schalter. Auch der Schema Der Parameter wird als Muster gemäß interpretiert
Dieselben Regeln, die von den \d-Befehlen von psql verwendet werden (siehe Muster), daher können auch mehrere Schemata verwendet werden
ausgewählt, indem Platzhalterzeichen in das Muster geschrieben werden. Wenn Sie Platzhalter verwenden, be
Achten Sie darauf, das Muster bei Bedarf anzugeben, um zu verhindern, dass sich die Schale ausdehnt
Platzhalter; siehe BEISPIELE.
Note
Wann -n angegeben ist, unternimmt pg_dump keinen Versuch, andere Datenbankobjekte zu sichern
von denen die ausgewählten Schema(s) abhängen könnten. Daher gibt es keine Garantie
dass die Ergebnisse eines spezifischen Schema-Dumps erfolgreich wiederhergestellt werden können
sich selbst in eine saubere Datenbank.
Note
Nicht-Schema-Objekte wie Blobs werden nicht gesichert, wenn -n angegeben. Du kannst hinzufügen
kleckst zurück zur Müllkippe mit dem --kleckse Schalter.
-N Schema
--exclude-schema=Schema
Geben Sie keine Schemata aus, die mit dem übereinstimmen Schema Muster. Das Muster wird interpretiert
nach den gleichen Regeln wie für -n. -N kann zum Ausschluss mehrfach angegeben werden
Schemata, die einem von mehreren Mustern entsprechen.
Wenn beide -n und -N gegeben sind, besteht das Verhalten darin, nur die Schemata zu sichern, die übereinstimmen
mindestens eine -n wechseln, aber nein -N Schalter. Wenn -N erscheint ohne -n, dann Schemata
Abstimmung -N sind von dem, was sonst ein normaler Dump wäre, ausgeschlossen.
-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_dump-Probleme auf ALTER EIGENTÜMER or SET SESSION AUTORISIERUNG Aussagen zu setzen
Eigentum an erstellten Datenbankobjekten. 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.
Diese Option ist nur für das Klartextformat sinnvoll. Für die Archivformate: Sie
Sie können die Option bei Ihrem Anruf angeben pg_restore.
-R
--no-reconnect
Diese Option ist veraltet, wird aber aus Gründen der Abwärtskompatibilität immer noch akzeptiert.
-s
--schema-only
Nur die Objektdefinitionen (Schema) sichern, keine Daten.
Diese Option ist die Umkehrung von --nur Daten. Es ist ähnlich, aber für historische
Gründe nicht identisch mit, Angabe --section=Vordaten --section=Post-Daten.
(Nicht verwechseln mit dem --Schema Option, die das Wort „Schema“ in a . verwendet
andere Bedeutung.)
Informationen zum Ausschließen von Tabellendaten nur für eine Teilmenge der Tabellen in der Datenbank finden Sie unter
--exclude-table-data.
-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 Tabelle
--table=Tabelle
Nur übereinstimmende Tabellen (oder Ansichten, Sequenzen oder Fremdtabellen) ausgeben Tabelle. Mehrere
Tabellen können durch Schreiben mehrerer ausgewählt werden -t Schalter. Auch der Tabelle Parameter ist
wird als Muster gemäß den gleichen Regeln interpretiert, die von den \d-Befehlen von psql verwendet werden (siehe
Muster), so dass auch mehrere Tabellen durch das Eingeben von Platzhalterzeichen ausgewählt werden können
das Muster. Achten Sie bei der Verwendung von Platzhaltern darauf, das Muster bei Bedarf in Anführungszeichen zu setzen
verhindern, dass die Shell die Platzhalter erweitert; siehe BEISPIELE.
Dem -n und -N Schalter haben keine Wirkung, wenn -t wird verwendet, weil Tabellen ausgewählt von -t
wird unabhängig von diesen Schaltern gedumpt, und Nicht-Tabellenobjekte werden nicht gedumpt.
Note
Wann -t angegeben ist, unternimmt pg_dump keinen Versuch, andere Datenbankobjekte zu sichern
von denen die ausgewählten Tabellen abhängen könnten. Daher gibt es keine Garantie
dass die Ergebnisse eines Dumps einer bestimmten Tabelle erfolgreich wiederhergestellt werden können
sich selbst in eine saubere Datenbank.
Note
Das Verhalten der -t Der Switch ist nicht vollständig aufwärtskompatibel mit Versionen vor 8.2
PostgreSQL-Versionen. Früher führte das Schreiben von -t tab dazu, dass alle Tabellen mit dem Namen tab gelöscht wurden, aber
Jetzt wird nur noch das ausgegeben, was in Ihrem Standardsuchpfad sichtbar ist. Um das zu bekommen
altes Verhalten können Sie -t '*.tab' schreiben. Außerdem müssen Sie etwas wie -t schreiben
sch.tab, um eine Tabelle in einem bestimmten Schema auszuwählen, anstelle der alten Schreibweise von
-n sch -t tab.
-T Tabelle
--exclude-table=Tabelle
Geben Sie keine Tabellen aus, die mit dem übereinstimmen Tabelle Muster. Das Muster wird interpretiert
nach den gleichen Regeln wie für -t. -T kann zum Ausschluss mehrfach angegeben werden
Tische, die einem von mehreren Mustern entsprechen.
Wenn beide -t und -T angegeben werden, besteht das Verhalten darin, nur die Tabellen zu sichern, die übereinstimmen
mindestens eine -t wechseln, aber nein -T Schalter. Wenn -T erscheint ohne -t, dann passende Tabellen
-T sind von dem, was sonst ein normaler Dump wäre, ausgeschlossen.
-v
- ausführlich
Gibt den ausführlichen Modus an. Dies führt dazu, dass pg_dump detaillierte Objektkommentare ausgibt und
Start-/Stoppzeiten in die Dump-Datei und Fortschrittsmeldungen in die Standardfehlerdatei.
-V
--Version
Drucken Sie die pg_dump-Version und beenden Sie den Vorgang.
-x
--keine-privilegien
--no-acl
Verhindern Sie das Dumping von Zugriffsrechten (Befehle zum Gewähren/Entziehen).
-Z 0..9
--compress=0..9
Geben Sie die zu verwendende Komprimierungsstufe an. Null bedeutet keine Komprimierung. Für den Brauch
Archivformat, dies spezifiziert die Komprimierung einzelner Tabellendatensegmente und das
Standardmäßig wird die Komprimierung auf einem moderaten Niveau durchgeführt. Für die reine Textausgabe wird ein Wert ungleich Null festgelegt
Durch die Komprimierungsstufe wird die gesamte Ausgabedatei so komprimiert, als wäre dies der Fall
wurde über gzip gefüttert; aber die Standardeinstellung ist, nicht zu komprimieren. Das TAR-Archivformat
unterstützt derzeit überhaupt keine Komprimierung.
--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. Allerdings seit dieser Option
Erzeugt für jede Zeile einen separaten Befehl, der beim erneuten Laden einer Zeile nur einen Fehler verursacht
Diese Zeile geht verloren und nicht der gesamte Tabelleninhalt.
--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_dump an
Fügen Sie Befehle hinzu, um Trigger für die Zieltabellen vorübergehend zu deaktivieren, während die Daten gespeichert werden
wird neu geladen. Verwenden Sie dies, wenn Sie referenzielle Integritätsprüfungen oder andere Auslöser aktiviert haben
die Tabellen, die Sie beim Neuladen 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.
Diese Option ist nur für das Klartextformat sinnvoll. Für die Archivformate: Sie
Sie können die Option bei Ihrem Anruf angeben pg_restore.
--enable-row-security
Diese Option ist nur relevant, wenn der Inhalt einer Tabelle mit einer Zeile ausgegeben wird
Sicherheit. Standardmäßig setzt pg_dump row_security auf „off“, um sicherzustellen, dass alle Daten vorhanden sind
vom Tisch geworfen. Wenn der Benutzer nicht über ausreichende Berechtigungen zum Umgehen der Zeile verfügt
Sicherheit, dann wird ein Fehler ausgegeben. Dieser Parameter weist pg_dump an, ihn festzulegen
row_security stattdessen auf „on“, sodass der Benutzer die Teile des Inhalts sichern kann
Tabelle, auf die sie Zugriff haben.
--exclude-table-data=Tabelle
Geben Sie keine Daten für Tabellen aus, die mit übereinstimmen Tabelle Muster. Das Muster wird interpretiert
nach den gleichen Regeln wie für -t. --exclude-table-data kann mehr gegeben werden als
einmal, um Tabellen auszuschließen, die einem oder mehreren Mustern entsprechen. Diese Option ist nützlich, wenn
Sie benötigen die Definition einer bestimmten Tabelle, obwohl Sie die Daten darin nicht benötigen
es.
Informationen zum Ausschließen von Daten für alle Tabellen in der Datenbank finden Sie unter --schema-only.
--wenn-existiert
Verwenden Sie beim Bereinigen der Datenbank bedingte Befehle (dh fügen Sie eine IF EXISTS-Klausel hinzu)
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.
Da diese Option jedoch für jede Zeile einen separaten Befehl generiert, liegt ein Fehler vor
Das Neuladen einer Zeile führt dazu, dass nur diese Zeile und nicht der gesamte Tabelleninhalt verloren geht.
Beachten Sie, dass die Wiederherstellung möglicherweise vollständig fehlschlägt, wenn Sie die Spaltenreihenfolge geändert haben. Der
--column-inserts Option ist sicher gegen Änderungen der Spaltenreihenfolge, wenn auch noch langsamer.
--lock-wait-timeout=Timeout
Warten Sie nicht ewig, bis Sie zu Beginn des Dumps gemeinsame Tabellensperren erhalten.
Schlägt stattdessen fehl, 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-synchronized-snapshots
Diese Option ermöglicht das Ausführen pg_dump -j gegen einen Server vor 9.2 finden Sie in der Dokumentation
dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. -j Parameter für weitere Details.
--no-tablespaces
Geben Sie keine Befehle aus, um Tablespaces auszuwählen. Mit dieser Option werden alle Objekte
wird in dem Tabellenbereich erstellt, der während der Wiederherstellung der Standard ist.
Diese Option ist nur für das Klartextformat sinnvoll. Für die Archivformate: Sie
Sie können die Option bei Ihrem Anruf angeben pg_restore.
--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. Daten in nicht protokollierten Tabellen werden beim Dumping von einem Standby-Server immer ausgeschlossen.
--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.
--Abschnitt=Abteilungsname
Geben Sie nur den genannten Abschnitt aus. Der Abschnittsname kann sein Vordaten, die Datenerfassung, oder auch Post-Daten.
Diese Option kann mehrmals angegeben werden, um mehrere Abschnitte auszuwählen. Der Standard
besteht darin, alle Abschnitte zu löschen.
Der Datenabschnitt enthält tatsächliche Tabellendaten, Inhalte großer Objekte und die Reihenfolge
Werte. Post-Datenelemente umfassen Definitionen von Indizes, Triggern, Regeln usw
andere Einschränkungen als validierte Prüfeinschränkungen. Zu den Vordatenelementen gehören alle anderen
Datendefinitionselemente.
--serializable-deferrable
Verwenden Sie für den Dump eine serialisierbare Transaktion, um sicherzustellen, dass der verwendete Snapshot korrekt ist
konsistent mit späteren Datenbankständen; aber tun Sie dies, indem Sie auf einen Punkt in der warten
Transaktionsstrom, bei dem keine Anomalien vorliegen können, so dass kein Risiko besteht
Der Dump schlägt fehl oder führt dazu, dass andere Transaktionen mit a zurückgesetzt werden
serialization_failure. Siehe Kapitel 13, Parallelitätskontrolle, in der Dokumentation für
Weitere Informationen zur Transaktionsisolation und Parallelitätskontrolle.
Diese Option ist für einen Dump, der nur für die Notfallwiederherstellung gedacht ist, nicht von Vorteil.
Dies könnte für einen Dump nützlich sein, der zum Laden einer Kopie der Datenbank für die Berichterstellung oder verwendet wird
andere schreibgeschützte Lastverteilung, während die ursprüngliche Datenbank weiterhin aktualisiert wird.
Ohne sie spiegelt der Dump möglicherweise einen Zustand wider, der mit keiner Seriennummer übereinstimmt
Ausführung der schließlich zugesagten Transaktionen. Zum Beispiel bei der Stapelverarbeitung
Wenn bestimmte Techniken verwendet werden, kann es sein, dass ein Stapel im Dump ohne alle Artikel als geschlossen angezeigt wird
die im Batch erscheinen.
Diese Option macht keinen Unterschied, wenn keine Lese-/Schreibtransaktionen aktiv sind
wenn pg_dump gestartet wird. Wenn Lese-/Schreibtransaktionen aktiv sind, der Start des Dumps
kann sich auf unbestimmte Zeit verzögern. Einmal ausgeführt, Leistung mit oder
ohne den Schalter ist das Gleiche.
--snapshot=Snapshotname
Verwenden Sie den angegebenen synchronisierten Snapshot, wenn Sie einen Dump der Datenbank erstellen (siehe
Weitere Einzelheiten finden Sie in Tabelle 9.71, „Snapshot-Synchronisierungsfunktionen“.
Diese Option ist nützlich, wenn der Dump mit einer logischen Replikation synchronisiert werden muss
Slot (siehe Kapitel 46, Logische Dekodierung, in der Dokumentation) oder mit einem gleichzeitigen
Session.
Bei einem parallelen Dump wird der durch diese Option definierte Snapshot-Name verwendet
anstatt einen neuen Schnappschuss zu machen.
--use-set-session-authorization
Ausgabe SQL-Standard SET SESSION AUTORISIERUNG Befehle statt ALTER EIGENTÜMER Befehle
Objekteigentum zu bestimmen. Dies macht den Dump standardkompatibel, aber
Abhängig vom Verlauf der Objekte im Speicherauszug kann es sein, dass die Wiederherstellung nicht ordnungsgemäß erfolgt. Auch,
ein Dump mit SET SESSION AUTORISIERUNG wird sicherlich Superuser-Rechte erfordern
korrekt wiederherstellen, während ALTER EIGENTÜMER erfordert weniger Privilegien.
-?
--help
Hilfe zu pg_dump-Befehlszeilenargumenten anzeigen und beenden.
Die folgenden Befehlszeilenoptionen steuern die Datenbankverbindungsparameter.
-d Datenbankname
--dbname=Datenbankname
Gibt den Namen der Datenbank an, zu der eine Verbindung hergestellt werden soll. Dies ist gleichbedeutend mit einer Angabe
Datenbankname als erstes Nicht-Optionsargument in der Befehlszeile.
Wenn dieser Parameter ein =-Zeichen enthält oder mit einem gültigen URI-Präfix beginnt (postgresql://
oder postgres://), wird es als behandelt conninfo Zeichenfolge. Siehe Abschnitt 31.1, „Datenbank“.
Weitere Informationen finden Sie in der Dokumentation unter „Verbindungssteuerungsfunktionen“.
-h Gastgeber
--host=Gastgeber
Gibt den Hostnamen des Computers an, auf dem der Server ausgeführt wird. Wenn der Wert
beginnt mit einem Schrägstrich, es wird als Verzeichnis für den Unix-Domain-Socket verwendet. Die
Standard wird aus dem genommen PGHOST Umgebungsvariable, falls gesetzt, sonst eine Unix-Domain
Socket-Verbindung wird versucht.
-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_dump zur Eingabe eines Kennworts auffordert, bevor eine Verbindung zu einer Datenbank hergestellt wird.
Diese Option ist niemals unbedingt erforderlich, da pg_dump automatisch zur Eingabe eines Passworts auffordert
wenn der Server eine Passwortauthentifizierung verlangt. Allerdings wird pg_dump a verschwenden
Verbindungsversuch herauszufinden, 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.
--rolle=Rollenname
Gibt einen Rollennamen an, der zum Erstellen des Dumps verwendet werden soll. Diese Option bewirkt, dass pg_dump
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_dump benötigten Privilegien, können es aber
Wechseln Sie in eine Rolle mit den erforderlichen Rechten. Für einige Installationen gibt es eine Richtlinie dagegen
Wenn Sie sich direkt als Superuser anmelden und diese Option verwenden, können Dumps erstellt werden
ohne gegen die Richtlinien zu verstoßen.
PG-DATENBANK
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).
DIAGNOSE
pg_dump wird intern ausgeführt SELECT Aussagen. Wenn Sie Probleme beim Ausführen von pg_dump haben, machen Sie
Stellen Sie sicher, dass Sie Informationen aus der Datenbank auswählen können, indem Sie beispielsweise psql(1).
Außerdem alle von der libpq verwendeten Standardverbindungseinstellungen und Umgebungsvariablen
Front-End-Bibliothek wird angewendet.
Die Datenbankaktivität von pg_dump wird normalerweise vom Statistikkollektor erfasst. Wenn
Dies ist unerwünscht. Sie können den Parameter festlegen track_counts zu falsch über PGOPTIONEN oder unter der
ALTER USER-Befehl.
ANMERKUNG
Wenn Ihr Datenbankcluster über lokale Ergänzungen zur Datenbank template1 verfügt, achten Sie darauf
die Ausgabe von pg_dump in einer wirklich leeren Datenbank wiederherstellen; Andernfalls werden Sie wahrscheinlich bekommen
Fehler aufgrund doppelter Definitionen der hinzugefügten Objekte. Um eine leere Datenbank zu erstellen
Kopieren Sie ohne lokale Zusätze von Vorlage0 nicht Vorlage1, zum Beispiel:
DATENBANK ERSTELLEN foo MIT VORLAGE template0;
Wenn ein Nur-Daten-Dump ausgewählt ist und die Option --disable-triggers verwendet wird, gibt pg_dump aus
Befehle zum Deaktivieren von Triggern für Benutzertabellen vor dem Einfügen der Daten und dann Befehle
um sie nach dem Einfügen der Daten wieder zu aktivieren. Wenn die Wiederherstellung im gestoppt wird
In der Mitte befinden sich die Systemkataloge möglicherweise im falschen Zustand.
Die von pg_dump erstellte Dump-Datei enthält nicht die vom Optimierer verwendeten Statistiken
Treffen Sie Entscheidungen zur Abfrageplanung. Daher ist es ratsam zu laufen ANALYSIEREN nach der Wiederherstellung von a
Dump-Datei, um eine optimale Leistung sicherzustellen; siehe Abschnitt 23.1.3, „Planer aktualisieren“.
Statistics“, in der Dokumentation und Abschnitt 23.1.6, „Der Autovacuum-Daemon“, in der
Weitere Informationen finden Sie in der Dokumentation. Die Dump-Datei enthält auch keine ALTER DATABASE
... SET Befehle; Diese Einstellungen werden von gedumpt pg_dumpall(1), zusammen mit Datenbankbenutzern
und andere installationsweite Einstellungen.
Da pg_dump zum Übertragen von Daten an neuere Versionen von PostgreSQL verwendet wird, ist die Ausgabe von
Es ist zu erwarten, dass pg_dump in PostgreSQL-Serverversionen geladen wird, die neuer als die von pg_dump sind
Ausführung. pg_dump kann auch Dumps von PostgreSQL-Servern erstellen, die älter als seine eigene Version sind.
(Derzeit werden Server bis Version 7.0 unterstützt.) Allerdings kann pg_dump keinen Dump erstellen
PostgreSQL-Server, die neuer als die eigene Hauptversion sind; Vielmehr wird es sich weigern, es überhaupt zu versuchen
als das Risiko einzugehen, einen ungültigen Dump zu erstellen. Außerdem kann nicht garantiert werden, dass die Ausgabe von pg_dump möglich ist
auf einen Server einer älteren Hauptversion geladen – auch nicht, wenn der Dump von einem stammt
Server dieser Version. Das Laden einer Dump-Datei auf einen älteren Server erfordert möglicherweise manuelle Schritte
Bearbeiten der Dump-Datei, um Syntax zu entfernen, die der ältere Server nicht versteht.
Beispiele:
So sichern Sie eine Datenbank namens mydb in einer SQL-Skriptdatei:
$ pg_dump mydb > db.sql
Um ein solches Skript erneut in eine (frisch erstellte) Datenbank namens newdb zu laden:
$ psql -d neudb -f db.sql
So sichern Sie eine Datenbank in einer Archivdatei mit benutzerdefiniertem Format:
$ pg_dump -Fc mydb > db.dump
So sichern Sie eine Datenbank in einem Archiv im Verzeichnisformat:
$ pg_dump -Fd mydb -f dumpdir
So sichern Sie eine Datenbank parallel zu 5 Worker-Jobs in einem Archiv im Verzeichnisformat:
$ pg_dump -Fd mydb -j 5 -f dumpdir
So laden Sie eine Archivdatei erneut in eine (frisch erstellte) Datenbank namens newdb:
$ pg_restore -d neudb db.dump
So sichern Sie eine einzelne Tabelle mit dem Namen „mytab“:
$ pg_dump -t mytab mydb > db.sql
Um alle Tabellen zu sichern, deren Namen im Detroit-Schema mit „emp“ beginnen, mit Ausnahme der Tabelle
mit dem Namen „mitarbeiter_log“:
$ pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql
Um alle Schemata zu sichern, deren Namen mit „east“ oder „west“ beginnen und mit „gsm“ enden, mit Ausnahme aller Schemata
Schemata, deren Namen das Wort test enthalten:
$ pg_dump -n 'east*gsm' -n 'west*gsm' -N '*prüfen*' mydb > db.sql
Das Gleiche gilt, wobei die Notation regulärer Ausdrücke verwendet wird, um die Schalter zu konsolidieren:
$ pg_dump -n '(Ost|West)*gsm' -N '*prüfen*' mydb > db.sql
So sichern Sie alle Datenbankobjekte außer Tabellen, deren Namen mit ts_ beginnen:
$ pg_dump -T 'ts_*' mydb > db.sql
Zur Angabe eines Namens in Groß- oder Großbuchstaben -t und zugehörige Schalter, müssen Sie
Setzen Sie den Namen in doppelte Anführungszeichen. Andernfalls wird es in Kleinbuchstaben gefaltet (siehe Muster). Aber doppelt
Anführungszeichen sind eine Besonderheit der Shell und müssen daher wiederum in Anführungszeichen gesetzt werden. Also, um eine Single zu entsorgen
Um eine Tabelle mit einem Namen in gemischter Groß- und Kleinschreibung zu erstellen, benötigen Sie so etwas wie
$ pg_dump -t „\“MixedCaseName\““ mydb > mytab.sql
Verwenden Sie pg_dump online über die Dienste von onworks.net