Datenbank Defekt/Corrupt

Hallo zusammen,

ich habe gestern per HeidiSql auf die Datenbank zugegriffen.
In dem Moment hat HA die Datenbank als Corrupt unter einem neuen Namen gespeichert und eine neue DB generiert.

Dummerweise ist das letzte Backup etwas älter.

Weis jemand, wie ich die Datenbank wieder reparieren kann?

Ich habe auch versucht diese Datei zu kopieren und in einem Ordner auf dem PC einzufügen. Aber auch das geht nicht.
Ich bekommen die Meldung das die Datei nicht gefunden wurde.

Wenn ich versuche die Datei im HA Verzeichnis um zu bennen, dann bekomme ich die Meldung, dass die Datei der angegebene Name ungültig oder zu lang ist.

Könnet mir evtl. jemand helfen?

Ach ja, ich greife über Windows auf auf das HA Verzeichnis zu …

Vielen Dank im Voraus,
Gruß Ingo

Die DB muss nicht wirklich defekt sein.

Wenn der HA-Recorder schreiben möchte und die Datenbank z.B durch einen Fremdzugriff gesperrt ist passiert folgendes:

  • “home-assistant_v2.db” wird umbenannt in “home-assistant_v2.db.corrupt…”
  • HA erstellt eine neue leere “home-assistant_v2.db”
  • Hier wird ab jetzt alles reingeschrieben.

Lösung:

  1. Unter Entwicklerwerkzeuge / Dienste den Recorder deaktivieren
  2. home-assistant_v2.db + home-assistant_v2.db-wal + home-assistant_v2.db-shm löschen
  3. “home-assistant_v2.db.corrupt” umbenennen in “home-assistant_v2.db”
  4. Unter Entwicklerwerkzeuge / Dienste den Recorder wieder aktivieren
  5. Die db-wal und db-shm werden automatisch neu aufgebaut.

Sollte die DB wirklich defekt sein, kann man immer noch auf ein altes Backup oder ggf. sonstige Tools zurückgreifen.
Wenn alles läuft können die Daten aus der temporär genutzten “home-assistant_v2.db” übernommen werden.

Tipp:
Immer erst den Recorder deaktivieren bevor mit SQL-Tools gearbeitet wird.

2 „Gefällt mir“

Hallo Mick,

super beschrieben.

Vielen Dank
Viele Grüße Ingo