Skip to content

Glossar

WAL-Checkpoint

Der SQLite-Vorgang, der bestätigte Seiten aus der -wal-Datei in die Hauptdatenbank zurückkopiert, wonach die WAL zurückgesetzt werden kann.

Ein Checkpoint ist der SQLite-Vorgang, der den Inhalt des Write-Ahead-Logs in die Hauptdatenbankdatei überträgt. Für jede von einer bestätigten Transaktion geänderte Seite schreibt er die neueste Version aus der -wal-Datei über die Seite in der Datenbankdatei. Sind alle Frames kopiert, kann der nächste Schreibvorgang die WAL mit neuen Salt-Werten wieder von vorn beginnen und dabei die alten Frames nach und nach überschreiben (sqlite.org).

SQLite führt Checkpoints selbstständig aus. Standardmäßig läuft einer automatisch, sobald die WAL über etwa 1.000 Seiten wächst, und wenn die letzte Verbindung zur Datenbank geschlossen wird, führt SQLite normalerweise einen Checkpoint aus und löscht die -wal-Datei. Anwendungen können ihn auch ausdrücklich anfordern, im Modus passive, full, restart oder truncate.

Warum es für Ermittlungen wichtig ist

Vor einem Checkpoint enthalten Datenbankdatei und WAL zusammen mehr Historie als jede für sich: Die Datei behält die Seitenabbilder vom Stand des letzten Checkpoints, die WAL die nachfolgenden neueren Versionen. Beide können Benachrichtigungszeilen enthalten, die im aktuellen Zustand fehlen. Ein Checkpoint überschreibt die alten Seitenabbilder in der Datei und irgendwann auch die alten WAL-Frames.

Deshalb ist schon das Öffnen einer Beweismittelkopie von wpndatabase.db in einem SQLite-Browser riskant: Beim Schließen kann ein Checkpoint laufen und die WAL entfernen. Damit verschwinden die separate Kopie der neuesten Benachrichtigungen und die älteren Seitenversionen, die für die Wiederherstellung nützlich sind. Hashen Sie die Originale, arbeiten Sie mit Kopien und verwenden Sie ein Werkzeug, das nie schreibt.

Beispiel

Vorher:   wpndatabase.db      (Stand beim letzten Checkpoint)
          wpndatabase.db-wal  (Frames für Seiten 4, 5, 4, 9 ...)
Öffnen + Schließen in einem SQLite-Tool
Nachher:  wpndatabase.db      (Seiten 4, 5, 9 neu geschrieben)
          wpndatabase.db-wal  (gelöscht oder zurückgesetzt)

Der Parser macht das Gegenteil: Er legt die bestätigten WAL-Frames im Speicher über die Datenbank, meldet Zeilen, die nur in der WAL stehen, und lässt beide Dateien unverändert.

Verwandte Begriffe

Verwenden Sie den schreibgeschützt arbeitenden Windows Notification Parser und lesen Sie die Anleitung zur Sicherung, um Datenbank und WAL gefahrlos zu sichern.