Inkrementelles / differenzielles MySQL-Backup mit mysqldump

9

Gibt es Techniken, um mit mysqldump (oder einem ähnlichen Befehl) inkrementelle oder differenzielle Sicherungen für MySQL zu erstellen?

Brian Boatright
quelle

Antworten:

0

Ich verwende Binlogs, aber sie sind keine ultimative Lösung, und ich verlasse mich auch auf Schnappschüsse.

Dafür gibt es zwei Hauptgründe:

  • Binlogs speichern alle Änderungen. Binlogs im Wert von einer Woche sind wahrscheinlich erheblich größer als der Unterschied zwischen zwei Schnappschüssen im Abstand von einer Woche. Die einzige Erleichterung ist, dass Binlogs dazu neigen, sich gut zu komprimieren (normalerweise deutlich unter 10%).
  • Wenn Sie jemals eine Prüfung durchführen oder zurückkehren müssen, dauert die Wiedergabe des Binlogs mit einem alten Snapshot sehr lange. Je größer das Binlog, desto größer ist die Fehlerwahrscheinlichkeit, sodass Sie regelmäßige Snapshots benötigen.

Ich hatte kürzlich eine große Anzahl von Schnappschüssen, die weder komprimiert noch differenziell waren. Ich habe mit diff experimentiert und festgestellt, dass selbst mit Optionen wie keinem Kontext die resultierenden Unterschiede größer waren.

Ohne alle Alternativen auszuprobieren, war das Beste, was ich fand, rdiff. Dies reduzierte sie für mich auf ungefähr 5% der Größe und wenn sie dann mit xz in die 1% -Zone komprimiert wurden.

Obwohl die rdiff-Signaturdateien nicht gut komprimiert werden, da es sich um Hash-Sammlungen handelt (wie zufällige Daten), sollte das Komprimieren gegeneinander gute Ergebnisse liefern.

Viele Benutzer benötigen keine solche Lösung, da sie in den meisten Fällen bei einem Fehler die Datenbank mit dem neuesten Bild speichern und so schnell wie möglich auf den neuesten Stand bringen müssen.

Wenn Sie jedoch ein komplexes System haben, das viel Buchhaltung, Prüfung, Debugging usw. erfordert (kritischere Dinge als ein Blog), wird die effiziente Speicherung von Schnappschüssen wichtig.

jgmjgm
quelle