Migration auf die MySQL Datenbank

  • Guten Abend,


    die Anleitung zur Migration der Daten von der SQLite in die MySQL Datenbank hat div. Fehler.
    https://www.liveconfig.com/de/kb/15


    Punkt 1: Der Export von der SQLite ist nicht in der Lage die SSL Zertifikate mit zu exportieren.
    Punkt 2: Bei den TRUNCATE fehlen die Tabellen PHPVARS, PHPTEMPLATES, DNSTEMPLATES und EXTNAMESERVERS
    Punkt 3: In der Tabelle RESELLERS darf RES_LOGO und RES_LOGINLOGO nicht NULL sein. Was aber der Fall ist, wenn der Reseller das Standard LiveConfig Logo verwendet. Wobei es für einen Reseller unmöglich macht ein RES_LOGINLOGO zu haben, da es nur eines gibt.
    Punkt 4: Die Sessions des SQLite Export haben eine fehlerhafte Syntax für den MySQL Import. Bemängelt wurde die S_FLAGS


    Wir verwenden die folgenden Version: LiveConfig 1.6.1-r2083.

  • Hallo,


    wie immer - der Teufel steckt(e) im Detail. Der von SQLite erzeugte Dump enthielt keine Spaltennamen in den INSERT-Befehlen, wodurch bei einem Import in MySQL zwangsweise alle Spalten in der selben "Reihenfolge" vorliegen müssten. Dies ist aber - je nach Update-Verlauf einer LiveConfig-Installation - nicht immer der Fall.


    Lange Rede, kurzer Sinn: es gibt ab sofort ein neues Tool namens lcdbdump, welches einen MySQL-kompatiblen Dump einer SQLite-Datenbank erzeugt. Die Schritte für eine Migration auf MySQL sehen somit wie folgt aus:

    • erzeugen Sie eine neue, leere MySQL-Datenbank samt Benutzer und Passwort (siehe Handbuch)
    • importieren Sie die Standard-MySQL-Datenbank (ebenfalls siehe Handbuch)
    • laden Sie das lcdbdump-Tool herunter und erzeugen einen Dump:

      Code
      wget http://download.liveconfig.com/tools/lcdbdump
      ./lcdbdump /var/lib/liveconfig/liveconfig.db dump.sql


    • importieren Sie den Dump in die MySQL-Datenbank


    In unseren ersten Tests hier hatte alles geklappt, wir sind aber für weitere Rückmeldungen dankbar. Wenn alles passt, wird die entsprechende Anleitung kurzfristig aktualisiert.


    Viele Grüße


    -Klaus Keppler

  • Guten Morgen,


    vielen Dank für die kleine Überraschung am Morgen. Ich hätte nich damit gerechnet das uns ein Tool erwartet.


    Ich habe also den dump erzeugt und in eine leeres Schema eingespielt. Hat bestens funktioniert ohne Fehler etc.
    Ich kann bisher keinen Fehler feststellen - in den vorherigen manuellen Varianten hingegen ging das sehr schnell.


    Also alles Super !!! Wäre vielleicht auch eine Idee beim Versionsupgrade einen dump zu erzeugen, wie es in der normalen DB Variante gemacht wird ?


    Gruß Daniel

  • Also ich würde gerne umstellen, doch funktioniert es nicht so ganz wie es sollte. Problem oben schon beschrieben. Das Interface ist bei mir mit SQLite sehr träge und es sind keine 10 Kunden angelegt. Ich weiß nicht wieviel schneller es sein wird, aber sicherlich um einiges schneller wie jetzt. Im Moment sind 5-20 Sekunden für den Seitenaufbau keine Seltenheit. Owncloud hatte ich zuvor auch erst auf SQLite laufen und nach der Umstellung auf MySQL ist es viel schneller.

  • so umgestellt auf Mysql... ging doch recht flott und problemlos.


    Performance ist viel wirklich besser. Kein Vergleich !
    So macht LiveConfig wieder SPAß !!
    Auch bieten sich nun viele neue Möglichkeiten an.
    Kann endlich direkt auf die Datenbank zugreifen.
    Hätte ich besser von Anfang an gemacht!


    PS. Permission denied kommt, wenn du das DUMP-Tool nicht mit ausführen Rechten belegst ... also CHMOD xxx

  • Es wäre hilfreich, wenn ich vor dem ersten Start von LiveConfig anweisen kann, dass MySQL verwendet werden soll (debconf). Installiere ich LiveConfig über das Debian-Paket, wird es ja im postinst-Script gestartet. Dann ist die SQLite-DB längst angelegt und in Benutzung.
    Nun könnte ich APT/DPKG anweisen, keine {pre,post}{inst,rm}-Scripte für dieses Paket auszuführen, aber schön ist das nicht.


    So muss ich nun nach der Installation jedes Mal die Schritte aus http://www.liveconfig.com/de/kb/15 bzw. /usr/share/doc/liveconfig/README.mysql befolgen.

  • Hallo,


    die Anleitung für die SQLite->MySQL-Migration (KB#15) wurde eben aktualisiert und berücksichtigt nun das lcdbdump-Tool.


    Performance ist viel wirklich besser. Kein Vergleich !
    So macht LiveConfig wieder SPAß !!


    Wir haben bislang keinen Performanceunterschied zwischen SQLite und MySQL feststellen können, so lange man nicht mehrere hundert Accounts auf einem Server damit betreibt. Da SQLite aber für die Transaktionssicherheit häufig wartet, bis eine Schreiboperation auf die Festplatte bestätigt ist, kann das auf stark I/O-belasteten Systemen (z.B. sehr häufig bei überlasteten VPS-Hosts) durchaus zu Verzögerungen führen.
    Ich vermute mal, dass auf Ihrem Server eine hohe "Grundlast" herrscht (lassen Sie einfach mal für ein paar Minuten den Befehl "vmstat 1" laufen - in der letzten Spalte unter "WAIT" werden vermutlich häufig höhere Werte stehen)


    Zitat

    Auch bieten sich nun viele neue Möglichkeiten an.
    Kann endlich direkt auf die Datenbank zugreifen.


    Äh - davon raten wir dringend ab :)
    Da stehen zwar keine Geheimnisse drin, aber für alle "externen" Zugriffe sollte einzig und allein die SOAP-API genutzt werden. Schreibzugriffe sollten definitiv gar nicht darin vorgenommen werden, da das Datenschema relativ komplex ist und man so sehr schnell die eine oder andere Inkonsistenz erzeugen kann. Wir leisten auch keinen Support bei direkten Zugriffen auf die Datenbank.


    Zitat

    PS. Permission denied kommt, wenn du das DUMP-Tool nicht mit ausführen Rechten belegst ... also CHMOD xxx


    In die Anleitung haben wir nun ein chmod mit eingebaut. :)


    Es wäre hilfreich, wenn ich vor dem ersten Start von LiveConfig anweisen kann, dass MySQL verwendet werden soll (debconf).


    Ich nehme das mal als Feature Request auf. Unter Debian gibt es ja inzwischen auch schon elegante Möglichkeiten, direkt aus debconf heraus eine Datenbank mitsamt Benutzer anlegen zu lassen.


    Viele Grüße


    -Klaus Keppler

  • Noch ein Nachtrag: für SQLite gibt es in LiveConfig ein noch undokumentiertes Feature, mit dem sich der Zugriff enorm beschleunigen lässt, indem auch gepufferte Schreibzugriffe erlaubt werden. Tragen Sie hierzu in /etc/liveconfig/liveconfig.conf folgende Zeile ein:

    Code
    db_options="synchronous=0"


    Die Gefahr dabei ist allerdings, dass bei einem Stromausfall während eines Schreibvorgangs eventuell inkonsistente Daten entstehen - man sollte diese Option also höchsten übergangsweise nutzen, während man (lastbedingt) eine Umstellung auf MySQL vorbereitet.

  • ja es lag eindeutig an der I/O Belastung von SQLite...wahrscheinlich auch durch das Software-RAID. Serverlast ist kaum noch vorhanden. LiveConfig arbeitet jetzt endlich richtig schnell!


    Bezüglich der Möglichkeiten, meinte ich aber lediglich das AUSLESEN ! Mir fehlen ja ein paar SOAP Befehle zum Auslesen. Schreiboperationen mache ich natürlich weiterhin mit SOAP.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!