Inkrementelle Backups auf dem Weg nach PostgreSQL – Code-Commit bringt lang ersehnte Funktion

Es ist eine aufregende Zeit für PostgreSQL-Fans, denn inkrementelle Backups sind endlich auf dem Weg! Ein Code-Commit wurde kürzlich in das GitHub-Repository des Open-Source-Projekts eingefügt, um diese lang ersehnte Funktion zu ermöglichen. Ein großer Dank geht an Robert Haas, der seinen Vorschlag vom Juni 2023 in die Tat umgesetzt hat. In diesem Vorschlag wurde beschrieben, wie der Backup-Befehl der Datenbank erweitert und technisch umgesetzt werden kann.

Die Methode, auf der dieses Feature beruht, heißt Write Ahead Logging (WAL). Sie protokolliert kontinuierlich alle Änderungen in der Datenbank, um die Integrität der Daten zu gewährleisten. Mit inkrementellen Backups überwacht ein “WalSummarizer” die WAL-Prozesse und speichert sie in zusammengefasster Form ab. Diese Summarizer-Dateien enthalten nur die relevanten Informationen darüber, welche Teile der Datenbank für ein Backup erforderlich sind, im Gegensatz zu den vollständigen WAL-Logs. Der WalSummarizer hält fest, welche Dateien von der Datenbank erstellt, entfernt oder abgeschnitten wurden und welche Blöcke geändert wurden.

Um ein inkrementelles Backup durchzuführen, müssen Benutzer das Manifest eines vollständigen Backups als Referenz angeben. Das Tool analysiert dann die WAL-Summary-Dateien, um die Änderungen seit der letzten vollständigen Sicherung zu erfassen und zu speichern. Auf diese Weise können die Änderungen bei einer Wiederherstellung wiederhergestellt werden.

Es ist erwähnenswert, dass es bereits zuvor möglich war, inkrementelle Backups für PostgreSQL zu erstellen, aber es erforderte einen gewissen Aufwand mit den Write-Ahead Logs (WAL). Mit diesem neuen Commit wird PostgreSQL nun für komfortable inkrementelle Backups bereit sein. Die Erweiterung des Befehls “pg_basebackup” ermöglicht dies, indem der Kommandozeilenparameter “–incremental” hinzugefügt wird. Zusätzlich gibt es mit dem Befehl “pg_combinebackup” die Möglichkeit, aus einer vollständigen Sicherung und einem oder mehreren inkrementellen Backups ein neues vollständiges Backup zu erstellen.

Voraussichtlich wird diese aufregende Neuerung in PostgreSQL 17 eingeführt. Normalerweise erscheinen die Hauptversionen der Datenbank im September, und so wird es auch dieses Jahr mit PostgreSQL 16 sein. Im Juni wurde neben dem Vorschlag für inkrementelle Backups auch der Vorschlag gemacht, die Datenbank auf ein Multithreading-Modell umzustellen. Dies ist jedoch ein komplexerer Prozess, der grundlegende Anpassungen an der Architektur erfordert und daher mehr Zeit in Anspruch nehmen wird.

Wenn du mehr über die genaue Umsetzung des inkrementellen Backups erfahren möchtest, kannst du dir den Code-Commit auf GitHub ansehen. Es ist großartig zu sehen, wie sich PostgreSQL weiterentwickelt und immer mehr nützliche Funktionen bietet, um den Benutzern das Leben einfacher zu machen.

Schlagwörter: PostgreSQL + Robert Haas + WAL

Wie bewerten Sie den Schreibstil des Artikels?
1 Star2 Stars3 Stars4 Stars5 Stars
  • 22. Dezember 2023