Postgresql mit der Point in Time Recovery (PITR)
Hallo zusammen,
ich habe eine Verständnisfrage die mir die Doku von Postgresql leider noch nicht beantworten konnte.
Ich bin gerade dabei, für die Postgresql 12 die PITR Funktion zu testen.
Um dies zu ermöglichen muss man am Anfang ein Basebackup der gesamten DB machen. Aufgrundlage dieses BaseBackup wird ja dann die PITR im Falle eines Falles ausgeführt.
Meine Frage dazu:
- Bis jetzt wurde täglich ein Fullbackup aller DBs gemacht. Muss man nun die Fullbackups mit einem täglichen Basebackup ersetzen?
Auf Antworten von Profis würde ich mich sehr freuen.
LG
Winlicli
ich habe eine Verständnisfrage die mir die Doku von Postgresql leider noch nicht beantworten konnte.
Ich bin gerade dabei, für die Postgresql 12 die PITR Funktion zu testen.
Um dies zu ermöglichen muss man am Anfang ein Basebackup der gesamten DB machen. Aufgrundlage dieses BaseBackup wird ja dann die PITR im Falle eines Falles ausgeführt.
Meine Frage dazu:
- Bis jetzt wurde täglich ein Fullbackup aller DBs gemacht. Muss man nun die Fullbackups mit einem täglichen Basebackup ersetzen?
Auf Antworten von Profis würde ich mich sehr freuen.
LG
Winlicli
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1663664667
Url: https://administrator.de/contentid/1663664667
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
12 Kommentare
Neuester Kommentar
Du mußt 2 grundsätzliche Dinge unterscheiden:
a) logical Backup. diese macht du mit pg_dump(all)
b) physische Backups mit pgbasebackup
Für das physische Backup brauchst Du neben dem Basebackup dann auch noch alle WAL's, die SEIT DEM START des Basebackups angefallen sind. Tools wie Barman können bei all dem massiv helfen
Also, als Antwort auf Deine Frage: das sind 2 unterschiedliche und miteinander nicht vermischbare Backup-Strategien mit je ihren Vor- und Nachteilen.
a) logical Backup. diese macht du mit pg_dump(all)
b) physische Backups mit pgbasebackup
Für das physische Backup brauchst Du neben dem Basebackup dann auch noch alle WAL's, die SEIT DEM START des Basebackups angefallen sind. Tools wie Barman können bei all dem massiv helfen
Also, als Antwort auf Deine Frage: das sind 2 unterschiedliche und miteinander nicht vermischbare Backup-Strategien mit je ihren Vor- und Nachteilen.
Du brauchst generell die WAL-files seit dem letzten Basebackup, egal ob Du dieses aller 5 Minuten oder aller 5 Jahre machst. Dann mußt Du Dir aber überlegen, was Du für eine Retention Policy machst, also wie lange Du Basebackups + WAL's aufhebst, und wie Du das zuverlässig einrichtest. Barman kann dabei gut helfen, haben wir (ich komme von 2ndQ und bin jetzt bei EDB) entwickelt.
Logisches Backup: Sei Dir bewußt, was der Unterschied zwischen physischem und logischem Backup ist. Wenn der Azubi beim DELETE das WHERE vergißt, willst Du vielleicht nur eine Tabelle und nicht den ganzen Cluster wiederherstellen. Beschäftige Dich also damit, wie das mit einem Basebackup+WAL in einem PITR-Szenario durchführbar ist.
Hint: es ist durchführbar.
Logisches Backup: Sei Dir bewußt, was der Unterschied zwischen physischem und logischem Backup ist. Wenn der Azubi beim DELETE das WHERE vergißt, willst Du vielleicht nur eine Tabelle und nicht den ganzen Cluster wiederherstellen. Beschäftige Dich also damit, wie das mit einem Basebackup+WAL in einem PITR-Szenario durchführbar ist.
Hint: es ist durchführbar.
für logische Backups empfehle ich übrigens gern eine Kombination von pg_dump im Custom-Format aller Datenbanken plus pg_dumpall -g für die globalen Objekte ... allerdings auch nur, wenn die Größe der Datenbanken das noch zuläßt. Sprich: wenn das (tägliche) Dumpen von der Zeit her dann schon so 23:59 dauert, dann wird es, ähm, unangenehm. Mit VACUUM und so, ...
pg_xlogdump, siehe auch Magnus Hagander's blog