SQL Server on Linux: Známé problémy

Následující části popisují známé problémy s SQL Server on Linux.

Obecné

Následující tabulka uvádí nejběžnější problémy s SQL Server on Linux.

Problém Usnesení
Délka názvu hostitele, na kterém je SQL Server nainstalován, musí být 15 znaků nebo kratší. Změňte název na /etc/hostname hodnotu dlouhou 15 znaků nebo kratší.
Ruční nastavení systémového času zpět způsobí, že SQL Server přestane aktualizovat interní systémový čas v rámci Database Engine. Restartujte SQL Server.
Podporují se jenom instalace s jednou instancí. Chcete-li mít na jednom hostiteli více instancí, zvažte použití virtuálních strojů nebo linuxových kontejnerů.
SQL Server Configuration Manager se nemůže připojit k SQL Server on Linux. Správce konfigurace se v Linuxu nepodporuje. Místo toho použijte mssql-conf ke správě SQL Serveru v Linuxu.
Výchozí jazyk účtu sa je angličtina. Pomocí příkazu sa změňte jazyk účtu ALTER LOGIN.
Zprostředkovatel OLE DB zaznamená následující upozornění:

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.
Nevyžaduje se žádná akce. Poskytovatel OLE DB používá podpis SHA256. Databázový stroj systému SQL Server neověřuje podepsanou .dll správně.
Příkaz resetovat heslo v vyvolá mssql-conf následující chybu:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
Chybová zpráva je falešně negativní. Obnova hesla je úspěšná a můžete pokračovat v používání nového hesla.

Platí pouze na: SQL Server 2022 (16.x) obrazy kontejnerů.

Databáze

  • Pomocí utility databázi mastermssql-conf nemůžete přesunout. Jiné systémové databáze můžete přesouvat pomocí mssql-conf.

  • Při obnovení databáze zálohované na SQL Server v Windows je nutné použít klauzuli WITH MOVE v příkazu Transact-SQL. Další informace najdete v tématu Migrace databáze SQL Server z Windows do Linuxu pomocí zálohování a obnovení.

  • Některé algoritmy (šifrovací sady) pro tls (Transport Layer Security) nefungují se SQL Server on Linux správně. Toto chování způsobuje selhání spojení při pokusu o připojení k SQL Server a problémy s navazováním spojení mezi replikami ve skupinách s vysokou dostupností.

    Pro vyřešení tohoto problému upravte mssql.conf konfigurační skript pro SQL Server on Linux tak, aby deaktivoval problematické šifrovací sady:

    1. Do /var/opt/mssql/mssql.confpřidejte následující část. Vykřičník (!) neguje výraz. Tato negace říká OpenSSL, aby nepoužíval následující šifrovací sadu.

      [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. Restartujte SQL Server pomocí následujícího příkazu.

      sudo systemctl restart mssql-server
      
  • Nemůžete obnovit SQL Server databází z roku 2014 (12.x) na Windows, které používají In-Memory OLTP, aby SQL Server on Linux. Pokud vaše databáze SQL Server 2014 (12.x) používá In-Memory OLTP, nejprve upgradujte databáze na novější verzi SQL Server na Windows. Pak ho přesuňte na SQL Server on Linux, s zálohou/obnovením, nebo odpojením/připojením.

  • Linux momentálně nepodporuje ADMINISTER BULK OPERATIONS uživatelská oprávnění.

  • Nelze obnovit zálohy komprimované transparentní šifrování dat (TDE) vytvořené ve verzích SQL Server 2019 (15.x) CU 16 a novějších do předchozích verzí SQL Server 2019 (15.x). Další informace najdete v článku OPRAVA: Při provádění RESTORE LOG nebo RESTOREDATABASE dojde k chybě 3241.

    Stále můžete použít SQL Server 2019 (15.x) CU 16 a pozdější verze k obnově záloh komprimovaných TDE, které byly vytvořeny v předchozích verzích SQL Server 2019 (15.x).

  • Při instalaci SQL Server 2022 (16.x) na Ubuntu 22.04 se může zobrazit následující chybová zpráva: Failed to start Microsoft SQL Server Database Engine. Pokud zkontrolujete protokol chyb, zobrazí se pro systémové databáze nesprávná cesta.

    Chcete-li tento problém vyřešit, spusťte instanci v režimu jednoho uživatele a pomocí ALTER DATABASE ... MODIFY FILE přesuňte nakonfigurované umístění systémových databází do výchozího umístění /var/opt/mssql/data. Po této změně službu restartujte.

Síť

Funkce, které zahrnují odchozí TCP spojení z sqlservr procesu, jako jsou propojené servery, PolyBase nebo skupiny dostupnosti, nemusí fungovat, pokud platí obě následující podmínky:

  • Cílový server je určen jako název hostitele, nikoli IP adresa.

  • Zdrojová instance má v jádru zakázaný protokol IPv6. Pokud chcete ověřit, jestli je v jádru povolený protokol IPv6, musí projít všechny následující testy:

    • cat /proc/cmdline vytiskne spouštěcí příkazový řádek aktuálního jádra. Výstup nesmí obsahovat ipv6.disable=1.
    • Adresář /proc/sys/net/ipv6/ musí existovat.
    • Program C, který volá socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) , by měl uspět. Syscall musí vrátit a fd != -1 a nesmí selhat s EAFNOSUPPORT.

