[gelöst]DBLog Fehlermeldung

Begonnen von no_Legend, 28 Januar 2019, 20:10:42

Vorheriges Thema - Nächstes Thema

no_Legend

Hallo Zusammen,

ich hab heute eine neue Datenbank angelegt, da ich sehr viel mit DBLog falsch gemacht hatte.
Nun bekomme ich alle paar Minuten einen Log Eintrag.
Den kann ich mir nicht erklären.
Eine suche im Forum hat auch nicht wirklich weiter geholfen.

Jemand hier der mir das Problem erklären kann?

DbLog DBLog -> Error table history - DBD::mysql::st execute_array failed: executing 6677 generated 1 errors at ./FHEM/93_DbLog.pm line 2094.

Hier auch mal ein List vom DBLog Device
Internals:
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION /opt/fhem/FHEM/db.conf
   DEF        /opt/fhem/FHEM/db.conf .*:.*
   FUUID      5c4308fc-f33f-abd1-4b44-886d7423922a60bf
   MODE       asynchronous
   MODEL      MYSQL
   NAME       DBLog
   NR         979
   NTFY_ORDER 50-DBLog
   PID        1629
   REGEXP     .*:.*
   STATE      DBD::mysql::st execute_array failed: executing 10077 generated 1 errors at ./FHEM/93_DbLog.pm line 2094.

   TYPE       DbLog
   UTF8       1
   VERSION    3.13.0
   dbconn     mysql:database=fhem;host=localhost;port=3306
   dbuser     mysql-fhemuser
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     LASTLIMITRUNTIME 1548702534.65003
     OLDSTATE   DBD::mysql::st execute_array failed: executing 10077 generated 1 errors at ./FHEM/93_DbLog.pm line 2094.

     READINGCOL 64
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
   Helper:
     DBLOG:
       CacheUsage:
         DBLog:
           TIME       1548702175.83884
           VALUE      0
       background_processing_time:
         DBLog:
           TIME       1548701821.46618
           VALUE      9.5134
       lastCachefile:
         DBLog:
           TIME       1548702175.82017
           VALUE      ./log/cache_DBLog_2019-01-28_20-02-55 (63 cache rows exported)
       sql_processing_time:
         DBLog:
           TIME       1548701821.46618
           VALUE      9.4560
       state:
         DBLog:
           TIME       1548702515.02869
           VALUE      DBD::mysql::st execute_array failed
   READINGS:
     2019-01-28 20:08:54   CacheUsage      3
     2019-01-28 20:08:54   NextSync        2019-01-28 20:09:24 or if CacheUsage 500 reached
     2019-01-28 20:02:55   lastCachefile   ./log/cache_DBLog_2019-01-28_20-02-55 (63 cache rows exported)
     2019-01-28 13:40:52   reduceLogState  reduceLogNbl finished. Rows processed: 14033071, deleted: 0, updated: 0, time: 1505.68sec
     2019-01-28 20:08:54   state           DBD::mysql::st execute_array failed: executing 10077 generated 1 errors at ./FHEM/93_DbLog.pm line 2094.

   cache:
     index      141245
Attributes:
   DbLogSelectionMode Exclude/Include
   DbLogType  Current/History
   asyncMode  1
   group      DBLogging
   room       9.99_Logs
   showproctime 0
   shutdownWait 10
   userReadings DbFileSize:lastReduceLogResult.* { (split(' ','sudo du -hs /var/lib/mysql/fhem'))[0] }


Und hier noch ein Config Check

Result of DbLog version check

Used DbLog version: 3.13.0
Recommendation: Your running version may be the current one. Please check for updates of DbLog periodically.

Result of configuration read check

Connection parameter store type: file
Connection parameter: Connection -> mysql:database=fhem;host=localhost;port=3306, User -> mysql-fhemuser, Password -> read o.k.

Result of connection check

Connection to database fhem successfully done.
Recommendation: settings o.k.

Result of encoding check

Encoding used by Client (connection): UTF8
Encoding used by DB fhem: UTF8
Recommendation: settings o.k.

Result of logmode check

Logmode of DbLog-device DBLog is: asynchronous
Recommendation: settings o.k.

Result of shutdown sequence preparation check

