So sichern und wiederherstellen Sie eine PostgreSQL -Datenbank

So sichern und wiederherstellen Sie eine PostgreSQL -Datenbank

In einer Produktionsumgebung, egal wie groß oder klein Sie sind PostgreSQL Die Datenbank kann sein, dass regelmäßig zurück ist, ist ein wesentlicher Aspekt der Datenbankverwaltung. In diesem Artikel erfahren Sie, wie Sie eine PostgreSQL -Datenbank sichern und wiederherstellen können.

Wir gehen davon aus, dass Sie bereits über eine funktionierende Installation des PostgreSQL -Datenbanksystems verfügen. Wenn nicht, lesen Sie unsere folgenden Artikel zur Installation PostgreSQL Auf Ihrer Linux -Verteilung.

  • So installieren Sie Postgresql und Pgadmin4 in Ubuntu 20.04
  • So installieren Sie Postgresql und Pgadmin in CentOS 8
  • So installieren Sie Postgresql und Pgadmin in RHEL 8

Lass uns anfangen…

Sicherung einer einzelnen Postgresql -Datenbank

PostgreSQL Bietet die pg_dump Dienstprogramm, mit dem Sie Datenbanken sichern können. Es generiert eine Datenbankdatei mit SQL -Befehlen in einem Format, das in Zukunft leicht wiederhergestellt werden kann.

Sichern, a PostgreSQL Datenbank, melden Sie sich zunächst bei Ihrem Datenbankserver an und wechseln Sie dann zum Postgres Benutzerkonto und ausführen pg_dump wie folgt (ersetzen Tecmintdb Mit dem Namen der Datenbank, die Sie sichern möchten). Standardmäßig ist das Ausgabeformat eine SQL-Skriptdatei mit Klartext.

$ pg_dump Tecmintdb > Tecmintdb.sql 

Der pg_dump Unterstützt auch andere Ausgangsformate. Sie können das Ausgangsformat mit dem angeben -F Option, wo C bedeutet Archivdatei für benutzerdefinierte Format, D bedeutet Verzeichnisformatarchiv und T bedeutet TAR -Format -Archivdatei: Alle Formate sind für die Eingabe in die Eingabe geeignet pg_restore.

Zum Beispiel:

$ pg_dump -f c tecmintdb> tecmintdb.Dump oder $ PG_DUMP -f TECMINTDB> tecmintdb.Teer 

Verwenden Sie die Ausgabe im Verzeichnisausgangsformat, um die Ausgangsformat auszugeben -F Flag (mit dem die Ausgabedatei angegeben wird), um das Zielverzeichnis anstelle einer Datei anzugeben. Das Verzeichnis, das von erstellt wird von pg_dump muss nicht existieren.

$ pg_dump -f d tecmintdb -f tecmintdumpdir 

Alle zu sichern PostgreSQL Datenbanken verwenden Sie die pg_dumpall Werkzeug wie gezeigt.

$ PG_DUMPALL> All_pg_dbs.sql 

Sie können die Müllkippe verwenden PSQL wie gezeigt.

$ PSQL -f All_pg_dbs.SQL Postgres 

Wiederherstellung einer PostgreSQL -Datenbank

A PostgreSQL Datenbank können Sie die verwenden PSQL oder pg_restore Versorgungsunternehmen. PSQL wird verwendet, um Textdateien wiederherzustellen, die durch erstellt wurden pg_dump wohingegen pg_restore wird verwendet, um eine PostgreSQL -Datenbank aus einem Archiv wiederherzustellen, das von erstellt wurde pg_dump In einem der Nicht-Text-Formate (benutzerdefinierte, arb oder verzeichnis).

Hier ist ein Beispiel für die Wiederherstellung einer einfachen Textdatei -Dump:

$ psql Tecmintdb < Tecmintdb.sql 

Wie oben erwähnt, ist ein Custom-Format-Dump kein Skript für PSQL, Es muss also mit wiederhergestellt werden pg_restore wie gezeigt.

$ pg_restore -d tecmintdb tecmintdb.Dump oder $ pg_restore -d tecmintdb tecmintdb.Tecmintdb tecmintdumpdir 

