DB bei Absturz der VM defekt!

Gestern hat es mir beim Absturz der VM (HA) die SQL DB geschrotete.
IN HA läuft zwar wieder alles aber das System hat mir eine Neue DB erstellt.
Somit sind meine Daten im Energie Dashboard weg.
(Backup ist eine Woche alt)
Fragen:

  1. Welche Möglichkeiten und SQL Tools gibt es für HA die DB zu reparieren und die Daten des Energie Dashboards in die Neue DB zu übertragen? (z.b. via sql queries)

  2. Die alte DB hat 750 MB die Neue 30 MB??
    Ich frage mich warum so Groß? Das bisschen Energie Daten über ca. 3 Monate.
    Oder was sammelt da HA für Daten?

  3. Ich überlege mir für die Zukunft die DB Täglich zu sichern?
    Oder die SQL DB in einen separaten Proxmox Container ?
    Geht das ?

Gruß und schöne Osten

Wolfgang

Ja, das geht.
Du musst dann lediglich in der configuration.yaml die Angaben zum recorder machen:
db_url: mysql://username:password@192.168.178.xx:3306/database

1 „Gefällt mir“

Wenn Du Proxmox nutzen tust, würde sich die mariaDB anbieten. Nutze ich ich seit längerem als LXC in Proxmox. Das passende Script findest Du hier:

Was das Thema Proxmox und Backup angeht, da kann ich nur wärmstens den Proxmox Backup Server empfehlen. :grinning: läuft bei mir auf dem NAS in einer VM.

Gruß
Osorkon

1 „Gefällt mir“

Wenn das noch niemanden aufgefallen ist, HA nimmt schon länger von Sensoren die Daten länger als 10 tage auf.

Moin,

ich möchte es nur verstehen, daher die, vielleicht dumme Frage.

Sprichst Du wirklich von einer, per Add-on installierten MariaDB oder von der Internen sqlite?
Ich kenne die Mechanismen, von HA nicht, aber ist es wirklich so, dass, nach einem Crash, HA in einer MariaDB eine neue Datenbank anlegt?
Das Verhalten kenne ich nur von der internen sqlite

Wenn, es um die sqlite geht, dann kannst Du in Deinem Verzeichnisbaum schauen, und die home_assistant_v2.db suchen, die Größere sollte ja dann die sein, die die alten Werte gespeichert hatte.
Wenn man diese Datei herunterlädt, kann man dann mittels sqlitebrowser, versuchen die alte Datenbank zu öffnen und die Daten zu exportieren und dann versuchen diese wieder zu importieren.
Das ginge z. B. mit dem Add-on

Dann und diese Information hast Du ja schon von den Vorrednern, gehört, kann man sich ja zusätzlich influxDB oder MariaDB installieren, da werden dann zusätzlich die Daten gespeichert und können dann auch in Grafana ausgewertet werden.

VG
Bernd

1 „Gefällt mir“

Falls Du das ausschließlich mit den Boardmitteln von HA machen willst dann könntest Du das per Partielles Backup machen.

Mit diesen Einstellungen wird dann der Home Assistant Ordner (/homeassistant) gesichert mit Ausschluss der Dinge die Du nicht per Haken mit aufnimmst, aber incl. der home-assistant_v2.db.
Ha_Partielles_Backup

Die *.tar-Backup-Datei enthält dann die home-assistant_v2.db unter homeassistant.tar.gz → data → home-assistant_v2.db.

Eine tägliche Sicherung könntest Du dann per Automatisierung und per Dienst: Home Assistant Supervisor: Erstellt eine Teilsicherung (service: hassio.backup_partial) machen. Dort dann den standardmäßig gesetzten Haken bei Datenbank ausschließen herausnehmen.
Ha_Datenbank_ausschliessen

Beispiel-Automatisierung meiner wöchentlichen Vollsicherung (service: hassio.backup_full) per Zeitplan auf einem NAS.

alias: HA NAS Autobackup 1 x Woche
description: HA NAS Autobackup 1 x Woche
trigger:
  - platform: state
    entity_id:
      - schedule.zeitplan_backup_montag_nacht
    to: "on"
condition: []
action:
  - service: hassio.backup_full
    metadata: {}
    data:
      compressed: true
      location: NAS
      name: >-
        Vollbackup_{{ state_attr('update.home_assistant_core_update',
        'installed_version') }}_{{ now().strftime("%d-%m-%Y") }}
mode: single

Falls Du bei Dir HA unter Proxmox laufen haben solltest und/oder auf eine andere Datenbank wechseln wolltest, hättest Du natürlich noch ganz andere Möglichkeiten für eine Sicherung der DB.

VG Jim

1 „Gefällt mir“

Aber bitte vorher den Recoder stoppen und dann erst eine Sicherung Erstellung.
Eine db im laufenden Betrieb zu sicheren, endet in meisten fällen mit einer korrupten db.

Gruß
Osorkon

Falls sich das auf das Code-Beispiel beziehen sollte: Da in dem Fall der hassio.backup Service dafür genutzt wird ist ein stoppen des Recorders per recorder.disable nicht notwendig, da dies die Backup-Funktion von HA automatisch macht.

