Tags: Datenbanken, Server Core, Remote-Verwaltung
Microsoft empfiehlt die schlanke Installationsvariante von Windows Server für die meisten Infrastrukturdienste und mittlerweile auch für Anwendungen wie Exchange 2019. Auch SQL Server lässt sich auf Server Core betreiben. Die Installation erfordert dort aber einige Schritte auf der Kommandozeile.
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 Anwendungen 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 gleichermaß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.
Unkompliziert verläuft die erste Variante, bei der nach Bestätigung der EULA und der Auswahl des Zielverzeichnisses der SQL Server mit den Standardwerten eingerichtet wird. Dieses Setup beschränkt sich auf die bloße Database-Engine.
Entscheidet man sich für die benutzerdefinierte Installation, dann lädt das Programm die Installationsdateien herunter und öffnet anschließend das eigentliche Setup von SQL Server, bei dem man mit Hilfe eines Assistenten die verschiedenen Optionen und Komponenten auswählen kann.
GUI-Assistent funktioniert nicht
Den Download der kompletten Installationsmedien wird man dann bevorzugen, wenn der Datenbank-Server keinen Zugang zum Internet hat. Man kann sie damit auf eine Workstation herunterladen und dann auf das Zielsystem übertragen.
Der Aufruf der .exe-Datei entpackt dann das Archiv in ein Unterverzeichnis, von wo man setup.exe starten kann. Mit
.\setup.exe /UIMODE=EnableUIOnServerCore
öffnet man die gleiche GUI, die man bei der benutzerdefinierten Installation erhält.
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 reagierenden Auswahldialog überspringen und direkt zum Installationsassistenten gelangen, wenn man das Setup so aufruft:
setup /UIMODE=EnableUIOnServerCore /Action=Install
Installation von der Kommandozeile
Will man sich nicht mit der Standardinstallation 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.
Hinzu kommen als Pflichtangaben 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 herumschlagen, 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.
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
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.
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.
Die Anmeldung erfolgt über das Konto und die Authentifizierungsmethode, die man zuvor beim Setup festgelegt hat.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Windows Admin Center unter Server Core installieren
- Windows Server 2016: schlanker Nano Server als Alternative zu Server Core
- SQL Server Express 2008 R2 für Remote-Zugriff konfigurieren
- Lokalen Windows Server 2022 über Azure Arc aus der Cloud verwalten
- VMware erweitert seine Plattform um AI- und Edge-Workloads, bringt Update für Data Services
Weitere Links
5 Kommentare
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
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.
Vielen Dank! Ich kann leider nicht bestätigen, ob dies bei Express auch funktioniert. Getestet habe ich es mit SQL 2017 Vollversion.
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
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 :-)