Sicherung großer PostgreSQL -Datenbanken

Wenn die von Ihnen unterstützende Datenbank groß ist und Sie eine ziemlich kleinere Ausgabedatei erstellen möchten, können Sie einen komprimierten Dump ausführen, in dem Sie die Ausgabe von filtern müssen pg_dump über ein Komprimierungswerkzeug wie z gzip oder eines Ihrer Favoriten:

$ pg_dump Tecmintdb | gzip> Tecmintdb.gz 

Wenn die Datenbank extrem groß ist, können Sie parallel durch Dumping ablegen number_of_jobs Tabellen gleichzeitig verwenden die -J Flagge, wie gezeigt.

$ pg_dump -f d -j 5 -f tecmintdumpdir 

Es ist wichtig zu beachten.

Backup Remote PostgreSQL -Datenbanken

pg_dump ist ein reguläres PostgreSQL -Client -Tool, es unterstützt Vorgänge auf Remote -Datenbankservern. Um den Remote -Datenbankserver anzugeben pg_dump Verwenden Sie die Befehlszeilenoptionen -H Um den Remote -Host anzugeben und -P Gibt den Remote -Port an, den der Datenbankserver anhört. Außerdem verwenden Sie die -U Flag, um den Namen des Datenbankrollennamens an anzugeben, um eine Verbindung herzustellen.

Denken Sie daran zu ersetzen 10.10.20.10 Und 5432 Und Tecmintdb Mit Ihrer Remote -Host -IP -Adresse oder Ihrem Hostnamen, Datenbankport bzw. Datenbanknamen.

$ pg_dump -u tecmint -h 10.10.20.10 -p 5432 Tecmintdb> Tecmintdb.sql 

Stellen Sie sicher, dass der Benutzer, der remote verbindet.

PostgreSQL -Datenbankverbindungsfehler

Es ist auch möglich, eine Datenbank direkt von einem Server auf einen anderen zu entfernen. Verwenden Sie die pg_dump Und PSQL Dienstprogramme wie gezeigt.

$ pg_dump -u tecmint -h 10.10.20.10 tecmintdb | PQSL -U Tecmint -h 10.10.20.30 Tecmintdb 

Auto Backup PostgreSQL -Datenbank mit einem Cron -Job

Sie können in regelmäßigen Abständen Backups mithilfe von Mitarbeitern durchführen Cron Arbeitsplätze. Cron Jobs sind ein häufig verwendetes Mittel zur Planung verschiedener Arten von Aufgaben, die auf einem Server ausgeführt werden können.

Sie können einen Cron -Job für die Automatisierung konfigurieren PostgreSQL Datenbanksicherung wie folgt wie folgt. Beachten Sie, dass Sie die folgenden Befehle als Postgresql -Superuser ausführen müssen:

$ mkdir -p/srv/backups/Datenbanken 

Führen Sie als nächstes den folgenden Befehl aus, um das Crontab zu bearbeiten, um einen neuen Cron -Job hinzuzufügen.

$ crontab -e 

Kopieren Sie die folgende Zeile am Ende des Crontab. Sie können eines der oben erläuterten Dump -Formate verwenden.

0 0 * * * pg_dump -u postgres tecmintdb>/srv/backups/postgres/tecmintdb.sql 

Speichern Sie die Datei und beenden Sie.

Der Cron -Service wird diesen neuen Job automatisch ohne Neustart ausführen. Und dieser Cron -Job läuft jeden Tag um Mitternacht, er ist eine Mindestlösung für die Sicherungsaufgabe.

Weitere Informationen zum Planen von Cron -Jobs finden Sie unter: So erstellen und verwalten Sie Cron Jobs unter Linux

Das war es fürs Erste! Es ist eine gute Idee, Daten zu einem Teil Ihrer Datenbankverwaltungsroutine zu machen. Verwenden Sie das Feedback -Formular unten, um uns für Fragen oder Kommentare zu erreichen. Weitere Informationen finden Sie auf den Referenzseiten PG_DUMP und PG_RESTORE.