Attribute "shutdownWait" is set to: 10
Recommendation: The setting may be ok. But due to the Reading "background_processing_time" is not available (you may set attribute "showproctime"), the current
setting is only a rough estimate.


Result of plot generation method check

WARNING - at least one of your FHEMWEB devices have attribute "plotfork = 1" not set. This may cause blocking situations when creating plots.
WEB: plotfork=1
WEB.desiree: plotfork=1
WEB.extern: plotfork=1
WEBgeo: plotfork=0
WEBphone: plotfork=1
WEBtablet: plotfork=1
Recommendation: You should set attribute "plotfork = 1" in relevant devices

Result of table 'history' check

Column width set in DB fhem.history: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Column width used by DBLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: settings o.k.

Result of table 'current' check

Column width set in DB fhem.current: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Column width used by DBLog: 'DEVICE' = 64, 'TYPE' = 64, 'EVENT' = 512, 'READING' = 64, 'VALUE' = 128, 'UNIT' = 32
Recommendation: settings o.k.

Result of check 'Search_Idx' availability

Index 'Search_Idx' exists and contains recommended fields 'DEVICE', 'READING', 'TIMESTAMP'.
Recommendation: settings o.k.

Result of check 'Report_Idx' availability for DbRep-devices

At least one DbRep-device assigned to DBLog is used, but the recommended index 'Report_Idx' is missing.
Recommendation: You can create the index by executing statement 'CREATE INDEX Report_Idx ON `history` (TIMESTAMP, READING) USING BTREE;'
Depending on your database size this command may running a long time.
Please make sure the device 'DBLog' is operating in asynchronous mode to avoid FHEM from blocking when creating the index.
Note: If you have just created another index which covers the same fields and order as suggested (e.g. a primary key) you don't need to create the 'Report_Idx' as well !
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

DS_Starter

Das ist ein Datensatz der nicht in die DB will. Wir hatten immer mal mit bestimmten Temperatursensoren.

Als Lösungsversuch die Attribute setzen:

* useCharfilter = 1
* commitMode = basic_ta:off

Check das mal.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

no_Legend

Zitat von: DS_Starter am 28 Januar 2019, 20:19:15
Das ist ein Datensatz der nicht in die DB will. Wir hatten immer mal mit bestimmten Temperatursensoren.

Als Lösungsversuch die Attribute setzen:

* useCharfilter = 1
* commitMode = basic_ta:off

Check das mal.

Grüße
Heiko

Danke Heiko,

ich teste es gleich und gebe morgen Früh bescheid.

Kann man das auf einen Bestimmten Typ Temperatur Sensor eingrenzen?
Ich hab Homematic, Netatmo und einen selbst gebauten ESP im Einsatz.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

DS_Starter

#3
Zitat
Kann man das auf einen Bestimmten Typ Temperatur Sensor eingrenzen?
Ich hab Homematic, Netatmo und einen selbst gebauten ESP im Einsatz.
Ja kannst du. Entweder mal im Cache nach auffälligen Sätzen suchen, zum Beispiel "°C", wobei das "°" in unleserlichen Zeichen wiedergegeben wird.
Oder verbose auf 4 oder 5 setzen und den "Database cycle" anschauen oder posten.
Die genannten Attribute sollten dann aber noch nicht gesetzt sein.

Edit: im Forum hatten wir das schon öfter. Mit einer recht gut nachvollziehbaren Fehlersuche. Vielleicht finde ich den Thread noch ...

gefunden:  https://forum.fhem.de/index.php/topic,92147.msg846619.html#msg846619  bzw. https://forum.fhem.de/index.php/topic,68646.msg844959.html#msg844959
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

no_Legend

Zitat von: DS_Starter am 28 Januar 2019, 20:29:43
Ja kannst du. Entweder mal im Cache nach auffälligen Sätzen suchen, zum Beispiel "°C", wobei das "°" in unleserlichen Zeichen wiedergegeben wird.
Oder verbose auf 4 oder 5 setzen und den "Database cycle" anschauen oder posten.
Die genannten Attribute sollten dann aber noch nicht gesetzt sein.

Edit: im Forum hatten wir das schon öfter. Mit einer recht gut nachvollziehbaren Fehlersuche. Vielleicht finde ich den Thread noch ...

