Erstens, ein Haftungsausschluss. Dieser Beitrag bietet einen allgemeinen Leitfaden zum Sichern einer Postgres-Datenbanktabelle. Die bereitgestellten Beispiele beziehen sich nicht auf eine bestimmte Tabelle oder Datenbank. Wenn Sie versuchen, eine bestimmte Tabelle zu sichern, sollten Sie auch die Tabellen sichern, die sich auf die ursprünglichen Tabellen beziehen. Da Postgres eine relationale Datenbank ist, wird es immer Verweise zwischen einer Anzahl von Tabellen geben.
Dies ist ein ‚Wie man‘-Dokument, das nur Beispielbefehle gibt; wie es tatsächlich gemacht wird, hängt ausschließlich von der Person ab, die es tut, und von den spezifischen Anwendungsfällen. Bewahren Sie immer die Integrität der Daten, die Sie sichern möchten. Das Sichern der gesamten Datenbank ist immer eine sichere Option, aber beim Sichern bestimmter Tabellen muss man vorsichtig sein.
SQL-Dump/pg_dump:
Die Idee hinter der SQL-Dump-Methode besteht darin, eine Textdatei mit SQL-Befehlen zu generieren, die, wenn sie wieder an den Server zurückgegeben werden, die Datenbank im gleichen Zustand wie zum Zeitpunkt des Dumps wiederherstellt. PostgreSQL bietet das Dienstprogramm pg_dump zu diesem Zweck an.
pg_dump ist ein effektives und umfassendes Tool zur Sicherung von Postgres-Datenbanken und zur Verwendung der Sicherungen, um die Postgres-Datenbank wiederherzustellen. Es ist jedoch nicht nur auf Datenbanken beschränkt. Wir können pg_dump verwenden, um Tabellen zu sichern und dann diese zur Wiederherstellung einzelner Tabellen zu verwenden. Mit pg_dump können Sie die lokale Datenbank sichern und auf einer entfernten Datenbank wiederherstellen.
So sichern Sie die Postgres-Datenbank :
Sichern Sie eine Postgres-Tabelle:
$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql
Der obige Befehl ist ein Beispiel dafür, wie man eine bestimmte Tabelle aus einer Postgres-Datenbank sichert. Mit dem obigen Befehl sichern wir die Tabelle „orgs“ im Schema „maincontrol“ aus der Datenbank „pe“ in die Datei ms_table.sql. Um eine bestimmte Tabelle zu sichern, verwenden Sie die Option –table TABLENAME im pg_dump-Befehl. Wenn es gleiche Tabellennamen in verschiedenen Schemata gibt, verwenden Sie die Option –schema SCHEMANAME.
Sichern Sie eine bestimmte Postgres-Datenbank :
$ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql
Dies ist ein Beispiel für das Sichern einer bestimmten Postgres-Datenbank. Mit dem obigen Befehl sichern wir die Datenbank für Message Central „pe“ in die Datei pe_dump.sql. Die Sicherungsdatei enthält CREATE TABLE-, ALTER TABLE- und COPY-Befehle für alle Tabellen in der Datenbank „pe“.
Sichern Sie alle Postgres-Datenbanken :
$ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql
Sie können alle Datenbanken mit dem Befehl pg_dumpall sichern. Der obige Befehl erstellt einen Dump aller Datenbanken, die auf der Postgres-Instanz laufen, die auf einem bestimmten Server ausgeführt wird. Um alle Datenbanken aufzulisten, die gesichert wurden, verwenden Sie den Befehl grep "^[\]connect" all.sql.
So stellen Sie die Postgres-Datenbank wieder her
Stellen Sie eine Postgres-Tabelle wieder her :
$ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe
Der obige Befehl installiert die Tabelle, die in der Datei ms_table.sql gesichert wurde, in der Datenbank „pe“. Stellen Sie sicher, dass diese Tabelle nicht bereits existiert, oder Sie erhalten eine Reihe von „bereits vorhanden“-Fehlern. Dieser Befehl erstellt die Tabelle und exportiert alle Daten in die neu erstellte Tabelle.
Stellen Sie eine Postgres-Datenbank wieder her :
$ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql
Ähnlich wie bei der Wiederherstellung der Tabelle können wir den obigen Befehl verwenden, um die gesamte Datenbank wiederherzustellen. Hier stellen wir die Datenbank „pe“ mit der Datei pe_dump.sql wieder her, die wir beim Sichern der Datenbank im oben beschriebenen Backup-Abschnitt erstellt hatten.
Stellen Sie alle Datenbanken wieder her :
$ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql
Stellen Sie alle Datenbanken mit dem obigen Befehl wieder her. „all_dump.sql“ war die Datei, die mit pg_dumpall erstellt wurde. Der obige Befehl gibt uns alle Postgres-Datenbanken im exacten Zustand zurück, in dem sie sich befanden, als ein Dump vom ursprünglichen Datenbankserver genommen wurde.