FHEM Forum

FHEM => Automatisierung => Thema gestartet von: micomat am 19 Oktober 2016, 16:57:46

Titel: Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 16:57:46
Hallo zusammen,

ich ueberlege eben meine FHEMs zukuenftig in eine DB Loggen zu lassen. Diese wuerde ich wohl auf meinem Synology-NAS laufen lassen. Da dieses aber hin und wieder einen Neustart wegen Updates braucht stellt sich mir die Frage, was tut FHEM wenn die DB mal nicht da ist? Faehrt es an die Wand oder fehlen einfach die Eintraege fuer den Zeitraum?

Gruß
Markus
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: Frank_Huber am 19 Oktober 2016, 17:01:26
Ist nicht direkt ne Antwort, aber ich hab das DBLOG lokal auf der SD Karte des Raspberrys und jede Nacht sichert das Raspberry auf meinen Fileserver. Bei erfolgtem Backup ekomme ich noch na Pushover NAchricht.

Backup habe ich mit der Anleitung eingerichtet:
http://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/

vielleicht hilfts.

Grüße
Frank
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 17:08:25
Wird dabei die DB gestoppt? Denn das waere ja der Fall wenn das NAS durchstarten wuerde.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: drdownload am 19 Oktober 2016, 17:31:56
Mein FHEM ist früher immer abgestürzt wenn die DB weg war (mysql)
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 17:38:07
Das waere dann ein Argument gegen DBLog... beim FileLog passiert nichts wenn das Storage mal kurz weg ist und danach wieder gemountet wird.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: Frank_Huber am 19 Oktober 2016, 18:50:08
also ich weis nicht wie genau das Backup das macht, ein Test-Restore samt dblog lief auf jeden Fall erfolgreich.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 19:19:26
Hmm... bin aktuell noch eher skeptisch.
Mein NAS macht taeglich ein Backup und stopt dazu eben auch die MariaDB... Wenn FHEM dann jedes mal an die Wand faehrt taugt das eher nicht.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: rubbertail am 19 Oktober 2016, 19:26:50
Wenn Fhem als Dienst eingerichtet wird, startet es immer wieder - und läuft dann wieder weiter, wenn die DB wieder da ist. Getestet mit Fhem auf RasPi und MariaDB auf nem QNAP
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 19:50:55
Du fragst Sachen ;) Normalerweise startet mein FHEM mit dem RasPi-Boot, aber ich moechte eigentlich nicht, dass FHEM abschmiert nur weil ein Backup laeuft. Es soll weiterlaufen auch wenn die DB nicht verfuegbar ist. Alles andere ist fuer mich nicht akzeptabel da FHEM u.a. die Lueftungsanlage steuert.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: DeeSPe am 19 Oktober 2016, 19:53:16
Was spricht gegen eine lokale MySQL Installation auf dem FHEM Host?
Kannst doch dann z.B. per cron alle paar Stunden ein DB Dump auf dein NAS machen.

Gruß
Dan
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: rudolfkoenig am 19 Oktober 2016, 20:08:56
Nur aus Neugier: wieso faehrt man die DB runter? Jaja, Konsistenz und so, aber ist das hier relevant? Mit welchem Befehl wird das backup erstellt?
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 20:19:23
@Dan, mir sind leider schon div. SD-Karten abgeraucht. Seitdem laeuft FileLog komplett auf ein Share des NAS und ich bin damit sehr zufrieden. Daher habe ich auch bereits andere DB-Jobs auf die MariaDB des SynologyNAS ausgelagert. Dein Vorschlag rettet zwar die Daten, aber ich muss wohl trotzdem ab und an den Pi wegen toter SD neu aufsetzen.

@Rudolf, das Synology stoppt die MariaDB fuers FullBackup auf eine externe HDD. Jaja, Konsistenz und so ;)
Wuenschenswert waere eine Art Cache. DB Lost, Cache auf lokales /tmp und wenn Connection wieder da --> ab in die DB.
Mir waere es auch egal wenn mal Daten fehlen, aber FHEM muss weiterlaufen auch wenn die DB weg ist, und danach ohne meine Ineraktion wieder in die DB schreiben.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: Wuppi68 am 19 Oktober 2016, 20:50:39
dann logge doch in lokale DB und schiebe die Daten dann einfach in die zentrale große DB im 10 Minutentakt oder so ...

oder

richte eine lokale DB ein und synchronisiere die automatisch mit der Sinologie DB ... sollte dann keine Crashed geben
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 20:54:18
Waere ein Workaround, aber eben nur ein Workaround. Auch dadurch werden hunderte oder tausende Schreibzugriffe pro Tag auf die SD erzeugt, was deren Lebensdauert verkuerzt. Und ob FHEM beim Abschmieren der DB weiterlebt ist auch mit diesem Workaround nicht wirklich klar.
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: DeeSPe am 19 Oktober 2016, 21:28:34
Zitat von: micomat am 19 Oktober 2016, 20:54:18
Waere ein Workaround, aber eben nur ein Workaround. Auch dadurch werden hunderte oder tausende Schreibzugriffe pro Tag auf die SD erzeugt, was deren Lebensdauert verkuerzt. Und ob FHEM beim Abschmieren der DB weiterlebt ist auch mit diesem Workaround nicht wirklich klar.

Ist denn die Schreibhäufigkeit auf SD bei MySQL so groß?
Bin kein MySQL Profi, aber ich dachte da spielt sich das meiste erst einmal im RAM ab.
Das lässt sich doch sicher auch irgendwie konfigurieren.

Gruß
Dan
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: Wuppi68 am 19 Oktober 2016, 21:28:56
dann mache doch eine lokale DB im RAM :-)
per cron oder so alle x Sekunden diese in die Haupt DB übertragen ...
oder trigger mit stored procedures


Aber wenn meine Anwendung eine Datenbank als Service verlangt, dann muss dieser auch zur Verfügung stehen - und sich gulfs dann auch entsprechend "beenden".
Titel: Antw:Wie fehlertolerant ist DBLog?
Beitrag von: micomat am 19 Oktober 2016, 21:59:37
das könnte alles so funktionieren und danke an der stelle auch für die ideen.
aber das ist mir alles zu schwammig, da bleibe ich eher beim filelog.

aber nochmal zum eigentlichen knackpunkt: kackt fhem nun ab wenn die db fehlt oder nicht und kann man das nicht anfangen sollte es abkacken wollen? das wäre ja irgendwo auch ein stabilitätsplus oder nicht?
ich könnte mir da eine art ringpuffer vorstellen?