[erledigt] mySQL auf Windows Server 2012, nach Stromausfall 100% CPU Last durch mySQL

Begonnen von Frank_Huber, 17 Oktober 2019, 20:38:25

Vorheriges Thema - Nächstes Thema

DS_Starter

Ok, müssen wir mal forschen ob diese Version nicht mit   ASC HAVING.  arbeiten kann.
Melde mich wieder dazu.
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

Frank_Huber

eine erste Google Suche führt mich hierzu:
https://stackoverflow.com/questions/55395456/syntax-error-with-asc-desc-with-mysql-8-0

ZitatYou should read dev.mysql.com/doc/refman/8.0/en/... sepecifically - Incompatible change: As of MySQL 8.0.13, the deprecated ASC or DESC qualifiers for GROUP BY clauses have been removed. Queries that previously relied on GROUP BY sorting may produce results that differ from previous MySQL versions. To produce a given sort order, provide an ORDER BY clause

DS_Starter

Na das ist es doch schon, danke dir !  Jetzt muss ich es heute Abend nur so umbauen dass es auch für MariaDB etc. noch passt.
Aber das sollte zu schaffen sein.  :)
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

Frank_Huber


DS_Starter

Hallo Frank,

habe bereits angepasst und eine Version ins contrib geladen. Kannst du downloaden im FHEMWEB mit (inkl. "")


"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"


Bei mir habe ich es mit MariaDB, SQLite und Postgre getestet. Fehlt nur dein MySQL.  ;)

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

Frank_Huber

Zitat von: DS_Starter am 18 Oktober 2019, 16:14:48
Hallo Frank,

habe bereits angepasst und eine Version ins contrib geladen. Kannst du downloaden im FHEMWEB mit (inkl. "")


"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"


Bei mir habe ich es mit MariaDB, SQLite und Postgre getestet. Fehlt nur dein MySQL.  ;)
Grüße,
Heiko

state   running   2019-10-18 16:52:30

über "get procinfo" kann ich auch anhand des TIMESTAMP sehen wie weit er ist. :-)

EDIT:
lief durch, aber wie interpretiere ich jetzt das Ergebnis?
In den Readings sind einige aufgelistet, hier finde ich aber keine Doubletten.
Oder wird nur der jeweils erste Eintrag angezeigt?


EDIT2:
OK, eine SQL query hat es bestätigt, es wird der erste Eintrag angezeigt.

DS_Starter

Sieht doch gut aus. Syntax passt jetzt demnach. Na dann lass es mal drüber laufen...
Die Idee mit get procinfo ist auch gut  :)
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

Frank_Huber

Erster Durchlauf war erfolgreich.
PK anlegen hat aber nochmal Doubletten angemeckert.
Jetzt läuft er gerade nochmal.

EDIT:
lässt sich der "VALUE" ausklammern?

mysql> ALTER TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);
ERROR 1062 (23000): Duplicate entry '2017-10-29 02:02:11-DG_Ost_Temp-temperature' for key 'PRIMARY'
mysql>
mysql>
mysql> select * from HISTORY where TIMESTAMP = "2017-10-29 02:02:11";
+---------------------+-------------+---------+----------------------+-------------+---------+------+
| TIMESTAMP           | DEVICE      | TYPE    | EVENT                | READING     | VALUE   | UNIT |
+---------------------+-------------+---------+----------------------+-------------+---------+------+
| 2017-10-29 02:02:11 | DG_Ost_Temp | OWTHERM | temperature: 21.6875 | temperature | 21.6875 | °C   |
| 2017-10-29 02:02:11 | DG_Ost_Temp | OWTHERM | temperature: 21.5625 | temperature | 21.5625 | °C   |
+---------------------+-------------+---------+----------------------+-------------+---------+------+
2 rows in set (0.00 sec)

mysql>


Oder ich mach das mal mit dem query manuell in der SQL Konsole.
SELECT TIMESTAMP,DEVICE,READING,count(*) FROM history GROUP BY TIMESTAMP, DEVICE, READING HAVING count(*) > 1 ORDER BY TIMESTAMP ASC;
läuft gerade. liefert 2498 Datensätze.

DS_Starter

Ist die PK-Definition richtig ? Weil ich würde sagen diese beiden Datensätze sind keine Doublette -> der Wert ist unterschiedlich.
Bei einer echten Doublette ist Timestamp, Reading, Device und Wert identisch.

Wie wolltest du den PK denn anlegen ?

EDIT2: die Definition des PK ist richtig, aber wir kommen mit dem Doublettenbereinigen nicht zum Ziel weil ich die Datensätze nicht lösche wenn die VALUEs unterschiedlich sind.
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

Frank_Huber

Über timestamp reading und device.
So hab ich eine Empfehlung von dir im forum gefunden. [emoji6]
Kann ich nachher ab PC posten.
Ein Wert pro Sekunde reicht aber  auch aus. Und feiner sind die timestamps ja eh nicht.

Btw, nach den freezes die wir heute morgen beredet hatten kamen viele Werte mit gleichem timestamp.

Wie läuft der del double denn dann weiter?
Kann ja auch "manuell" bereinigen, aber nicht 2k5 Einträge einzeln...

EDIT:
https://forum.fhem.de/index.php/topic,92762.msg853201.html#msg853201
Hier hatte ich es rausgeholt:
für history:
ALTER TABLE `history` ADD PRIMARY KEY(TIMESTAMP, DEVICE, READING);




DS_Starter

Ja, hatte mich schon verbessert ... bin auch schon betriebsblind.
Weißt du, jetzt haben wir uns das Leben bisschen schwer gemacht. Als die history leer war hätten wir einfach nur den PK vor dem ersten Import anlegen müssen. Dann hätte die DB alles allein gemacht.
Wenn das jetzt zu aufwändig wird, mache einfach folgendes:

- DbLog schließen  -> reopen 86400
- Dump ziehen
- history Inhalt löschen - delete from history;
- den PK anlegen wie du es gemacht hast
- restore wie gehabt

Damit ist das Doublets Problem erledigt.
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

Frank_Huber

Zitat von: DS_Starter am 18 Oktober 2019, 19:59:31
Ja, hatte mich schon verbessert ... bin auch schon betriebsblind.
Weißt du, jetzt haben wir uns das Leben bisschen schwer gemacht. Als die history leer war hätten wir einfach nur den PK vor dem ersten Import anlegen müssen. Dann hätte die DB alles allein gemacht.
Wenn das jetzt zu aufwändig wird, mache einfach folgendes:

- DbLog schließen  -> reopen 86400
- Dump ziehen
- history Inhalt löschen - delete from history;
- den PK anlegen wie du es gemacht hast
- restore wie gehabt

Damit ist das Doublets Problem erledigt.
bäääääm, das ist die Lösung. :-)
Nur muss ich den reopen 86400 mehrfach machen. 1 x pro Instanz. :)
und los gehts.

Edit1
Ohje, der delete from history; läuft ewig. Ein drop und neu anlegen wär schneller gewesen. [emoji6]
Abwarten... - - > 42min zum löschen.

DS_Starter

ZitatOhje, der delete from history; läuft ewig.

Ach, ein truncate table history hätte es wohl zügig erledigt.  :(
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

Frank_Huber

Drop n create. [emoji12]
Aber hinterher is man immer schlauer. [emoji6]
Hat ja funktioniert. Restore läuft.

Gesendet von meinem S60 mit Tapatalk


DS_Starter

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