Erste Hilfe bei defekter SQLite Datenbank

In seltenen Fällen kommt es vor, dass die SQLite Datenbank einen defekt aufweist. Es erscheint dann die Meldung "database disk image is malformed Unable to fetch row". Diese kann als Meldung ausgegeben werden oder im Log ersichtlich sein. Der Fehler macht sich bemerkbar, wenn bestimmte Teile des Programmes nicht mehr Ordnungsgemäß funktionieren.

Grundsätzlich ist es möglich, die Inhalte der Datenbank zu exportieren und in eine neue leere Datenbank zu importieren.

Wir bieten grundsätzlich eine solche Reparatur kostenlos über unseren Support an, hierzu muss uns die Datenbank zu Verfügung gestellt werden. Klicke hierzu im AnzeigenChef auf Hilfe, Datenverzeichnis öffnen. Beende den AnzeigenChef und erstelle eine ZIP der anzeigenchefv2.sqlite, diese schickst Du an support@anzeigenchef.com mit der Bitte um Reparatur.

Hilfe zur Selbsthilfe

Du kannst die Reparatur auch selbst durchführen. Hierzu solltest Du SQLite installieren, auf macOS und Linux ist dies bereits vorinstalliert. Erstelle Dir eine Kopie der originalen Datenbank, zur Sicherheit.

  1. Navigiere mit dem Terminal in das Datenbankverzeichnis
  2. Gebe folgenden Befehle nacheinander ein:

    mv anzeigenchefv2.sqlite anzeigenchefv2_old.sqlite
    sqlite3 ./
    anzeigenchefv2_old.sqlite

    Du befindest Dich nun im SQLite Modul, gebe folgendes ein:

    .output ./backup.sql
    .dump
    .quit

    Hinweis: Sollte die ursprüngliche Datenbank defekte aufgewiesen haben, so steht am ende der backup.sql ein ROLLBACK. Du kannst in diesem Fall die Datei mit einem Texteditor bearbeiten und das ROLLBACK gegen COMMIT austauschen. Beachte, dass ursprüngliche Defekte damit ignoriert werden. Meist handelt es sich um Indexe, die in der Regel neu angelegt werden. Ändere und speichere die Datei.

    Zurück auf der Kommantozeile erstellen wir nun eine neue Datenbank und spielen die Daten wieder ein:

    sqlite3 anzeigenchefv2.sqlite < backup.sql

  3. Es sollte nun die neue Datenbank mit altem Inhalt erstellt worden sein. Starte den AnzeigenChef und prüfe, ob alles wieder funktioniert.


Zurück zum Anfang