Größe der configDB

Begonnen von Prof. Dr. Peter Henning, 07 Februar 2017, 15:44:15

Vorheriges Thema - Nächstes Thema

betateilchen

Zitat von: mahowi am 08 Februar 2017, 18:07:47
Gibt es eigentlich Vor-/Nachteile von sqlite bzw. MySQL, die einem die Entscheidung für das eine oder andere erleichtern?

Der größte Vorteil von sqlite ist, dass die komplette Datenbank in einem einzigen File enthalten ist, was den Transfer auf neue Installationen und die Datensicherung erheblich vereinfacht, weil man einfach nur eine Datei kopieren muss.

Um auf die im Workshop verwendete sqlite-Vorlage zurückzukommen:


MBA:~ fhem$ cd ./contrib/configDB/
MBA:configDB udo$ ls
README configDB.conf configDB.db
MBA:configDB udo$ sqlite3 configDB.db
SQLite version 3.16.0 2016-11-04 19:09:39
Enter ".help" for usage hints.
sqlite> pragma auto_vacuum;
2
sqlite> .quit


Wie man eindeutig und ohne großen Aufwand sieht, ist das auto_vacuum in der Vorlage bereits gesetzt. Deshalb gibt es auch keinen Grund, warum ich auf den Umstand dieses Parameters im Workshop explizit hinweisen sollte. Der Workshop ist einfach dazu gedacht, zu zeigen, wie einfach ein Umstieg auf die Datenbank sein kann und dass der Anwender keine Angst wegen "von Datenbanken habe ich keine Ahnung" haben muss.

In der commandref sind die Details enthalten, dort steht auch, wie man die Einrichtung manuell und ohne Vorlage vornehmen kann.

Zitat von: n0bbi am 08 Februar 2017, 18:47:22
Was mir allerdings noch nicht ganz klar ist, ist was mir die Configdb für Vorteile bringt? Geschwindigkeit kann es ja eigentlich kaum sein, gibt es andere Gründe umzustellen?

Ja, es gibt durchaus noch andere Gründe. Das wurde auch in der Vergangenheit schon mehrfach im Forum diskutiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Amenophis86

Danke für die ausführliche Antwort und der Bestätigung, dass Vaccum schon drin ist :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Invers

Wie wurde denn hier max Versions: 25
erzeugt? in der Commandref habe ich nichts dazu gefunden

Zitat von: Benni am 07 Februar 2017, 15:55:48

-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
# $Id: configDB.pm 12120 2016-09-05 19:06:04Z betateilchen $
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/configDB.db
dbuser:
dbpass:
dbtype: SQLITE
-----------------------------------------------------------------
max Versions: 25
config: 150812 entries



-rw-rw-rw- 1 fhem dialout 200M Feb  7 08:01 configDB.db

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

Zitat von: Invers am 09 Februar 2017, 09:19:55
Wie wurde denn hier
max Versions: 25
erzeugt?

configdb attr maxversions 25

Danke für den Hinweis, das steht tatsächlich noch nicht in der commandref, was ich komisch finde. Wird schnellstens korrigiert :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Benni

Zitat von: betateilchen am 09 Februar 2017, 10:44:07
das steht tatsächlich noch nicht in der commandref, was ich komisch finde

Zitat von: betateilchen am 24 Dezember 2014, 12:41:46
Die configdb kennt übrigens schon sehr lange ein eigenes (nicht dokumentiertes) Attribut "maxversions"

;)

Invers

Hatte ich probiert, aber leider keine Auswirkungen festgestellt, da die überzähligen Versionen dadurch nicht gelöscht wurden.
Habe ich nun gemacht und nun läuft es auch mit der Begrenzung.
Danke.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

betateilchen

#36
Zitat von: Invers am 09 Februar 2017, 11:09:43
Hatte ich probiert, aber leider keine Auswirkungen festgestellt, da die überzähligen Versionen dadurch nicht gelöscht wurden.

Das Löschen überzähliger Versionen passiert erst beim nächsten "save config", nicht direkt nach dem Setzen des Attributes.

Technisch gesehen passiert dann beim Speichern nix Anderes als bei einem "configdb reorg 25" mit dem man tatsächlich den vorhandenen Bestand auf 25 Versionen bringen kann. Bei mir läuft das nachts per "at" mit einer Begrenzung auf 5.

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

Prof. Dr. Peter Henning

Zitatwas ich komisch finde
Meine Familie behauptet immer, ich hätte einen schrägen Humor. Der ist aber gar nichts gegen Deinen. ;D

LG

pah

betateilchen

Als Ergebnis dieser Diskussion habe ich heute zwei Änderungen bezüglich der Datenbankgröße in die configDB eingebaut

1. Ausgabe der Datenbankgröße (nur bei Verwendung von sqlite) in "configdb info"

Zitat
-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
# $Id: configDB.pm 13382 2017-02-10 20:48:14Z betateilchen $
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/sqldb/configDBprodfhem.db
dbtype: SQLITE
dbsize: 1.69 MB
-----------------------------------------------------------------
config: 7538 entries

Ver 0 saved: Thu Feb  9 20:43:27 2017 def: 251 attr: 1633
Ver 1 saved: Sun Jan 29 19:22:49 2017 def: 251 attr: 1633
Ver 2 saved: Sun Jan 29 17:13:13 2017 def: 251 attr: 1633
Ver 3 saved: Sun Jan 29 16:28:43 2017 def: 251 attr: 1631
-----------------------------------------------------------------
state: 1989 entries saved: Fri Feb 10 22:00:00 2017
-----------------------------------------------------------------
filesave: 82 files stored in database
-----------------------------------------------------------------

2. explizites vacuum (nur bei Verwendung von sqlite) bei Ausführung von "configdb reorg"


Diese Änderungen kommen morgen per update, sie sind jetzt schon in svn verfügbar.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

Wegen Mobbingleistenblocker: Thumbs up!

Könntest Du auch noch was zum Thema Reihenfolge der Geräte innerhalb der configDB sagen?
Wäre nett, denn morgen war der Plan, ein 2. MySensors-GW (RS485) in Betrieb zu nehmen und darüber nach und nach einige meiner bisherigen Nodes zu betreiben (aber eben nicht alle, sonst hätte es gereicht, die Definitionen entsprechend zu tauschen).

Und das Thema mit der VCCU wäre iVm. dem Einsatz eines USB-HMUART dran...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Benni

#40
Zitat von: betateilchen am 10 Februar 2017, 22:17:35
Als Ergebnis dieser Diskussion habe ich heute zwei Änderungen bezüglich der Datenbankgröße in die configDB eingebaut

Nett!  8) Danke!

Update 13.02.2017:

Nach Aufräumarbeiten in FHEM, update und reorg nun statt 200MB nur noch 17MB 8)


-----------------------------------------------------------------
configDB Database Information
-----------------------------------------------------------------
# $Id: configDB.pm 13382 2017-02-10 20:48:14Z betateilchen $
-----------------------------------------------------------------
dbconn: SQLite:dbname=/opt/fhem/configDB.db
dbuser:
dbpass:
dbtype: SQLITE
dbsize: 17.01 MB
-----------------------------------------------------------------
max Versions: 25
config: 150757 entries

betateilchen

Zitat von: Beta-User am 10 Februar 2017, 22:33:01
Könntest Du auch noch was zum Thema Reihenfolge der Geräte innerhalb der configDB sagen?

Eigentlich sollten Deine geplanten Änderungen problemlos funktionieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!