it-swarm.com.de

Beste Methode für inkrementelles PostgreSQL-Backup

Ich benutze gerade pg_dump weitergeleitet an gzip weitergeleitet an split. Das Problem dabei ist jedoch, dass alle Ausgabedateien immer geändert werden. Das prüfsummenbasierte Backup kopiert also immer alle Daten.

Gibt es andere gute Möglichkeiten, eine inkrementelle Sicherung einer PostgreSQL-Datenbank durchzuführen, bei der eine vollständige Datenbank aus den Sicherungsdaten wiederhergestellt werden kann?

Zum Beispiel, wenn pg_dump könnte alles absolut geordnet machen, so dass alle Änderungen erst am Ende des Dumps oder ähnlichem übernommen werden.

55
Dennis Thrysøe

Update: Check out Barman um die WAL-Archivierung für die Sicherung einfacher einzurichten.

Sie können die Methode PostgreSQLs kontinuierliche WAL-Archivierung verwenden. Zuerst müssen Sie wal_level=archive Einstellen, dann eine vollständige Sicherung auf Dateisystemebene durchführen (zwischen dem Ausgeben der Befehle pg_start_backup() und pg_stop_backup()) und dann einfach neuere WAL-Dateien durch Konfigurieren kopieren die Option archive_command.

Vorteile:

  • Inkrementell enthalten die WAL-Archive alles, was zum Wiederherstellen des aktuellen Status der Datenbank erforderlich ist
  • Das Kopieren von WAL-Dateien ist so gut wie kein Aufwand
  • Sie können die Datenbank zu any Zeitpunkt wiederherstellen (diese Funktion wird als PITR oder Point-in-Time-Recovery bezeichnet).

Nachteile:

  • Komplizierter einzurichten als pg_dump
  • Die vollständige Sicherung ist viel größer als ein pg_dump, da alle internen Tabellenstrukturen und Indizes enthalten sind
  • Funktioniert nicht gut für schreiblastige Datenbanken, da die Wiederherstellung sehr lange dauern wird.

Es gibt einige Tools wie pitrtools und omnipitr , die das Einrichten und Wiederherstellen dieser Konfigurationen vereinfachen. Aber ich habe sie selbst nicht benutzt.

55
intgr

Schauen Sie sich auch http://www.pgbackrest.org an

pgBackrest ist ein weiteres Backup-Tool für PostgreSQL, das Sie evaluieren sollten, da es Folgendes unterstützt:

  • paralleles Backup (getestet, um fast linear auf 32 Kerne zu skalieren, kann aber wahrscheinlich viel weiter gehen ..)
  • im Ruhezustand komprimierte Sicherungen
  • inkrementelle und differentielle (komprimierte!) Backups
  • streaming-Komprimierung (Daten werden nur einmal an der Quelle komprimiert und dann über das Netzwerk übertragen und gespeichert)
  • parallele Delta-Wiederherstellung (Möglichkeit, eine ältere Kopie auf die neueste zu aktualisieren)
  • Unterstützt vollständig Tablespaces
  • Sicherungsrotation und Archivablauf
  • Möglichkeit, Backups fortzusetzen, die aus irgendeinem Grund fehlgeschlagen sind
  • etc, etc ..
8
Stephen Frost

Eine andere Methode besteht darin, eine Sicherungskopie im Nur-Text-Format zu erstellen und mit rdiff inkrementelle Diffs zu erstellen.

1
Scott Marlowe