Sqlite-DB file ist encrypted or ist not a database

Begonnen von Puschel74, 15 Februar 2014, 09:28:51

Vorheriges Thema - Nächstes Thema

Puschel74

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.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

marvin78

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.

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

marvin78


Puschel74

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
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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

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 :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

#6
Hallo,

::)
Da kann ich ja lange warten.
Danke betateilchen für den Schupps.

Nur bekomme ich jetzt
Error: near "echo": syntax error

Eingegeben 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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

warum machst Du es denn so furchtbar kompliziert?

sqlite3 fhem.db .dump > fhem.sql
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

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.dbum in die DB zu kommen.
Den Fehler bekomme ich allerdings auch wenn ich sqlite3 nur mit sqlite3ohne Angabe der DB.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

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 ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

#10
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.dbsqlite3 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  :-\
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

eigentlich darf da auch nix anderes rauskommen als von der Betriebssystemkonsole aus aufgerufen
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Hallo,

wie gesagt bekomme ich in sqlite3 nach deinem beschriebenen Vorgehen ein
ZitatError: file is encrypted or is not a database

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.