gefunden:  https://forum.fhem.de/index.php/topic,92147.msg846619.html#msg846619  bzw. https://forum.fhem.de/index.php/topic,68646.msg844959.html#msg844959

Die Fehler im Log sind weg, wenn ich beides von dir setzte.
Woher der Fehler kommt schauen ich heute abend nach.

Noch eine Frage wegen dem Report_Idx
Kann das über FHEM ausgelöst werden oder doch über die konsole in die Datenbank direkt?
Muss bei mysql auch mit dem USING BETREE gearbeitet werden?
Wenn ja, sollte man das nicht im MYSQL Create in Contrib anpassen?

Danke und Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

DS_Starter

Hallo Robert,

sieht ja gut aus.
Du kannst jetzt bitte das Attribut "commitMode" wieder löschen. Es wäre für den asynchronen Normalbetrieb besser weil ich bestimmte Funktionen im DbLog darauf abgestimmt habe.
Den anderen kannst du nach deiner Fehlersuche wieder setzen wenn du magst. Der hilft solche Situationen zu vermeiden.

Zitat
Noch eine Frage wegen dem Report_Idx
Kann das über FHEM ausgelöst werden oder doch über die konsole in die Datenbank direkt?
Geht beides. In FHEM machst du das in einem DbRep-Device -Kommando  sqlCmd ....

ZitatMuss bei mysql auch mit dem USING BETREE gearbeitet werden?
Müssen nicht. Aber der BTREE Index ist vorteilhaft bei Vergleichsoparationen ( =, >, >=, <, <=, or BETWEEN or LIKE) wie sie oft in DbRep-Devices verwendet werden. Siehe auch -> https://dev.mysql.com/doc/refman/5.5/en/index-btree-hash.html

ZitatWenn ja, sollte man das nicht im MYSQL Create in Contrib anpassen?
Stimmt, werde ich tun.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

no_Legend

Zitat von: DS_Starter am 29 Januar 2019, 18:23:47
Hallo Robert,

sieht ja gut aus.
Du kannst jetzt bitte das Attribut "commitMode" wieder löschen. Es wäre für den asynchronen Normalbetrieb besser weil ich bestimmte Funktionen im DbLog darauf abgestimmt habe.
Den anderen kannst du nach deiner Fehlersuche wieder setzen wenn du magst. Der hilft solche Situationen zu vermeiden.
Geht beides. In FHEM machst du das in einem DbRep-Device -Kommando  sqlCmd ....
Müssen nicht. Aber der BTREE Index ist vorteilhaft bei Vergleichsoparationen ( =, >, >=, <, <=, or BETWEEN or LIKE) wie sie oft in DbRep-Devices verwendet werden. Siehe auch -> https://dev.mysql.com/doc/refman/5.5/en/index-btree-hash.html
Stimmt, werde ich tun.

Grüße,
Heiko

Ich hab eben mal viel eingeschränkt, was in die Datenbank schreiben solle.
Werde jetzt mal die beiden attr wieder raus nehmen und schauen was passiert.
Melde mich dazu wieder.

Das mit sqlcmd ausführen habe ich gemacht.
Bekomme aber einen Fehler.
Denke dass liegt an den Rechten, da wird dem mysql-fhemuser etwas an rechten fehlen.

DbRep DBLog.Rep.NameReport - ERROR - DBD::mysql::st execute failed: INDEX command denied to user 'mysql-fhemuser'@'localhost' for table 'history' at ./FHEM/93_DbRep.pm line 5640.

Ganz Vergessen,

Danke für deine spitzen Hilfe!!!!!

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

DS_Starter

Hi Robert,

gerne  :)

Zitat
Das mit sqlcmd ausführen habe ich gemacht.
Bekomme aber einen Fehler.
Denke dass liegt an den Rechten, da wird dem mysql-fhemuser etwas an rechten fehlen.
Ja genau. Gib ihm das Recht Indexe anzulegen, dann wirds auch klappen.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

no_Legend

Zitat von: DS_Starter am 30 Januar 2019, 11:27:24
Hi Robert,

gerne  :)
Ja genau. Gib ihm das Recht Indexe anzulegen, dann wirds auch klappen.

Grüße,
Heiko

Habs gerade über PHPmyadmin angelegt.
config check sagt nun alles okay.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.