SQL Server 2019 (Express) auf Windows Server Core installieren, Remote-Management aktivieren

    SQL Server Express Edition installierenMicrosoft empfiehlt die schlanke Instal­lations­variante von Windows Server für die meisten Infra­struktur­dienste und mittler­weile auch für Anwen­dungen wie Exchange 2019. Auch SQL Server lässt sich auf Server Core betreiben. Die Instal­lation erfor­dert dort aber einige Schritte auf der Kom­mando­zeile.

    Auch wenn Server Core nicht sämtliche Dienste von SQL Server unterstützt, wie zum Beispiel die Reporting-, Master-Data oder Data-Quality-Services, so dürfte ein solches Setup dennoch für die meisten Aufgaben reichen. Das gilt besonders für die typischen Anwen­dungen der Express Edition.

    Grafischer Mini-Installer

    Die Installation hat sich seit SQL Server 2017 nicht verändert, so dass die folgende Anleitung für beide Versionen gleicher­maßen gilt. Sie beginnt damit, dass man von der Download-Seite für SQL Server 2019 einen kaum 6 MB großen Installer holt, der anschließend die benötigten Dateien aus dem Internet nachlädt.

    Das Tool startet auch unter Server Core mit einer grafischen Oberfläche, die drei Optionen bietet: Standard, Benutzerdefiniert und Medien herunterladen.

    Installationsoptionen im grafischen Setup für SQL Server 2019

    Unkompliziert verläuft die erste Variante, bei der nach Bestätigung der EULA und der Auswahl des Ziel­verzeichnisses der SQL Server mit den Standard­werten eingerichtet wird. Dieses Setup beschränkt sich auf die bloße Database-Engine.

    Nach der Auswahl des Installationsverzeichnisses legt das Standard-Setup los.

    Entscheidet man sich für die benutzer­definierte Installation, dann lädt das Programm die Installations­dateien herunter und öffnet anschließend das eigentliche Setup von SQL Server, bei dem man mit Hilfe eines Assistenten die ver­schiedenen Optionen und Komponenten aus­wählen kann.

    GUI-Assistent funktioniert nicht

    Den Download der kompletten Installations­medien wird man dann bevorzugen, wenn der Datenbank-Server keinen Zugang zum Internet hat. Man kann sie damit auf eine Workstation herunter­laden und dann auf das Zielsystem übertragen.

    Herunterladen der Installationsmedien für SQL Server

    Der Aufruf der .exe-Datei entpackt dann das Archiv in ein Unter­verzeichnis, von wo man setup.exe starten kann. Mit

    .\setup.exe /UIMODE=EnableUIOnServerCore

    öffnet man die gleiche GUI, die man bei der benutzer­definierten Installation erhält.

    Die Assistenten-geführte Installation von SQL Server funktioniert unter Server Core nicht.

    In beiden Fällen erweist sich diese unter Server Core als unbrauchbar. Sowohl unter Server 2016 als auch Server 2019 mit installiertem Core App Compatibility blieben in meinem Lab die Klicks auf verschiedene Optionen ohne Wirkung.

    Update: Wie in zwei Kommentaren angemerkt, kann man den nicht reagie­renden Auswahldialog überspringen und direkt zum Installations­assistenten gelangen, wenn man das Setup so aufruft:

    setup /UIMODE=EnableUIOnServerCore /Action=Install

    Installation von der Kommandozeile

    Will man sich nicht mit der Standard­installation begnügen, dann bleibt daher nur die Einrichtung von SQL Server über die Kommandozeile. Dafür sieht das Setup einen Silent-Modus vor, den man mit dem Schalter /Q aktiviert.

    Die Installation der SQL-Engine erfordert die Parameter Action (mit den möglichen Werten install, uninstall oder upgrade) sowie IAcceptSQLServerLicenseTerms. Verpflichtend sind zudem Angaben für Features, mögliche Werte sind SQLENGINE, FullText, Replication, AS, IS und Conn. Gibt man mehrere davon an, trennt man sie durch ein Komma.

    Aufruf von setup.exe für die Installation von SQL Server 2019 Express

    Hinzu kommen als Pflicht­angaben Instanceid und Instancename (beide haben den Standardwert "MSSQLSERVER") sowie Sqlsvcaccount und Sqlsvcpassword, mit denen man das Konto bzw. dessen Passwort angibt, unter dem der SQL Server laufen soll.

    Die Express Edition kann auf Basis dieser Parameter installiert werden, die Vollversion erwartet zusätzlich noch, dass man mit Sqlsysadminaccounts die sysadmin-Rolle an bestimmte User zuteilt. Eine vollständige Dokumentation aller Setup-Parameter findet sich hier auf Microsoft Docs.

    Abschluss der Installation

    Da man den SQL Server primär remote verwalten wird, empfiehlt sich bei einer Installation auf Server Core, dem Setup unbedingt den Parameter

    TCPEnabled=1

    mitzugeben. Andernfalls darf man sich nachträglich mit WMI und dem PowerShell-Modul sqlserver herum­schlagen, um dieses Protokoll zu aktivieren.

    Nach dem Abschluss der Installation kann man sich mit

    Get-CimInstance Win32_product | ? Name -Like *SQL* | select Name, Caption

    überzeugen, ob das Setup erfolgreich war.

    Nachträgliches Überprüfen der Installation von SQL Server mit PowerShell

    Benötigt man den Browser-Dienst, dann stellt man dessen Starttyp mit PowerShell auf automatisch und startet den Service:

    Set-Service -Name SQLBrowser -StartupType Automatic

    Start-Service -Name SQLBrowser

    Remote-Verwaltung für SQL-Server zulassen

    Im nächsten Schritt gibt man SQL Server für das Remote-Management mit Hilfe des mitinstallierten Kommandozeilen-Tools sqlcmd.exe frei. Hat man sich gleich am Anfang im GUI-Installer für die Standardinstallation entschieden, dann kann man nach deren Abschluss dort die Schaltfläche Verbinden klicken, um das Programm zu starten. Danach gibt man folgende Kommandos ein:

    EXEC sys.sp_configure N'remote access', N'1'
    GO
    RECONFIGURE WITH OVERRIDE
    GO

    SQL Server für den Remote-Zugriff konfigurieren mit sqlcmd.exe

    Firewall konfigurieren

    Schließlich ist es noch notwendig, die Firewall für das Remote-Management von SQL Server zu öffnen. Dies lässt sich mit PowerShell erledigen:

    New-NetFirewallRule -DisplayName "SQL Server" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action allow

    Hat man neben der SQL-Engine weitere Dienste installiert, dann kann man die Firewall dafür mit Hilfe dieses Scripts von Ryan Mangan konfigurieren.

    Firewall-Port für das Management von SQL Server öffnen

    Nun sollte die Bahn frei sein für das Remote-Management von SQL Server. Microsoft bietet für diesen Zweck mit SQL Management Studio ein mächtiges Tool an. Es liegt aktuell in der Version 18.4 vor und kann auch den SQL Server 2019 verwalten.

    Anmeldung am SQL Server über das SQL Management Studio

    Die Anmeldung erfolgt über das Konto und die Authenti­fizierungs­methode, die man zuvor beim Setup festgelegt hat.

    5 Kommentare

    Karl Wester-Ebb... sagt:
    21. Januar 2020 - 9:34

    Danke für den guten Artikel.
    Es ist jedoch möglich die GUI mit einem geheimen Schalter auf Core zu aktivieren, was insb. bei SQL 2017 ohne Express einiges vereinfacht.

    setup /UIMODE=EnableUIOnServerCore /Action=Install

    wichtig ist auch, dass Cumulative Updates / SP nicht automatisch installiert werden und manuell installiert werden sollten

    unter Core geht dies so

    Setup.exe /qs /IAcceptSQLServerLicenseTerms /Action=Patch /AllInstances

    Bild von Wolfgang Sommergut
    21. Januar 2020 - 10:50

    Danke für die Ergänzungen! Den Schalter /UIMODE=EnableUIOnServerCore habe ich im Text beschrieben. Das Problem war bloß, dass die GUI anschließend auf keine Eingaben reagiert hat.

    Karl Wester-Ebb... sagt:
    21. Januar 2020 - 14:09

    Vielen Dank! Ich kann leider nicht bestätigen, ob dies bei Express auch funktioniert. Getestet habe ich es mit SQL 2017 Vollversion.

    Karl Wester-Ebb... sagt:
    21. Januar 2020 - 14:16

    Bei der manuellen Installation ist es sehr wichtig den Parameter für die Collation der Instanz mitzugeben. Diese kann man nachträglich nicht mehr ohne sehr sehr viel Aufwand ändern. Ich würde dann auch eine Neuinstallation empfehlen.

    Da man leicht etwas beim CMD Based Install vergisst Teile ich gerne ein produktives Beispiel für eine Basisinstallation.

    hier ein Beispiel, angenommen wird
    LW B: für Backups
    LW D: für Databases
    LW L: für Logs
    die Nutzung eines zuvor definierten gMSA Accounts für den Dienst
    Nutzung der üblichen Collation in unseren Breiten
    Nutzung des Default Instanznamens
    Aktivierung von TCP/IP für Fernverwaltung und DB Zugriff
    Automatisches Starten des Dienstes

    Setup.exe /qs /ACTION=Install /FEATURES=SQLEngine,Conn /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="domain\gmsAccount$" /SQLSYSADMINACCOUNTS="domain\Administrator" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS /INSTALLSQLDATADIR="d:\program files\Microsoft SQL Server" /SQLTEMPDBDIR="d:\program files\Microsoft SQL Server" /SQLBACKUPDIR="b:\program files\Microsoft SQL Server\Backups" /SQLTEMPDBLOGDIR="L:\program files\Microsoft SQL Server\Logs" /SQLCOLLATION Latin1_General_CI_AS /SQLSVCSTARTUPTYPE=Automatic

    Thomas sagt:
    15. April 2020 - 13:25

    Hallo,

    Durch weitere Recherchen habe ich herausgefunden das man die Erweiterte Installation auch auf einem Core Server mit GUI ausführen kann.
    Damit das klappt muss man den Parameter /Action=install anhängen. Dann wird die Auswahl GUI übersprungen und man landet direkt in der Erweiterten Installation.

    also in der cmd.exe einfach
    setup /UIMODE=EnableUIOnServerCore /Action=Install
    ausführen :-)