D.h. die Automatisierung macht in dem Fall nichts anderes als wenn man über Einstellungen → System → Backup dort per
Backup_Button

ein Backup manuell erstellt. Zumindest ich habe noch nie etwas davon gehört oder gelesen das man den Recorder stoppen müsste, sofern man den hassio.backup Service nutzt. Auch ist weder in der HA Doku zu Backup, noch dort bei dem Beispiel-Code für eine Automatisierung, die Rede davon.

VG Jim

1 „Gefällt mir“

Erstmal danke an alle für die Hilfe!

Werde zwei Sachen in Angriff nehmen!

  1. Datenbank in einen separaten LX Proxmox container!
    Dabei möchte ich aber SQLlite beibehalten.
  2. Die DB mehr als 1 mal die Woche zu sichern.

@Osorkon
LXC müsste doch auch mit SQLlite möchlich sein?

@ciddi89

Und wie lange werden die Daten gespeichert ?
Das rechtfertigt aber sicher keine 750 MB SQLlite DB über drei Monate.

@dp20eic

Ja das werde ich versuchen und die DB zu reparieren.
Gestern scheiterte es schon daran die alte DB via Samba auf den PC zu kopieren.
Wurde verweigert.

DB service vor dem Sichern stoppen ist mir klar.

Gruss
Wolfgang

Keine Ahnung. :man_shrugging:
Die Maria DB war schneller aufgesetzt. Außerdem nutze ich diese nicht nur als db für Home Assistant.
Was spricht den gegen mariaDB?

Gruß
Osorkon

Kenne mich mit SQL (server) und queries eigentlich recht gut aus.

Die queries sind identisch, egal ob mysql. SQLite oder mariaDB

Gruß
Osorkon

OK das ist schon mal Gut.

Was ich nicht weis ist wie kann man bei HA den den DB service stoppen ohne das ganze HA runter zu fahren?

service recorder.disable

Und

service: recorder.enable

Gruß
Osorkon

1 „Gefällt mir“

Moin,

doch, denn das ist ja nicht nur die Datenbank zur Speicherung der historisierten Daten, sondern auch der Zustände usw.
Das Datenbankschema sieht in etwa so aus

Und meine sqlite im produktive System ist

➜  homeassistant git:(main) ✗ ls -lh
-rw-r--r--    1 root     root        2.6G Mar 31 18:51 home-assistant_v2.db

Wenn Du sie kleinhalten willst, dann musst Du Dich mal mit dem prune beschäftigen und/oder mit den records alles exclud(en) und nur das includ(en) das Du wirklich gespeichert haben willst.

Lange, aber in reduzierte Auflösung, links vom Pfeil, reduziert, rechts volle Auflösung.

Auch wenn Du auf mariaDB umsteigst, hast Du das Problem, dass sie Dir anwächst, also auch da ist prune und/oder sinnvolle records zu beachten.

VG
Bernd

Versuch mal ein Backup, dann das .tar oder zip file herunterladen und schauen ob es da mit drin ist.
Wenn Du in HA KleinWeich Shares einbindest, dann kannst du das auch gleich dorthin sichern.


VG
Bernd

P.S.: ich mache das in einer reinen Linux Umgebung so:

➜  config git:(main) ✗ scp -p home-assistant_v2.db dp20eic@ryzen-5:/tmp
The authenticity of host 'ryzen-5 (192.168.178.42)' can't be established.
ED25519 key fingerprint is SHA256:+Hbm8H+wc3tgG26zZLv+pFwCcc1D7Bdy6LVQHL9fxPM.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'ryzen-5' (ED25519) to the list of known hosts.
dp20eic@ryzen-5's password: 
home-assistant_v2.db                  

Noch frohe Ostern

https://www.biohof-apfelbeck.de/?page_id=216

@Osorkon

Hallo Osorkon

bin gerade dabei mir eine LCX mit Mariadb aufsetzen.

Folgende Fragen:

Was gibt es für Management Tools für die “Mariadb” am liebsten für Windows!
(Für Views oder Abfragen und Exports…usw.)

Wie sicherst du die DB?
( Proxmox Backup oder snapshot ??? oder von HA aus?)

Gruss
Wolfgang

Moin,

bin zwar nicht der Angesprochene :slight_smile:
Das sind die zwei, die ich nutze!

Und dann diese Seite

Zur Nutzung in HA, können Dir sicherlich andere mehr helfen, ich mache von meinen Datenbanken nur Backups, der LX Container.
Vielleicht mal noch ein Dump, wenn ich spielen will.

VG
Bernd

1 „Gefällt mir“

Wöchentlich auf dem Proxmox Backup Server.
Dabei stoppe ich den LXC, wenn das Backup ausgeführt wird.
Wenn MariaDB als LXC losgelöst von Home Assistant läuft, bringt Dir ein Home Assistant Backup ja herzlichst wenig, wenn es um die dB geht. :wink:

Gruß
Osorkon

@Osorkon

OK du gibt im Backup job (Proxmox) an Stopp!?
(ist das richtig)

Und muss man in diesem fall auch den Recorder in HA stoppen?

Gruss und Danke