Umstellung auf MySQL/ MariaDB

mit SSH-Tunnel über Windows Bordmittel und großer Datenmenge

73kw

Betreff:

Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 14.01.2024 - 11:50 Uhr  ·  #169442
Hallo zusammen!

Nachdem ich Hibiscus inzwischen bald 20 Jahre sowohl privat als auch geschäftlich benutze, würde ich gerne mal wieder einen Versuch starten, die verschiedenen Instanzen sicher auf verschiedenen Rechnern auf eine zentrale DB zugreifen zu lassen, anstatt irgendwann immer mal wieder die Benutzerordner hin und her zu kopieren. Mein Plan ist dafür auf meinem Cloudserver alles in eine MySQL -DB zu packen und per SSH-Tunnel von den Clients zu verbinden. Da Windows ja inzwischen OpenSSH eingebaut hat, sollte das ja einigermaßen automatisiert und ohne Putty etc umsetzbar sein. Grundsätzlich hab ich das auch am Laufen, aber stoße jetzt doch auf ein paar Stoplersteine bzw. Fragen:

- Da ich auch Paypal und andere NonHBCI Konten habe, benutze ich das Komplettpaket von derrichter. Gibts da irgendwelchen Komplikationen. Die DB Liegt doch so tief drunter, dass es eigentlich egal ist, oder?

- Der Datenbestand ist natürlich inzwischen hart gewachsen, ob nun an aktiven und inaktiven Konten, Umsätzen, Bankzugängen etc etc. Bei den Umsätzen bin ich inzwischen bei ner ID von rd. 25000 :D Wenn ich jetzt allerdings die Datenbank über die eingaubte XML-Exportfunktion exportiere und nach Umstellung wieder importiere bekommen ich bei knapp der Hälfte Constraint Fehler. und auch die Zugänge etc werden nicht mitgenommen. Das sollte doch eigentlich komplett benutzungsfähig wieder importiert werden, oder? Gibts da ne Möglichkeit, die H2DB noch direkter in MySQL zu transferieren? Oder soinst csv oder SQL-Scripte nutzen?

- Ich starte zur Zeit den SSH-Tunnel noch von Hand in der Powershell mit der -fN Option im Background. Gibts ne Möglichkeit das irgendwie in die start.bat mit einzubinden? Und am besten den Tunnel beim Schließen von Jameica wieder zu schließen?

Hat das jemand in ähnlicher Konstellation schon umgesetzt und hat ein paar best-practice Tipps für mich? :)

Beste Grüße in die Runde!
Kalle

hibiscus

Betreff:

Re: Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 15.01.2024 - 08:55 Uhr  ·  #169456
Zitat geschrieben von 73kw

- Da ich auch Paypal und andere NonHBCI Konten habe, benutze ich das Komplettpaket von derrichter. Gibts da irgendwelchen Komplikationen. Die DB Liegt doch so tief drunter, dass es eigentlich egal ist, oder?

Ja. Nach meinem Wissen haben die Plugins von Sebastian keine eigene Datenbank.
Zitat geschrieben von 73kw

- Der Datenbestand ist natürlich inzwischen hart gewachsen, ob nun an aktiven und inaktiven Konten, Umsätzen, Bankzugängen etc etc. Bei den Umsätzen bin ich inzwischen bei ner ID von rd. 25000 :D Wenn ich jetzt allerdings die Datenbank über die eingaubte XML-Exportfunktion exportiere und nach Umstellung wieder importiere bekommen ich bei knapp der Hälfte Constraint Fehler. und auch die Zugänge etc werden nicht mitgenommen. Das sollte doch eigentlich komplett benutzungsfähig wieder importiert werden, oder? Gibts da ne Möglichkeit, die H2DB noch direkter in MySQL zu transferieren? Oder soinst csv oder SQL-Scripte nutzen?

Man kann mit den H2-Bordmitteln einen SQL-Dump erzeugen. Unter https://stackoverflow.com/ques…e-in-mysql und https://jonas.verhoelen.de/dat…base-file/ finden sich hierzu Anleitungen. Die benötigte h2-<version>.jar liegt im Programmordner von Jameica im Ordner "lib/h2". Die Zugangsdaten sowie die JDBC-URL wird angezeigt, wenn man in Hibiscus oben im Menü auf "Hibiscus->Über->Datenbank Infos" klickt. Achtung: Das Passwort muss doppelt angegeben werden - genauso wie es in dem Dialog angezeigt wird.

