SQL Server on Linux: Kända problem

I följande avsnitt beskrivs kända problem med SQL Server on Linux.

Allmänt

I följande tabell visas de vanligaste problemen med SQL Server on Linux.

Problematik Upplösning
Längden på värdnamnet där SQL Server är installerad måste vara 15 tecken eller kortare. Byt namn till /etc/hostname ett värde som är 15 tecken långt eller kortare.
Att manuellt ställa in systemtiden bakåt gör att SQL Server slutar uppdatera den interna systemtiden i Database Engine. Starta om SQL Server.
Bara enskilda instansinstallationer stöds. För att ha mer än en instans på en given värd, överväg att använda virtuella maskiner eller Linux-containrar.
SQL Server Configuration Manager kan inte ansluta till SQL Server on Linux. Configuration Manager stöds inte i Linux. Använd mssql-conf för att hantera SQL Server on Linux i stället.
Standardspråket för sa-kontot är engelska. Ändra språket för sa-kontot med ALTER LOGIN-instruktionen.
OLE DB-providern loggar följande varning:

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.
Ingen åtgärd krävs. OLE DB-leverantören använder en SHA256-signatur. Databasmotor för SQL Server verifierar inte den signerade .dll korrekt.
Återställningslösenordskommandot i mssql-conf ger följande fel:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
Felmeddelandet är falskt negativt. Lösenordsåterställningen lyckas, och du kan fortsätta använda det nya lösenordet.

Gäller endast SQL Server 2022 (16.x) containerbilder.

Databaser

  • Du kan inte flytta databasen master med verktyget mssql-conf . Du kan flytta andra systemdatabaser med mssql-conf.

  • När du återställer en databas som säkerhetskopierades på SQL Server på Windows måste du använda satsen WITH MOVE i instruktionen Transact-SQL. Mer information finns i Migrera en SQL Server databas från Windows till Linux med hjälp av säkerhetskopiering och återställning.

  • Vissa algoritmer (chiffersviter) för TLS (Transport Layer Security) fungerar inte korrekt med SQL Server on Linux. Detta beteende orsakar anslutningsavbrott när du försöker ansluta till SQL Server, och problem med att etablera anslutningar mellan repliker i högtillgänglighetsgrupper.

    För att lösa detta problem, modifiera konfigurationsskriptet mssql.conf för SQL Server on Linux för att inaktivera problematiska chiffersviter:

    1. Lägg till följande avsnitt i /var/opt/mssql/mssql.conf. Utropstecknet (!) negerar uttrycket. Denna negation säger åt OpenSSL att inte använda chifferpaketet som följer.

      [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. Starta om SQL Server med följande kommando.

      sudo systemctl restart mssql-server
      
  • Du kan inte återställa SQL Server 2014 (12.x)-databaser på Windows som använder In-Memory OLTP för att SQL Server on Linux. Om din SQL Server 2014-databas (12.x) använder In-Memory OLTP uppgraderar du först databaserna till en nyare version av SQL Server på Windows. Flytta sedan den till SQL Server on Linux, med backup/återställning, eller koppla bort/ansluta.

  • Linux stöder ADMINISTER BULK OPERATIONS för närvarande inte användarbehörighet.

  • Du kan inte återställa Transparent Data Encryption (TDE)-komprimerade backuper gjorda med SQL Server 2019 (15.x) CU 16 och senare versioner till tidigare CU-versioner av SQL Server 2019 (15.x). Mer information finns i FIX: Fel 3241 inträffar när RESTORE LOG eller RESTOREDATABASE körs.

    Du kan fortfarande använda SQL Server 2019 (15.x) CU 16 och senare versioner för att återställa TDE-komprimerade säkerhetskopior gjorda med tidigare CU-versioner av SQL Server 2019 (15.x).

  • När du installerar SQL Server 2022 (16.x) på Ubuntu 22.04 kan följande felmeddelande visas: Failed to start Microsoft SQL Server Database Engine. Om du granskar felloggen ser du en felaktig sökväg för systemdatabaserna.

    Du kan undvika det här problemet genom att starta instansen i enanvändarläge och använda ALTER DATABASE ... MODIFY FILE för att flytta den konfigurerade platsen för systemdatabaserna till standardplatsen /var/opt/mssql/data. Efter att du gjort denna ändring, starta om tjänsten.

Nätverk

Funktioner som involverar utgående TCP-anslutningar från sqlservr processen, såsom länkade servrar, PolyBase eller tillgänglighetsgrupper, kanske inte fungerar om båda följande villkor gäller:

  • Målservern anges som ett värdnamn och inte en IP-adress.

  • Källinstansen har IPv6 inaktiverats i kerneln. För att kontrollera om systemet har IPv6 aktiverat i kerneln måste alla följande tester godkännas:

    • cat /proc/cmdline skriver ut start-cmdline för den aktuella kerneln. Utdata får inte innehålla ipv6.disable=1.
    • Katalogen /proc/sys/net/ipv6/ måste finnas.
    • Ett C-program som anropar socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) borde lyckas. Syscallet måste returnera an fd != -1 och får inte misslyckas med EAFNOSUPPORT.

