GoGPT Best VPN GoSearch

OnWorks-Favicon

pg_restore - Online in der Cloud

Führen Sie pg_restore im kostenlosen OnWorks-Hosting-Provider über Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator aus

Dies ist der Befehl pg_restore, der im kostenlosen OnWorks-Hosting-Provider mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


pg_restore - Wiederherstellen einer PostgreSQL-Datenbank aus einer von pg_dump erstellten Archivdatei

ZUSAMMENFASSUNG


pg_restore [Anschlussmöglichkeit...] [ganz ohne irgendetwas tun oder drücken zu müssen....] [Dateinamen]

BESCHREIBUNG


pg_restore ist ein Dienstprogramm zum Wiederherstellen einer PostgreSQL-Datenbank aus einem Archiv, das von . erstellt wurde
pg_dump(1) in einem der Nicht-Klartext-Formate. Es wird die Befehle ausgeben, die erforderlich sind, um
Rekonstruieren Sie die Datenbank in dem Zustand, in dem sie sich zum Zeitpunkt des Speicherns befand. Das Archiv
Dateien erlauben es pg_restore auch, selektiv zu sein, was wiederhergestellt wird, oder sogar neu anzuordnen
Gegenstände vor der Wiederherstellung. Die Archivdateien sind so konzipiert, dass sie übergreifend portierbar sind
Architekturen.

pg_restore kann in zwei Modi betrieben werden. Wenn ein Datenbankname angegeben wird, verbindet pg_restore
in diese Datenbank und stellt Archivinhalte direkt in die Datenbank wieder her. Ansonsten a
Skript mit den SQL-Befehlen, die zum Neuaufbau der Datenbank erforderlich sind, wird erstellt und
in eine Datei oder Standardausgabe geschrieben. Diese Skriptausgabe entspricht dem Klartext
Ausgabeformat von pg_dump. Einige der Optionen zur Steuerung der Ausgabe sind daher
analog zu pg_dump-Optionen.

Offensichtlich kann pg_restore keine Informationen wiederherstellen, die nicht in der Archivdatei vorhanden sind.
Zum Beispiel, wenn die Archivierung mit dem "Dump data as" erstellt wurde INSERT Befehle“ Option,
pg_restore kann die Daten nicht laden mit COPY Aussagen.

OPTIONAL


pg_restore akzeptiert die folgenden Befehlszeilenargumente.

Dateinamen
Gibt den Speicherort der Archivdatei (oder des Verzeichnisses für ein Verzeichnisformat) an
Archiv) wiederhergestellt werden. Wenn nicht angegeben, wird die Standardeingabe verwendet.

-a
--nur Daten
Stellen Sie nur die Daten wieder her, nicht das Schema (Datendefinitionen). Tabellendaten, große Objekte,
und Sequenzwerte werden wiederhergestellt, falls im Archiv vorhanden.

Diese Option ist ähnlich, aber aus historischen Gründen nicht identisch mit der Angabe von
--section=Daten.

-c
--sauber
Bereinigen (löschen) Sie Datenbankobjekte, bevor Sie sie neu erstellen. (Wenn nicht --wenn-existiert wird genutzt,
Dies kann zu harmlosen Fehlermeldungen führen, wenn keine Objekte in vorhanden waren
die Zieldatenbank.)

-C
--schaffen
Erstellen Sie die Datenbank, bevor Sie sie wiederherstellen. Wenn --sauber ist auch angegeben, drop und
Erstellen Sie die Zieldatenbank neu, bevor Sie eine Verbindung zu ihr herstellen.

Wenn diese Option verwendet wird, wird die Datenbank mit dem Namen -d wird nur verwendet, um die Initiale auszugeben
DROP DATABASE und CREATE DATABASE Befehle. Alle Daten werden in der Datenbank wiederhergestellt
Name, der im Archiv erscheint.

-d Datenbankname
--dbname=Datenbankname
Verbindung zur Datenbank herstellen Datenbankname und direkt in die Datenbank wiederherstellen.

-e
--exit-on-error
Beenden Sie, wenn beim Senden von SQL-Befehlen an die Datenbank ein Fehler auftritt. Die
Standard ist, fortzufahren und am Ende der Wiederherstellung eine Fehleranzahl anzuzeigen.