Přesná chyba závisí na funkci. U propojených serverů se zobrazí chyba časového limitu přihlášení. U skupin dostupnosti selže ALTER AVAILABILITY GROUP JOIN DDL na sekundární straně po pěti minutách s chybou download configuration timeout .

Pokud chcete tento problém vyřešit, proveďte jednu z následujících možností:

  • Místo názvů hostitelů použijte IP adresy k určení cíle připojení TCP.

  • Povolte v jádru protokol IPv6 odebráním ipv6.disable=1 ze spouštěcího příkazového řádku. Metoda závisí na distribuci Linuxu a bootloaderu, například grub. Pokud chcete protokol IPv6 zakázat, můžete ho přesto zakázat nastavením net.ipv6.conf.all.disable_ipv6 = 1 v konfiguraci sysctl (například /etc/sysctl.conf). I když toto nastavení brání síťovému adaptéru systému získat adresu IPv6, umožňuje fungování sqlservr funkcí.

Protokol TLS 1.3 se v SQL Server 2022 nepodporuje

Platí pouze na: SQL Server 2022 (16.x).

I když se protokol TLS 1.3 podporuje v SQL Server 2022 (16.x) pro Windows, musíte v Linuxu použít protokol TLS 1.2.

Poznámka:

Protokol TLS 1.3 je podporován pro SQL Server 2025 (17.x) na Ubuntu 22.04, Ubuntu 24.04, RHEL 9 a RHEL 10. Protokol TLS 1.3 je ve výchozím nastavení povolený.

Systém souborů NFS (Network File System)

Pokud používáte vzdálené sdílené složky systému souborů NFS (Network File System) v produkčním prostředí, mějte na paměti následující požadavky na podporu:

  • Použijte systém souborů NFS verze 4.2 nebo novější. Starší verze systému souborů NFS nepodporují požadované funkce, jako jsou fallocate a řídké vytváření souborů, které jsou běžné pro moderní systémy souborů.

  • Pouze /var/opt/mssql adresáře jsou podporovány na NFS mountu. Jiné soubory, například binární soubory systému SQL Server, se nepodporují.

  • Ujistěte se, že klienti NFS používají volbu nolock při připojování ke vzdálenému sdílení.

Připojení IPv6 s ověřováním Microsoft Entra

Pokud je pro protokol IPv6 povolený váš server nebo kontejner, ujistěte se, že adresy IPv6 jsou dostupné a směrovatelné. Pokud není protokol IPv6 plně nakonfigurovaný, můžou žádosti o ověření na Microsoft Entra ID selhat kvůli nedostupným koncovým bodům IPv6.

Pokud chcete řídit chování překladu DNS IPv6 na SQL Server 2022 CU 19 a novějších verzích, nastavte možnost network.ipv6dnsrecordslimit v mssql-conf. Další informace najdete v tématu network.ipv6dnsrecordslimit.

Lokalizace

  • Pokud vaše místní nastavení není během instalace nastavena na angličtinu (en_us), je potřeba v Bash relaci nebo terminálu použít kódování UTF-8. Pokud používáte kódování ASCII, může se zobrazit chyba podobná následujícímu výstupu:

    UnicodeEncodeError: Kodek ASCII nemůže kódovat znak u'\xf1' na pozici 8: hodnota není v rozsahu (128)

    Pokud nemůžete použít kódování UTF-8, spusťte nastavení s proměnnou MSSQL_LCID prostředí pro určení volby jazyka.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Když spustíte a provedete mssql-conf setup instalaci SQL Server v neanglickém jazyku, můžete za lokalizovaným textem "Configuring SQL Server... vidět nesprávné rozšířené znaky... ". V případě instalací, které nejsou založené na latince, může věta úplně chybět. Chybějící věta by měla zobrazit následující lokalizovaný řetězec:

    Licenční kód PID byl úspěšně zpracován. Nová edice je [<Name> edition].

    Tento řetězec se objevuje pouze pro informační účely a neovlivňuje instalaci SQL Server.

