Delen via


SQL Server on Linux: Bekende problemen

In de volgende secties worden bekende problemen met SQL Server on Linux beschreven.

Algemeen

De volgende tabel bevat de meest voorkomende problemen met SQL Server on Linux.

Probleem Resolutie
De lengte van de hostnaam waarop SQL Server is geïnstalleerd, moet 15 tekens of minder zijn. Wijzig de naam in /etc/hostname naar een naam van 15 tekens of minder.
Het handmatig instellen van de systeemtijd terug in de tijd zorgt ervoor dat SQL Server stopt met het bijwerken van de interne systeemtijd binnen de Database Engine. Start SQL Server opnieuw op.
Alleen installaties van één exemplaar worden ondersteund. Als u meer dan één exemplaar op een bepaalde host wilt hebben, kunt u overwegen om virtuele machines te gebruiken of Linux-containers.
SQL Server Configuration Manager kan geen verbinding maken met SQL Server on Linux. Geen.
De standaardtaal van het sa-account is Engels. Wijzig de taal van het sa-account met de ALTER LOGIN-verklaring.
De OLE DB-provider registreert de volgende waarschuwing:

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.
Er is geen actie vereist. De OLE DB-provider is ondertekend met SHA256. De SQL Server Database Engine valideert de ondertekende .dll niet correct.
De opdracht Wachtwoord opnieuw instellen met mssql-conf genereert de volgende fout:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
De foutmelding is een vals negatief. Het opnieuw instellen van het wachtwoord is voltooid en u kunt het nieuwe wachtwoord blijven gebruiken.

Van toepassing op: Alleen SQL Server 2022 (16.x) containerafbeeldingen.

Databanken

  • De master-database kan niet worden verplaatst met het hulpprogramma mssql-conf. Andere systeemdatabases kunnen worden verplaatst met mssql-conf.

  • Wanneer u een database herstelt waarvan een back-up is gemaakt op SQL Server op Windows, moet u de component WITH MOVE gebruiken in de instructie Transact-SQL. Zie voor meer informatie Migrate a SQL Server database from Windows to Linux using backup and restore.

  • Bepaalde algoritmen (coderingssuites) voor TLS (Transport Layer Security) werken niet goed met SQL Server on Linux. Dit resulteert in verbindingsfouten bij het maken van verbinding met SQL Server en problemen met het tot stand brengen van verbindingen tussen replica's in groepen met hoge beschikbaarheid.

    Als u dit probleem wilt oplossen, wijzigt u het mssql.conf-configuratiescript voor SQL Server on Linux om problematische coderingssuites uit te schakelen door de volgende stappen uit te voeren:

    1. Voeg de volgende sectie toe aan /var/opt/mssql/mssql.conf. Het uitroepteken (!) ontkent de expressie. Dit vertelt OpenSSL dat de volgende coderingssuite niet moet worden gebruikt.

      [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-SHA
      
    2. Start SQL Server opnieuw met de volgende opdracht.

      sudo systemctl restart mssql-server
      
  • SQL Server 2014 -databases (12.x) op Windows die gebruikmaken van In-Memory OLTP, kunnen niet worden hersteld naar SQL Server on Linux. Als uw SQL Server 2014 -database (12.x) gebruikmaakt van In-Memory OLTP, moet u eerst de databases upgraden naar een nieuwere versie van SQL Server op Windows. Vervolgens kunt u deze verplaatsen naar SQL Server op Linux, met back-up maken/herstel of ontkoppelen/verbinden.

  • Gebruikersmachtiging ADMINISTER BULK OPERATIONS wordt momenteel niet ondersteund op Linux.

  • Met TDE gecomprimeerde back-ups die worden gemaakt met SQL Server 2019 (15.x) CU 16 en latere versies, kunnen niet worden hersteld naar eerdere CU-versies van SQL Server 2019 (15.x). Zie voor meer informatie FIX: Fout 3241 vindt plaats tijdens het uitvoeren van HERSTEL VAN LOGBOEK of HERSTEL VAN DATABASE.

    Transparent Data Encryption (TDE)-gecomprimeerde back-ups die zijn gemaakt met eerdere CU-versies van SQL Server 2019 (15.x) kunnen nog steeds worden hersteld met SQL Server 2019 (15.x) CU 16 en latere versies.

  • Wanneer u SQL Server 2022 (16.x) installeert op Ubuntu 22.04, ziet u mogelijk het volgende foutbericht: Failed to start Microsoft SQL Server Database Engine. Als u het foutenlogboek bekijkt, ziet u een onjuist pad voor de systeemdatabases.

    Als u dit probleem wilt omzeilen, start u het exemplaar in de modus voor één gebruiker en gebruikt u ALTER DATABASE ... MODIFY FILE om de geconfigureerde locatie van de systeemdatabases te verplaatsen naar de standaardlocatie /var/opt/mssql/data. Nadat u deze wijziging hebt aangebracht, start u de service opnieuw op.

Netwerk

Functies die betrekking hebben op uitgaande TCP-verbindingen van het sqlservr-proces, zoals gekoppelde servers, PolyBase of beschikbaarheidsgroepen, werken mogelijk niet als aan beide voorwaarden wordt voldaan:

  • De doelserver wordt opgegeven als hostnaam en niet als IP-adres.

  • Het bronexemplaar heeft IPv6 uitgeschakeld in de kernel. Als u wilt controleren of IPv6 is ingeschakeld voor uw systeem in de kernel, moeten alle volgende tests worden uitgevoerd:

    • cat /proc/cmdline drukt de opstart-cmdline van de huidige kernel af. De uitvoer mag geen ipv6.disable=1bevatten.
    • De /proc/sys/net/ipv6/ map moet bestaan.
    • Een C-programma dat socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) aanroept, moet slagen: de syscall moet een fd != -1 retourneren en niet mislukken met EAFNOSUPPORT.