-f Dateinamen
--Datei=Dateinamen
Geben Sie die Ausgabedatei für das generierte Skript oder für die Auflistung bei Verwendung mit . an -l.
Standard ist die Standardausgabe.

-F Format
--format=Format
Geben Sie das Format des Archivs an. Eine Angabe des Formats ist nicht erforderlich, da
pg_restore bestimmt das Format automatisch. Falls angegeben, kann es sich um eines der
wie folgt vor:

c
Original
Das Archiv hat das benutzerdefinierte Format von pg_dump.

d
Verzeichnis
Das Archiv ist ein Verzeichnisarchiv.

t
Teer
Das Archiv ist ein Teer Archiv.

-I Index
--index=Index
Nur die Definition des benannten Index wiederherstellen. Mehrere Indizes können mit . angegeben werden
mehrere -I Schalter.

-j Anzahl der Arbeitsplätze
--jobs=Anzahl der Arbeitsplätze
Führen Sie die zeitaufwendigsten Teile von pg_restore aus – diejenigen, die Daten laden, erstellen
Indizes erstellen oder Einschränkungen erstellen – mit mehreren gleichzeitigen Jobs. Diese Option kann
Verkürzen Sie die Zeit für die Wiederherstellung einer großen Datenbank auf einem Server, der auf einem läuft, drastisch
Multiprozessor-Maschine.

Jeder Job ist je nach Betriebssystem ein Prozess oder ein Thread und verwendet
separate Verbindung zum Server.

Der optimale Wert für diese Option hängt vom Hardware-Setup des Servers ab, von der
Client und des Netzwerks. Zu den Faktoren gehören die Anzahl der CPU-Kerne und die Festplatte
erstellen. Ein guter Ausgangspunkt ist die Anzahl der CPU-Kerne auf dem Server, aber Werte
größer kann in vielen Fällen auch zu schnelleren Wiederherstellungszeiten führen. Natürlich,
zu hohe Werte führen aufgrund von Thrashing zu einer verminderten Leistung.

Bei dieser Option werden nur die benutzerdefinierten und Verzeichnisarchivformate unterstützt. Die
Eingabe muss eine normale Datei oder ein normales Verzeichnis sein (keine Pipe). Diese Option ist
ignoriert, wenn ein Skript ausgegeben wird, anstatt sich direkt mit einem Datenbankserver zu verbinden.
Außerdem können mehrere Jobs nicht zusammen mit der Option verwendet werden --Einzeltransaktion.

-l
--aufführen
Listen Sie den Inhalt des Archivs auf. Die Ausgabe dieser Operation kann als Eingabe verwendet werden für
die -L Möglichkeit. Beachten Sie, dass bei Filterschaltern wie -n or -t werden mit verwendet -lSie
schränkt die aufgelisteten Elemente ein.

-L Listendatei
--use-list=Listendatei
Stellen Sie nur die Archivelemente wieder her, die in aufgeführt sind Listendatei, und stellen Sie sie wieder her
die Reihenfolge, in der sie in der Datei erscheinen. Beachten Sie, dass bei Filterschaltern wie -n or -t
werden mit verwendet -L, werden sie die wiederhergestellten Elemente weiter einschränken.

Listendatei wird normalerweise erstellt, indem die Ausgabe eines vorherigen -l Betrieb. Linien
kann verschoben oder entfernt werden und kann auch auskommentiert werden, indem ein Semikolon (;) bei . platziert wird
der Zeilenanfang. Beispiele siehe unten.

-n Namensraum
--schema=Schema
Stellen Sie nur Objekte wieder her, die sich im benannten Schema befinden. Es können mehrere Schemata angegeben werden
mit mehreren -n Schalter. Dies ist kombinierbar mit dem -t Option zum Wiederherstellen nur a
bestimmten Tisch.

-O
--kein Besitzer
Geben Sie keine Befehle aus, um den Besitz von Objekten so festzulegen, dass sie mit der ursprünglichen Datenbank übereinstimmen. Von
Standard, pg_restore-Probleme ALTER EIGENTÜMER or SET SESSION AUTORISIERUNG Aussagen zu setzen
Eigentum an erstellten Schemaelementen. Diese Anweisungen werden fehlschlagen, es sei denn, die Initiale
Die Verbindung zur Datenbank wird von einem Superuser (oder dem gleichen Benutzer, der alle besitzt) hergestellt
die Objekte im Skript). Mit -O, jeder Benutzername kann für die Initiale verwendet werden
Verbindung, und dieser Benutzer besitzt alle erstellten Objekte.