Das Problem hierbei ist, dass beide Datenbanken unterschiedliche SQL-Dialekte verwenden. Das erzeugte SQL-Script wird sich nicht 1:1 in MySQL importieren lassen. Am ehesten wird wahrscheinlich funktionieren, erst eine Hibiscus-Instanz mit MySQL-Konfiguration einzurichten, sodass die benötigten SQL-Tabellen automatisch von Hibiscus erstellt werden - aber noch leer sind. Anschließend das erzeugte SQL-Script bearbeiten und dort alles ausser den INSERT-Statements entfernen, sodass das Script keine Tabellen erstellt sondern nur noch die Daten einfügt. Da ist die Wahrscheinlichkeit am höchsten, dass es übernommen wird. Falls dann immer noch Syntax-Unterschiede existieren, kann man die per Suchen&Ersetzen im SQL-Script korrigieren.

Die Bankzugänge müssen ohnehin neu angelegt werden, da die nicht in der Datenbank gespeichert werden. Das ist aber kein Problem, da die nur lose mit den Konten verknüpft sind. Wenn die Kontonummern passen, werden die existierenden Konten beim Neuanlegen der Bankzugänge automatisch wieder zugeordnet. Falls nicht, kann man das in der Detailansicht der Bankzugänge jeweils in der Tabelle "Fest zugeordnete Konten" manuell tun.
Zitat geschrieben von 73kw

- Ich starte zur Zeit den SSH-Tunnel noch von Hand in der Powershell mit der -fN Option im Background. Gibts ne Möglichkeit das irgendwie in die start.bat mit einzubinden? Und am besten den Tunnel beim Schließen von Jameica wieder zu schließen?

Ich würde statt einem SSH-Tunnel einen echten VPN-Tunnel per Wireguard empfehlen. Das ist schneller.

73kw

Betreff:

Re: Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 16.01.2024 - 20:00 Uhr  ·  #169490
Hey Olaf!

Super, besten Dank für die Tipps! :)
Dann arbeite ich mich da mal dran lang und melde mich bei Bedarf nochmal! :)

Beste Grüße
Kalle

73kw

Betreff:

Re: Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 17.01.2024 - 08:00 Uhr  ·  #169492
Sooo, hab das jetzt mal von Hand gedumped und die SQL händisch mit Suchen - Ersetzen auf MySQL angepasst.
Dabei bin ich auch auf Constraint Fehler gestoßen. Kann das sein, das eigentlich alles ok ist, nur die Daten halt noch nicht da sind, weil die erst später eingefügt werden? Hab das jetzt per
Code
SET FOREIGN_KEY_CHECKS=0; 
am Anfang der SQL augeschaltet und konnte jetzt auch fast alle INSERTS durchführen. Vllt. wärs ne Idee, dass auch in den Import über Hibiscus mit einzubauen?

Ich häng dann jetzt bei den Inserts in die property-Table. (Duplicate Entry Fehler) Kann ich die einfach sein lassen? Das scheinen ja eh UPD und BPD Einträge zu sein, die werden doch eh neu erzeugt, wenn ich die Zugänge neu anlege, oder?

Beste Grüße,
Kalle

hibiscus

Betreff:

Re: Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 17.01.2024 - 08:17 Uhr  ·  #169493
Zitat geschrieben von 73kw

Sooo, hab das jetzt mal von Hand gedumped und die SQL händisch mit Suchen - Ersetzen auf MySQL angepasst.
Dabei bin ich auch auf Constraint Fehler gestoßen.

Selbst das SQL-Script hatte Constraint-Fehler?
Dann müssen die ja schon direkt in deiner H2-Datenbank gewesen sein.
Zitat geschrieben von 73kw

Code
SET FOREIGN_KEY_CHECKS=0; 
am Anfang der SQL augeschaltet und konnte jetzt auch fast alle INSERTS durchführen. Vllt. wärs ne Idee, dass auch in den Import über Hibiscus mit einzubauen?

FOREIGN_KEY_CHECKS ist ein MySQL-Spezifikum. Das kann ich so per JDBC aus Java heraus nicht verwenden.
Zitat geschrieben von 73kw

Ich häng dann jetzt bei den Inserts in die property-Table. (Duplicate Entry Fehler) Kann ich die einfach sein lassen? Das scheinen ja eh UPD und BPD Einträge zu sein, die werden doch eh neu erzeugt, wenn ich die Zugänge neu anlege, oder?

Ja, die kannst du weglassen.

73kw

Betreff:

Re: Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 18.01.2024 - 11:57 Uhr  ·  #169514
Sag mal, die Protokoll Tabelle kann ich doich auch eigentlich mal leeren, oder? Die hat inzwischen auch knapp 100.000 Einträge. und ist der eigentlich Brocken in der DB. Oder wird die außer zur Dokumentation irgendwo für benutzt? :)

hibiscus

Betreff:

Re: Umstellung auf MySQL/ MariaDB

 ·  Gepostet: 18.01.2024 - 12:01 Uhr  ·  #169517
Ja, die kannst du dann tatsächlich löschen. Sie dient in der Tat nur der Dokumentation.