PostgreSQL ist kostenlos, Open Source und eines der beliebtesten Managementsysteme für relationale Datenbanken, das Millionen von Anwendungen unterstützt. Wenn Sie ein Datenbankadministrator sind, der PostgreSQL in einer Produktionsumgebung verwendet, ist es wichtig, Ihre Datenbank zu sichern, damit Sie Ihr System schnell wiederherstellen können, wenn Ihre Datenbank verloren geht.
In diesem Tutorial zeigen wir Ihnen, wie Sie die PostgreSQL-Datenbank unter Linux sichern und wiederherstellen.
Voraussetzungen
- Ein frisches Ubuntu 20.04 VPS mit PostgreSQL, installiert auf der Atlantic.net Cloud Platform.
- Wenn Sie PostgreSQL noch nicht installiert haben, können Sie in diesem Blog nachlesen, wie Postgres installiert und konfiguriert wird.
- Ein auf Ihrem Server konfiguriertes Root-Passwort.
1 – Atlantic.Net Cloud-Server erstellen
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 1 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
2 – Die grundlegende Syntax von pg_dump verstehen
PostgreSQL enthält integrierte Dienstprogramme namens pg_dump zum einfachen Erstellen und Wiederherstellen von Backups.
Die grundlegende Syntax des pg_dump-Befehls ist unten dargestellt:
pg_dump [OPTION]... [DBNAME]
Nachfolgend finden Sie eine kurze Erläuterung der einzelnen Optionen:
-d, –dbname=DATENBANKNAME : Wird verwendet, um die Datenbank anzugeben, die Sie sichern möchten.
-h, –host=HOSTNAME : Wird verwendet, um den Hostnamen Ihres Datenbankservers anzugeben.
-U, –username=USERNAME : Wird verwendet, um den PostgreSQL-Benutzernamen anzugeben.
-w, –no-password : Wird verwendet, um die Passwortabfrage zu ignorieren.
-p, –port=PORT : Wird verwendet, um die Portnummer des PostgreSQL-Servers anzugeben.
-W, –password : Wird verwendet, um eine Passwortabfrage zu erzwingen.
–role=ROLLENNAME : SET ROLE vor dem Dump.
3 – Sichern und Wiederherstellen einer einzelnen Datenbank
Sie können eine einzelne Datenbank mit dem Dienstprogramm pg_dump sichern und wiederherstellen. Die grundlegende Syntax zum Sichern einer einzelnen Datenbank ist unten dargestellt:
pg_dump -d [source-database] -f [database_backup.sql]
Um beispielsweise eine einzelne Datenbank namens testdb zu sichern und eine Sicherungsdatei namens testdb_backup.sql zu generieren, führen Sie den folgenden Befehl aus:
su - postgres pg_dump -d testdb -f testdb_backup.sql
Sie können auch eine einzelne Datenbank mit dem Befehl psql wiederherstellen. Die grundlegende Syntax zum Wiederherstellen einer einzelnen Datenbank ist unten dargestellt:
psql -d [destination_database] -f [database_backup.sql]
Um beispielsweise eine einzelne Datenbank namens testdb aus einer Sicherungsdatei namens testdb_backup.sql wiederherzustellen, führen Sie den folgenden Befehl aus:
su - postgres psql -d testdb -f testdb_backup.sql
Sie sollten die folgende Ausgabe erhalten:
SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET
Wenn Sie den Datenbankwiederherstellungsprozess stoppen möchten, falls ein Fehler auftritt, führen Sie den folgenden Befehl aus:
psql -d testdb --set ON_ERROR_STOP=on -f testdb_backup.sql
Hinweis: Vor dem Wiederherstellen einer Datenbank wird empfohlen, alle Verbindungen zu dieser Datenbank zu beenden und die Sicherungsdatei vorzubereiten.
Alle Datenbanken sichern und wiederherstellen
Sie können alle Datenbanken in PostgreSQL mit dem Dienstprogramm pg_dumpall sichern. Die grundlegende Syntax zum Sichern aller Datenbanken wie unten gezeigt:
pg_dumpall -f [alldatabase_backup.sql]
Um beispielsweise alle Datenbanken in PostgreSQL zu sichern und eine Sicherungsdatei namens alldb_backup.sql zu generieren, führen Sie den folgenden Befehl aus:
pg_dumpall -f alldb_backup.sql
Um alle Datenbanken aus einer Sicherungsdatei namens alldb_backup.sql wiederherzustellen, führen Sie den folgenden Befehl aus:
psql -f alldb_backup.sql
Einzelne Tabelle sichern und wiederherstellen
Mit PostgreSQL können Sie auch eine einzelne Tabelle aus einer bestimmten Datenbank sichern. Sie können dies mit der folgenden Syntax erreichen:
pg_dump -d [source-database] -t [table_name]-f [dbtable_backup.sql]
Um beispielsweise eine Tabelle namens mytab aus der Datenbank namens testdb zu sichern und eine Sicherungsdatei namens testdb_mytab.sql zu generieren, führen Sie den folgenden Befehl aus:
pg_dump -d testdb -t mytab -f testdb_mytab_backup.sql
Wenn Sie diese Tabelle aus der Sicherungsdatei wiederherstellen möchten, führen Sie den folgenden Befehl aus:
psql -d testdb -f testdb_mytab_backup.sql
Komprimierte Datenbank sichern und wiederherstellen
Sie können die PostgreSQL-Datenbank auch sichern und im .gz-Format komprimieren, um die Sicherungsgröße zu reduzieren.
Führen Sie den folgenden Befehl aus, um eine Sicherungskopie der Datenbank namens testdb zu erstellen und eine komprimierte Sicherungsdatei namens testdb_compressed.sql.gz zu erstellen:
pg_dump -d testdb | gzip > testdb_compressed.sql.gz
Sie können die Sicherung auch aus der komprimierten Datei mit dem folgenden Befehl wiederherstellen:
gunzip -c testdb_compressed.sql.gz | psql -d testdb
Schlussfolgerung
In der obigen Anleitung haben Sie mehrere Möglichkeiten zum Sichern und Wiederherstellen einer PostgreSQL-Datenbank kennengelernt, um Ihnen bei der Durchführung täglicher Datenbanksicherungsvorgänge zu helfen. Beginnen Sie noch heute mit einer PostgreSQL-Datenbank auf VPS-Hosting von Atlantic.Net!