-P Funktionsname (Argtyp [, ...])
--Funktion=Funktionsname (Argtyp [, ...])
Stellen Sie nur die benannte Funktion wieder her. Achten Sie auf die Schreibweise des Funktionsnamens und der Argumente
genau so, wie sie im Inhaltsverzeichnis der Dump-Datei erscheinen. Mehrere Funktionen können sein
mit mehreren angegeben -P Schalter.

-R
--no-reconnect
Diese Option ist veraltet, wird aber aus Gründen der Abwärtskompatibilität immer noch akzeptiert.

-s
--schema-only
Stellen Sie nur das Schema (Datendefinitionen) wieder her, keine Daten, soweit Schema
Einträge sind im Archiv vorhanden.

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.)

-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.

-t Tabelle
--table=Tabelle
Stellen Sie nur die Definition und/oder Daten der benannten Tabelle wieder her. Es können mehrere Tabellen angegeben werden
mit mehreren -t Schalter. Dies ist kombinierbar mit dem -n Option zur Angabe von a
Schema.

-T auslösen
--trigger=auslösen
Nur benannte Trigger wiederherstellen. Mehrere Trigger können mit multiple . angegeben werden -T
Schalter.

-v
- ausführlich
Gibt den ausführlichen Modus an.

-V
--Version
Drucken Sie die Version von pg_restore aus und beenden Sie sie.

-x
--keine-privilegien
--no-acl
Verhindern Sie die Wiederherstellung von Zugriffsrechten (Befehle gewähren/entziehen).

-1
--Einzeltransaktion
Führen Sie die Wiederherstellung als einzelne Transaktion aus (d. h. wickeln Sie die ausgegebenen Befehle in
START/VERPFLICHTEN). Dadurch wird sichergestellt, dass entweder alle Befehle erfolgreich abgeschlossen werden oder nein
Änderungen angewendet werden. Diese Option impliziert --exit-on-error.

--disable-triggers
Diese Option ist nur relevant, wenn eine reine Datenwiederherstellung durchgeführt wird. Es weist an
pg_restore zum Ausführen von Befehlen zum vorübergehenden Deaktivieren von Triggern auf den Zieltabellen
während die Daten neu geladen werden. Verwenden Sie dies, wenn Sie referenzielle Integritätsprüfungen oder andere durchführen
Trigger für die Tabellen, die Sie während des erneuten Ladens von Daten nicht aufrufen möchten.

Derzeit werden die ausgegebenen Befehle für --disable-triggers muss als Superuser erfolgen. So
Sie sollten auch einen Superuser-Namen mit angeben -S oder führen Sie pg_restore vorzugsweise als a aus
PostgreSQL-Superuser.

--enable-row-security
Diese Option ist nur relevant, wenn Sie den Inhalt einer Tabelle mit Zeilen . wiederherstellen
Sicherheit. Standardmäßig setzt pg_restore row_security auf off, um sicherzustellen, dass alle Daten
wird in der Tabelle wiederhergestellt. Wenn der Benutzer nicht über ausreichende Berechtigungen zum Umgehen verfügt
Zeilensicherheit, dann wird ein Fehler ausgegeben. Dieser Parameter weist pg_restore an, zu setzen
row_security auf on, damit der Benutzer versuchen kann, den Inhalt von wiederherzustellen
die Tabelle mit aktivierter Zeilensicherheit. Dies kann immer noch fehlschlagen, wenn der Benutzer nicht über
das Recht, die Zeilen aus dem Dump in die Tabelle einzufügen.

Beachten Sie, dass diese Option derzeit auch erfordert, dass der Dump in INSERT formatieren, wie COPY TO
unterstützt keine Zeilensicherheit.

--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.

