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

Google schließt Zero-Day-Lücke in Chrome

Von ihr geht ein hohes Risiko aus. Angreifbar sind Chrome für Windows, macOS und Linux.

17 Stunden ago

KI erkennt Emotionen in echten Sportsituationen

Forschende des KIT haben ein Modell zur Emotionsanalyse entwickelt, das affektive Zustände ähnlich genau wie…

1 Tag ago

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

2 Tagen ago

Apple stellt neuen Mobilprozessor M4 vor

Er treibt das neue iPad Pro mit OLED-Display an. Apple verspricht eine deutliche Leistungssteigerung gegenüber…

3 Tagen ago

Cyberabwehr: Mindestens zwei kritische Vorfälle pro Tag

Davon entfällt ein Viertel auf staatliche Einrichtungen und 12 Prozent auf Industrieunternehmen.

3 Tagen ago

Tunnelvision: Exploit umgeht VPN-Verschlüsselung

Forscher umgehen die Verschlüsselung und erhalten Zugriff auf VPN-Datenverkehr im Klartext. Für ihren Angriff benötigen…

3 Tagen ago