V této verzi nejsou k dispozici všechny filtry, včetně filtrů pro systém Microsoft Office dokumenty. Seznam podporovaných filtrů najdete v tématu Instalace SQL Server Full-Text hledání v Linuxu.

SSIS (Služby Integrace SQL Serveru)

Balíček mssql-server-is se na SUSE Linux Enterprise Serveru (SLES) nepodporuje. Balíček je podporován na Ubuntu a Red Hat Enterprise Linux (RHEL).

Balíčky integračních služeb můžou používat připojení ODBC v Linuxu. Tato funkcionalita funguje s ovladači SQL Server a MySQL ODBC a měla by také fungovat s jakýmkoli Unicode ODBC ovladačem, který dodržuje specifikaci ODBC. Při návrhu poskytněte buď DSN, nebo připojovací řetězec pro připojení k ODBC datům; můžete také použít Windows authentication. Další informace najdete v příspěvku na blogu , který oznamuje podporu ODBC v Linuxu.

Tato verze nepodporuje následující funkce při spuštění SSIS balíčků na Linuxu:

  • Databáze katalogu integračních služeb
  • Naplánované spuštění balíčku pomocí SQL Server Agent.
  • ověřování Windows
  • Komponenty třetích stran
  • Zachytávání změn dat (CDC)
  • Škálování integračních služeb
  • Azure Feature Pack pro SSIS
  • Podpora systému Hadoop a HDFS
  • konektor Microsoft pro SAP BW

Pro seznam vestavěných SSIS komponent s omezenou nebo žádnou podporou viz Podpora funkcí a úvahy pro Služby Integrace SQL Serveru (SSIS) na Linuxu.

Další informace o službě SSIS v Linuxu najdete v následujících článcích:

SQL Server Management Studio (SSMS)

Následující omezení platí pro SQL Server Management Studio na Windows připojené k SQL Server on Linux.

  • Plány údržby nejsou podporovány.

  • Management Data Warehouse (MDW) a kolektor dat v SQL Server Management Studio nejsou podporovány.

  • SQL Server Management Studio součásti uživatelského rozhraní, které mají možnosti ověřování Windows nebo Windows protokolu událostí nefungují s Linuxem. Tyto funkce můžete dál používat s dalšími možnostmi, jako jsou SQL Server přihlášení.

  • Nemůžete upravovat počet logovacích souborů, které se mají uchovávat.

Vysoká dostupnost a zotavení po havárii

Platí pouze na: SQL Server 2022 (16.x).

Při spuštění SQL Server 2022 (16.x) CU 16 a starších verzí na RHEL 9 s omezením aplikace a povoleným SELinuxem nemusí clustering Pacemaker fungovat podle očekávání. Pro využití shlukových funkcí Pacemakeru musíte nainstalovat SQL Server 2022 (16.x) jako samostatnou aplikaci se zapnutým SELinuxem. Tento problém je vyřešený v SQL Server 2022 (16.x) CU 17.

Služby strojového učení

Platí pouze na: SQL Server 2022 (16.x).

U balíčků SQL Server 2022 (16.x) pro RHEL 9 a Ubuntu 22.04 zvažte tyto cgroup-v1 předpoklady před instalací Machine Learning Services.

  1. Předem povolte cgroup-v1 , jak je popsáno v knize Používání cgroupfs pro ruční správu cgroups, Red Hat Enterprise Linux 9 od Red Hat.

  2. Potom podle pokynů instalujte službu SQL Machine Learning Services podle dokumentace.

  3. Zakažte izolaci síťového jmenného prostoru.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Aby se tyto změny projevily, restartujte službu mssql-launchpadd.

    sudo systemctl restart mssql-launchpadd
    

Známé problémy v SQL Server 2025

Následující problémy ovlivňují SQL Server 2025 (17.x).

SQL Server on Linux nejde spustit na počítačích s hybridní architekturou procesoru

Issue: SQL Server instance v Linuxu se nemusí spustit, pokud počítač používá procesor hybridní architektury Intel 12. generace nebo novější a hostitelský operační systém je Linux.

Může se zobrazit chybová zpráva podobná následujícímu výstupu:

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

Pokud chcete použít hostitelský operační systém Linux, můžete problém vyřešit zakázáním jader efektivity (E-jader) v systému BIOS. Pokud používáte kontejnery nebo hypervisor jako Hyper-V na Windows (včetně WSL), problém vás neovlivňuje.

Místní modely ONNX nejsou podporovány v operačních systémech Linux

CREATE EXTERNAL MODEL místní modely ONNX hostované přímo na SQL Server nejsou aktuálně dostupné pro Linux v SQL Server 2025 (17.x).