Migration MSSQL zu MariaDB

Microsoft SQL Server wird von Relution nicht mehr unterstützt. Mit einer MSSQL-Datenbank bricht Relution den Start mit der Meldung Microsoft SQL Server databases are not supported by Relution. ab.

Die folgende Anleitung beschreibt die Migration einer Relution-Installation in Version 5.24.2 von MSSQL zu MariaDB mit HeidiSQL. Bei benötigter Unterstützung steht das Relution Helpdesk Team zur Verfügung.


Voraussetzungen

  • Version: Relution 5.24.2 ist die letzte Version, die mit Microsoft SQL Server läuft. Ältere Installationen werden vor der Migration auf 5.24.2 aktualisiert. Das Schema in MariaDB (Schritt 6, --database-migration-only) wird mit genau derselben Version 5.24.2 angelegt, nicht mit 5.25.0 oder neuer, da die Tabelle DATABASECHANGELOG nicht exportiert wird. Erst nach erfolgreichem Datenimport und Funktionsprüfung wird auf neuere Versionen aktualisiert. Dabei sind die Zwischenversionen unter Update → einzuhalten.
  • MariaDB: Relution 5.24.2 setzt mindestens MariaDB 10.5.2 voraus, aktuelle Relution-Versionen MariaDB 10.11. Bei einer älteren MariaDB-Version bricht Relution den Start ab. MariaDB wird nur noch bis Ende 2027 unterstützt, empfohlen wird PostgreSQL (siehe Systemanforderungen →). Für Docker-Installationen ist der spätere Wechsel unter Migration MariaDB zu PostgreSQL → beschrieben.
  • Java: Die Umgebungsvariable JAVA_HOME ist gesetzt. Ohne JAVA_HOME beendet sich relution-foreground.bat ohne Meldung.

Migration

Die Migration erfolgt in zwei Abschnitten: Zuerst legt Relution das Schema in der neuen Datenbank an, danach werden die Daten mit HeidiSQL übertragen.

Schema anlegen

  1. Relution herunterfahren.

  2. MariaDB-Server bereitstellen und die my.cnf konfigurieren (cnf Vorlage →).

  3. Mit HeidiSQL eine neue, leere Datenbank mit dem Zeichensatz utf8mb4 und der Collation utf8mb4_general_ci anlegen. Das Schema (Tabellen und Views) wird nicht manuell angelegt, sondern in Schritt 6 von Relution erzeugt.

  4. Alte und neue Datenbank in HeidiSQL verbinden.

  5. In der application.yml unter relution.database die Werte type, url, username und password auf die neue Datenbank ändern:

    relution:
      database:
        type: mariadb
        url: jdbc:mariadb://<db_server>:3306/<db_name>?useServerPrepStmts=true
        username: <user>
        password: <password>
    
  6. Relution einmalig im Modus „nur Datenbankmigration“ gegen die neue Datenbank starten. Dazu in einer Eingabeaufforderung im Relution-Installationsverzeichnis die Umgebungsvariable RELUTION_ARGUMENTS setzen und anschließend relution-foreground.bat starten:

    set RELUTION_ARGUMENTS=--database-migration-only
    windows-bin\relution-foreground.bat
    

    Parameter, die direkt an relution-foreground.bat angehängt werden, haben keine Wirkung, da das Skript nur den Inhalt von RELUTION_ARGUMENTS an Java weitergibt. Die Variable gilt nur für diese Eingabeaufforderung. Nach dem Lauf die Eingabeaufforderung schließen oder set RELUTION_ARGUMENTS= ausführen, damit Relution später nicht erneut nur im Migrationsmodus startet.

  7. Abwarten, bis sich Relution nach dem Anlegen des Schemas selbstständig beendet, und im Log prüfen, dass die Migration fehlerfrei abgeschlossen wurde.

Daten übertragen

Die Daten werden mit der Exportfunktion von HeidiSQL direkt von der alten in die neue Datenbank geschrieben.

  1. Rechtsklick auf die alte Datenbank.
  2. Datenbank Export
  3. Die Tabellen DATABASECHANGELOG, DATABASECHANGELOGLOCK und JGROUPSPING sowie alle Views abwählen.
  4. Max INSERT Länge auf 10k
  5. Alles abwählen bei Datenbanken und Tabellen
    MSSQL Datenbankexport in HeidiSQL für Migration zu MariaDB konfigurieren
  6. Ausgabe: Neue Datenbank Server
  7. Datenbank: Neue Datenbank
  8. Migration Starten

Nach der Migration

  1. Relution starten.
  2. Im Relution-Log prüfen, ob der Start korrekt funktioniert. Wo die Log-Dateien liegen, ist unter Relution Logs → beschrieben.
  3. In Relution einloggen und prüfen, ob Ressourcen geladen werden können.
  4. Geräte → Inventar öffnen und prüfen, ob die Geräteliste (Datenbank-Views) geladen wird.
Top