Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In den folgenden Abschnitten werden bekannte Probleme mit SQL Server on Linux beschrieben.
Allgemein
In der folgenden Tabelle sind die häufigsten Probleme mit SQL Server on Linux aufgeführt.
| Angelegenheit | Lösung |
|---|---|
| Die Länge des Hostnamens, auf dem SQL Server installiert ist, muss maximal 15 Zeichen lang sein. | Ändern Sie den Namen /etc/hostname in einen Wert von 15 Zeichen oder weniger. |
| Das manuelle Zurücksetzen der Systemzeit führt dazu, dass SQL Server die Aktualisierung der internen Systemzeit in der Database Engine einstellt. | Starten Sie SQL Server neu. |
| Nur Installationen mit einzelner Instanz werden unterstützt. | Wenn Sie mehrere Instanzen auf einem bestimmten Host verwenden möchten, ziehen Sie die Verwendung von virtuelle Computer oder Linux-Containern in Betracht. |
| SQL Server Configuration Manager kann keine Verbindung mit SQL Server on Linux herstellen. | Keine. |
Die Standardsprache des sa Kontos ist Englisch. |
Ändern Sie die Sprache für das sa-Konto per ALTER LOGIN-Anweisung. |
Der OLE DB-Anbieter protokolliert folgende Warnung: Failed to verify the Authenticode signature of 'C:\binn\msoledbsql.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this isn't an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support. |
Es ist keine Aktion erforderlich. Der OLE DB-Anbieter wird mit SHA256 signiert. Der SQL Server Database Engine überprüft die signierte .dll nicht ordnungsgemäß. |
Der Befehl zum Zurücksetzen des Kennworts mithilfe von mssql-conf gibt den folgenden Fehler aus: Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information. |
Die Fehlermeldung ist eine falsch-negative Meldung. Die Kennwortzurücksetzung war erfolgreich, und Sie können das neue Kennwort weiterhin verwenden. Gilt nur für: SQL Server 2022 (16.x)-Containerimages. |
Datenbanken
Die
master-Datenbank kann nicht mit dem Hilfsprogramm mssql-conf verschoben werden. Andere Systemdatenbanken können mit mssql-conf verschoben werden.Wenn Sie eine Datenbank wiederherstellen, die auf SQL Server auf Windows gesichert wurde, müssen Sie die
WITH MOVE-Klausel in der Transact-SQL-Anweisung verwenden. Weitere Informationen finden Sie unter Migrate a SQL Server database from Windows to Linux using backup and restore.Bestimmte Algorithmen (Verschlüsselungssammlungen) für Transport Layer Security (TLS) funktionieren nicht ordnungsgemäß mit SQL Server on Linux. Dies führt zu Verbindungsfehlern beim Versuch, eine Verbindung mit SQL Server herzustellen, und Probleme beim Herstellen von Verbindungen zwischen Replikaten in Hochverfügbarkeitsgruppen.
Um dieses Problem zu beheben, ändern Sie das Konfigurationsskript
mssql.conffür SQL Server on Linux, um problematische Verschlüsselungssammlungen zu deaktivieren, indem Sie die folgenden Schritte ausführen:Fügen Sie den folgenden Abschnitt zu
/var/opt/mssql/mssql.confhinzu. Das Ausrufezeichen (!) negiert den Ausdruck. Damit wird OpenSSL mitgeteilt, dass die Verschlüsselungssammlung im Folgenden nicht verwendet werden soll.[network] tlsciphers=AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!ECDHE-RSA-AES128-GCM-SHA256:!ECDHE-RSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES256-GCM-SHA384:!ECDHE-ECDSA-AES128-GCM-SHA256:!ECDHE-ECDSA-AES256-SHA384:!ECDHE-ECDSA-AES128-SHA256:!ECDHE-ECDSA-AES256-SHA:!ECDHE-ECDSA-AES128-SHA:!ECDHE-RSA-AES256-SHA384:!ECDHE-RSA-AES128-SHA256:!ECDHE-RSA-AES256-SHA:!ECDHE-RSA-AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-DSS-AES256-SHA256:!DHE-DSS-AES128-SHA256:!DHE-DSS-AES256-SHA:!DHE-DSS-AES128-SHA:!DHE-DSS-DES-CBC3-SHA:!NULL-SHA256:!NULL-SHAStarten Sie SQL Server mit dem folgenden Befehl neu.
sudo systemctl restart mssql-server
SQL Server 2014-Datenbanken (12.x) auf Windows, die In-Memory OLTP verwenden, können nicht auf SQL Server unter Linux wiederhergestellt werden. Wenn Ihre SQL Server 2014 -Datenbank (12.x) In-Memory OLTP verwendet, aktualisieren Sie die Datenbanken zuerst auf eine neuere Version von SQL Server auf Windows. Anschließend können Sie es in SQL Server on Linux verschieben, mit Sicherung/Wiederherstellung oder Trennen/Anfügen.
Unter Linux wird die Benutzerberechtigung
ADMINISTER BULK OPERATIONSzurzeit nicht unterstützt.TDE-komprimierte Sicherungen, die mit SQL Server 2019 (15.x) CU 16 und höheren Versionen vorgenommen werden, können nicht in früheren CU-Versionen von SQL Server 2019 (15.x) wiederhergestellt werden. Weitere Informationen finden Sie unter FIX: Error 3241 occurs during executing RESTORE LOG or RESTORE DATABASE.
Transparent Data Encryption (TDE)-komprimierte Sicherungen, die mit früheren CU-Versionen von SQL Server 2019 (15.x) erstellt werden, können weiterhin mithilfe von SQL Server 2019 (15.x) CU 16 und höher wiederhergestellt werden.
Wenn Sie SQL Server 2022 (16.x) auf Ubuntu 22.04 installieren, wird möglicherweise die folgende Fehlermeldung angezeigt:
Failed to start Microsoft SQL Server Database Engine. Wenn Sie das Fehlerprotokoll überprüfen, wird ein falscher Pfad für die Systemdatenbanken angezeigt.Um dieses Problem zu beheben, starten Sie die Instanz im Einzelbenutzermodus, und verwenden Sie
ALTER DATABASE ... MODIFY FILE, um den konfigurierten Speicherort der Systemdatenbanken an den Standardspeicherort/var/opt/mssql/datazu schieben. Nachdem Sie diese Änderung vorgenommen haben, starten Sie den Dienst neu.
Netzwerk
Features, die ausgehende TCP-Verbindungen aus dem sqlservr-Prozess nutzen, z. B. Verbindungsserver, PolyBase oder Verfügbarkeitsgruppen, funktionieren möglicherweise nicht, wenn beide der folgenden Bedingungen erfüllt sind:
Der Zielserver wurde mit einem Hostnamen anstelle einer IP-Adresse angegeben.
IPv6 ist im Kernel der Quellinstanz deaktiviert. Alle der folgenden Tests müssen bestanden werden, um zu überprüfen, ob IPv6 im Kernel Ihres Systems aktiviert ist:
-
cat /proc/cmdlinegibt die boot-Befehlszeile des aktuellen Kernels aus. Die Ausgabe darfipv6.disable=1nicht enthalten. - Das Verzeichnis
/proc/sys/net/ipv6/muss vorhanden sein. - Ein C-Programm, das
socket(AF_INET6, SOCK_STREAM, IPPROTO_IP)aufruft, sollte erfolgreich sein – der Systemaufruf mussfd != -1zurückgeben und darf nicht mitEAFNOSUPPORTfehlschlagen.
-
Der genaue Fehler hängt vom Feature ab. Für verknüpfte Server wird ein Anmelde-Timeout-Fehler angezeigt. Bei Verfügbarkeitsgruppen verursacht die ALTER AVAILABILITY GROUP JOIN-DDL auf dem sekundären Server nach fünf Minuten den Fehler download configuration timeout.
Um dieses Problem zu umgehen, nutzen Sie eine der folgenden Optionen:
Verwenden Sie IP-Adressen anstelle von Hostnamen, um das Ziel der TCP-Verbindung anzugeben.
Aktivieren Sie IPv6 im Kernel, indem Sie
ipv6.disable=1aus der Startbefehlszeile entfernen. Die Methode hierfür hängt von der Linux-Distribution und dem Bootloader (z. B. grub) ab. Wenn Sie IPv6 deaktivieren möchten, ist dies weiterhin durch Festlegen vonnet.ipv6.conf.all.disable_ipv6 = 1in dersysctl-Konfiguration möglich (Beispiel:/etc/sysctl.conf). Auch wenn diese Einstellung verhindert, dass der Netzwerkadapter des Systems eine IPv6-Adresse erhält, ermöglicht es dennoch die Funktion dersqlservr-Features.
TLS 1.3 wird für SQL Server 2022 nicht unterstützt
Gilt nur für: SQL Server 2022 (16.x).
Obwohl TLS 1.3 unter SQL Server 2022 (16.x) für Windows unterstützt wird, müssen Sie TLS 1.2 unter Linux verwenden.
Hinweis
TLS 1.3 wird für SQL Server 2025 (17.x) unter Ubuntu 22.04, Ubuntu 24.04, RHEL 9 und RHEL 10 unterstützt. TLS 1.3 ist standardmäßig aktiviert.
Network File System (NFS)
Wenn Sie NFS-Remotefreigaben (Network File System) im produktiven Einsatz verwenden, beachten Sie die folgenden Anforderungen für die Unterstützung:
Verwenden Sie NFS Version 4.2 oder höher. Ältere NFS-Versionen unterstützen nicht die erforderlichen Features, z. B.
fallocateoder die Erstellung von Sparsedateien, die in modernen Dateisystemen üblich sind.Suchen Sie nur die
/var/opt/mssqlVerzeichnisse auf dem NFS-Mount. Andere Dateien, z. B. die SQL Server Systembinärdateien, werden nicht unterstützt.Stellen Sie sicher, dass NFS-Clients beim Einbinden der Remotefreigabe die Option
nolockverwenden.
Lokalisierung
Wenn Sie während des Setups nicht das englische Gebietsschema (
en_us) verwenden, müssen Sie die UTF-8-Codierung in Ihrer Bash-Sitzung bzw. in Ihrem Bash-Terminal verwenden. Wenn Sie die ASCII-Codierung verwenden, kann ein Fehler ähnlich der folgenden Ausgabe auftreten:UnicodeEncodeError: „ascii“-Codec kann Zeichen u'\xf1' an Position 8 nicht codieren: Ordnungszahl nicht im Bereich (128)
Wenn Sie die UTF-8-Codierung nicht verwenden können, führen Sie das Setup mit der
MSSQL_LCID-Umgebungsvariablen aus, um Ihre Sprachauswahl festzulegen.sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setupWenn Sie
mssql-conf setupausführen und eine nicht-englische Installation von SQL Server durchführen, können fehlerhafte erweiterte Zeichen nach dem lokalisierten Text "Konfigurieren von SQL Server..." angezeigt werden. Bei Installationen basierend auf Sprachen mit nicht-lateinischen Zeichen kann der Text vollständig fehlen. Der fehlende Text sollte die folgende lokalisierte Zeichenfolge darstellen:Die Lizenzierungs-PID wurde erfolgreich verarbeitet. Die neue Edition lautet [<Name>-Edition].
Diese Zeichenfolge wird nur zu Informationszwecken ausgegeben, wirkt sich nicht auf die erfolgreiche Installation von SQL Server auf irgendeine Weise aus.
Volltextsuche
Nicht alle Filter sind in dieser Version verfügbar, einschließlich Filter für Microsoft Office Dokumente. Eine Liste der unterstützten Filter finden Sie unter Install SQL Server Full-Text Search on Linux.
SQL Server Integration Services (SSIS)
Das mssql-server-is-Paket wird nicht auf SUSE Linux Enterprise Server (SLES) unterstützt. Dieses Paket wird unter Ubuntu und Red Hat Enterprise Linux (RHEL) unterstützt.
Integration Services-Pakete können ODBC-Verbindungen unter Linux verwenden. Diese Funktionalität wurde mit den SQL Server- und den MySQL-ODBC-Treibern getestet, aber es wird auch erwartet, dass sie mit jedem Unicode-ODBC-Treiber funktioniert, der die ODBC-Spezifikation einhält. Zur Entwurfszeit können Sie entweder einen DSN oder eine Verbindungszeichenfolge bereitstellen, um eine Verbindung mit den ODBC-Daten herzustellen. Sie können auch die Windows-Authentifizierung verwenden. Weitere Informationen hierzu finden Sie im Blogbeitrag mit der Ankündigung zur ODBC-Unterstützung unter Linux.
Die folgenden Features werden in diesem Release nicht unterstützt, wenn Sie SSIS-Pakete unter Linux ausführen:
- Integration Services-Katalogdatenbank
- Geplante Paketausführung durch SQL Server Agent
- Windows Authentifizierung
- Drittanbieterkomponenten
- Change Data Capture (CDC; Erfassung geänderter Daten)
- Skalierung von Integrationsdiensten
- Azure Feature Pack für SSIS
- Hadoop- und HDFS-Unterstützung
- Microsoft Connector für SAP BW
Eine Liste der integrierten SSIS-Komponenten, die derzeit nicht unterstützt oder nur bedingt unterstützt werden, finden Sie unter Einschränkungen und bekannte Probleme bei SSIS unter Linux.
Weitere Informationen zu SSIS unter Linux finden Sie in den folgenden Artikeln:
- Blog post announcing SSIS support for Linux (Blogbeitrag mit Ankündigung der SSIS-Unterstützung für Linux).
- Install SQL Server Integration Services (SSIS) unter Linux
- Extrahieren, Transformieren und Laden von Daten auf Linux mit SSIS-
SQL Server Management Studio (SSMS)
Die folgenden Einschränkungen gelten für SQL Server Management Studio für Windows, die mit SQL Server on Linux verbunden sind.
Wartungspläne werden nicht unterstützt.
Management Data Warehouse (MDW) und der Data Collector in SQL Server Management Studio werden nicht unterstützt.
SQL Server Management Studio UI-Komponenten mit Windows Authentifizierung oder Windows Ereignisprotokolloptionen funktionieren nicht mit Linux. Sie können diese Features weiterhin mit anderen Optionen wie SQL Server Anmeldungen verwenden.
Die Anzahl beizubehaltender Protokolldateien kann nicht geändert werden.
Hochverfügbarkeit und Notfallwiederherstellung
Gilt nur für: SQL Server 2022 (16.x).
Wenn Sie SQL Server 2022 (16.x) CU 16 und frühere Versionen auf RHEL 9 als eingeschränkte Anwendung mit aktiviertem SELinux ausführen, funktioniert das Pacemaker-Clustering möglicherweise nicht wie erwartet. Sie müssen SQL Server 2022 (16.x) als nicht definierte Anwendung installieren, wobei SELinux aktiviert ist, um die Clusteringfunktionen von Pacemaker nutzen zu können. Dieses Problem wurde in SQL Server 2022 (16.x) CU 17 behoben.
Machine Learning-Dienste
Gilt nur für: SQL Server 2022 (16.x).
Für SQL Server 2022 (16.x)-Pakete für RHEL 9 und Ubuntu 22.04 gibt es einige Voraussetzungen, die bei cgroup-v1 berücksichtigt werden müssen, bevor Machine Learning Services installiert werden.
Als Voraussetzung muss
cgroup-v1gemäß Verwenden von cgroupfs zur manuellen Verwaltung von cgroups in Red Hat Enterprise Linux 9 von Red Hat aktiviert sein.Folgen Sie dann den Anweisungen zum Installieren von SQL Machine Learning Services wie dokumentiert.
Deaktivieren Sie die Isolation des Netzwerk-Namespace.
sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Nehmen Sie einen Neustart des
mssql-launchpadd-Diensts vor, damit diese Änderungen wirksam werden.sudo systemctl restart mssql-launchpadd
Bekannte Probleme in SQL Server 2025
Die folgenden Probleme betreffen SQL Server 2025 (17,x).
SQL Server on Linux auf Computern mit hybrider CPU-Architektur nicht gestartet werden kann
Issue: SQL Server Instanzen unter Linux können möglicherweise nicht gestartet werden, wenn der Computer eine Intel 12. Generation oder eine höhere Hybridarchitektur-CPU verwendet, und das Hostbetriebssystem ist Linux.
Möglicherweise wird eine Fehlermeldung wie die folgende angezeigt:
Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208
Wenn Sie ein Linux-Hostbetriebssystem verwenden möchten, können Sie das Problem umgehen, indem Sie Effizienzkerne (E-Cores) in Ihrem BIOS deaktivieren. Wenn Sie Container oder einen Hypervisor wie Hyper-V auf Windows (einschließlich WSL) verwenden, sind Sie davon nicht betroffen.
Lokale ONNX-Modelle werden unter Linux-Betriebssystemen nicht unterstützt
CREATE EXTERNAL MODEL lokale ONNX-Modelle, die direkt auf dem SQL Server gehostet werden, sind derzeit für Linux auf SQL Server 2025 (17.x) nicht verfügbar.