Hallo Zusammen,
ich betreibe Postgres unter Windows und möchte das Backup-Konzept analog MSSQL umsetzen:
Täglich eine Full-Sicherung und viertelstündlich eine inkrementelle Sicherung (analog LOG-Sicherung).
Die Datenbanken sollen einzeln gesichert werden, sodass ich die Datenbanken auch einzeln im vierstelstunden-Takt wiederherstellen kann.
Außerdem soll es bei der Sicherung keine Sperren geben.
Die tägliche Full-Sicherung als einzelne Backup-Dateien pro Datenbank habe ich bereits über ein Batch-Skript per Taskplaner realisiert.
Wenn ich es richtig verstanden habe ist die WAL-Sicherung dann nicht das richtige Werkzeug, da hier nur alle Datenbanken im gesamten gesichert werden, korrekt?
Gibt es ggf. fertige Skripte/Anleitungen dafür?
Für die Sicherung von VMs setzen wir Veeam ein. Ggf. ist das eine gute Alternative?
Danke vorab für eure Unterstützung!
Viele Grüße
Petra
Durch die Architektur von Postgres ist eine inkrementelle Sicherung einzelner Datenbanken schlicht nicht möglich.
Ich glaube pgBackRest oder barman erleichtern das Zurückspielen einzelner Datenbanken, indem sie zuerst eine neue Instanz (aka "Cluster2) erstellen, und dann von dieser Instanz ein pg_dump machen, welches dann in die eigentliche Zielumgebung importiert wird.
2 „Gefällt mir“
jepp. Das ist der übliche Weg.
Die einzige Alternative die mir einfällt: statt eine Instanz (“Cluster”) mit mehreren Datenbanken zu nutzen, kann man mehrere Instanzen mit je einer Datenbank nutzen. Das bedeutet natürlich etwas mehr Ressourcenverbrauch und erhöhtem Wartungsaufwand, kann aber auch die Umgebung grundsätzlich flexibler gestalten (z.B. Shutdown wegen Wartungsarbeiten).
Dazu muss Postgres nicht mehrfach installiert werden, man muss nur pro Umgebung einmal initdb ausführen, und jede Instanz muss einen anderen Netzwerk Port verwenden. Wenn man einen Pooler (pgcat, pgBouncer, pgPool, …) davor schaltet, kriegen die Anwendungen das nicht einmal mit.
Da eine Vielzahl an Datenbanken geplant ist, ist das keine Lösung, die ich favorisiere. 