Error adding /data/homeassistant/home-assistant_v2.db

Hall zusammen,

ich habe seit gestern ein Problem mit der Erstellung von Backups. Ich dachte zuserst, es liegt an dem Netzwerk share (SMB), auf dem ich die backups ablege. Leider funktioniert das backup aber auch lokal nicht mehr. Es kommt immer nach kurzer Zeit folgender Fehler:

> 0\[31m2025-08-03 17:32:06.792 ERROR (SyncWorker_3)
>
> \[supervisor.homeassistant.module\] Can't backup Home
>
> Assistant Core config folder: Error adding /data/homeassistant/home-assistant_v2.db to tarfile:
>
> \[Errno 51 I/0 error (0SError)0\[0m
>
> 0\[31m2025-08-03 17:32:07.138 ERROR (MainThread)
>
> \[supervisor.backups.manager\] Backup 5b79d16e error: Can't backup Home Assistant Core config folder: Error adding /data/homeassistant/home-assistant_v2.db to tarfile:
>
> \[Errno 5\] I/0 error (0SError)O\[0m

Bislang (<2 Jahre) lief das ganze ohne Probleme. Am setup habe ich nichts geändert. Ich habe bei der Problemsuche das hier gefunden. Aber in meinem Fall liegt es nicht am Netzwerkshare. Auch das commit_interval auf 30 zu setzen hat leider nichts gebracht.

Kann mir jemand weiterhelfen?

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Moin,

etwas mehr Kontext zur HA Umgebung!
Dann wie groß ist die Datenbank, also das Datenbankfile?

Welches Commit Interval meinst Du?

Hast Du beim Backup mal die Ressourcen, Memory, CPU usw. beobachtet?
Ist auf dem Share noch Platz?

VG
Bernd

Hallo Bernd,

Homeassistant läuft unter HassOs 16.0 nativ auf einem mini PC. Die Datenbank Größe kann ich momentan nicht nachschauen. Ich vermute aber ziemlich groß Sammele schon seit ein paar Jahren ziemlich viele Sensordaten. Ich habe derzeit keine (physischen) Zugriff auf den Rechner. Befinde mich aktuell im Urlaub und habe das Problem erst nach der Abreise entdeckt.

Habe dann leichtsinniger Weise ChatGPT gefragt. Das hat mir geraten, die home-assistant_v2.db umzubenennen, und nach reboot ein backup zu versuchen. Das ging auch, es wurde dann ja eine neue home-assistant_v2.db erstellt. Habe dann die ‘neue’ db wieder gelöscht, und die alte wieder in home-assistant_v2.db umbenannt. Beim nächsten reboot wurde diese dann als ‘corrupt’ geflagged. Somit schein das Problem identifiziert.

ChatGPT hat mir dann geraten, die Datenbank zu reparieren. Dafür sollte ich zunächst ha core stoppen. Blöde Idee. Seither habe ich keinen remote Zugriff mehr. Ich werde also warten müssen, bis ich wieder ‘vor Ort’ bin, oder jemanden aus der Familie finde, der den Rechner neu bootet.

Mit commit interval meinte ich die Einstellung

recorder:
commit_interval: 30

in der configuration.yaml

Mein aktueller Plan wäre:

1.) Wenn ich wieder physischen Zugriff auf den Rechner habe, über das cli von HassOS die Reparatur versuchen. Bin mir allerdings unsicher, ob ich da ChatGPT nochmal vertrauen soll.

2.) Das letzte komplette Backup ist vom 29.7.25. Wenn Option 1 nicht funktioniert würde ich versuchen, die home-assistant_v2.db aus dem backup zu extrahieren und zurück zu spielen.

3.) Habe jetzt schon mehrfach gelesen, dass bei großer Datenbank ein Umstieg auf MariaDB oder PostgreSql sinnvoll wäre. Ich denke, wenn ich die Datenbank restauriert bekomme werde ich MariaDB in einem ProxmoxVE als lxc installieren, und versuchen, dass zu verknüpfen. Allerdings ist mir ein bisschen Unwohl bei der Vorstellung, dass das dann auf verschiedenen Maschinen läuft. Was passiert wenn MariaDB nicht verfügbar ist (backup, Server update,…) ? Werden die Daten dann von homeassistant irgendwo ‘gepuffert’? Oder produziere ich da das nächste Problem?

4.) Für Zukünftige Ereignisse würde ich abschließend noch den ssh Zugang in HassOs aktivieren.

Für weitere/andere Ideen bin ich dankbar.

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

Moin,

das ist der Nachteil, wenn man dann alles das macht, was einem da vorgesetzt wird, gerade, wenn man nicht weiß, was man da tut, oder versteht was ein Befehl macht, kann ich aber nicht beurteilen, da ich ja nicht weiß, was genau Du wie gemacht hast.

Genau, aber wie, was hast Du vorher gemacht, denn um das zu machen, muss man erst einmal alles, was aktuell mit der Datenbank verbunden ist herunterfahren und nicht einfach der Applikation die Datenbank unter dem Arsch wegziehen :wink:

Genau in diese Richtung wollte ich auch gehen, ist aber jetzt erst einmal zu spät.

Wenn man da an den Recordern nicht herumgespielt hat, dann wird die Datenbank nicht groß, wenn man natürlich den Recorder auf 365 Tage gestellt hat, weil man glaubt, das hilft bei den Langzeitstatistiken, dann ja, dann müllt man die Datenbank zu.
Ich betreibe HA seit Dez. 2023 und mein Datenbankfile ist ~ 2 GB groß, trotzdem habe ich alle relevanten Daten, bis in den Dez. 2023!

Nein, das kann passiert sein, als Du das File umbenannt hast, wenn man das nicht korrekt macht, dann wurden Daten, die im Speicher lagen, nicht in die Datenbank geschrieben, oder es waren noch Tabellen zum Schreiben offen, ach da gibt es so viele Dinge, die schiefgehen können.
Wenn Du vorher in Deinen Logs nie etwas gesehen hast, das Deine Datenbank korrupt ist, dann war sie es auch nicht.

Und das würde ich auch nie machen, Urlaub sollte man genießen und nicht aus der Ferne an Datenbanken herumspielen :wink:

Du weißt aber schon, was dieser Befehl macht und wann man diesen einsetzen sollte?
Der ist eigentlich dazu da, dass Daten nicht so oft auf den Datenträger geschrieben werden, und ist eine Schutzmaßnahme für SD-Karten, die in einem RasPI stecken, damit die nicht kaputt geschrieben werden. Aus der Dokumentation,


Da Du HAOS auf einem PC mit HDD, SSD, oder M.2 NVME nutzt ist das eher überflüssig :wink:

Zu Deinem weiteren Vorgehen,
zu

  1. kann, will ich mich nicht äußern.
  2. das geht meistens schief, da gewisse Zustände, nicht nur in der Datenbank stehen, sondern auch in einigen Dateien, wenn dann die Einträge in den Dateien nicht mit den IDs in der Datenbank zusammen passen, startet das gesamte System nicht mehr.
  3. es ist eher sinnvoll zu schauen, was Du da mit Deiner recorder Einstellung verbrochen hast, denn eigentlich wächst die Datenbank nicht unaufhörlich, siehe bei mir ~ 2 GB für fast 2 Jahre.

Ohne alle Einstellungen und Veränderungen am System lässt sich da nicht viel zu sagen, ich würde mal Aufräumen, versuchen die Datenbank wieder auf eine normale Funktion zu bringen.
Aber das ist alle nur Kaffeesatz lesen, solange man keine konkreten Zahlen oder Konfigurationen sieht, dass das Datenbankfile der Auslöser ist, ist ja noch nicht eindeutig geklärt, da ja auch noch nicht alle Ressourcen des Mini-PCs bekannt sind, war, ist es wirklich ein Speicherproblem, das beim Sammeln der Daten für das Backup der Speicher voll läuft und dann in den Swap ausgelagert wird, der dann auch voll ist :man_shrugging: :thinking:

VG
Bernd

Tja wohl wahr, ich dachte, ich brings mal eben schnell in Ordnung…

Mein Hauptanliegen wäre, das System wieder auf einen funktionierenden Zustand (inkl. db) zurück zu bringen. Beste Option das letzte funktionierende komplette backup (29.7.) wieder einzuspielen?

Ne, ausser dem Versuch mit dem commit_interval habe ich nix zu recordern definiert. Nachdem das nicht funktioniert hat, habe ich den Eintrag wieder aus der config entfernt.

Nur wie?

Moin,

dazu fehlen die Informationen, wenn Du sagst, dass Du am Recorder nichts verändert hast, dann sollte die Datenbank ja auch nicht gigantisch sein, also erst einmal die Fakten auf den Tisch legen, dann weiterschauen.
Hast Du das Add-on Advanced ssh & Web Terminal installiert, dann kannst Du doch schauen, was da so an Größen angezeigt wird, z. B.

➜  ~ ls -la config/home-assistant_v2.db*
-rw-r--r--    1 root     root     1913745408 Aug  4 12:41 config/home-assistant_v2.db
-rw-r--r--    1 root     root         32768 Aug  4 12:41 config/home-assistant_v2.db-shm
-rw-r--r--    1 root     root       5879272 Aug  4 12:41 config/home-assistant_v2.db-wal
➜  ~ 

Oder wenn man eher mit lesbaren Zahlen umgehen möchte

➜  ~ ls -lah config/home-assistant_v2.db*
-rw-r--r--    1 root     root        1.8G Aug  4 12:41 config/home-assistant_v2.db
-rw-r--r--    1 root     root       32.0K Aug  4 12:42 config/home-assistant_v2.db-shm
-rw-r--r--    1 root     root        5.6M Aug  4 12:42 config/home-assistant_v2.db-wal
➜  ~

Was wird noch so alles auf dem PC gespeichert, z. B. Bilder, Videos, von Kameras die in HA integriert sind?
Liegen nicht doch irgendwelche Backups auf dem PC, die immer wieder mit ins Backup mit eingepackt werden?
Sammelst Du Metriken vom PC die Dir den Speicherverbrauch (Memory) ausgeben?
Ich würde das Speichermedium testen, zudem wie und wo hast Du den Share eingebunden?
Was ich mich gerade Frage, warum das der Pfad /data/homeassistant/ ist, ist da vielleicht doch ein lokales Laufwerk voll :thinking:
Also bin ich wieder bei, erst einmal Fakten auf den Tisch :slight_smile:

Du kannst Dir ein Tool dazu installieren, mit diesem kann man sich den Füllstand anzeigen lassen.

➜  / apk update  
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
v3.22.1-140-gf99ef8dc6b8 [https://dl-cdn.alpinelinux.org/alpine/v3.22/main]
v3.22.1-145-g2320e7dfe09 [https://dl-cdn.alpinelinux.org/alpine/v3.22/community]
OK: 26334 distinct packages available
➜  / apk add ncdu
OK: 260 MiB in 246 packages
➜  / 

Dann wie folgt, aufrufen

# sudo ncdu /

Dann sollte da in etwa das bei herauskommen

ncdu 1.22 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                                                                                                                  
--- / --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  278.4 GiB [###########################################] /media                                                                                                                                                                                                                                              
    1.9 GiB [                                           ] /homeassistant
  493.6 MiB [                                           ] /var
  310.9 MiB [                                           ] /usr
   25.2 MiB [                                           ] /share
   14.8 MiB [                                           ] /root
    5.7 MiB [                                           ] /package
    2.5 MiB [                                           ] /bin
    1.7 MiB [                                           ] /etc
    1.5 MiB [                                           ] /lib
  632.0 KiB [                                           ] /run
  356.0 KiB [                                           ] /sbin
  184.0 KiB [                                           ] /addon_configs
   88.0 KiB [                                           ] /data
   76.0 KiB [                                           ] /tmp
   52.0 KiB [                                           ] /command
   12.0 KiB [                                           ] /backup
   12.0 KiB [                                           ] /home
   12.0 KiB [                                           ] /ssl
    4.0 KiB [                                           ] /lib64
e   4.0 KiB [                                           ] /srv
e   4.0 KiB [                                           ] /opt
e   4.0 KiB [                                           ] /mnt
e   4.0 KiB [                                           ] /addons
    4.0 KiB [                                           ]  init
    0.0   B [                                           ] /sys
.   0.0   B [                                           ] /proc
    0.0   B [                                           ] /dev
@   0.0   B [                                           ]  config
    0.0   B [                                           ]  .dockerenv

Mittels Pfeiltasten kann man dann durch die einzelnen Verzeichnisse navigieren.

VG
Bernd

1 „Gefällt mir“

Hallo Bernd,

erstmal vielen Dank für die sehr ausführliche Hilfe! Wie gesagt, momentan habe ich keine Zugriff auf das System. Ich denke, ich werde morgen jemanden vor Ort haben, der zumindest ein Kaltstart des Rechners machen kann (oder auch eine blöde Idee?). Mit Tastatur und Monitor am Rechner müsste ich warten, bis ich in 3 Wochen wieder zurück bin.

habe ich installiert. Mit der Option

Protection mode = false

Sobald ich Zugriff habe, werde ich die Informationen liefern!

beste Grüße

Holger

Moin,

wie hast Du denn dann aus der Ferne das mit dem Datenbankfile gemacht, oder war diese Aktion noch vor dem Urlaub?
Ich würde nichts machen, bis ich selbst wieder vor Ort wäre, denn wie ist es immer bei CSI erst muss die Forensik durch, alles aufnehmen, denn hinterher weiß man nie was das Problem war, ist.

Ist aber immer im Ermessen des Betreibers, ich mache, ca. 1 Woche, vor Urlaubsantritt, auch keine unnötigen Änderungen, am System :wink:

VG
Bernd

Über VPN (Tailscale). Jetzt wo Du‘s geschrieben hast, fällt mir auch auch, das es eine doofe Idee war die in Benutzung befindliche Datenbank umzubenennen. War ne Kurzschlußreaktion.

Kaltstart dürfte eigentlich keine weiteren Probleme machen, ha core ist ja eh schon gestoppt?!

Klar wäre es sicher besser, wenn ich warte, aber sowas kann ich schlecht liegen lassen. Ich werd los zumindest mal versuchen, ha wieder online zu bringen. Alles weitere hängt maßgeblich davon ab, wann meine bessere Hälfte mir genervt das IPad wegnimmt.:wink:

Ich meld mich wieder, wenns was neues gibt.

Nur mal hypothetisch, wenn ich ha wieder online bringe und die nächsten zwei Wochen laufen lasse, könnte ich dann später die jetzt neue Datenbank mit der, hoffentlich irgendwann wiederhergestellten migrieren?

Gruß

Holger

Moin,

wenn Du SQL Kenntnisse hast, ginge das, es geht ja “nur” um die Langzeitstatistiken, dazu sind nur wenige Tabellen notwendig.

VG
Bernd

Hi Bernd,

HA läuft wieder.

Das hier sieht anders aus als bei Dir🤔

Moin,

ok, das ist jetzt ja eine neue Datebank, und sehr groß ist die auch nicht, auch die korrupte ist nicht groß.

Dazu kann ich jetzt auf die schnelle leider nichts zu sagen, Du hast nur

apk update

eingegeben?

VG
Bernd

Eigentlich nicht, hab das aus Deinem post kopiert

Habe ich noch nicht gemacht, wusste nicht ob der vorherige Befehl so korrekt war.

Könntest Du mir helfen, die defekte Datenbank wieder zu reparieren?

Gruß

Holger

Moin,

kann da nicht folgen :thinking:

Also wenn Du das am Prompt eingibst

apt update

Der Prompt ist das

➜  ~

Wenn Du da auch fetch und alles andere mit kopiert hast, dann sind die Fehlermeldungen zu verstehen, der Befehl zum Updaten der apk Datenbank ist nur apt update

Wenn die Datenbank aktualisiert ist, dann muss man das Paket ncdu installieren mit dem Befehl apk add ncdu

Das wird aus der ferne etwas komplizierter, zumal Du im einfachsten Falle zwei Möglichkeiten hast,

  1. Du verzichtest auf die von vor dem ganzen herumexperimentieren, oder
  2. es werden zwar die alten Daten da sein, aber die Daten aus den Vergangenen Tagen gehen verloren

Aber ließ Dich mal etwas in die Matherie ein

VG
Bernd

apk update, richtig?

Ich weiß nicht ob das von Nutzen ist, aber ich habe vor dem bedauerlichen Fehler mit dem Umbenennen mit dem Befehl:

sqlite3 home-assistant_v2.db ".dump" > dump.sql

das oben vorhandene file erzeugt.

Das wäre ok für mich. Lieber die Werte der letzten Jahre zurück und die letzten 7 Tage sind weg, als andersrum.

Werde mir die links ansehen, Danke!

BTW, das initiale Problem (backup) ist ja noch im Dunkeln.

Meine Installation sieht so aus, dass ich Homeassistant auf einer externen USB Festplatte installiert habe. Ich habe in dem Rechner auch noch eine nvme SSD. Ich wollte das damals erstmal testweise installieren und dann irgendwann auf die nvme. Weil’s gut funktionierte, und ich nicht sicher war, wie es unproblematisch zu ändern wäre, hab ich’s so gelassen. Wäre vielleicht an der Zeit das mal zu ändern…

Der Netzwerkshare wird nur für die backups genutzt und liegt auf einer Synology NAS.

Sorry wenn ich mich ein bisschen blöd anstelle, habe bei vielem in dieser Materie ein bisschen Ahnung, aber nirgendwo viel.:wink:

gruß

Holger

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Moin,

ok, das ist eine neue Information, die aber wichtig ist, denn wenn es mal kurz auf dem USB wackelt, dann kann es schon passieren, dass etwas korrupt sein kann, ein wichtiges System, im Sinne von Hausautomatisierung, sollte man nicht auf externen USB Platten betreiben, das Du da Daten auslagerst, auf die man keinen 100-prozentigen Zugriff brauch ist ok, aber eben nicht HA, da sollte man das System so stabil wie möglich halten, LAN, statt WLAN, SSD, statt HDD usw.

ja, dann ein sauberes Backup einspielen, Du kannst vorher schauen, ob im Backup Archive auch Dateien, die als korrupt gekennzeichnet sind liegen, dann das nicht nehmen.
Das Backup File kann man auch auf einem Win PC mittels 7ZIP anschauen.

Das ist kein Problem, Nobody is perfect :wink:

Gestatten, mein Name ist Nobody :slight_smile:

VG
Bernd

1 „Gefällt mir“

So, hab jetzt eine Neuinstallation auf der internen SSD gemacht. Danach dann das Backup vom 29.07. eingespielt. Jetzt funktioniert alles wieder. Hab jetzt eine Datenlücke von 3 Wochen. Dafür sind alle die Langzeitdaten wieder da.

Die interne SSD hat 256 GB. Momentan ist diese zu 17% voll. Die externe Platte, auf der HA vorher war, hatte 2 TB.

Ist die SSD prospektiv zu klein? Macht es Sinn, die externe Platte als Datenlaufwerk zu nutzen?

Oder kann man die Daten eventuell auf ein NAS SMB share auslagern?

Moin,

das ist aus meiner Sicht schon echt viel, speicherst Du z. B. die Backups intern auf der SSD, oder irgendwelche Bilder?
Dann könnte ich mir schon vorstellen, dass man 40 GB Auslastung hat, mein gesamtes Laufwerk für meine HAOS VM ist nur 32 GB groß und davon sind nur ~8 GB in Benutzung.

Nein, definitiv nicht, nur wenn man unsinnige Sachen macht,

  • Backups lokal abspeichern
  • Bilder, Videos, von Überwachungskameras, intern abspeichern
  • den Recorder auf unsinnige Werte eingestellt hat, weil man glaubt, man bekommt bessere Langzeitstatistiken

Wenn Du zu Punkt 1 und 2, ein Ja stehen hast,dann macht das auf jeden Fall Sinn.

Dazu musst Du ja erst einmal wissen, welche “Unsinnigen Daten”, Du in HA abgelegt hast, wenn das bekannt ist, dann auch hier ein klares Ja.

VG
Bernd

Backups liegen auf einer NAS. Frigate speichert die Aufzeichnungen lokal. Muss mal schauen ob ich versuche das zu ändern.

Vielleicht so? :wink:

Danke!

Moin,

zu Frigate und den Möglichkeiten, kann ich nicht viel beitragen, aber ich würde versuchen, alles von HA, was nicht mit Integrationen und Erweiterungen zu tun hat, davon fernzuhalten, also alles was Backups, Medien, also Sachen, auf die man nicht immer zugriff, haben muss, extern zu sichern.

Ist aber eine persönliche Meinung, das mag jeder anders sehen und entscheiden.

VG
Bernd

1 „Gefällt mir“