PostgreSQL lernt inkrementelle Backups
Kurz vor Weihnachten erweitert ein Commit die Open-Source-Datenbank um inkrementelle Backups, die wohl in Version 17 einflieĂźen.
Die Datenbank PostgreSQL wird kĂĽnftig inkrementelle Backups erhalten. Ein entsprechender Code-Commit ist frisch in das GitHub-Repository des Open-Source-Projekts eingeflossen.
Mit der Änderung setzt Robert Haas seinen Vorschlag vom Juni 2023 um, der die technische Umsetzung und die Ergänzung des Backup-Befehls für die Datenbank beschreibt.
Write Ahead Logging als SchlĂĽssel
Die Methode setzt auf das Write Ahead Logging (WAL), das kontinuierlich die Änderungen protokolliert, um die Datenintegrität sicherzustellen. Für die inkrementellen Backups führt ein WalSummarizer
laufend Buch über die WAL-Prozesse, die er zusammengefasst abspeichert. Die Summarizer-Dateien enthalten im Gegensatz zu den vollständigen WAL-Logs nur die Informationen, die Auskunft darüber geben, für welche Teile der Datenbank ein Backup erforderlich ist. Dazu protokolliert der WalSummarizer, welche Dateien die Datenbank erstellt, entfernt oder abgeschnitten hat und welche Blöcke sie geändert hat.
Um ein inkrementelles Backup anzustoßen, müssen User das Manifest eines vollständigen Backups als Referenz angeben. Das Tool wertet die WAL-Summary-Dateien aus, um die Änderungen seit der vollständigen Sicherung nachzuvollziehen und abzulegen, um sie bei einem Restore wiederherzustellen.
Mit ein wenig Aufwand lieĂźen sich inkrementelle PostgreSQL-Backups auch bisher schon mithilfe des WAL erstellen, wie ein Blogbeitrag auf der Site des PostgreSQL-Monitoring-tools pgDash beschreibt.
Komfort statt manuelle Anpassungen
Mit dem frischen Commit ist PostgreSQL nun fĂĽr komfortable inkrementelle Backups mit einer Erweiterung des Befehls pg_basebackup
vorbereitet, der den Kommandozeilenparameter --incremental
lernt. Der Befehl pg_combinebackup
kann zudem aus einer vollständigen Sicherung und einem oder mehreren inkrementellen Backups ein neues vollständiges Backup erstellen.
Mit der Neuerung dürfte in PostgreSQL 17 zu rechnen sein. Üblicherweise erscheinen die Hauptversionen der Datenbank im September, so auch dieses Jahr PostgreSQL 16. Im Juni kam neben dem Vorstoß zu inkrementellen Backups auch der Vorschlag auf, die Datenbank auf ein Multithreading-Modell umzustellen. Die Änderung erfordert allerdings grundlegende Änderungen an der Architektur und wird daher ein längerer Prozess sein. Die konkrete Umsetzung des inkrementellen Backups lässt sich dem Code-Commit auf GitHub entnehmen.
(rme)