--no-data-for-failed-tables
Standardmäßig werden Tabellendaten auch dann wiederhergestellt, wenn der Erstellungsbefehl für die Tabelle fehlgeschlagen ist
(zB weil es bereits existiert). Bei dieser Option werden Daten für eine solche Tabelle übersprungen.
Dieses Verhalten ist sinnvoll, wenn die Zieldatenbank bereits die gewünschte Tabelle enthält
Inhalt. Zum Beispiel Hilfstabellen für PostgreSQL-Erweiterungen wie PostGIS
möglicherweise bereits in die Zieldatenbank geladen; die Angabe dieser Option verhindert
doppelte oder veraltete Daten in sie geladen werden.

Diese Option ist nur wirksam, wenn Sie direkt in eine Datenbank wiederherstellen, nicht wenn
Ausgabe von SQL-Skripten.

--no-security-labels
Geben Sie keine Befehle zum Wiederherstellen von Sicherheitsetiketten aus, selbst wenn das Archiv sie enthält.

--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.

--Abschnitt=Abteilungsname
Stellen Sie nur den benannten Abschnitt wieder her. Der Abschnittsname kann sein Vordaten, frustrierten oder Post-Daten.
Diese Option kann mehrmals angegeben werden, um mehrere Abschnitte auszuwählen. Der Standard
besteht darin, alle Abschnitte wiederherzustellen.

Der Datenabschnitt enthält tatsächliche Tabellendaten sowie Definitionen großer Objekte.
Post-Datenelemente bestehen aus Definitionen von Indizes, Triggern, Regeln und Einschränkungen
andere als validierte Check-Constraints. Vordatenelemente bestehen aus allen anderen Daten
Definitionsgegenstände.

--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
je nach Verlauf der Objekte im Dump wird möglicherweise nicht richtig wiederhergestellt.

-?
--help
Hilfe zu pg_restore-Befehlszeilenargumenten anzeigen und beenden.

pg_restore akzeptiert auch die folgenden Befehlszeilenargumente für Verbindungsparameter:

-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_restore nach einem Kennwort fragt, bevor eine Verbindung zu einer Datenbank hergestellt wird.

Diese Option ist nie unbedingt erforderlich, da pg_restore automatisch nach a fragt
password, wenn der Server eine Kennwortauthentifizierung verlangt. pg_restore wird jedoch verschwenden
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.

--rolle=Rollenname
Gibt einen Rollennamen an, der zum Durchführen der Wiederherstellung verwendet werden soll. Diese Option verursacht pg_restore
ausstellen a SET ROLLE Rollenname Befehl nach der Verbindung mit der Datenbank. Es ist nützlich
wenn der authentifizierte Benutzer (angegeben von -U) fehlen die von pg_restore benötigten Privilegien,
kann aber zu einer Rolle mit den erforderlichen Rechten wechseln. Einige Installationen haben eine Richtlinie
gegen die direkte Anmeldung als Superuser, und die Verwendung dieser Option ermöglicht Wiederherstellungen zu
durchgeführt werden, ohne gegen die Richtlinie zu verstoßen.


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).
Es liest jedoch nicht PG-DATENBANK wenn kein Datenbankname angegeben wird.

DIAGNOSE


Wenn eine direkte Datenbankverbindung mit dem -d Option, pg_restore intern
führt SQL-Anweisungen aus. Wenn Sie Probleme beim Ausführen von pg_restore haben, stellen Sie sicher, dass Sie in der Lage sind
um Informationen aus der Datenbank auszuwählen, z. psql(1). Auch jede Vorgabe
Verbindungseinstellungen und Umgebungsvariablen, die von der libpq-Frontend-Bibliothek verwendet werden,
.

ANMERKUNG


Wenn Ihre Installation lokale Ergänzungen zur Datenbank template1 enthält, achten Sie beim Laden
die Ausgabe von pg_restore in eine wirklich leere Datenbank; sonst bekommst du wahrscheinlich
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;

Die Einschränkungen von pg_restore werden unten beschrieben.

· Beim Wiederherstellen von Daten in eine bereits vorhandene Tabelle und die Option --disable-triggers wird genutzt,
pg_restore gibt Befehle aus, um Trigger auf Benutzertabellen zu deaktivieren, bevor die eingefügt werden
data und gibt dann Befehle aus, um sie nach dem Einfügen der Daten wieder zu aktivieren. Wenn die
Die Wiederherstellung wird mittendrin gestoppt, die Systemkataloge könnten falsch liegen
Zustand.

