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
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
Wird dabei die DB gestoppt? Denn das waere ja der Fall wenn das NAS durchstarten wuerde.
Mein FHEM ist früher immer abgestürzt wenn die DB weg war (mysql)
Das waere dann ein Argument gegen DBLog... beim FileLog passiert nichts wenn das Storage mal kurz weg ist und danach wieder gemountet wird.
also ich weis nicht wie genau das Backup das macht, ein Test-Restore samt dblog lief auf jeden Fall erfolgreich.
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.
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
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.
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
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?
@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.
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
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.
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
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".
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?