Hallo,
nun hat es mich auch mal wieder erweischt 8)
Seit gestern abend schreibt mir FHEM nichtsmehr in die sqlite3-DB und ich kann auch keine Plots mehr aufrufen.
siehe Screenshot
Diese Meldung habe ich eigentlich nur bekommen wenn die HDD am RasPi mal wieder nicht richtig gemountet wurde.
Da aber auch das FHEM-Logfile auf der HDD liegt und FHEM brav in sein eigenes Logfile schreiben kann ist ein Mountproblem erstmal auszuschliessen.
Zumal ich auch auf den Ordner /media/HDD/DB zugreifen kann und dort auch die fhem.db liegt.
Ein <sqlite3 fhem.db> mit einer Abfrage der Tables <.tables> bringt mir oben angegeben Fehler.
"file ist encrypted or ist not a database"
Die letzten Daten wurden gestern um 19:08 Uhr in die DB geschrieben.
Zu diesem Zeitpunkt findet sich aber kein Eintrag im Logfile:
Zitat2014.02.14 16:50:00 2: CUL_HM set OG_Flur_Licht off
2014.02.14 16:50:00 3: FS20 set OG_Bewegungsmelder_Flur_Bad off
2014.02.14 16:50:05 2: CUL_HM set OG_Flur_Licht off
2014.02.14 16:50:08 3: Heizbedarf: 10 von 11 Stellantrieben im Leerlauf.
2014.02.14 16:50:31 2: CUL_HM set OG_Flur_Licht pct 80
2014.02.14 16:50:31 2: CUL_HM set OG_Flur_Licht pct 80
2014.02.14 16:50:33 1: Perfmon: possible freeze starting at 16:50:32, delay is 1.037
2014.02.14 16:51:02 2: CUL_HM set OG_Flur_Licht off
2014.02.14 16:51:02 3: FS20 set OG_Bewegungsmelder_Flur_Bad off
2014.02.14 16:51:07 2: CUL_HM set OG_Flur_Licht off
2014.02.14 16:52:04 1: CUL_WS UNDEFINED temp/hum sensor detected, code 4
2014.02.14 16:52:30 1: CUL_WS UNDEFINED temp/hum sensor detected, code 2
2014.02.14 16:52:46 1: Perfmon: possible freeze starting at 16:52:45, delay is 1.27
2014.02.14 16:52:48 1: Perfmon: possible freeze starting at 16:52:47, delay is 1.054
2014.02.14 16:52:51 1: Perfmon: possible freeze starting at 16:52:50, delay is 1.672
2014.02.14 16:55:00 1: CUL_WS UNDEFINED temp/hum sensor detected, code 4
2014.02.14 16:55:27 1: CUL_WS UNDEFINED temp/hum sensor detected, code 5
2014.02.14 19:16:33 1: Including fhem.cfg
2014.02.14 19:16:34 2: Perfmon: ready to watch out for delays greater than one second
2014.02.14 19:16:34 3: telnetPort: port 7072 opened
2014.02.14 19:16:35 3: WEB: port 8083 opened
2014.02.14 19:16:35 3: WEBphone: port 8084 opened
....
2014.02.14 19:16:38 3: Connecting to database SQLite:dbname=/media/HDD/DB/fhem.db with user
2014.02.14 19:16:39 3: Connection to db SQLite:dbname=/media/HDD/DB/fhem.db established for pid 27840
2014.02.14 19:16:39 3: Connection to db SQLite:dbname=/media/HDD/DB/fhem.db established
Um 19:16 Uhr habe ich FHEM neu gestartet in der Hoffnung wieder an meine Plots zu kommen und FHEM wieder dazu bewegen zu können in die DB zu loggen aber Pustekuchen.
Bin mal wieder für jede Idee dankbar wie ich meine Datenbank zum Leben erwecken kann.
Grüße
Es muss aber wohl um 16:55 schon etwas gewesen sein da ich sonst immer Einträge im FHEM-Logfile bekomme.
Ich weiß nicht, ob das hier das gleiche Problem darstellt aber bei mir konnte sich FHEM nach dem Update gestern nicht mehr per "localhost" mit der DB verbinden. Die Ursache dafür habe ich noch nicht ermitteln können. Verbindung mit 127.0.0.1 klappt. Andere Dienste können auch per locahost verbinden. Auch bei mir sah es so aus, als wäre die Verbindung ok. War sie aber nicht.
Hallo,
danke erstmal für die Antwort.
Ich habe jetzt mal eine neue Datenbank erstellt (fhem1.db).
Diese in die db.conf eingetragen und die Plots werden wieder dargestellt - nur eben leer da ja noch keine Daten in der DB stehen.
Also der Zugriff auf den Ordner /media/HDD/DB und die Datei fhem1.db funktioniert an sich schonmal.
Nur möchte ich gerne die Daten der letzten 6 Monate nicht unbedingt verlieren ???
Kann ich die "alte" Datenbank reparieren?
Ich bin leider in Datenbanken nicht wirklich fit.
Durch FHEM und das Charting-Frontend bin ich erst zu sqlite gekommen.
Grüße
Das hier hat bei mir schonmal geholfen:
http://cratoo.de/2008/02/21/defekte-sqlite-datenbank-reparieren (http://cratoo.de/2008/02/21/defekte-sqlite-datenbank-reparieren)
Wenn das auch nicht geht, dann hilft oft ein Dump:
http://blog.sascha-kluth.de/sqlite-datenbank-reparieren/ (http://blog.sascha-kluth.de/sqlite-datenbank-reparieren/)
Hallo,
danke für die Links.
Einen Dump habe ich bereits am laufen -- http://community.spiceworks.com/how_to/show/1468-how-to-fix-corrupt-sqlite-database (http://community.spiceworks.com/how_to/show/1468-how-to-fix-corrupt-sqlite-database)
Nur steht in sqlite3 der cursor
...> und es tut sich nichts.
Ok, die DB ist auch nicht gerade klein - immerhin knapp über 3GB.
Ich lass den Dump mal laufen und schau später nochmal was sqlite so macht.
Grüße
Zitat von: Puschel74 am 15 Februar 2014, 10:42:03
Einen Dump habe ich bereits am laufen
Nur steht in sqlite3 der cursor
...> und es tut sich nichts.
gib mal einen Strichpunkt ein und drücke enter, damit der dump auch irgendwann startet :)
Hallo,
::)
Da kann ich ja lange warten.
Danke betateilchen für den Schupps.
Nur bekomme ich jetzt
Error: near "echo": syntax errorEingegeben habe ich das:
Zitatecho ".dump" | sqlite3 fhem.db > fhem.sql
sowie auch das:
Zitatecho .dump | sqlite3.exe fhem.db > fhem.sql
Also ein copy&paste
SQLite3 ist installiert - der RasPi sagt mir
sqlite3 ist schon die neueste Version.
Grüße
Edith: Gebe ich den Befehl nicht in sqlite3 ein sondern auf der Kommandozeile von Putty bekomme ich recht schnell eine fhem.sql - die ist aber nur 135 Byte groß :o
warum machst Du es denn so furchtbar kompliziert?
sqlite3 fhem.db .dump > fhem.sql
Hallo,
Zitatwarum machst Du es denn so furchtbar kompliziert?
Weil ich das so aus dem Link von marvin78 hab 8)
Wenn ich deinen Befehl auf der Kommandozeile eingebe bekomme ich ein fhem.sql mit 135 Byte.
Gebe ich den Befehl auf der sqlite-Kommandozeile ein bekomme ich ein
ZitatError near "fhem" : syntax error
Ich gebe die Befehle allerdings im Ordner /media/HDD/DB ein wo auch die fhem.db liegt.
sqlite3 starte ich mit
sqlite3 fhem.db
um in die DB zu kommen.
Den Fehler bekomme ich allerdings auch wenn ich sqlite3 nur mit
sqlite3
ohne Angabe der DB.
Grüße
vielleicht solltest Du Dich mal grundsätzlich mit sqlite3 beschäftigen, damit Du überhaupt die Syntax verstehst.
ZitatGebe ich den Befehl auf der sqlite-Kommandozeile ein bekomme ich ein
Logisch, das ist ja auch völlig sinnlos.
ENTWEDER Du arbeitest auf der Betriebssystemkonsole, dann gibst Du den Befehl so ein wie von mir angegeben.
ODER Du arbeitest auf der sqlite3-Konsole, dann musst Du erstmal sqlite3 mit Angabe des Datenbanknamens starten
Den Dump startest Du dann auf der sqlite3-Konsole mit
.mode insert
.out fhem.sql
select * from history;
Achte darauf, wann Du den Strichpunkt am Ende brauchst, und wann nicht ;)
Hallo,
Zitatvielleicht solltest Du Dich mal grundsätzlich mit sqlite3 beschäftigen, damit Du überhaupt die Syntax verstehst.
Das wäre mit Sicherheit nicht verkehrt :)
ZitatDen Dump startest Du dann auf der sqlite3-Konsole mit
Danke dir.
Werde ich gleich mal versuchen.
Grüße
Edith: Ich habe mit
sqlite3 fhem.db
sqlite3 mit der Datenbank getartet.
sqlite> .mode insert
sqlite> .out fhem.sql
sqlite> select * from history
eingegeben und bekomme als Antwort:
Error: file is encrypted or is not a database
So wie es aussieht werde ich die Daten der letzten 6 Monate wohl vergessen können :-\
eigentlich darf da auch nix anderes rauskommen als von der Betriebssystemkonsole aus aufgerufen
Hallo,
wie gesagt bekomme ich in sqlite3 nach deinem beschriebenen Vorgehen ein
ZitatError: file is encrypted or is not a database
Grüße
Ja. Und aus einer zerschossenen Datenbank kannst Du auch keinen Dump mehr ziehen.
Dein eigentliches Ansinnen mit dem Dump aus einer defekten DB habe ich ohnehin nicht verstanden.
Wenn Du einen Firefox greifbar hast, installiere Dir dort das sqlite Add-On und versuche, die Datenbank zu öffnen. Aber viel Hoffnung mache ich Dir nicht.
Hallo,
ZitatDein eigentliches Ansinnen mit dem Dump aus einer defekten DB habe ich ohnehin nicht verstanden.
So direkt drauf gestossen erscheint mir das auch etwas sinnbefreit.
Ich hatte gehofft noch irgendwie an meinen Daten der letzten 6 Monate zu kommen um diese dann ggf. in eine neue DB retten zu können.
ZitatWenn Du einen Firefox greifbar hast, installiere Dir dort das sqlite Add-On und versuche, die Datenbank zu öffnen.
Ich hab FF installiert und werde mal das Addon isntallieren.
ZitatAber viel Hoffnung mache ich Dir nicht.
Tja, wenn die DB hinüber ist mache ich mir auch keine Hoffnungen mehr.
Dann hab ich eben wieder 3 GB mehr Platz auf der HDD.
Danke nochmal für deine/eure Hilfe.
Grüße
Es gibt natürlich auch noch repair-Tools, wie dieses hier
http://www.securasecurity.org/recommends/sqlite-file-repair.html (http://www.securasecurity.org/recommends/sqlite-file-repair.html)
Ob sowas funktioniert, hab ich selbst nie probiert.
Hallo,
man klammert sich ja an jeden Strohhalm ;D
Danke für den Link.
Das Tool hab ich gerade runtergeladen und werd das dann mal auf die Datenbank los lassen.
Mehr kann ja nichtmehr kaputt werden 8)
Grüße
und noch einen Tipp für die Zukunft...
sqlite3 fhem.db .dump > fhem.sql && tar -czf fhem.sql.tar.gz fhem.sql --remove-files && mv fhem.sql.tar.gz /home/fhem/archiv
am besten als stündlichen cronjob :)
Warum denken die Leute immer erst dann an ein Datensicherungskonzept, wenn es zu spät ist?
Hallo,
ZitatWarum denken die Leute immer erst dann an ein Datensicherungskonzept, wenn es zu spät ist?
Gute Frage 8)
Danke für den Tipp.
Werd ich mir gleich anlegen.
Grüße
Edith: OK, auch das Tool sagt das es die DB nicht öffnen kann.
Zu Versuchszwecken mal die neue DB probiert und die läst sich einwandfrei öffnen.
:'( Ade ihr Daten der letzten 6 Monate - sofort betateilchens Code einbauen um eine Datensicherung zu haben 8)