· pg_restore kann große Objekte nicht selektiv wiederherstellen; zum Beispiel nur die für a
bestimmten Tisch. Wenn ein Archiv große Objekte enthält, werden alle großen Objekte
wiederhergestellt, oder keiner von ihnen, wenn sie über . ausgeschlossen werden -L, -t, oder andere Optionen.

Siehe auch die pg_dump(1) Dokumentation für Details zu den Einschränkungen von pg_dump.

Nach der Wiederherstellung ist es ratsam zu laufen ANALYSIEREN auf jeder wiederhergestellten Tabelle, damit der Optimierer
nützliche Statistiken; siehe Abschnitt 23.1.3, „Aktualisieren der Plannerstatistik“, in der Dokumentation
und Abschnitt 23.1.6, „Der Autovacuum-Daemon“, in der Dokumentation für weitere Informationen.

Beispiele:


Angenommen, wir haben eine Datenbank namens mydb in eine Dump-Datei mit benutzerdefiniertem Format abgelegt:

$ pg_dump -Fc mydb > db.dump

So löschen Sie die Datenbank und erstellen sie aus dem Dump neu:

$ dropdb mydb
$ pg_restore -C -d Postgres db.dump

Die im genannte Datenbank -d switch kann eine beliebige im Cluster vorhandene Datenbank sein;
pg_restore verwendet es nur, um die CREATE DATABASE Befehl für mydb. Mit -C, Daten sind
immer in den Datenbanknamen zurückgeschrieben, der in der Dump-Datei erscheint.

Um den Dump neu in eine neue Datenbank namens newdb zu laden:

$ Erstelltb -T Vorlage0 neudb
$ pg_restore -d neudb db.dump

Beachten Sie, dass wir nicht verwenden -C, und verbinden Sie sich stattdessen direkt mit der Datenbank, in die wiederhergestellt werden soll.
Beachten Sie auch, dass wir die neue Datenbank von template0 und nicht von template1 klonen, um sicherzustellen, dass es
zunächst leer.

Um Datenbankelemente neu anzuordnen, muss zuerst das Inhaltsverzeichnis der
Archiv:

$ pg_restore -l db.dump > db.liste

Die Auflistungsdatei besteht aus einer Kopfzeile und einer Zeile für jeden Artikel, zB:

;
; Archiv erstellt am Mon Sep 14 13:55:39 2009
; Datenbankname: DBDEMOS
; Inhaltsverzeichnis-Einträge: 81
; Kompression: 9
; Dump-Version: 1.10-0
; Format: BENUTZERDEFINIERT
; Ganzzahl: 4 Byte
; Offset: 8 Byte
; Aus der Datenbankversion gedumpt: 8.3.5
; Gedumpt von pg_dump-Version: 8.3.8
;
;
; Ausgewählte Inhaltsverzeichniseinträge:
;
3; 2615 2200 SCHEMA - öffentlicher Pascha
1861; 0 0 KOMMENTAR - SCHEMA öffentlicher Pascha
1862; 0 0 ACL - öffentlicher Pascha
317; 1247 17715 TYP öffentlicher zusammengesetzter Pasha
319; 1247 25899 DOMAIN public domain0 pascha

Semikolons beginnen einen Kommentar, und die Nummern am Zeilenanfang beziehen sich auf das interne
jedem Artikel zugewiesene Archiv-ID.

Zeilen in der Datei können auskommentiert, gelöscht und neu angeordnet werden. Zum Beispiel:

10; 145433 TABLE map_resolutions postgres
;2; 145344 TABELLE Arten postgres
;4; 145359 TABELLE nt_header postgres
6; 145402 TABELLE Spezies_Datensätze postgres
;8; 145416 TABELLE ss_old postgres

könnte als Eingabe für pg_restore verwendet werden und würde nur die Elemente 10 und 6 in dieser Reihenfolge wiederherstellen:

$ pg_restore -L db.liste db.dump

Verwenden Sie pg_restore online mit den onworks.net-Diensten


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad




×
Werbung
❤ ️Hier einkaufen, buchen oder kaufen – kostenlos, damit die Dienste kostenlos bleiben.