MariaDB Upgrade-Tool (UgradeMDB)
1 Ziel und Zweck
Das MariaDB Upgrade-Tool (UgradeMDB) ist eine Windows-Anwendung, die im Rahmen einer EDP-Updateinstallation automatisch gestartet wird und den Upgrade-Prozess einer lokal installierten MariaDB-Instanz vollständig automatisiert. Das EDP-Setup führt dabei sowohl bei einem Minor- als auch bei einem Major-Upgrade alle erforderlichen Schritte selbstständig und ohne manuelles Eingreifen durch. Ziel ist es, diesen sonst fehleranfälligen Prozess sicher und reproduzierbar abzuwickeln, ohne dass tiefgehende Datenbankkenntnisse beim Anwender erforderlich sind. Unterstützte Vorgängerversionen: MariaDB 10.8.x und 10.11.x.
2 Ablauf des Upgrades
Die Anwendung erkennt automatisch, ob es sich um ein Minor- oder Major-Upgrade handelt, indem die Major- und Minor-Versionsnummern der installierten und der Zielversion verglichen werden. Der gesamte Prozess läuft ohne Benutzerinteraktion ab.
2.1 Minor-Upgrade (z. B. 10.11.3 → 10.11.16)
Ein Minor-Upgrade aktualisiert MariaDB innerhalb derselben Major-Version. Alle Schritte werden automatisch ausgeführt:
- Administratorrechte prüfen: Die Anwendung stellt sicher, dass sie mit erhöhten Rechten ausgeführt wird.
- Konfiguration laden: Datenbankverbindungsdaten werden aus der Datei EDPServer.ini eingelesen.
- Installierte Version ermitteln: Die aktuell installierte MariaDB-Version wird über die Windows-Registry und die Dateiversion der mysqld.exe bestimmt. Entspricht sie bereits der Zielversion, wird der Vorgang übersprungen.
- Datenbankprüfung: Der MariaDB-Dienst wird gestartet (falls nicht bereits aktiv) und die Datensatzanzahl in den Tabellen einsätze und einsatzmittel wird als Referenzwert für die spätere Integritätsprüfung erfasst.
- Backup erstellen: Mit mysqldump wird ein vollständiges Backup der EDP-Datenbank erstellt und auf Vollständigkeit geprüft (Markierung „Dump completed“ am Dateiende).
- Dienst stoppen: Der MariaDB-Dienst wird kontrolliert gestoppt.
- MSI-Installation: Die neue MariaDB-Version wird per msiexec im Silent-Modus installiert (SKIPDATADIR=1 /qn).
- Dienst starten und Version verifizieren: Nach der Installation wird der Dienst gestartet und die neu installierte Version überprüft.
- Datenintegrität prüfen: Die Datensatzanzahl in einsätze und einsatzmittel wird erneut gezählt und mit den Referenzwerten verglichen.
- Abschluss: Bei Erfolg schließt sich die Anwendung automatisch.
2.2 Major-Upgrade (z. B. 10.8.x → 10.11.x)
Ein Major-Upgrade wechselt zwischen zwei verschiedenen Hauptversionen von MariaDB. Dieser Vorgang ist deutlich umfangreicher als ein Minor-Upgrade, da zusätzlich zur reinen Softwareinstallation das bestehende Datenbankschema migriert, der Windows-Dienst auf die neue Version umgestellt und die Systemtabellen aktualisiert werden müssen.
⚠ Empfehlung: Major-Upgrades während der Geschäftszeiten durchführen Da ein Major-Upgrade deutlich mehr Schritte umfasst als ein Minor-Upgrade, ist die Gesamtdauer länger und die Komplexität höher. Es wird daher empfohlen, Major-Upgrades zu Geschäftszeiten durchzuführen, sodass im unwahrscheinlichen Fall eines Problems ein zeitnaher Support erreicht werden kann. Erfahrungsgemäß verlaufen die Upgrades jedoch problemlos und ohne manuellen Eingriff.
Das EDP-Setup führt alle nachfolgenden Schritte vollständig automatisch aus:
- Administratorrechte prüfen: wie beim Minor-Upgrade.
- Konfiguration laden: Verbindungsdaten aus EDPServer.ini einlesen.
- Installierte Version ermitteln: Version über Registry und mysqld.exe bestimmen.
- ProductCode der alten Version sichern: MSI-ProductCode und Deinstallationsbefehl der alten Version werden aus der Windows-Registry gesichert, damit die spätere Deinstallation gezielt und sicher erfolgen kann.
- Konfigurationsdatei ermitteln: Das –defaults-file des bestehenden MariaDB-Dienstes wird ausgelesen, damit die bestehende Datenbankkonfiguration erhalten bleibt.
- Datenbankprüfung: Referenzwerte für die Integritätsprüfung werden erfasst (Datensatzanzahl in einsätze und einsatzmittel).
- Backup erstellen: Vollständiges Datenbank-Backup mit mysqldump, inklusive Vollständigkeitskontrolle.
- Dienst stoppen: Der bestehende MariaDB-Dienst wird kontrolliert gestoppt.
- MSI-Installation der neuen Version: Die neue Major-Version wird installiert – parallel zur bestehenden, da unterschiedliche Major-Versionen unter Windows koexistieren können.
- mariadb-upgrade-service ausführen: Das Tool mariadb-upgrade-service.exe aus dem Installationsverzeichnis der neuen Version wird mit dem Parameter –service=MariaDB aufgerufen. Es migriert den Windows-Dienst auf die neue Version, aktualisiert alle Systemtabellen und führt automatisch mysql_upgrade aus.
- Erweiterte Verifikation: Neben der Versionskontrolle werden zusätzlich der datadir-Pfad ermittelt, die Anzahl der Systemtabellen im Schema mysql geprüft sowie die Existenz der Datei mysql_upgrade_info im Datenverzeichnis sichergestellt.
- Datenintegrität prüfen: Datensätze in einsätze und einsatzmittel werden mit den zuvor erfassten Referenzwerten verglichen.
- Alte Version deinstallieren: Die alte MariaDB-Version wird per msiexec im Silent-Modus deinstalliert (mit CLEANUPDATA=„“, damit das Datenverzeichnis erhalten bleibt). Vor der Deinstallation wird sichergestellt, dass der gespeicherte ProductCode tatsächlich zur alten und nicht zur neuen Version gehört.
- Abschluss: Bei Erfolg schließt sich die Anwendung automatisch.
3 Hinweise bei Problemen
Die Upgrades verlaufen in der Regel vollständig automatisch und ohne Fehler. Sollte dennoch ein Problem auftreten, helfen die folgenden Hinweise bei der Diagnose.
3.1 Allgemeine Hinweise
- Log-Ausgaben: Die Anwendung schreibt während des gesamten Vorgangs detaillierte Statusmeldungen in das Textfeld der Oberfläche. Bei einem Fehler sollten der letzte angezeigte Status sowie die Log-Meldungen für den Support notiert werden.
- MSI-Logdateien: Installationsprotokolle werden mit Zeitstempel im Ordner Logs abgelegt (z. B. mariadb_setup_20260331_143000.log) und enthalten detaillierte Informationen zu fehlgeschlagenen Installationen.
- Backup-Dateien: Erstelle Backups befinden sich im Ordner Backup und tragen den Zeitstempel im Dateinamen.
3.2 MariaDB-Dienst lässt sich nicht stoppen oder starten
- Prüfen, ob der Dienst MariaDB im Windows-Dienste-Manager überhaupt vorhanden ist.
- Sicherstellen, dass keine andere Anwendung (z. B. ein EDP-Client oder HeidiSQL) noch eine offene Verbindung zur Datenbank hält.
- Falls der Dienst blockiert ist, kann ein Systemneustart helfen. Danach die Anwendung erneut ausführen.
3.3 mysqldump schlägt fehl oder Backup-Datei ist unvollständig
- Zugangsdaten in der EDPServer.ini prüfen (Hostname, Port, Benutzername, Passwort).
- Sicherstellen, dass ausreichend Festplattenspeicher verfügbar ist.
- Falls das Passwort verschlüsselt als Password_enc hinterlegt ist, muss die DPAPI-Entschlüsselung auf dem aktuellen System funktionieren.
3.4 MSI-Installation schlägt fehl
- Die MSI-Logdatei im Ordner Logs analysieren, um die genaue Fehlerursache zu ermitteln.
- Prüfen, ob ein anderer MSI-Installationsvorgang parallel läuft – Windows erlaubt nur eine MSI-Installation gleichzeitig.
- Sicherstellen, dass Administratorrechte vorliegen (die Anwendung prüft dies automatisch beim Start).
- Die Fehlercodes 1641 und 3010 bedeuten, dass die Installation erfolgreich abgeschlossen wurde, jedoch ein Systemneustart erforderlich ist.
3.5 mariadb-upgrade-service schlägt fehl (nur Major-Upgrade)
- Sicherstellen, dass die Datei mariadb-upgrade-service.exe im bin-Verzeichnis der neuen MariaDB-Installation vorhanden ist.
- Das Tool benötigt erhöhte Rechte – es wird automatisch per runas aufgerufen.
- Falls das Problem bestehen bleibt, kann mariadb-upgrade-service.exe –service=MariaDB im bin-Verzeichnis der neuen Version manuell als Administrator ausgeführt werden.
- Alternativ kann nach dem Start des Dienstes mit der neuen Version mysql_upgrade –user=root –password=<passwort> manuell ausgeführt werden.
3.6 Datenintegritätsprüfung schlägt fehl
- Falls die Datensatzanzahl nach dem Upgrade abweicht, steht die Backup-Datei zur manuellen Wiederherstellung bereit. Einspielbefehl: mysql –user=root –password=<passwort> <datenbankname> < backup_datei.sql
- Falls die Datei mysql_upgrade_info nicht gefunden wird, kann mysql_upgrade manuell ausgeführt werden.
3.7 Alte MariaDB-Version lässt sich nicht deinstallieren (nur Major-Upgrade)
- Die Deinstallation der alten Version ist ein optionaler Aufräumschritt – das Upgrade selbst ist zu diesem Zeitpunkt bereits vollständig abgeschlossen.
- Die alte Version kann alternativ manuell über die Windows-Systemsteuerung (Programme und Features) deinstalliert werden.
- Wichtig: Beim Deinstallieren darauf achten, dass das Datenverzeichnis nicht gelöscht wird.
3.8 Anwendung erkennt keine installierte MariaDB-Version
- Die Anwendung sucht in der Registry unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall nach Einträgen mit dem DisplayName „MariaDB“.
- ZIP-basierte MariaDB-Installationen (ohne MSI-Installer) werden nicht automatisch erkannt.
- Nur MariaDB-Versionen 10.8.x und 10.11.x werden als Vorgängerversionen unterstützt. Ältere Versionen müssen zunächst manuell aktualisiert werden.
Weiterführende Informationen
Den offiziellen Upgrade-Ablauf unter Windows beschreibt die MariaDB-Dokumentation: MariaDB: Upgrading MariaDB on Windows