atomar kopieren

elias5000

Site Reliability Engineer
Hallo,

ich habe ein phpBB3 mit SQlite als Backend eingerichtet, dass ich jetzt backuppen muss.
Da habe ich mir gedacht, dass es ja super wäre, einfach das SQlite-File sichern zu können (ist ja nur eins) - der Kopiervorgang müsste nur atomar sein, damit sich das File nicht während des Kopierens ändern kann.

Gibt es eine Möglichkeit, ein File atomar zu kopieren? Mir fällt gerade nichts ein und Google liefert irgendwie nichts brauchbares).
 
Aber an einem atomaren Copy wäre ich generell trotzdem interessiert. ;)
Im Prinzip müsstest du die Datei nur während des Kopiervorgangs sperren (man 1 flock). Das geht in jeder besseren Skriptsprache. Dein phpBB würde in der Zwischenzeit aber vermutlich Fehlermeldungen bringt, was etwas suboptimal ist.
 
Das wäre ja nicht atomar.
Atomar ist es, wenn ich es kopiere und alle Schreibvorgänge nicht den Zustand der Kopie betreffen. Also eine Art File-Level Snapshot.
Ich vermute das müsste vom Dateisystem implementiert werden und nehme daher mal an, dass es das so einfach nicht geben wird.
 
Das wäre ja nicht atomar.
Doch, allein durch den exklusiven Zugriff ist der Kopiervorgang atomar. Dass andere Prozesse währenddessen nicht mehr auf die Datei zugreifen können, ist ein unschöner Nebeneffekt.

Die Variante mit dem Dump dürfte aber trotzdem die einfachste Möglichkeit bleiben. ;)
 
Siehe z. B. ACID - Wikipedia

Bei einer atomaren Operation werden Daten (in diesem Fall die SQLite-Datei) von einem konsistenten Zustand in einen anderen konsistenten Zustand überführt. elias5000 will dadurch einfach erreichen, dass die Datei nach dem kopieren nicht 'korrupt' ist, weil z. B. noch ein Prozess Daten hinein geschrieben hat während sie kopert wurde.
 
Ich glaube es gibt da ein paar Unterschiede zwischen LVM und ZFS. Bei ZFS kannst Du meines Wissens nach Snapshots für einzelne Dateien/Ordner anlegen und der Vorteil ist halt, dass das unglaublich schnell geht.
 
Bei ZFS ist der Volumemanager ins Dateisystem integriert, bei Linux ist getrennt. Daher gibt es bei ZFS ein paar Tricks, die bei Linux halt konzeptuell nicht möglich sind.
 
Back
Top