[gelöst] configDB über sql-Befehle reduzieren?

Begonnen von JWRu, 31 Dezember 2022, 14:52:58

Vorheriges Thema - Nächstes Thema

JWRu

Meine configDB ist ziemlich voll. Das Attribut "maxversions" war nicht gesetzt (... habe ich irgendwo im Forum gefunden - wird nicht in der Referenz erwähnt).
Der Befehl "configdb reorg 5" legt aber mein FHEM-System lahm: Weboberfläche nicht erreichbar, Alexa funktioniert nicht mehr, heartbeat-Datei wird nicht aktualisiert ...
Nach über 2 Stunden habe ich abgebrochen, indem ich das System neu gestartet habe.
Kann ich die Config-Datenbank eigentlich auch über sql-Befehle verkleinern?
Die Datenbank wird ja während des Betriebs von FHEM nicht verwendet und der sql-Befehl kann parallel ausgeführt werden, ohne FHEM zu beeinflussen (habe eine ZBox - die CPU-Leistung reicht locker für beide Prozesse).
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

betateilchen

Zitat von: JWRu am 31 Dezember 2022, 14:52:58
Das Attribut "maxversions" war nicht gesetzt (... habe ich irgendwo im Forum gefunden - wird nicht in der Referenz erwähnt).

In der commandref steht aber

configdb attr ?

und das liefert

Zitat

deleteimported : (0|1) delete file from filesystem after import
dumpPath       : (valid path) define path for database dump
maxversions    : (number) define maximum number of configurations stored in database
mysqldump      : (valid parameter string) define additional parameters used for dump in mysql environment
private        : (0|1) show or supress userdata in info output
shortinfo      : (0|1) show detailed or short result in info output

Zitat von: JWRu am 31 Dezember 2022, 14:52:58
Die Datenbank wird ja während des Betriebs von FHEM nicht verwendet

Diese Annahme ist grundsätzlich falsch und gefährlich.

Zitat von: JWRu am 31 Dezember 2022, 14:52:58
Nach über 2 Stunden habe ich abgebrochen, indem ich das System neu gestartet habe.
Kann ich die Config-Datenbank eigentlich auch über sql-Befehle verkleinern?

Die configDB selbst verwendet ja auch nur sql Befehle. Ob es tatsächlich schneller geht, wenn Du das von Hand machst, kann ich nicht sagen.


delete from fhemconfig   where versionuuid in (select versionuuid from fhemversions where version > 3
delete from fhemversions where version > 3
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Es ist übrigens effektiver, anstatt maxversions auf 5 zu setzen, einen regelmäßigen Job per at einzuplanen, der nachts ein "configdb reorg 5" ausführt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JWRu

Danke für die schnelle Antwort!
ZitatOb es tatsächlich schneller geht, wenn Du das von Hand machst, kann ich nicht sagen.
Mir kommt es nicht auf die Geschwindigkeit an, sondern darauf, dass FHEM nicht beeinflusst wird. An der CPU-Leistung kann es nicht liegen, während des reorg benötigt SQL etwa 25%.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Wernieman

#4
Welche DB "fährst" Du?
CPU ist nur ein Teil der "Wahrheit" ... wie sieht es mit der IO-Leistung aus?

@betateilchen
Irgendwie fehlt in Deinem SQL-Statement in Antwort #1 ein ) ... Du hast im ersten Statement eine öffnende (, aber keine schließende ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

JWRu

ZitatWelche DB "fährst" Du?
mysql
ZitatIrgendwie fehlt in Deinem SQL-Statement in Antwort #1 ein ) ... Du hast im ersten Statement eine öffnende (, aber keine schließende ...
Habe ich gemerkt.
ZitatCPU ist nur ein Teil der "Wahrheit" ... wie sieht es mit der IO-Leistung aus?
Ich habe vor ca. 3 Stunden den ersten SQL-Befehl über phpMyAdmin abgesetzt. Der läuft immer noch - in FHEM ist nichts zu merken.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

JWRu

 :)
Vielen Dank nochmal für die superschnelle Hilfe!
Guten Rutsch für alle!
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter