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

Alphabet übertrifft die Erwartungen im ersten Quartal

Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…

2 Tagen ago

Microsoft steigert Umsatz und Gewinn im dritten Fiskalquartal

Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…

2 Tagen ago

Digitalisierung! Aber wie?

Mehr Digitalisierung wird von den Unternehmen gefordert. Für KMU ist die Umsetzung jedoch nicht trivial,…

2 Tagen ago

Meta meldet Gewinnsprung im ersten Quartal

Der Nettoprofi wächst um 117 Prozent. Auch beim Umsatz erzielt die Facebook-Mutter ein deutliches Plus.…

3 Tagen ago

Maximieren Sie Kundenzufriedenheit mit strategischem, kundenorientiertem Marketing

Vom Standpunkt eines Verbrauchers aus betrachtet, stellt sich die Frage: Wie relevant und persönlich sind…

3 Tagen ago

Chatbot-Dienst checkt Nachrichteninhalte aus WhatsApp-Quellen

Scamio analysiert und bewertet die Gefahren und gibt Anwendern Ratschläge für den Umgang mit einer…

3 Tagen ago