DbLog - reduceLog abbrechen ohne Datenbank zu zerstören?

Begonnen von Thomas41587, 17 April 2020, 11:52:58

Vorheriges Thema - Nächstes Thema

Thomas41587

Hallo zusammen,
bei mir haben sich ~71mio Einträge in der Datenbank gesammelt, da ich nicht dran gedacht habe, meinen DbLog einzuschränken. ReduceLog läuft jetzt seit ~5h und wenn man sich im Log die Geschwindigkeit anschaut, dann dürfte die Aktion noch weitere 29h laufen.
Wie kann ich diesen Vorgang "sicher" abbrechen, ohne mir die Datenbank oder gar fhem zu zerschiessen?
Falls es was zur Sache tun sollte: sowohl die Datenbank als auch fhem laufen als Docker Container.

DS_Starter

Nutzt du MySQL/MariaDB ?

Wenn ja -> DbRep Device benutzen und

get <device> procinfo

aufrufen. Du siehst dann eine Tabelle wie diese mit der Spalte ID


ID USER HOST                   DB CMD TIME_Sec STATE INFO PROGRESS
41218 fhem fhem.myds.me:38076 fhem Query 8 Sending data SELECT TIMESTAMP,VALUE, if(VALUE-@V < 0 OR @RB = 1 , @diff:= 0, @diff:= VALUE-@V ) as DIFF, @V:= VALUE as VALUEBEFORE, @RB:= '0' as RBIT FROM history where ( DEVICE = 'eg.flur.server_Pwr' ) AND ( READING = 'energyCalcKwh' ) AND TIMESTAMP >= '2017-05-01 00:00:00' AND TIMESTAMP <= '2020-04-17 15:01:09' ORDER BY TIMESTAMP 0
41219 fhem fhem.myds.me:38082 fhem Query 8 Sending data SELECT TIMESTAMP,VALUE, if(VALUE-@V < 0 OR @RB = 1 , @diff:= 0, @diff:= VALUE-@V ) as DIFF, @V:= VALUE as VALUEBEFORE, @RB:= '0' as RBIT FROM history where ( DEVICE = 'eg.az.fridge_Pwr' ) AND ( READING = 'energyCalcKwh' ) AND TIMESTAMP >= '2016-06-01 00:00:00' AND TIMESTAMP <= '2020-04-17 15:01:10' ORDER BY TIMESTAMP 0
41221 fhem fhem.myds.me:38104 fhem Query 0 show full processlist


Die ID mit der passenden Laufzeit (falls es mehrere gibt) nimmst du und führtst im DbRep damit aus:

set <dev> sqlCmd kill <ID>

Damit bricht das laufende Statement ab und die aktuelle Änderung wird zurück gerollt. Im DbLog gibt es eine Fehlermeldung.
Dabei geht auch nichts kaputt.

HINWEIS: grundsätzlich sollte man immer eine valide Sicherung der DB und FHEM haben.

Aber davon abgesehen würde ich reduceLog weiter laufen lassen. Stört doch nicht sofern reduceLogNbl genutzt.
Es gibt das auch generell non-blocking im DbRep.

Grüße,
Heiko
Proxmox+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