2016-07-13 6 views

Antwort

1

The documentation sagt:

Der ursprüngliche Inhalt in der Datenbank-Datei erhalten bleibt und die Änderungen werden in eine separate WAL-Datei angehängt. Ein COMMIT tritt auf, wenn ein spezieller Datensatz, der eine Festschreibung anzeigt, an die WAL angehängt wird.
[...]
Wenn ein Leser eine Inhaltsseite benötigt, prüft er zuerst die WAL, um zu sehen, ob diese Seite dort erscheint, und wenn ja, zieht er die letzte Kopie der Seite in die WAL [...]. Wenn keine Kopie der Seite in der WAL [...] vorhanden ist, wird die Seite aus der ursprünglichen Datenbankdatei gelesen.

Wenn ein Systemabsturz auftritt, wurde der letzte Übergabedatensatz nicht geschrieben. Ohne den Übergabedatensatz werden die neuen Daten nicht als gültig betrachtet, und die Datenbank ignoriert sie einfach.

Es ist also kein Wiederherstellungsvorgang erforderlich. Die Datenbank schreibt einfach neue Daten beginnend mit dem letzten gültigen Übergabedatensatz.

+0

Danke für die Beantwortung. Ich habe mehr Fragen SQLite weiß '' der Systemabsturz '' wenn es die Datenbank öffnet? oder schreiben/lesen Sie eine Seitendaten in der WAL-Datei? Ich möchte die Zeit wissen, wenn SQLite den Systemabsturz kennt. –

+0

Lesen Sie die Dokumentation. Und um eine Frage zu stellen, benutzen Sie die Schaltfläche "Frage stellen". –