Backups und Wiederherstellung von PostgreSQL-Datenbanken

Wer jemals versehentlich eine Tabelle in einer Datenbank gelöscht hat oder wem die Festplatte mit der aktuellen Datenbank abgestürzt ist, kennt nur zu gut das niederschmetternde Gefühl, das sich einstellt, wenn einem klar wird, dass sich gerade Wochen harter Arbeit in nichts aufgelöst haben.

Das muss nicht sein. Wenn die Daten in einer PostgreSQL-Tabelle gespeichert sind, kann man durch regelmäßige Backups der Datenbanken Pannen vermeiden. PostgreSQL verfügt über eingebaute Werkzeuge zur Durchführung solcher Backups und im Falle eines Systemabsturzes oder eines Unfalls können bei PostgreSQL Daten aus einem zuvor gesicherten Snapshot wiederhergestellt werden.

Backups anlegen

PostgreSQL bringt ein eingebautes Backup-Werkzeug namens pg_dump mit. Dieses Werkzeug liest die ausgewählte Datenbank und reproduziert deren Inhalte als Serie von SQL-Befehlen, die als Snapshot dienen und zum Wiederherstellen der Daten zu einem späteren Zeitpunkt verwendet werden können. Die Durchführung der Backups geschieht über eine Client-Server-Verbindung.

Anmerkung: Bevor es loslegt, sollte man sich vergewissern, dass man über die Berechtigung verfügt, sich auf dem Server einzuloggen und die Datenbank oder die Tabelle, welche gesichert werden soll, auszulesen. Dies kann man tun, indem man den PostgreSQL-Befehlszeilen-Client (psql) verwendet und versucht, sich damit auf dem Server einzuloggen. Man übergibt den Host-Namen (-h), Benutzernamen ( u), das Passwort (-p) und den Namen der Datenbank an den Client und überprüft, ob man Zugang erhält.

Die Verwendung von pg-dump ist denkbar einfach: Man lässt das Programm wie im Folgenden gezeigt einfach von der Eingabeaufforderung mit dem Namen der zu exportierenden Datenbank laufen (der Pfad zur PostgreSQL-Installation muss natürlich angepasst werden):

Dies erzeugt die Datei test.bak und füllt sie mit den SQL-Befehlen, die zur Wiederherstellung der Datenbank benötigt werden. Bei einem Blick in die Datei finden sich Zeilen, wie im folgenden Beispiel:

Wer lieber Sicherungsdateien von allen Datenbanken des Systems anfertigen möchte (und nicht nur von einer), kann anstelle des Befehls pg_dump den Befehl pg_dumpall verwenden. Mit diesem Befehl wird eine Sicherungsdatei erstellt, die alle PostgreSQL bekannten Datenbanken enthält (einschließlich der eigenen Systemdatenbanken des Programms). Hier ein Anwendungsbeispiel:

Um sicherzustellen, dass die Backups immer auf dem neusten Stand sind, sollte man für eine regelmäßige Sicherungsspeicherung sorgen, indem man den Befehl pg_dump oder pg_dumpall der Cron-Tabelle hinzufügt. Hier sind zwei Beispieleinträge für diese Tabelle. Mit dem ersten wird jede Nacht um 3 Uhr eine Sicherungsdatei der Testdatenbank erstellt und mit dem zweiten wird einmal wöchentlich freitags um 21.00 Uhr eine Sicherungsdatei aller Datenbanken erstellt.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

SmokeBuster bekämpft SmokeLoader

Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.

6 Stunden ago

Taugen Kryptowährungen als Unterstützer der Energiewende?

Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.

22 Stunden ago

Supercomputer-Ranking: El Capitan überholt Frontier und Aurora

Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…

1 Tag ago

Ionos führt neue AMD-Prozessoren ein

Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…

1 Tag ago

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

1 Tag ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

1 Tag ago