De exacte fout is afhankelijk van de functie. Voor gekoppelde servers ziet u een time-outfout voor aanmelden. Voor beschikbaarheidsgroepen mislukt de ALTER AVAILABILITY GROUP JOIN DDL op de secundaire server na vijf minuten met een download configuration timeout fout.

U kunt dit probleem omzeilen door een van de volgende opties uit te voeren:

  • Gebruik IP-adressen in plaats van hostnamen om het doel van de TCP-verbinding op te geven.

  • Schakel IPv6 in de kernel in door ipv6.disable=1 te verwijderen van de opdrachtregel voor opstarten. De methode is afhankelijk van de Linux-distributie en de bootloader, zoals grub. Als u wilt dat IPv6 wordt uitgeschakeld, kunt u deze nog steeds uitschakelen door net.ipv6.conf.all.disable_ipv6 = 1 in te stellen in de sysctl-configuratie (bijvoorbeeld /etc/sysctl.conf). Hoewel deze instelling voorkomt dat de netwerkadapter van het systeem een IPv6-adres krijgt, kunnen de sqlservr functies werken.

TLS 1.3 wordt niet ondersteund op SQL Server 2022

Van toepassing op: Alleen SQL Server 2022 (16.x).

Hoewel TLS 1.3 wordt ondersteund op SQL Server 2022 (16.x) voor Windows, moet u TLS 1.2 op Linux gebruiken.

Opmerking

TLS 1.3 wordt ondersteund voor SQL Server 2025 (17.x) op Ubuntu 22.04, Ubuntu 24.04, RHEL 9 en RHEL 10. TLS 1.3 is standaard ingeschakeld.

Netwerk bestandssysteem (NFS)

Als u externe NFS-shares (Network File System) in productie gebruikt, moet u rekening houden met de volgende ondersteuningsvereisten:

  • Gebruik NFS versie 4.2 of nieuwere versies. Oudere versies van NFS bieden geen ondersteuning voor vereiste functies, zoals fallocate en het maken van dunne bestanden, die veel voorkomen in moderne bestandssystemen.

  • Zoek alleen de /var/opt/mssql directory's op de NFS-mount. Andere bestanden, zoals de SQL Server binaire bestanden van het systeem, worden niet ondersteund.

  • Zorg ervoor dat NFS-clients de optie nolock gebruiken bij het koppelen van de externe share.

Lokalisatie

  • Als uw landinstelling niet Engels (en_us) is tijdens de installatie, moet u UTF-8-codering gebruiken in uw bash-sessie/terminal. Als u ASCII-codering gebruikt, ziet u mogelijk een fout die vergelijkbaar is met de volgende uitvoer:

    UnicodeEncodeError: "ascii" codec kan karakter u'\xf1' niet coderen op positie 8: ordinaal niet in bereik(128)

    Als u UTF-8-codering niet kunt gebruiken, voert u setup uit met behulp van de omgevingsvariabele MSSQL_LCID om uw taalkeuze op te geven.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Wanneer u mssql-conf setup uitvoert en een niet-Engelse installatie van SQL Server uitvoert, kunnen onjuiste uitgebreide tekens worden weergegeven na de gelokaliseerde tekst, 'SQL Server configureren... ". Of voor niet-Latijnse installaties ontbreekt de zin mogelijk volledig. In de ontbrekende zin moet de volgende gelokaliseerde tekenreeks worden weergegeven:

    De licentie-PID is succesvol verwerkt. De nieuwe editie is [<Name> editie].

    Deze tekenreeks is alleen bedoeld voor informatiedoeleinden, heeft op geen enkele manier invloed op de geslaagde installatie van SQL Server.

Niet alle filters zijn beschikbaar in deze release, inclusief filters voor Microsoft Office documenten. Zie Install SQL Server Full-Text Search on Linux voor een lijst met ondersteunde filters.

SQL Server Integration Services (SSIS)

Het mssql-server-is-pakket wordt niet ondersteund op SUSE Linux Enterprise Server (SLES). Het pakket wordt ondersteund op Ubuntu en Red Hat Enterprise Linux (RHEL).

