Client Update dauert lange

  • Hallo Oliver,


    ihr habt einen fiesen "Bug" in der Updateroutine des Server: Bei der Aktualisierung des Servers generiert dieser ja das Clientupdate (Win32Client.zip). Dabei bezieht der Installer jedoch auch einen evtl. vorhandenen mySQL Ordner mit ein. In unserem Fall wird der gesamte Inhalt des Ordners "E:\Greyhound\mySQL51\" inklusive aller Datenbanken mit in das o.g. Clientupdate eingebunden. Das ergibt dann eine Datei von über 500 MB die sich jeder Client ziehen muss.


    Schlimmer noch: Die Datenbanken landen dann auch alle entpackt auf den Client in deren Clientverzeichnis. Abgesehen von dem Speicherverbrauch auf der Systemplatte des Clients, der sicher den ein oder anderen weniger gut ausgestatteten Client lahmlegen wird (bei uns knapp 3 GB für die entkomprimierten DBs), ist das ganze Datenschutztechnisch natürlich schlecht. Für mich jetzt kein Problem, aber eben nicht schön, zumal sich der mySQL Ordner der externen mySQL DB laut Hildebrand am besten eben genau in dem Greyhound Ordner befinden soll.


    Workaround für Admins: Auf dem Server nach dem Update die Clientdatei \Greyhound\Server\Updates\Win32Client.zip entpacken, den mySQL Ordner löschen, und dann den Rest wieder zippen und die alte Win32Client.zip überschreiben.


    Lieben Gruß


    Sascha

  • Hallo,


    das Problem ist der Name des Daten-Ordners von MySQL. GREYHOUND kennt natürlich nur seine eigenen Dateien und geht davon aus, das alles was nicht bekannt ist z.B. ein Plugin oder eine Erweiterung ist. Diese wird dem Client also mit ausgefliefert.


    Beste Lösung: Den Ordner in "Server\MySQL" umbenennen, dieser ist ebenfalls vom Update-Mechanismus ausgeschlossen.

  • Hallo,


    das ist verständlich, aber ich kann ja jetzt nun mal nicht einfach den bestehenden mySQL Ordner umbenennen und verschieben. Und in Server\MySQL liegen ja auch noch die Daten des internen SQL-Servers. Keine Ahnung ob man die einfach so weglöschen/überschreiben kann. Aber das soll nicht euer Problem sein, das bekomme ich schon hin.


    Für mich bleibt dann aber noch eine Frage offen: Warum macht es nochmal Sinn den eigenen mySQL Server innerhalb der Greyhound Ordnerstruktur zu installieren? Oder macht es überhaupt Sinn? Wird denn bei einem Backup des GH bei aktiverter Option "Externe MySQL Datenbank sichern" nur die Datenbank oder der ganze MySQL Ordner gesichert? Tobias geht in seinem HowTo auf den Pfad nicht näher ein, außer das dort genügend Platz sein sollte.


    ?( ?( ?(


    Lieben Gruß

  • Hallo,


    es macht zumindest Sinn den Daten-Ordner von MySQL unterhalb von GREYHOUND\Server abzulegen (siehe Einschränkung unten). Bei einem Backup erstellt GREYHOUND eine ZIP-Datei mit allen Daten aus dem gesamten GREYHOUND-Ordner. Das heißt - genau wie bei der embedded Datenbank - sind die Daten dann im Backup enthalten (die Option externe Datenbank sichern wird nicht benötigt).


    Wenn die Option "externe Datenbank sichern" ausgewählt wird, erstellt GREYHOUND einen SQL-Dump der externen Datenbank. Das heißt, es wird eine Verbindung zum Server aufgebaut.


    Wenn die Datenbank unterhalb GREYHOUND\Server liegt und diese von GREYHOUND gesichert wird, kann es dazu kommen, dass nicht unbedingt alle Daten geschrieben wurden (Stichwort: "Flush Tables"). Ohne MySQL zu stoppen, ist es nicht sicher, wenn man nur die Daten-Dateien kopiert, dass man ein absolut vollständiges Backup hat. Das Backup wird heile sein (man kann es problemlos einspielen), aber es kann u.U. dazu kommen, dass Daten einer Tabelle bereits geschrieben wurden, andere aber nicht (inkonsistente Referenzen sind die Folge). Ein Fall könnte z.B. sein, dass die Basis-Daten einer E-Mail vorhanden sind, die weiterführenden Informationen wie z.B. der Inhalt aber nicht.


    Ich denke Hildebrand hatte dir diesen Ordner empfohlen, weil du so alles an einer Stelle hast. 100% technisch korrekt ist es aber nicht.


    Ein Hinweis: Das Backup unseres Webservers läuft auf gleiche Weise. D.h. wir leben mit dem Problem, dass im Falle eines Falles ein Datensatz fehlt (dadurch, dass man kein sekündliches Backup hat, fehlen sowieso immer irgendwelche Daten).


    Im Fall von GREYHOUND kann man durch die Datenbank-Prüfung im GREYHOUND Admin eventuelle Probleme der Datenbankreferenzen beheben. Das System kann also selbst aufräumen und sich selbst heilen.


    Zusammenfassung:
    Datenbank nicht unterhalb von GREYHOUND\Server: Externe Datenbank sichern anwählen und einen SQL-Dump erstellen. 100% referenzielle Integrität. Dafür etwas langsamer. Verteiltes System.
    Datenbank unterhalb von GREYHOUND\Server: Externe Datenbank sichern nicht anwählen. Keine absolute Sicherheit (99,99%). Schnellste Variante. Alles an einem Platz.

  • Hi Oliver,

    das ist verständlich, aber ich kann ja jetzt nun mal nicht einfach den bestehenden mySQL Ordner umbenennen und verschieben. Und in Server\MySQL liegen ja auch noch die Daten des internen SQL-Servers. Keine Ahnung ob man die einfach so weglöschen/überschreiben kann.

    aufgrund der o.g. Problems kam ich gestern nicht um eine Neuinstallation/ein Verschieben der MySQL Datenbank herum. Der GH-Installer hatte sich beim Update auf die 1204 beim Erzeugen des Client-Updates irgendwie verschluckt. Wahrscheinlich hat er sich gewundert warum der Client (komprimiert) 5GB groß sein sollte :-/


    Dabei stieß ich auf das o.g. Problem mit dem integrierten mySQL-Server, welcher sowohl seine INIs als auch sein Datenbankverzeichnis unter ../Greyhound/Server/MySQL respektive ../Greyhound/Server/MySQL/data speichert. Wählt man ersterers als Datenbankverzeichnis im MySQL Installer aus, dann erzeugt dieser automatisch das Unterverzeichnis /data und speichert darin auch seine eigene Datenbank unter ../data/mysql ab.


    Da der MySQL Ordner von dem GH-Installer für die Erzeugung des Clientupdsates ausgenommen wird ist das Ursprungsproblem damit zwar gelöst, aber der von dem externen MySQL-Server angelegte Ordner ../data/mysql wird vom GH-Installer ebenfalls versucht zu aktualisieren. Das schlägt dann logischerweise bei einem laufenden, externen MySQL Server mit einer Fehlermeldung fehl.


    Jetzt stellt sich mir die Frage ob die vom GH-Installer erzeugten Dateien in ../data/mysql einen externen MySQL-Server aus dem tritt bringen können?


    Lieben Gruß