Heutige Aufgabe war die Aktualisierung eines SQL-Server 2017 auf SQL-Server 2019 Standard auf einem Domänenkontroller.
Der grobe Ablauf ist, dass man das Setup der Zielversion startet (SQL Server 2019) und im Menü unter Installation Upgrade auswählt.
Wichtig hierbei ist, dass die Version der Zielversion identisch zur Quellversion sein muss was die Sprache angeht. D->EN geht nicht. Es geht nur EN->EN oder eben jede andere identische Sprache.
Ebenso ergibt sich die erste Anforderung, dass Microsoft wählerisch ist welchen Kontotyp das Dienstkonto besitzen darf, welches die SQL-Instanzen startet, wenn das ganze auf einem DC läuft.
Typische Fehlermeldung die man hier antrifft ist:
Die aktuelle SQL Server-Instanz kann nicht aktualisiert werden, da sie auf einem Domänencontroller ausgeführt wird und das Dienstkonto ein Netzwerkdienst oder lokaler Dienst ist. Ändern Sie das Dienstkonto und wiederholen Sie das Upgrade, um den Vorgang fortzusetzen.
Abhilfe ist, das Dienstekonto (nur über den SQL-Konfigurationsmanager!! nicht manuell in den Windows-Diensten) abändern auf einen zuvor angelegten Standard-Domänenbenutzer – z.B. sql-service.
Dies einmal hinterlegen, Server neustarten und erstmal testen ob der neue User funktioniert, bevor mit obigem Setup gestartet wird.
Geht alles, erneut Setup starten und im Menü Links Installation -> Upgrade von einer vorherigen Version auswählen. Dann folgen div. Checks & Tests auf Kompatibilität.
Sind diese alle überwunden, erfolgt das eigentliche Update inkl. Konvertierung von Daten.
ACHTUNG: Falls der Installer/Upgrade nach MSI-Installationsdateien frägt zu ODBC oder OLEDB-Treibern. Über die Systemsteuerung entweder die genaue Version des installierten Treibers ausfindig machen und exakte Version in auch richtiger Sprachversion herunterladen (z.B. 17.8.1.1 in EN) und Updater vorwerfen, oder vor dem Start des ganzen Updates, die Treiber deinstallieren, dann werden diese erneut installiert.
Abschließender Hinweis:
Testet jeden Update-Schritt mit einem anschließenden Neustart und Funktionstest der Anwendungen dahinter gegen die Datenbank falls Ihr mehrere DBs migriert um im Fehlerfall die genaue Ursache eingrenzen zu können.