FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: doman75 am 03 Januar 2018, 23:54:15

Titel: [Gelöst]::db prepare failed: file is encrypted or is not a database at ./FHEM
Beitrag von: doman75 am 03 Januar 2018, 23:54:15
Hallo,

ich habe seit heute 3.01 dieses Problem mit meiner DBLOG Datenbank. Das einzige was ich getan habe, das ich vor ein paar Tagen auf den asychronen Modus umgeschaltet habe, heute nacht 0:15 macht er bei mir immer sowas :



*00:15:00 set logdb reduceLog 14 average=day


Danach kam der fehler, ein zurückdrehen auf sychronen Modus bringt nix.
Hat jemand Hilfe.

Danke
Swen
Titel: Antw:DBD::SQLite::db prepare failed: file is encrypted or is not a database at ./FHEM
Beitrag von: DS_Starter am 04 Januar 2018, 00:21:24
Hallo Swen,

das

Zitat*00:15:00 set logdb reduceLog 14 average=day

macht er nicht von allein. Du hast eine Einplanung für ein reducelog irgendwo. Wenn du auf asynchron umstellst solltest du auch reduceLogNbl statt dessen benutzen.

Versuche erstmal ein "set ... reopen". Wenn das nichts nutzt mache mal einen Restart. Wenn das auch nichts nutzt ist wahrscheinlich die DB defekt, wobei dann eigentlich andere Meldungen kommen soweit ich das kenne.

Du kannst dann folgendes versuchen:

Zunächst in fhem die DB abkoppeln: set ... reopen 1800. Dann

sudo -i
cd /opt/fhem
sqlite3 fhem.db

sqlite> .mode insert
sqlite> .output dump_all.sql
sqlite> .dump
sqlite> .exit

mv fhem.db fhem-corrupt.db
sqlite3 fhem.db

sqlite> .read dump_all.sql
sqlite> .exit


Wenn das nicht funktioniert würde ich das letzte Backup der Datenbank einspielen und damit weiterarbeiten.

EDIT: Ist zwar schon älter, trifft aber genauso zu: https://forum.fhem.de/index.php/topic,20254.0.html

VG
Heiko

Titel: Antw:DBD::SQLite::db prepare failed: file is encrypted or is not a database at ./FHEM
Beitrag von: doman75 am 04 Januar 2018, 08:51:00
Danke für die Antwort, leider habe ich auch im sqlite immer den Fehler bekommen "/**** ERROR: (26) file is encrypted or is not a database *****/.

ich habe jetzt ein Backup der DB vom 28.12 eingespielt, das geht. Ein neueres hatte ich leider nicht. Ich habe jetzt noch den job von 0:15 auf reducelognbl umgestellt.