Dela via


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 installerat måste vara högst 15 tecken. Ändra namnet i /etc/hostname till ett värde på 15 tecken eller mindre.
Om du ställer in systemtiden bakåt i tiden manuellt slutar SQL Server uppdatera den interna systemtiden inom Database Engine. Starta om SQL Server.
Bara enskilda instansinstallationer stöds. Om du vill ha fler än en instans på en viss värd kan du överväga att använda virtuella datorer eller Linux-containrar.
SQL Server Configuration Manager kan inte ansluta till SQL Server on Linux. Ingen.
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-providern är signerad med SHA256. SQL Server Database Engine verifierar inte den signerade .dll korrekt.
Kommandot Återställ lösenord med mssql-conf genererar 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 lyckades och du kan fortsätta använda det nya lösenordet.

Gäller för: Endast SQL Server 2022 (16.x) containeravbildningar.

Databaser

  • Det går inte att flytta master-databasen med verktyget mssql-conf. Andra systemdatabaser kan flyttas 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 resulterar i anslutningsfel vid försök att ansluta till SQL Server och problem med att upprätta anslutningar mellan repliker i grupper med hög tillgänglighet.

    Lös problemet genom att ändra konfigurationsskriptet mssql.conf för SQL Server on Linux för att inaktivera problematiska chiffersviter genom att följa dessa steg:

    1. Lägg till följande avsnitt i /var/opt/mssql/mssql.conf. Utropstecknet (!) negerar uttrycket. Detta talar om för OpenSSL att inte använda chiffersviten 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
      
  • SQL Server 2014-databaser (12.x) på Windows som använder In-Memory OLTP kan inte återställas till 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. Sedan kan du flytta den till SQL Server on Linux, med säkerhetskopiering/återställning eller koppla från/koppla.

  • Användarbehörighet ADMINISTER BULK OPERATIONS stöds inte i Linux just nu.

  • TDE-komprimerade säkerhetskopior som görs med SQL Server 2019 (15.x) CU 16 och senare versioner kan inte återställas till tidigare CU-versioner av SQL Server 2019 (15.x). För mer information, se FIX: Fel 3241 inträffar när du kör RESTORE LOG eller RESTORE DATABASE.

    Transparent Data Encryption (TDE)-komprimerade säkerhetskopior som görs med tidigare CU-versioner av SQL Server 2019 (15.x) kan fortfarande återställas med hjälp av SQL Server 2019 (15.x) CU 16 och senare versioner.

  • 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. Starta om tjänsten när du har gjort den här ändringen.

Nätverk

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

  • 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) ska lyckas – systemanropet måste returnera en fd != -1 och 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 misslyckas ALTER AVAILABILITY GROUP JOIN DDL på den sekundära datorn 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

Applies to: SQL Server 2022 (endast 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.

  • Lokalisera endast /var/opt/mssql mapparna på NFS-anslutningen. 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.

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 du konfigurationen med hjälp av MSSQL_LCID miljövariabeln för att ange 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 felaktiga utökade tecken visas efter den lokaliserade texten" Konfigurera 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].

    Den här strängen används endast för informationsändamål och påverkar inte installationens framgång med SQL Server på något sätt.

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.

SQL Server Integration Services (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. Den här funktionen testades med SQL Server och MySQL ODBC-drivrutinerna, men förväntas också fungera med alla Unicode ODBC-drivrutiner som observerar ODBC-specifikationen. Vid designtillfället kan du ange antingen ett DSN eller en connection string för att ansluta till ODBC-data. Du kan också använda Windows authentication. Mer information finns i blogginlägget om ODBC-support på Linux.

Följande funktioner stöds inte i den här versionen 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 Connector för SAP BW

En lista över inbyggda SSIS-komponenter som för närvarande inte stöds eller som stöds med begränsningar finns i Begränsningar och kända problem för 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.

  • Det går inte att ändra antalet loggfiler som ska behållas.

Hög tillgänglighet och haveriberedskap

Gäller för: 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 oinskränkt applikation med SELinux aktiverat för att kunna använda Pacemaker-klusterfunktioner. Det här problemet löses i SQL Server 2022 (16.x) CU 17.

Maskininlärningstjänster

Gäller för: Endast SQL Server 2022 (16.x).

För SQL Server 2022-paket (16.x) för RHEL 9 och Ubuntu 22.04 finns det vissa förutsättningar att ta hänsyn till med cgroup-v1 innan du installerar Machine Learning Services.

  1. Som en förutsättning måste cgroup-v1 aktiveras enligt Använda cgroupfs för att manuellt hantera cgroups Red Hat Enterprise Linux 9 från Red Hat.

  2. Följ sedan anvisningarna för att installera SQL Machine Learning 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 ett hypervisor-objekt som Hyper-V på Windows (inklusive WSL) påverkas du inte.

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).