![Rollierende Backups von SQL-Dateien](https://rvso.com/image/770095/Rollierende%20Backups%20von%20SQL-Dateien.png)
Ich habe eine Reihe von Docker-Containern, die verschiedene Datenbanken enthalten. Für jeden Container gibt es einen Jenkins-Job, der täglich ein Backup der Datenbank als .sql-Datei durchführt und diese Datei dann komprimiert. Wie Sie sich vorstellen können, führt dies im Laufe der Zeit zu einer Menge redundanter Daten:
-rw-r--r--. 1 admin admin 103475967 30. Aug 02:15 20210830021501_all-databases.sql.gz
-rw-r--r--. 1 admin admin 103475967 31. Aug 02:15 20210831021501_all-databases.sql.gz
-rw-r--r--. 1 admin admin 103475967 1. Sep 02:15 20210901021501_all-databases.sql.gz
Normalerweise würden Sie das datenbankspezifische Rollbackup-Tool verwenden. Aber ich möchte es einfach und allgemein halten, indem ich nur eine SQL-Datei exportiere.
Jetzt suche ich nach einer Möglichkeit, nur die Unterschiede der SQL-Dateien zu speichern. Es gibt mehrere Fragen (HierUndHierzum Beispiel), was dazu führt, dass rdiff-backup hierfür ein gutes Tool ist. Aber mir scheint, dass rdiff-backup dafür ausgelegt ist, mit ganzen Ordnern zu arbeiten, z. B. dem Ordner, in dem die Datenbank ihre Daten speichert, und nicht mit den SQL-Dateien selbst.
Gibt es ein Tool um eine datenbankunabhängige Init-SQL-Datei zu speichern und von dort aus nur die Diffs zu speichern?
Antwort1
Sie können einen anderen Ansatz verwenden, indem Sie zpaq verwenden. Sie finden es unter FreeBSD (sehr alte Version), Debian (aktualisiert) oder direkt auf der Website des Autors http://mattmahoney.net/dc/zpaq.html
Sie erhalten eine einzelne Datei mit dem gesamten darin gespeicherten und optional verschlüsselten SQL