Det exakta felet beror på funktionen. För länkade servrar visas ett inloggningsfel med tidsgräns. För tillgänglighetsgrupper ALTER AVAILABILITY GROUP JOIN fallerar DDL på sekundären efter fem minuter med ett download configuration timeout fel.

Du kan undvika det här problemet genom att göra något av följande alternativ:

  • Använd IP-adresser i stället för värdnamn för att ange målet för TCP-anslutningen.

  • Aktivera IPv6 i kerneln genom att ta bort ipv6.disable=1 från startkommandoraden. Metoden beror på Linux-distributionen och startladdaren, till exempel grub. Om du vill att IPv6 ska inaktiveras kan du fortfarande inaktivera det genom att ange net.ipv6.conf.all.disable_ipv6 = 1 i konfigurationen sysctl (till exempel /etc/sysctl.conf). Även om den här inställningen hindrar systemets nätverkskort från att hämta en IPv6-adress kan sqlservr funktioner fungera.

TLS 1.3 stöds inte på SQL Server 2022

Gäller endast SQL Server 2022 (16.x).

TLS 1.3 stöds på SQL Server 2022 (16.x) för Windows, men du måste använda TLS 1.2 på Linux.

Anmärkning

TLS 1.3 stöds för SQL Server 2025 (17.x) på Ubuntu 22.04, Ubuntu 24.04, RHEL 9 och RHEL 10. TLS 1.3 är aktiverat som standard.

NFS (Network File System)

Observera följande supportkrav om du använder NFS-fjärrresurser (Network File System) i produktion:

  • Använd NFS version 4.2 eller senare versioner. Äldre versioner av NFS stöder inte nödvändiga funktioner, till exempel fallocate och gles filskapande, som är gemensamma för moderna filsystem.

  • Endast /var/opt/mssql katalogerna stöds på NFS-monteringen. Andra filer, till exempel SQL Server systembinärfiler, stöds inte.

  • Se till att NFS-klienter använder alternativet nolock när de monterar fjärrresursen.

IPv6-anslutning med Microsoft Entra-autentisering

Om servern eller containern är aktiverad för IPv6 kontrollerar du att IPv6-adresser kan nås och dirigeras. Om IPv6 inte är helt konfigurerat kan autentiseringsbegäranden till Microsoft Entra ID misslyckas på grund av Oåtkomliga IPv6-slutpunkter.

Om du vill kontrollera IPv6 DNS-matchningsbeteendet på SQL Server 2022 CU 19 och senare versioner anger du network.ipv6dnsrecordslimit alternativet i mssql-conf. Mer information finns i network.ipv6dnsrecordslimit.

Lokalisering

  • Om ditt språk inte är engelska (en_us) under installationen måste du använda UTF-8-kodning i bash-sessionen/terminalen. Om du använder ASCII-kodning kan du se ett fel som liknar följande utdata:

    UnicodeEncodeError: 'ascii' codec kan inte koda tecken u'\xf1' i position 8: ordningstal inte inom intervallet(128)

    Om du inte kan använda UTF-8-kodning, kör setup med miljövariabeln MSSQL_LCID för att specificera ditt språkval.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • När du kör mssql-conf setup och utför en icke-engelsk installation av SQL Server kan du se felaktiga utökade tecken efter den lokaliserade texten, "Configuring SQL Server... ". Eller för icke-latinska installationer kanske meningen saknas helt. Den mening som saknas bör visa följande lokaliserade sträng:

    Licens-PID:en har bearbetats framgångsrikt. Den nya utgåvan är [<Name> utgåva].

    Denna sträng visas endast för informationsändamål och påverkar inte installationen av SQL Server.

