SQL Server unter Linux und in Docker: Dieselbe Engine, andere Fallen
Seit SQL Server 2017 läuft dieselbe Datenbank-Engine auch unter Linux und im Container. T-SQL, Ausführungspläne, Backups und SSMS funktionieren wie gewohnt, die Lizenz ist dieselbe. Anders ist alles, was um die Engine herum liegt: welche Distribution unterstützt ist, welche Funktionen fehlen, wie man den Dienst verwaltet und wie Hochverfügbarkeit ohne Windows-Cluster aussieht. Im Container kommen eigene Fallen dazu.
Diese Seite ordnet das Thema und führt in die Teile der Reihe. Unsere eigenen Messungen stammen alle aus Linux-Containern mit SQL Server 2017, 2019, 2022 und 2025. Was wir über Windows sagen, stammt aus der Dokumentation von Microsoft.
In 60 Sekunden
- Gleiche Engine, gleiche Lizenz. Was Sie in T-SQL schreiben, verhält sich gleich. Microsoft lizenziert SQL Server für Windows und Linux auf dieselbe Weise.
- Andere Plattformliste je Version. SQL Server 2025 läuft auf Red Hat Enterprise Linux 9 und 10 sowie Ubuntu 22.04 und 24.04, SUSE ist nicht mehr dabei.
- Einige Funktionen fehlen. Darunter Agent-Jobschritte für Betriebssystembefehle, PowerShell und SSIS, Warnungen, FILESTREAM, Merge-Replikation und Linked Server zu anderen Datenbanken als SQL Server. Ob Ihre Instanz davon etwas nutzt, zeigt die Prüfabfrage in Teil 1.
- Andere Verwaltung.
mssql-confstatt Configuration Manager,systemdstatt Dienstverwaltung, eine Instanz je Host. Hochverfügbarkeit läuft über Pacemaker statt über den Windows-Failovercluster. - Container haben eigene Fallstricke. In unserem Lab beendete
docker stopSQL Server 2022 und 2025 nie sauber, und CPU-Grenzen blieben für SQL Server oft unsichtbar. Teil 3 zeigt die Messungen.
Was gleich bleibt
Unter Linux läuft die SQL-Server-Engine auf einer Abstraktionsschicht, die ihr die Dienste des Betriebssystems bereitstellt. Für alles, was in der Datenbank passiert, ändert sich dadurch nichts Sichtbares:
- T-SQL, Optimizer und Ausführungspläne sind dieselben. Unsere Fachartikel zu Performance, Locking und TempDB haben wir durchgehend in Linux-Containern gemessen.
- Backups sind zwischen den Plattformen austauschbar. Ein Backup von Windows lässt sich unter Linux zurückspielen; die Dateipfade müssen dabei mit
WITH MOVEauf Linux-Pfade umgelenkt werden. - Werkzeuge wie SSMS,
sqlcmdundbcpverbinden sich wie gewohnt. Einige SSMS-Funktionen fehlen gegenüber Linux-Instanzen, etwa Wartungspläne. - Editionen und Lizenz sind dieselben. Sie lizenzieren SQL Server und wählen die Plattform frei; Developer und Express bleiben kostenlos, Developer nur für Entwicklung und Test.
Was anders ist
Plattformen je Version
Microsoft unterstützt je Version bestimmte Distributionen, als Dateisystem jeweils XFS oder ext4:
| Version | Red Hat Enterprise Linux | SUSE Linux Enterprise Server | Ubuntu |
|---|---|---|---|
| SQL Server 2017 | 7.7–7.9, 8 | 12 SP3–SP5 | 18.04 |
| SQL Server 2019 | 7.7–7.9, 8 | 12 SP3–SP5, 15 | 18.04, 20.04 |
| SQL Server 2022 | 8, 9 | 15 SP1–SP4 | 20.04, 22.04 |
| SQL Server 2025 | 9, 10 | nicht unterstützt | 22.04, 24.04 |
Für produktive Last empfiehlt Microsoft Distributionen mit regelmäßigen Sicherheitsupdates und Supportvertrag, bei 2025 Red Hat Enterprise Linux und Ubuntu Pro. Endet der Support der Distribution, endet laut Microsoft auch der Support für SQL Server darauf. Container-Images laufen nur auf Hosts mit Intel- oder AMD-Prozessoren (x86-64); Emulation auf Apple Silicon und anderen ARM-Rechnern ist nicht unterstützt.
Fehlende Funktionen
Die Liste der unter Linux nicht verfügbaren Funktionen ist für 2022 und 2025 fast gleich. Die wichtigsten für den Alltag:
| Bereich | Nicht verfügbar unter Linux |
|---|---|
| SQL Server Agent | Jobschritte für Betriebssystembefehle (CmdExec), PowerShell, SSIS, Analysis Services, Reporting Services; Warnungen; Managed Backup |
| Datenbank-Engine | Merge-Replikation, FILESTREAM und FileTables, Linked Server zu anderen Quellen als SQL Server, xp_cmdshell, CLR-Assemblies mit EXTERNAL_ACCESS oder UNSAFE, Buffer Pool Extension |
| Hochverfügbarkeit | Database Mirroring (ohnehin veraltet) |
| Sicherheit | Windows-Authentifizierung für Linked Server und Endpunkte von Availability Groups, Always Encrypted mit Secure Enclaves, FIPS-Konformität |
| Dienste | Analysis Services, Reporting Services (der Berichtskatalog darf auf Linux liegen), SQL Server Browser |
Einiges davon lehnt SQL Server unter Linux schon beim Einrichten ab, etwa xp_cmdshell oder einen Linked Server über ODBC. Anderes lässt sich anlegen und scheitert erst im Betrieb: Einen Agent-Job mit einem CmdExec-Schritt oder eine Warnung nahm SQL Server in unserem Lab auf allen vier Versionen klaglos an. Teil 1 enthält eine Prüfabfrage, die solche Abhängigkeiten auf Ihrer bestehenden Instanz findet.
Verwaltung
- Eine Instanz je Host. Benannte Instanzen gibt es unter Linux nicht. Wer mehrere Instanzen auf einem Rechner braucht, nimmt Container mit je eigenem Port.
mssql-confstatt Configuration Manager. Speicher, Trace Flags, Pfade, Netzwerk und Agent stellen Sie mitmssql-confein, den Dienst steuern Sie mitsystemctl. Der SQL Server Agent ist nach der Installation ausgeschaltet.- Dateien und Rechte. Alles unter
/var/opt/mssqlgehört dem Benutzermssql. Das Errorlog liegt unter/var/opt/mssql/log/errorlog. - Updates kommen über den Paketmanager der Distribution, im Container als neues Image.
Anmeldung und Hochverfügbarkeit
- Windows-Anmeldungen funktionieren auch unter Linux, wenn der Host an das Active Directory angebunden ist und SQL Server ein Keytab mit den passenden SPNs bekommt. Das ist mehr Einrichtung als unter Windows.
- Availability Groups laufen ohne Windows-Failovercluster. Automatischer Failover braucht unter Linux Pacemaker als Cluster-Manager; ohne Cluster-Manager ist nur manueller Failover möglich. Der Listener ist eine IP-Adresse mit DNS-Eintrag, verteilte Transaktionen über MSDTC sind in Availability Groups unter Linux nicht unterstützt.
- Failover Cluster Instances gibt es ebenfalls, mit Pacemaker und gemeinsamem Speicher über iSCSI, NFS oder SMB. Was FCI und Availability Groups grundsätzlich unterscheidet, erklärt unsere Reihe FCI vs. Availability Groups.
Container sind ein eigenes Thema
SQL Server im Container ist unter Linux ein naheliegender Weg, und Microsoft unterstützt ihn auf Docker, Kubernetes und OpenShift. Die Schnellstarts zeigen, wie man den Container startet. Was danach passiert, haben wir auf allen vier Versionen gemessen:
docker stopbeendet SQL Server 2022 und 2025 nicht sauber; beim nächsten Start läuft eine Recovery.- Eine CPU-Quote (
--cpus) sieht keine Version. SQL Server plant mit allen CPUs des Hosts. - SQL Server 2017 und 2019 sehen das Speicherlimit des Containers auf Hosts mit cgroup v2 nicht, dem Standard aktueller Distributionen.
- SQL Server 2022 und 2025 starteten nur, wenn das Datenverzeichnis auf dem Host dem Benutzer mit der ID 10001 gehörte.
Die Messwerte, die Gegenmittel und eine Lagebild-Abfrage, die zeigt, was Ihre Instanz von ihren Grenzen sieht, stehen in Teil 3: Was im Container schiefgeht.
Die Reihe
Linux, Container oder Windows?
„Passt SQL Server unter Linux oder im Container zu unserer Anwendung?“
Teil 1, mit PrüfabfrageZum Artikel →03SQL Server in Docker: Was im Container schiefgeht
„docker stop, CPU-Limits, Speicher: Warum verhält sich SQL Server im Container anders?“
Teil 3, mit Lab und AbfrageZum Artikel →Weitere Teile folgen, unter anderem zur täglichen Arbeit mit SQL Server unter Linux aus Sicht von Windows-Admins.
Methode und Grenzen
Die Aussagen zu Plattformen, Funktionen, Verwaltung und Hochverfügbarkeit stammen aus Microsoft Learn (Stand der Seiten zwischen Mai und November 2026, gelesen am 11. und 12.11.2026). Die Funktionsliste haben wir für SQL Server 2022 und 2025 gelesen, nicht getrennt für 2017 und 2019. Eigene Messungen: Linux-Container mit SQL Server 2017 CU31, 2019 CU32, 2022 CU27 und 2025 CU9/CU10 auf einem Ubuntu-Host mit cgroup v2. Einen Vergleich Linux gegen Windows auf gleicher Hardware haben wir nicht gemessen; Hochverfügbarkeit mit Pacemaker und die Anbindung an ein Active Directory haben wir nicht im Lab aufgebaut.
Weiterlesen
- Microsoft Learn: „Release information for SQL Server on Linux“ (Plattformen), „Editions and supported features of SQL Server 2025 on Linux“ (Funktionsumfang), „SQL Server on Linux frequently asked questions“.
- Microsoft Learn: „Availability groups for SQL Server on Linux“ und „Failover cluster instances – SQL Server on Linux“.
- Bei PSG: FCI vs. Availability Groups, SQL Server Versionen.