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
Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…
Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…
Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.
Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…
Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…
Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…