Alla filter är inte tillgängliga med den här versionen, inklusive filter för Microsoft Office dokument. En lista över filter som stöds finns i Installera SQL Server Full-Text Search i Linux.

služba SSIS (SSIS)

Det mssql-server-is paketet stöds inte på SUSE Linux Enterprise Server (SLES). Paketet stöds på Ubuntu och Red Hat Enterprise Linux (RHEL).

Integration Services-paket kan använda ODBC-anslutningar i Linux. Denna funktionalitet fungerar med SQL Server- och MySQL ODBC-drivrutinerna, och bör även fungera med alla Unicode ODBC-drivrutiner som följer ODBC-specifikationen. Vid designtillfället, tillhandahåll antingen ett DSN eller en reťazec pripojenia för att ansluta till ODBC-datan; du kan också använda Windows authentication. Mer information finns i blogginlägget om ODBC-support på Linux.

Denna version stöder inte följande funktioner när du kör SSIS-paket på Linux:

  • Katalogdatabas för Integration Services
  • Schemalagd paketkörning av SQL Server Agent
  • Windows-autentisering
  • Komponenter från tredje part
  • Ändra datainsamling (CDC)
  • Utskalning av integrationstjänster
  • Azure funktionspaket för SSIS
  • Stöd för Hadoop och HDFS
  • Microsoft-anslutningsprogram för SAP BW

För en lista över inbyggda SSIS-komponenter med begränsat eller inget stöd, se Funktionsstöd och överväganden för služba SSIS (SSIS) på Linux.

Mer information om SSIS i Linux finns i följande artiklar:

SQL Server Management Studio (SSMS)

Följande begränsningar gäller för SQL Server Management Studio för Windows som är anslutna till SQL Server on Linux.

  • Underhållsplaner stöds inte.

  • Management Data Warehouse (MDW) och datainsamlaren i SQL Server Management Studio stöds inte.

  • SQL Server Management Studio gränssnittskomponenter som har Windows-autentisering eller Windows händelseloggalternativ fungerar inte med Linux. Du kan fortfarande använda dessa funktioner med andra alternativ, till exempel SQL Server inloggningar.

  • Du kan inte ändra antalet loggfiler som ska behållas.

Hög tillgänglighet och haveriberedskap

Gäller endast SQL Server 2022 (16.x).

När du kör SQL Server 2022 (16.x) CU 16 och tidigare versioner, på RHEL 9 som ett begränsat program med SELinux aktiverat, kanske Pacemaker-klustring inte fungerar som förväntat. Du måste installera SQL Server 2022 (16.x) som en obegränsad applikation med SELinux aktiverat för att använda Pacemakers klustringsfunktioner. Det här problemet löses i SQL Server 2022 (16.x) CU 17.

Maskininlärningstjänster

Gäller endast SQL Server 2022 (16.x).

För SQL Server 2022 (16.x)-paket för RHEL 9 och Ubuntu 22.04, tänk på dessa cgroup-v1 förutsättningar innan du installerar strojové učenie Services.

  1. Som ett förkrav, aktivera cgroup-v1 som dokumenterat i Using cgroupfs to manually manage cgroups Red Hat Enterprise Linux 9 från Red Hat.

  2. Följ sedan anvisningarna för att installera SQL strojové učenie Services som dokumenterat.

  3. Inaktivera isolering av nätverksnamnområde.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Starta om mssql-launchpadd tjänsten för att ändringarna ska börja gälla.

    sudo systemctl restart mssql-launchpadd
    

Kända problem i SQL Server 2025

Följande problem påverkar SQL Server 2025 (17.x).

SQL Server on Linux kan inte starta på datorer med hybrid-CPU-arkitektur

Issue: SQL Server instanser i Linux kan misslyckas med att starta om datorn använder en Intel 12:e generationens eller senare hybridarkitekturprocessor och värdoperativsystemet är Linux.

Du kan se ett felmeddelande som liknar följande meddelande:

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

Om du vill använda ett Linux-värdoperativsystem kan du kringgå problemet genom att inaktivera effektivitetskärnor (E-kärnor) i din BIOS. Om du använder containrar eller en hypervisor som Hyper-V på Windows (inklusive WSL), påverkar inte problemet dig.

Lokala ONNX-modeller stöds inte på Linux-operativsystem

CREATE EXTERNAL MODEL lokala ONNX-modeller som finns direkt på SQL Server är för närvarande inte tillgängliga för Linux SQL Server 2025 (17.x).