DatenbankProbleme nach Wiederherstellung

Begonnen von dirk.k, 02 Mai 2025, 11:24:18

Vorheriges Thema - Nächstes Thema

dirk.k

Hallo zusammen,
leider habe ich keinen spezifischen Bereich gefunden, welcher diese Fragen-Mischung abdeckt.
Problembeschreibung:
nach einem FHEM-Update funktionierte der klassische MQTT-Client nicht mehr. Er konnte sich nicht mehr zum Mosquitto connecten.
Alle MQTT Verbindungsversuche erfolglos. Also FHEM Verzeichnis umbenannt und ein restore gemacht. Datei- & Verzeichnisrechte komplett auf "fhem:dialout" zurückgesetzt.
FHEM lief gut, aber weiterhin keine MQTT-Verbindung.
Etwas Recherche ergab: Bekanntes Problem mit alten Bibliotheken ... besser auf MQTT2 umstellen. Ist jetzt durch und MQTT2 tut wie es soll.

Übriggeblieben sind aber "Datenbankprobleme" und Ähnliches.
So funktioniert "set logdb countNbl" nicht mehr "countNbl" ist nicht mehr auffindbar. Funktionieren tut nur noch: "set logdb count"
Bei "set DbRep.logdb reduceLog 1 max INCLUDE=%:Relay" bleibt fhem komplett hängen. Erst wenn ich den fhem-service stoppe, werden wartende fhem-aufgaben (wie z.B. telegram Benachrichtigungen) ausgeführt.
Ohne die (jetzt deaktivierten) geplanten Datenbank-Bereinigungen wächst die DB-Größe massiv an.

Listing vom logdb-Device:
Internals:
   .FhemMetaInternals 1
   .triggerUsed 1
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./db.conf
   DEF        ./db.conf .*:.*
   FD         8
   FUUID      5c44d12c-f33f-ed2c-724d-de4061e60d1a9273
   FVERSION   93_DbLog.pm:v5.11.0-s29401/2024-12-05
   MODE       asynchronous
   MODEL      SQLITE
   NAME       logdb
   NR         2
   NTFY_ORDER 50-logdb
   PID        3366335
   REGEXP     .*:.*
   SBP_PID    3366347
   SBP_STATE  running
   STATE      Einträge Current:countCurrent History:countHistory -- reduceLogState
   TYPE       DbLog
   dbconn     SQLite:dbname=/opt/fhem/fhem.db
   dbuser     
   eventCount 4
   .attraggr:
   .attreocr:
     .*
   .attrminint:
   .fhem:
   .userReadings:
     HASH(0x559c056672a8)
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     OLDSTATE   connected
     PACKAGE    main
     READINGCOL 64
     TC         current
     TH         history
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
     VERSION    5.11.0
   OLDREADINGS:
   READINGS:
     2025-05-02 11:05:23   CacheOverflowLastNum 0
     2025-05-01 23:10:39   CacheOverflowLastState normal
     2025-05-02 11:05:25   CacheUsage      3
     2025-05-02 11:05:25   DbFileSize      3645
     2025-05-02 11:05:23   NextSync        2025-05-02 11:05:53 or when CacheUsage 500 is reached
     2025-05-02 11:05:24   state           connected
     2023-01-05 04:00:00   userCommand     VACUUM
Attributes:
   DbLogInclude CacheUsage,countCurrent,countHistory,DbFileSize
   DbLogSelectionMode Include
   DbLogType  Current/History
   asyncMode  1
   event-on-change-reading .*
   group      DB-LOG
   insertMode 1
   room       9.4_System -> Dienste
   stateFormat Einträge Current:countCurrent History:countHistory -- reduceLogState
   userReadings DbFileSize { (split(' ',`du -m fhem.db`))[0] }
   

Hat jemand eine Idee, wie ich die Sache wieder rund bekomme?
Danke schon mal.
Dirk

RalfRog

Hi
Zitat von: dirk.k am 02 Mai 2025, 11:24:18So funktioniert "set logdb countNbl" nicht mehr "countNbl" ist nicht mehr auffindbar. Funktionieren tut nur noch: "set logdb count"

Das war schon länger angekündigt:
set <name> countNbl
    Die Funktion ist identisch zu "set <name> count" und wird demnächst entfernt.
In der Version letztes Jahr stand es noch...   93_DbLog.pm:v5.9.5-s28345/2024-01-05

Gruß Ralf

FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

betateilchen

Zitat von: dirk.k am 02 Mai 2025, 11:24:18leider habe ich keinen spezifischen Bereich gefunden, welcher diese Fragen-Mischung abdeckt.

??? Hast Du überhaupt gesucht?

Das Schöne ist, dass es sowohl für DbLog als auch für DbRep einen "passenden" Bereich gibt, herauszufinden wie immer mittels "help dblog" und/oder "help dbrep" in der FHEM Befehlszeile...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

dirk.k

@Ralf: Danke. Das war sehr hilfreich. Ich muss zugeben, dass ich nicht alle Informationen lese. Meist aber die Infos beim updatecheck.
@Betateilchen: ich habe für beide Module die "Modulspezifische Hilfe" im Fuß der Seite bemüht ... und es kam nichts. Für die FHEM Befehlszeile habe ich nur wenig griffbereit. Aber ich habe ja bereits eine Antwort auf die wichtigste/verwirrendste Frage bekommen.

Bleibt nur noch eine kaputte Datenbank übrig. 
pragma integrity_check; bringt etliche Fehler. Ein vacuum direkt auf der DB bricht ab mit "the database disk image is malformed".
Es gibt etliche Anleitungen zur Datenbank-Reparatur. Ich versuche gerade einen DB-Dump mittels "read" in eine neue leere Db einzulesen.

Hat schon mal jemand eine DB repariert und evtl. Hinweise für mich?
Danke !

betateilchen

Zum Thema database image malformed gibt es schon einige threads hier im Forum.

Und DbRep selbst hat sogar eine Reparaturfunktion - siehe commandref:

ZitatRepair of a corrupted SQLite database ("database disk image is malformed")

Zitat von: dirk.k am 02 Mai 2025, 21:39:05@Betateilchen: ich habe für beide Module die "Modulspezifische Hilfe" im Fuß der Seite bemüht ... und es kam nichts.

Ach nein? Komisch...

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

betateilchen

Zitat von: dirk.k am 02 Mai 2025, 21:39:05Ich muss zugeben, dass ich nicht alle Informationen lese.

Es ist halt offenbar viel bequemer, die Hilfsbereitschaft anderer Leute in Anspruch zu nehmen, anstatt erstmal selbst etwas zu tun...

Findest Du das eigentlich fair?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

dirk.k

@ Ralf: danke für die Info und Hilfe !!
@ betateilchen: Sorry, ich werde dich/euch nicht mehr belästigen

PS: mein Browser hat gerade einen langen erklärenden Text verworfen ... ist wohl auch besser so.

betateilchen

Zitat von: dirk.k am 03 Mai 2025, 12:23:00mein Browser hat gerade einen langen erklärenden Text verworfen

Browser mit eingebauter künstlicher Intelligenz... *cool*

Zitat von: dirk.k am 03 Mai 2025, 12:23:00ist wohl auch besser so.

Das denke ich auch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!