Ich verwende rsync, um die Dateien auf meinem Server zu sichern, und mysqldump, um meine Datenbank zu sichern. Hier ist meine Sorge:Sicherstellen der Datenintegrität von mysqldump <-> rsync
Ein mysqldump auf meiner Datenbank dauert etwa 30 Sekunden. Ich habe eine Tabelle namens Fotos, die Informationen über die Bilder speichert, die ein Benutzer hochgeladen hat, einschließlich des Pfads zur Datei. Ich mache mir Sorgen darüber, was passieren wird, wenn Fotos während der 30 Sekunden, die zum Beenden von mysqldump benötigt werden, hochgeladen oder gelöscht werden. Wenn das passiert wäre und ich dann die rsync'd-Dateien und die mysqldump-Daten wiederherstellen müsste, könnte ich mir eine Datenbank ansehen, die Zeilen enthält, die auf gelöschte Fotos zeigen, oder fehlende Zeilen für Fotos, die erfolgreich hochgeladen wurden.
Wie kann ich sicherstellen, dass der mysqldump exakt mit dem rsync übereinstimmt?
Vielen Dank im Voraus, Brian
Das Sperren der Tabellen für die Dauer von mysqldump ist nicht ausreichend - Sie müssen sie auch gesperrt halten, während rsync läuft. Andernfalls, wenn z.B. Das rsync folgt dem Speicherauszug, Dateien können auf dem Datenträger gelöscht werden, auf dem sich die Speicherauszugsansprüche befinden sollten; Diese Dateien landen jedoch nicht im rsync. –
Also - wenn die Tabellen gesperrt sind und ein Benutzer eine Datei hochlädt, wird die INSERT-Abfrage zum Erstellen des Datensatzes fortgesetzt, sobald die Tabellen entsperrt sind? Ist es schlecht, wenn die Abfrage 30+ Sekunden warten muss? – Brian