FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Morgennebel am 08 August 2019, 20:24:19

Titel: [ConfigDB] Wechsel von MySQL nach PostgreSQL?
Beitrag von: Morgennebel am 08 August 2019, 20:24:19
Moin Moin,


was ist denn der geschickteste Weg, bei einem laufenden FHEM die ConfigDB und LogDB von MySQL zu PostgreSQL zu wechseln?

Ich kann mit

configdb fileexport all

die in der ConfigDB gespeicherten Konfigurationen sichern und neu einlesen - aber was ist der Weg für die "fhem.cfg"?

Danke, -MN
Titel: Antw:[ConfigDB] Wechsel von MySQL nach PostgreSQL?
Beitrag von: CoolTux am 08 August 2019, 22:59:03
Datenbankmigration von mysql zu postgresql

apt-get install pgloader
pgloader mysql://fhem:MYSQLPASSWORT@localhost/configDB postgresql://postgres:POSTGRESQLPASSWORT@10.6.6.31/testConfigDB
Titel: Antw:[ConfigDB] Wechsel von MySQL nach PostgreSQL?
Beitrag von: onkel-tobi am 25 August 2019, 18:53:01
Hi zusammen,

da ich gerade auch auf configDB umstellen möchte:
Welche Vorteile bietet mir PostgreSQL in Verbindung mit FHEM?
Oder welche Gründe sprechen bei euch für die Migration?

Danke & Gruß,
Tobias
Titel: Antw:[ConfigDB] Wechsel von MySQL nach PostgreSQL?
Beitrag von: betateilchen am 25 August 2019, 20:18:42
Wenn man Vergleiche zwischen MySQL und PostgreSQL betrachtet und z.B. folgendes Ergebnis liest:

Zitat
Quelle: http://ledgersmbdev.blogspot.com/2012/09/or-modelling-interlude-postgresql-vs.html

MySQL is designed with the idea that applications provide logic and the database provides dumb storage of the application's state.
[...]
PostgreSQL, on the other hand, is designed with the idea that the database itself is a modelling tool, and that the applications interact with it over an API defined in SQL.

wird man feststellen, dass es für die Anwendung innerhalb FHEM für die configDB eigentlich egal ist, für welches der beiden Modelle man sich entscheidet.
Die "Logik" ist komplett in FHEM abgebildet. Die technischen Möglichkeiten, die von der Datenbank selbst bereitgestellt werden, werden nicht genutzt.

Warum das so ist? Weil in FHEM die Flexibilität gegeben werden sollte, sich einfach zwischen sqlite, mysql und postgresql zu entscheiden. Der eine oder andere Anwender hat ja vielleicht ohnehin schon einen SQL Server laufen, den er gerne auch für FHEM nutzen möchte.

Hätte man nun explizit für die einzelnen Datenbanktypen entwickelt, hätte man sowohl DbLog als auch configDB quasi dreimal unterschiedlich programmieren müssen. Und es gibt auch so schon genug Fallunterscheidungen im Code dieser Module, die aufgrund unterschiedlicher Syntax der Datenbanken notwendig sind.

Mein Fazit: Such Dir das Datenbankmodell aus, das Dir persönlich am besten gefällt. Für viele Anwender ist sogar sqlite3 eine völlig ausreichende Lösung.
Titel: Antw:[ConfigDB] Wechsel von MySQL nach PostgreSQL?
Beitrag von: Morgennebel am 26 August 2019, 09:22:29
Zitat von: onkel-tobi am 25 August 2019, 18:53:01
Welche Vorteile bietet mir PostgreSQL in Verbindung mit FHEM?

Ich hatte ConfigDB und LogDB etwa 1 Jahr mit MariaDB (MySQL-Fork) mit FHEM und NextCloud am laufen. Recht problemlos.

Dann kam ein Update für Nextcloud. Mit dem Update kamen empfohlene /etc/mysql/*-Einstellungen. Das sind bei mir 5 Dateien,
für Server und Client und und und, die ich nach Anleitung konfiguriert habe - schwupps, NextCloud startete nicht mehr. Hat mich
vier Stunden gekostet und mehrfaches Neuaufsetzen von Nextcloud - und lag nur an den MariaSQL-Konfigurationsdateien.

Dann hat MariaSQL "Probleme" mit UTF8 (der DB-Typ muß UTF8MB4 sein, siehe https://mathiasbynens.be/notes/mysql-utf8mb4).
MariaSQL kopiert die DB beim verkleinern (set DBLOG reduceLogN XXX) nach /tmp - da muß also genügend viel Platz vorhanden
sein. Ist mir auch auf die Füsse gefallen und führte zu doofen Workarounds mit temporären USB-Sticks als /tmp.

Testweise auf PostgreSQL gewechselt. Alles lief auf Anhieb. Mit PGTune (https://pgtune.leopard.in.ua/#/) innerhalb von 1 Minute
eine bessere Konfig erzeugt, eingespielt, lief. Keine Probleme.
PostgreSQL User-Schema ist anders (Unix-User sollte identisch zum Postgres-User sein), was beim testen zu Verwirrung führte.

Du kannst mich gerne einen DAU nennen - aber ich habe mit PostgreSQL weniger Probleme und finde die Konfiguration sinnvoll
einfacher, als MariaDB...

Ciao, -MN
Titel: Antw:[ConfigDB] Wechsel von MySQL nach PostgreSQL?
Beitrag von: onkel-tobi am 27 August 2019, 06:48:51
Hm. Ich hatte in der Zwischenzeit jetzt tatsächlich MariaSQL genommen, da ich es eh auf meiner synology habe. Standardmäßg ist da utf_general_ci eingestellt. Ist das nun ein Problem?

Gruß,
Tobi


Gesendet von iPad mit Tapatalk