WSUS-Datenbank von WID auf SQL Server migrieren

    SQL Server Management StudioDie meisten Instal­lationen der Windows Server Update Services laufen auf der Windows Internal Data­base (WID). Möchte man nach­träglich auf SQL Server um­stellen, dann kann man dies relativ einfach mit den Kommando­zeilen-Tools sqlcmd und wsusutil tun. Der Weg zurück ist damit eben­falls möglich.

    Betreibt man WSUS auf Server Core, dann haben alle Datenbank­optionen einen Nachteil. Die standard­mäßig vorgesehene WID lässt sich nicht remote verwalten, so dass man sich dafür auf Kommandozeilen-Tools beschränken muss.

    SQL Server Express kennt diese Einschränkung nicht, hat aber ein Limit von 10GB pro Datenbank. Dieses kann von einem WSUS-Server ohne weiteres erreicht werden. Ein vollwertiger SQL Server kennt diese Defizite nicht, kostet dafür aber Lizenz­gebühren.

    SUSDB von WID lösen

    Wenn man sich trotzdem entscheidet, von der WID auf SQL Server (Express) zu wechseln, dann funktioniert dies ähnlich wie der Umzug der WID-Datenbank in ein anderes Verzeichnis. Im ersten Schritt hängt man die WID-Datenbank ab:

    sqlcmd -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -Q "sp_detach_db 'SUSDB'"

    SQL-Anbindung installieren

    Danach sind noch Vorarbeiten notwendig. Sie bestehen darin, dass man das Feature WID Connectivity entfernen und SQL Server Connectivity hinzufügen muss. Man kann die beiden nicht parallel verwenden.

    Den aktuellen Installations­status frägt man mit

    Get-WindowsFeature -Name UpdateServices*

    ab. Daraus geht auch hervor, ob WSUS zurzeit auf WID oder SQL Server läuft.

    Um WID zu deinstallieren, gibt man

    Remove-WindowsFeature -Name UpdateServices-WidDB

    ein und mit

    Install-WindowsFeature -Name UpdateServices-DB

    fügt man die SQL-Anbindung hinzu.

    WID Connectivity entfernen und SQL Server Connectivity mittels PowerShell hinzufügen

    Bei Bedarf kopiert man die SUSDB-Dateien nun an einen anderen Speicherort.

    SUSDB an SQL Server anfügen

    Zu bedenken ist bei der Konfiguration des SQL Servers, dass WSUS nur die Windows-Authenti­fizierung erlaubt. Wenn die Datenbank auf einem separaten Server läuft, dann muss man sich noch darum kümmern, dass das Computerkonto des WSUS-Servers die nötige Login-Berechtigung erhält.

    SUSDB über das grafische SQL Server Management Studio an SQL Server anfügen

    Nun kann man SUSDB in SQL Server Management Studio von einer Workstation aus remote anfügen. Dazu öffnet man im Objekt-Explorer das Kontextmenü von Datenbanken und startet den Befehl Anfügen. Im folgenden Dialog klickt man auf Hinzufügen, navigiert man zum Verzeichnis, in dem man SUSDB abgelegt hat, und öffnet die Datenbank.

    WSUS-Konfiguration anpassen

    Zum Schluss geht es noch darum, die WSUS-Konfiguration auf die neue Datenbank umzustellen. Diesem Zweck dient der Befehl

    wsusutil.exe postinstall SQL_INSTANCE_NAME="localhost" CONTENT_DIR=D:\Content

    Der Parameter Content_dir ist auch dann erforderlich, wenn sich das Verzeichnis nicht geändert hat. In diesem Beispiel läuft der SQL Server auf dem gleichen Server wie die WSUS, und diese nutzen die Default Instance. Bei einem Remote Server müsste man das Format Hostname\Instance-Name verwenden, falls nicht die Default Instance zum Einsatz kommt.

    Falls man eine geplante Aufgabe für die Wartung der WSUS-Datenbank eingerichtet hat, dann sollte man noch daran denken, diese von WID auf SQL Server umzustellen. Bei einem lokal installierten SQL Server würde sich für die Default Instance die Befehlszeile auf

    sqlcmd -d SUSDB -i C:\<Pfad>\WsusDBMaintenance.sql

    ändern.

    Von SQL Server zurück zu WID

    Der hier beschriebene Weg lässt sich auch umge­kehrt beschreiten. Wenn man aus irgendwelchen Gründen von SQL Server wieder auf die WID zurück­kehren möchte, dann führt man zuerst im SQL Server Management Studio aus dem Kontextmenü von SUSDB den Befehl Tasks => Trennen aus.

    SUSDB über SQL Server Management Studio von SQL Server trennen

    Es folgt das Deinstallieren von SQL Server Connectivity und das Hinzufügen von WID Connectivity. Danach hängt man die Datenbank bei WID mit

    sqlcmd.exe -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -Q "sp_attach_db @dbname=N'SUSDB',@filename1=N'D:\DB\SUSDB.mdf', @filename2=N'D:\DB\SUSDB_log.ldf'"

    wieder ein. In diesem Beispiel befindet sie sich unter d:\db. Zum Schluss ruft man noch

    wsusutil.exe postinstall CONTENT_DIR=D:\Content

    auf, also ohne den Parameter SQL_INSTANCE_NAME.

    1 Kommentar

    Karl Wester-Ebb... sagt:
    24. Mai 2020 - 13:07

    Wer WSUS auf WID mit Server 2019 betreibt wird ggf. enttäuscht sein, denn die WID basiert offenbar nicht mehr auf SQL 2012 Express und kann daher nicht auf SQL 2014 nicht migriert werden. Gibt es ähnliche Erfahrungen?