Integration Services-pakketten kunnen ODBC-verbindingen gebruiken in Linux. Deze functionaliteit is getest met de SQL Server en de MySQL ODBC-stuurprogramma's, maar wordt ook verwacht met een Unicode ODBC-stuurprogramma te werken dat de ODBC-specificatie bekijkt. Tijdens het ontwerpen kunt u een DSN of een connection string opgeven om verbinding te maken met de ODBC-gegevens. U kunt ook Windows authentication gebruiken. Zie het blogbericht met de aankondiging van ODBC-ondersteuning op Linuxvoor meer informatie.

De volgende functies worden niet ondersteund in deze release wanneer u SSIS-pakketten uitvoert op Linux:

  • Integration Services Catalog-database
  • Geplande pakketuitvoering door SQL Server Agent
  • Windows-authenticatie
  • Onderdelen van derden
  • Wijzigingen in gegevens vastleggen (CDC)
  • Integration Services uitschalen
  • Azure Feature Pack voor SSIS
  • Hadoop- en HDFS-ondersteuning
  • Microsoft Connector voor SAP BW

Zie Beperkingen en bekende problemen voor SSIS op Linux-voor een lijst met ingebouwde SSIS-onderdelen die momenteel niet worden ondersteund of die worden ondersteund met beperkingen.

Zie de volgende artikelen voor meer informatie over SSIS op Linux:

SQL Server Management Studio (SSMS)

De volgende beperkingen gelden voor SQL Server Management Studio op Windows verbonden met SQL Server on Linux.

  • Onderhoudsplannen worden niet ondersteund.

  • Beheer Data Warehouse (MDW) en de gegevensverzamelaar in SQL Server Management Studio worden niet ondersteund.

  • SQL Server Management Studio UI-onderdelen met Windows verificatie of Windows opties voor gebeurtenislogboeken werken niet met Linux. U kunt deze functies nog steeds gebruiken met andere opties, zoals SQL Server aanmeldingen.

  • Het aantal logboekbestanden dat moet worden bewaard, kan niet worden gewijzigd.

Hoge beschikbaarheid en herstel na noodgevallen

Van toepassing op: Alleen SQL Server 2022 (16.x).

Wanneer u SQL Server 2022 (16.x) CU 16 en eerdere versies uitvoert, werkt Pacemaker-clustering mogelijk niet zoals verwacht op RHEL 9 als een beperkte toepassing waarvoor SELinux is ingeschakeld. U moet SQL Server 2022 (16.x) installeren als een niet-gedefinieerde toepassing waarvoor SELinux is ingeschakeld, om gebruik te kunnen maken van pacemaker-clusteringmogelijkheden. Dit probleem is opgelost in SQL Server 2022 (16.x) CU 17.

Machine Learning-diensten

Van toepassing op: Alleen SQL Server 2022 (16.x).

Voor SQL Server 2022 -pakketten (16.x) voor RHEL 9 en Ubuntu 22.04 moet rekening worden gehouden met cgroup-v1 voordat u Machine Learning Services installeert.

  1. Als vereiste moet cgroup-v1 worden ingeschakeld volgens Cgroupfs gebruiken om cgroups Red Hat Enterprise Linux 9 handmatig te beheren vanuit Red Hat.

  2. Volg vervolgens de instructies voor het installeren van SQL Machine Learning Services zoals gedocumenteerd.

  3. Schakel isolatie van netwerknaamruimten uit.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Start mssql-launchpadd service opnieuw om deze wijzigingen door te voeren.

    sudo systemctl restart mssql-launchpadd
    

Bekende problemen in SQL Server 2025

De volgende problemen zijn van invloed op SQL Server 2025 (17.x).

SQL Server on Linux kan niet worden gestart op machines met hybride CPU-architectuur

Issue: SQL Server exemplaren op Linux kunnen niet worden gestart als de computer gebruikmaakt van een CPU van de Intel 12e generatie of hoger van de hybride architectuur en het hostbesturingssysteem Linux is.

Mogelijk ziet u een foutmelding die lijkt op de volgende uitvoer:

Reason: 0x00000004 Message: ASSERT: Expression=(result * DrtlGetProcessorCoreCount() == DrtlGetProcessorCount()) File=LibOS\Windows\Kernel\SQLPal\common\dk\sos\src\sosnumap.cpp Line=208

Als u een Linux-hostbesturingssysteem wilt gebruiken, kunt u het probleem omzeilen door efficiëntiekernen (E-cores) uit te schakelen in uw BIOS. Als u containers gebruikt of een hypervisor zoals Hyper-V op Windows (inclusief WSL), wordt dit niet beïnvloed.

Lokale ONNX-modellen worden niet ondersteund op Linux-besturingssystemen

CREATE EXTERNAL MODEL lokale ONNX-modellen die rechtstreeks op de SQL Server worden gehost, zijn momenteel niet beschikbaar voor Linux op SQL Server 2025 (17.x).