SQLite ist speziell entworfen, um vor diesem zu schützen. Von der offiziellen SQLite is Transactional Seite:
Alle Änderungen innerhalb einer einzigen Transaktion in SQLite entweder auftreten ganz oder gar nicht, auch wenn der Akt die Änderung aus auf die Festplatte zu schreiben von
unterbrochen
- ein Programmabsturz,
- ein Betriebssystemabsturz oder
- ein Stromausfall.
Der Anspruch des vorherigen Absatzes ist ausführlich in der SQLite geprüft Regressionstestsuite ein spezielles Testgeschirr verwenden, das die Auswirkungen auf eine Datenbankdatei von Betriebssystemabstürzen und Strom Ausfälle simuliert.
Sie könnten auch in dem SQLite Artikel Atomic Commit in SQLite interessiert sein, wenn Sie die spezifischen Details wissen müssen, wie sie zum Schutz gegen Abstürze wie die oben genannten.
nach einem Absturz In Bezug auf Schreiben: (von
File Locking and Concurrency)
Ein heißen Journal erstellt wird, wenn ein Prozess in der Mitte eines Datenbank-Update und einem Programm oder Betriebssystemabsturz oder Stromausfall verhindern die Aktualisierung vom Abschluss. Heiße Journale sind eine Ausnahmebedingung. Heiße Journale existieren, um sich von Abstürzen und Stromausfällen zu erholen. Wenn alles korrekt funktioniert (das heißt, wenn es keine Abstürze oder Stromausfälle gibt), erhalten Sie nie ein heißes Journal.
Das Schlimmste, was passieren kann, ist, dass Sie das heiße Journal löschen müssen, das nach einem Absturz übrig geblieben ist.
Danke! Ich möchte auch wissen, ob die Datenbankdatei (*. Db) beschreibbar bleiben wird, wenn ein Stromausfall auftritt, während einige Änderungen in die Datenbank geschrieben werden. – quantity
@quantity Die Sperrung erfolgt in der Betriebssystemebene, so dass nach einem plötzlichen Fehler und nach dem Neustart der fschk-Code dies aufheben sollte und die Datei wieder zugänglich sein wird.Das Sperren erfolgt nicht durch Ändern der Dateiattribute. Auch aus den Artikelreferenzen in der Antwort wird klar, dass "heiße Journale" beim Zugriff auf die DB-Datei automatisch gehandhabt werden. – Ber
Sie sollten niemals eine heiße Journaldatei löschen. Siehe die offizielle Dokumentation: [Wie man eine SQLite-Datenbankdatei beschädigt] (http://www.sqlite.org/howtocorrupt.html), Abschnitt 1.3. –