Hallo Wissende,
ich muss mir für meinen PostgreSQL-Server ein neues Sicherungskonzept ausdenken.
Hintergrund:
Ich habe ca. 5 große Datenbanken, welche ständig geändert werden (TableSpace1). Daneben habe ich > 20 “Archivdatenbanken” (TableSpace2), welche vielleicht 1-2 mal im Jahr “angefasst” werden.
Momentan sichere ich die 5 Datenbanken einzeln per Batch (pg_dump). Dies setzt allerdings voraus, dass die Batch bei jeder neuen Datenbank angepasst (und an die EDV-Abteilung weitergereicht) werden muss.
Es wird in der Nacht dann der gesamte (Windows) Server inklusive der automatischen Dumps gesichert.
Alternative wäre wohl pg_dumpall. Aber so wie ich das sehe kann man daraus keine einzelne DB wiederherstellen. Außerdem würden damit jeden Tag auch die “Archivdatenbanken” mit gesichert werden was einen Dateiklumpen von > 150GByte ergibt.
Ich habe auch schon Datenbanken direkt aus einem gesicherten TableSpace hergestellt, aber das ist recht aufwändig und wohl auch unsicher.
Hat jemand eine Idee wie ich ein vernünftiges Konzept aufsetzen kann?
Kann man dabei irgendwie die “TableSpaces” einbeziehen, dh. alle DBs in TS1 werden täglich “gedumpt”. Alle anderen manuell?
Gruß Steffen
Du kannst doch dir eine Liste aller DB’s holen und dafür jeweils einen pg_dump mit -Fc erstellen, das kann man scripten. Okay, Du hast Windows, …
Du kannst aber auch ganz anders rangehen: mache regelmäßig (täglich, wöchentlich) ein Basebackup und dann nur die WAL’s sichern. Barman ist eine sehr elegante Lösung, in den nächsten Tagen in Version 2 verfügbar. Dann kannst auch ganz einfach PITR machen, falls nötig. Ist OpenSSH unter Windows verfügbar? Ich glaube ja…
pg_dumpall ist alt ein Plaintext-Dump, der da hinten rausfällt, das ist eher unhandlich.
Hallo,
vielen Dankl für die schnelle Antwort.
Du kannst doch dir eine Liste aller DB’s holen und dafür jeweils einen pg_dump mit -Fc erstellen, das kann man scripten. Okay, Du hast Windows
Man kann auch unter Windows scripten .
Allerdings muss ich das Ganze auch der EDV-Abteilung “verkaufen” und die werden von einem Script, was über eine einfache Batch hinausgeht nicht begeistert sein. Ja und in diesem Zusammenhang “stirbt” dann wohl auch die zusätzliche Sicherungssoftware …
Datenbanken (zur Not) aus gesichertem Tablespace herzustellen siehst du vermutlich auch kritisch?
Gruß Steffen
ja, du solltest unterscheiden zwischen physischen und logischen Backups. Also, einen tablespace wegzusichern ist halt physisch und ein Dump logisches Backup. Und aus einem physischen bekommst keine ‘Einzelteile’ rausgelöst.
Barman ist wirklich cool. Wenn Du Datenbanken hast, die sich wirklich nicht ändern, dann profitierst Du da von " file-level incremental backup " :
" Incremental backup is a kind of full periodic backup which saves only data changes from the latest full backup available in the catalogue for a specific PostgreSQL server."
Manche unserer Kunden haben neben ihren N DB-Servern noch ein Barman-Server zum sichern und eine Spiel/Test/Staging - Maschine, die man bei Bedarf plattmachen kann und vom Barman mit einem der N Server zu einem definierten Zeitpunkt (Point In Time Recovery) hochziehen kann, falls man mal z.B. eine bestimmte Tabelle zum Zeitpunkt X braucht. Ansonsten wird der halt jede Nacht plattgemacht und vom Barman automatisch mit dem Stand des Vortages des/eines Servers hochgezogen. Da hat man sowohl was zum spielen als auch die Gewißheit, daß das Backup funktioniert.
Wenn Du nur den einen Tablespace sichern willst und den anderen nur aller N Monate so wirst Du im Bedarfsfall vermutlich kein valides Backup haben.