Sdílet prostřednictvím


SQL Server v Linuxu: Známé problémy

Následující části popisují známé problémy s SQL Serverem v Linuxu.

Obecné

Následující tabulka uvádí nejběžnější problémy s SQL Serverem v Linuxu.

Problém Usnesení
Délka názvu hostitele, na kterém je nainstalovaný SQL Server, musí být 15 znaků nebo méně. Změňte název v /etc/hostname na hodnotu, která má 15 znaků nebo méně.
Ruční nastavení systémového času zpět v čase způsobí, že SQL Server přestane aktualizovat interní systémový čas v databázovém stroji. Restartujte SQL Server.
Podporují se jenom instalace s jednou instancí. Pokud chcete mít na daném hostiteli více než jednu instanci, zvažte použití virtuálních počítačů nebo kontejnery Linuxu.
SQL Server Configuration Manager se nemůže připojit k SQL Serveru v Linuxu. Žádný.
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. Zprostředkovatel OLE DB je podepsaný pomocí SHA256. Databázový stroj SQL Serveru neověřuje podepsané .dll správně.
Příkaz Resetovat heslo pomocí mssql-conf vyvolá 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í. Resetování hesla proběhlo úspěšně a nové heslo můžete dál používat.

platí pouze pro: image kontejneru SQL Serveru 2022 (16.x).

Databáze

  • Databázi master nelze přesunout pomocí nástroje mssql-conf. Ostatní systémové databáze lze přesunout pomocí mssql-conf.

  • Když obnovíte databázi zálohovanou na SQL Serveru ve Windows, musíte v příkazu Transact-SQL použít klauzuli WITH MOVE. Další informace najdete v tématu Migrace databáze SQL Serveru z Windows do Linuxu pomocí zálohování a obnovení.

  • Některé algoritmy (šifrovací sady) pro tls (Transport Layer Security) nefungují správně s SQL Serverem v Linuxu. Výsledkem je selhání připojení při pokusu o připojení k SQL Serveru a problémy s navazováním připojení mezi replikami ve skupinách s vysokou dostupností.

    Pokud chcete tento problém vyřešit, upravte konfigurační skript mssql.conf pro SQL Server v Linuxu, aby se zakažly problematické šifrovací sady, a to pomocí následujících kroků:

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

      [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
      
  • Databáze SQL Serveru 2014 (12.x) ve Windows, které používají In-Memory OLTP nelze obnovit na SQL Server v Linuxu. Pokud vaše databáze SQL Serveru 2014 (12.x) používá In-Memory OLTP, nejprve upgradujte databáze na novější verzi SQL Serveru ve Windows. Pak ho můžete přesunout na SQL Server v Linuxu s využitím zálohování/obnovení nebo odpojení/připojení.

  • Uživatelské oprávnění ADMINISTER BULK OPERATIONS se v současnosti v Linuxu nepodporuje.

  • Zálohy komprimované pomocí TDE vytvořené na SQL Serveru 2019 (15.x) CU 16 a novějších verzí nelze obnovit na předchozí verze CU SQL Serveru 2019 (15.x). Další informace naleznete v tématu OPRAVA: Chyba 3241 se objeví při provádění příkazu RESTORE LOG nebo RESTORE DATABASE.

    Transparentní šifrování dat (TDE) komprimované zálohy vytvořené pomocí předchozích verzí CU SQL Serveru 2019 (15.x) je možné obnovit pomocí SQL Serveru 2019 (15.x) CU 16 a novějších verzí.

  • Když nainstalujete SQL Server 2022 (16.x) na Ubuntu 22.04, může se 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 provedení této změny restartujte službu.

Síť

Funkce, které zahrnují odchozí připojení TCP z procesu sqlservr, jako jsou propojené servery, PolyBase nebo skupiny dostupnosti, nemusí fungovat, pokud jsou splněny 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 jazyka C, který volá socket(AF_INET6, SOCK_STREAM, IPPROTO_IP), by měl být úspěšný - syscall musí vrátit fd != -1 a neselhat 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ím serveru 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 není podporován na SQL Serveru 2022

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

I když sql Server 2022 (16.x) pro Windows podporuje protokol TLS 1.3, 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 (ve verzi Preview) a RHEL 9. 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ů.

  • Vyhledejte pouze adresáře /var/opt/mssql na přípojném bodu NFS. Jiné soubory, jako jsou systémové binární soubory SQL Serveru, se nepodporují.

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

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 instalační program pomocí proměnné prostředí MSSQL_LCID a určete jazykovou volbu.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Když spustíte mssql-conf setupa provedete neanglickou instalaci systému SQL Server, můžou se za lokalizovaným textem zobrazit nesprávné rozšířené znaky "Konfigurace SQL Serveru...". 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 je výstupem pouze pro účely informací, nemá žádný vliv na úspěšnou instalaci SQL Serveru.

V této verzi nejsou k dispozici všechny filtry, včetně filtrů pro dokumenty Microsoft Office. Pro seznam podporovaných filtrů viz Install SQL Server Full-Text Search on Linux.

SSIS (SQL Server Integration Services)

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

Balíčky integračních služeb můžou používat připojení ODBC v Linuxu. Tato funkce byla testována s SQL Serverem a ovladači MySQL ODBC, ale očekává se také, že bude fungovat s libovolným ovladačem ODBC unicode, který dodržuje specifikaci ODBC. V době návrhu můžete zadat dsN nebo připojovací řetězec pro připojení k datům ODBC; Můžete také použít ověřování systému Windows. Další informace najdete v blogovém příspěvku ohledně oznámení podpory ODBC na Linuxu.

Následující funkce nejsou v této verzi podporovány při spouštění balíčků SSIS v Linuxu:

  • Databáze katalogu integračních služeb
  • Naplánované spuštění balíčku agentem SQL Serveru
  • Ověřování systému 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
  • Microsoft Connector pro SAP BW

Seznam předdefinovaných komponent SSIS, které nejsou aktuálně podporované nebo které jsou podporovány s omezeními, najdete v tématu Omezení a známé problémy se službou SSIS v 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 ve Windows připojené k SQL Serveru v Linuxu.

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

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

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

  • Počet souborů protokolu, které se mají zachovat, nelze upravit.

Vysoká dostupnost a zotavení po havárii

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

Když spustíte SQL Server 2022 (16.x) CU 16 a starší verze na RHEL 9 s povoleným SELinuxem jako omezenou aplikaci, shlukování Pacemaker nemusí fungovat podle očekávání. Sql Server 2022 (16.x) musíte nainstalovat jako nekonfinovanou aplikaci se zapnutým SELinuxem, aby bylo možné využívat možnosti clusteringu Pacemaker. Tento problém je vyřešený v SQL Serveru 2022 (16.x) CU 17.

Služby strojového učení

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

Pro balíčky SQL Serveru 2022 (16.x) pro RHEL 9 a Ubuntu 22.04 existují některé požadavky, které je potřeba vzít v úvahu s cgroup-v1, před instalací služby Machine Learning Services.

  1. Jako předpoklad musí být cgroup-v1 povoleno v souladu s Použití cgroupfs pro ruční správu cgroups v Red Hat Enterprise Linux 9 od Red Hatu.

  2. Potom podle pokynů nainstalujte služby SQL Machine Learning, jak je uvedeno v dokumentaci.

  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 Serveru 2025

Následující problémy mají vliv na SQL Server 2025 (17.x).

SQL Server v Linuxu nejde spustit na počítačích s hybridní architekturou procesoru

Problém: Instance SQL Serveru 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 je Hyper-V ve Windows (včetně WSL), nebudete ovlivněni.

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

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