SQL Server on Linux: Ismert problémák

A következő szakaszok a SQL Server on Linux ismert problémáit ismertetik.

Általános

Az alábbi táblázat a SQL Server on Linux leggyakoribb problémáit sorolja fel.

Probléma Felbontás
Az SQL Server telepített hosztnév hosszának legalább 15 karakternek kell lennie. Változtasd meg a nevet /etc/hostname 15 karakter hosszú vagy rövidebb értékre.
Ha manuálisan visszaállítjuk a rendszeridőt, az SQL Server nem frissíti a belső rendszeridőt a Database Engine-ben. Indítsa újra SQL Server.
Csak egyetlen példány telepítése támogatott. Ha egy adott hoston több példány van, fontold meg virtuális gépek vagy Linux konténerek használatát.
SQL Server Konfigurációkezelő nem tud csatlakozni SQL Server on Linux. Konfigurációkezelő Linuxon nem támogatott. Ehelyett SQL Server on Linux kezelésére használhatómssql-conf.
A sa fiók alapértelmezett nyelve az angol. Módosítsa a sa fiók nyelvét a ALTER LOGIN utasítással.
Az OLE DB-szolgáltató a következő figyelmeztetést naplózza:

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.
Nincs szükség műveletre. Az OLE DB szolgáltató SHA256 aláírást használ. A SQL Server adatbázismotor nem ellenőrzi helyesen az aláírt .dll.
A jelszó visszaállítása parancs a következő mssql-conf hibát adja ki:

Unable to set the system administrator password. Please consult the ERRORLOG in /path for more information.
A hibaüzenet hamis negatív. A jelszó visszaállítása sikeres, és folytathatja az új jelszó használatát.

Csak az SQL Server 2022 (16.x) konténer képeire vonatkozik.

Adatbázisok

  • Nem lehet áthelyezni az master adatbázist a mssql-conf segédprogramdal. Más rendszeradatbázisokat is áthelyezhetsz .mssql-conf

  • Amikor Windows SQL Server biztonsági másolattal rendelkező adatbázist állít vissza, a Transact-SQL utasításban a WITH MOVE záradékot kell használnia. További információért tekintse meg a SQL Server-adatbázis migrációját Windowsról Linuxra biztonsági mentés és visszaállítás használatával.

  • A Transport Layer Security (TLS) egyes algoritmusai (titkosítási csomagjai) nem működnek megfelelően a SQL Server on Linux. Ez a viselkedés kapcsolathibákat okoz, amikor SQL Server-hez próbálsz csatlakozni, és problémákat okoz a replikák közötti kapcsolatok kialakításában magas rendelkezésre állási csoportokban.

    Ennek a problémának a megoldásához módosítsuk az mssql.conf SQL Server on Linux konfigurációs szkriptjét, hogy letiltsák a problémás titkosító csomagokat:

    1. Adja hozzá a következő szakaszt a /var/opt/mssql/mssql.conf-hoz. A felkiáltójel (!) eltitkolja a kifejezést. Ez a tagadás azt mondja az OpenSSL-nek, hogy ne használja a következő titkosítási csomagot.

      [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. Indítsa újra SQL Server a következő paranccsal.

      sudo systemctl restart mssql-server
      
  • Nem tudod visszaállítani SQL Server 2014-es (12.x) adatbázisokat Windows-n, amelyek In-Memory OLTP-t használnak SQL Server on Linux-re. Ha a SQL Server 2014-es (12.x) adatbázis In-Memory OLTP-t használ, először frissítse az adatbázisokat a Windows SQL Server újabb verziójára. Ezután helyezd át SQL Server on Linux-ra, mentés/visszaállítás, vagy leve/csatolva.

  • A Linux jelenleg nem támogatja a ADMINISTER BULK OPERATIONS felhasználói engedélyt.

  • Nem lehet visszaállítani a transzparens adattitkosítás (TDE) tömörített mentéseket, amelyeket az SQL Server 2019 (15.x) CU 16 és újabb verziókkal készítettek az SQL Server 2019 (15.x) korábbi CU verzióihoz. További információért lásd: JAVÍTÁS: A 3241-es hiba a RESTORE LOG vagy RESTOREDATABASE végrehajtásakor fordul elő.

    Továbbra is használhatod az SQL Server 2019 (15.x) CU 16 és újabb verziókat a TDE-tömörített mentések visszaállítására, amelyeket korábbi CU verziókkal készítettek az SQL Server 2019 (15.x).

  • Amikor az Ubuntu 22.04-en telepíti SQL Server 2022 (16.x) verziót, a következő hibaüzenet jelenhet meg: Failed to start Microsoft SQL Server Database Engine. Ha áttekinti a hibanaplót, helytelen elérési utat lát a rendszeradatbázisokhoz.

    A probléma megoldásához indítsa el a példányt egyfelhasználós módban, és a ALTER DATABASE ... MODIFY FILE használatával helyezze át a rendszeradatbázisok konfigurált helyét az alapértelmezett helyre /var/opt/mssql/data. Miután ezt a változást végrehajtottad, indítsd újra a szolgáltatást.

Hálózat

Olyan funkciók, amelyek a folyamatból kimenő TCP kapcsolatokat sqlservr foglalnak magukban, mint például a kapcsolt szerverek, PolyBase vagy elérhetőségi csoportok, nem feltétlenül működnek, ha mindkét következő feltétel érvényes:

  • A célkiszolgáló állomásnévként van megadva, nem IP-címként.

  • A forráspéldányban le van tiltva az IPv6 a kernelben. Annak ellenőrzéséhez, hogy a rendszer engedélyezve van-e az IPv6-ban a kernelben, az alábbi teszteknek kell megfelelniük:

    • cat /proc/cmdline kinyomtatja az aktuális kernel rendszerindító parancsmagját. A kimenet nem tartalmazhat ipv6.disable=1.
    • A /proc/sys/net/ipv6/ könyvtárnak léteznie kell.
    • Egy C program, amely hív socket(AF_INET6, SOCK_STREAM, IPPROTO_IP) , sikeresnek kell lennie. A syscallnak vissza kell adnia an fd != -1 -t, és nem szabad hibát okoznia .EAFNOSUPPORT

A pontos hiba a funkciótól függ. Csatolt kiszolgálók esetén bejelentkezési időtúllépési hiba jelenik meg. Elérhető csoportoknál a ALTER AVAILABILITY GROUP JOIN másodlagos DDL öt perc download configuration timeout után hibával hibázik.

A probléma megoldásához tegye az alábbi lehetőségek egyikét:

  • A TCP-kapcsolat célhelyének megadásához használjon IP-címeket a gazdagépnevek helyett.

  • Engedélyezze az IPv6-ot a kernelben a ipv6.disable=1 a rendszerindítási parancssorból való eltávolításával. A módszer a Linux-disztribúciótól és a rendszerindítótól függ, például grub. Ha azt szeretné, hogy az IPv6 le legyen tiltva, akkor is letilthatja a net.ipv6.conf.all.disable_ipv6 = 1 beállításával a sysctl konfigurációban (például /etc/sysctl.conf). Bár ez a beállítás megakadályozza, hogy a rendszer hálózati adaptere IPv6-címet kapjon, lehetővé teszi a sqlservr funkciók működését.

A TLS 1.3 nem támogatott az SQL Server 2022-ben.

Csak az SQL Server 2022 (16.x) verzióra vonatkozik.

Bár a TLS 1.3 támogatott a 2022-SQL Server (16.x) Windows esetén, linuxos TLS 1.2-t kell használnia.

Megjegyzés:

A TLS 1.3 az Ubuntu 22.04, Ubuntu 24.04, RHEL 9 és RHEL 10 SQL Server 2025 (17.x) esetén támogatott. A TLS 1.3 alapértelmezés szerint engedélyezve van.

Hálózati fájlrendszer (NFS)

Ha éles környezetben hálózati fájlrendszer (NFS) távoli megosztásokat használ, vegye figyelembe a következő támogatási követelményeket:

  • Használja az NFS 4.2-es vagy újabb verzióit. Az NFS régebbi verziói nem támogatják a szükséges funkciókat, például a fallocate és a ritkán használt fájllétrehozást, amelyek a modern fájlrendszerekben gyakoriak.

  • Csak a /var/opt/mssql könyvtárak támogatják az NFS konzolon. Más fájlok, például a SQL Server rendszer bináris fájljai nem támogatottak.

  • Győződjön meg arról, hogy az NFS-ügyfelek a nolock lehetőséget használják a távoli megosztás csatlakoztatásakor.

IPv6-kapcsolat Microsoft Entra hitelesítéssel

Ha a kiszolgáló vagy a tároló engedélyezve van az IPv6-hoz, győződjön meg arról, hogy az IPv6-címek elérhetők és kezelhetők. Ha az IPv6 nincs teljesen konfigurálva, előfordulhat, hogy a Microsoft Entra ID hitelesítési kérései nem érhetők el IPv6-végpontok miatt.

Az SQL Server 2022 CU 19 és újabb verzióiban az IPv6 DNS-feloldás viselkedésének szabályozásához állítsa be a network.ipv6dnsrecordslimit beállítást a mssql-conf fájlban. További információ: network.ipv6dnsrecordslimit.

Lokalizáció

  • Ha a helyi beállítás nem angol (en_us) a telepítés közben, UTF-8 kódolást kell használnia a bash-munkamenetben/terminálban. HA ASCII-kódolást használ, az alábbi kimenethez hasonló hibaüzenet jelenhet meg:

    UnicodeEncodeError: az 'ascii' kodek nem tudja kódolni az u'\xf1' karaktert a 8. pozícióban: az oktális érték nem esik a 128-as tartományba.

    Ha nem tudsz UTF-8 kódolást használni, futtasd a setup beállítást a MSSQL_LCID környezeti változóval, hogy megadd a nyelvválasztásodat.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • Amikor nem angol nyelvű SQL Server telepítését futtatod mssql-conf setup és telepíted, előfordulhat, hogy helytelen kiterjesztett karaktereket látsz a lokalizált szöveg után: "Configuring SQL Server... ". Vagy a nem latin alapú telepítések esetében előfordulhat, hogy a mondat teljesen hiányzik. A hiányzó mondatnak a következő honosított sztringet kell megjelenítenie:

    A licencelési PID feldolgozása sikeresen megtörtént. Az új kiadás [<Név> kiadás].

    Ez a string csak információs célokra jelenik meg, és nem érinti az SQL Server telepítését.

Ebben a kiadásban nem minden szűrő érhető el, beleértve a Microsoft Office dokumentumok szűrőit is. A támogatott szűrők listáját a Install SQL Server Full-Text Keresés Linuxon című témakörben találja.

SQL Server Integration Services (SSIS)

A mssql-server-is csomag nem támogatott a SUSE Linux Enterprise Serveren (SLES). A csomagot támogatják az Ubuntu és a Red Hat Enterprise Linux (RHEL) rendszereken.

Az Integration Services-csomagok ODBC-kapcsolatokat használhatnak Linuxon. Ez a funkció az SQL Server és MySQL ODBC illesztőprogramokkal működik, és bármely Unicode ODBC illesztőprogramdal is működnie kell, amely megfelel az ODBC specifikációnak. Tervezéskor biztosíts DSN-t vagy egy kapcsolati karakterlánc-t az ODBC adatokhoz való csatlakozáshoz; Windows authentication is használható. További információért tekintse meg a blogbejegyzést, amely bejelenti az ODBC támogatását a Linuxon.

Ez a kiadás nem támogatja az alábbi funkciókat, amikor SSIS csomagokat futtatsz Linuxon:

  • Integration Services-katalógus adatbázisa
  • SQL Server Agent által ütemezett csomagvégrehajtás
  • Windows hitelesítés
  • Külső összetevők
  • Adatrögzítés módosítása (CDC)
  • Integrációs szolgáltatások vertikális felskálázása
  • Azure SSIS-funkciócsomag
  • Hadoop és HDFS-támogatás
  • Microsoft Összekötő az SAP BW-hez

A beépített SSIS komponensek listájáért, amelyek korlátozott vagy egyáltalán nem támogatnak, lásd: Funkciótámogatás és szempontok az SQL Server Integration Services (SSIS) számára Linuxon.

A Linuxon futó SSIS-ről az alábbi cikkekben talál további információt:

SQL Server Management Studio (SSMS)

A Windows SQL Server Management Studio, amely egy SQL Serverhez kapcsolódik Linux rendszeren, az alábbi korlátozások vonatkoznak.

  • A karbantartási tervek nem támogatottak.

  • A felügyeleti Data Warehouse (MDW) és a SQL Server Management Studio adatgyűjtője nem támogatott.

  • SQL Server Management Studio Windows hitelesítéssel vagy Windows eseménynapló-beállításokkal rendelkező felhasználói felületi összetevők nem működnek Linuxon. Ezeket a funkciókat továbbra is használhatja más lehetőségekkel, például SQL Server bejelentkezésekkel.

  • Nem lehet módosítani a naplófájlok számát, hogy megtartsd őket.

Magas rendelkezésre állás és vészhelyreállítás

Csak az SQL Server 2022 (16.x) verzióra vonatkozik.

A 2022-SQL Server (16.x) CU 16-os és korábbi verzióinak futtatásakor az RHEL 9-en korlátozott, SELinux-kompatibilis alkalmazásként előfordulhat, hogy a Pacemaker-fürtözés nem a várt módon működik. Az SQL Server 2022-t (16.x) telepítened kell egy korlátlan alkalmazásként, bekapcsolva a SELinux-szal, hogy a Pacemaker klaszterezési funkciókat használhasd. Ezt a problémát a 2022.SQL Server (16.x) CU 17-ben oldjuk meg.

Machine Learning-szolgáltatások

Csak az SQL Server 2022 (16.x) verzióra vonatkozik.

Az SQL Server 2022 (16.x) csomagok esetén RHEL 9 és Ubuntu 22.04 esetén fontold meg ezeket cgroup-v1 az előfeltételeket, mielőtt telepítenéd a Machine Learning Services-t.

  1. Előfeltételként engedélyezd cgroup-v1 a cgroupfs használata, hogy Red Hat Enterprise Linux 9 cgroups kézi kezelése a Red Hat-ből a cgroupfs használata.

  2. Ezután kövesse az utasításokat az SQL Machine Learning Services install dokumentált módon történő telepítéséhez.

  3. Tiltsa le a hálózati névtér elkülönítését.

    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Indítsa újra mssql-launchpadd szolgáltatást a módosítások érvénybe lépéséhez.

    sudo systemctl restart mssql-launchpadd
    

Ismert problémák a 2025-ös SQL Server

Az alábbi problémák a 2025-ös (17.x) SQL Server érintik.

SQL Server on Linux nem indul el a hibrid CPU-architektúrával rendelkező gépeken

Issue: SQL Server Linux-példányok nem indulhatnak el, ha a gép Intel 12. generációs vagy újabb hibrid architektúrájú processzort használ, és a gazda operációs rendszer Linux.

A következő kimenethez hasonló hibaüzenet jelenhet meg:

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

Ha Linux operációs rendszert szeretne használni gazdaként, a probléma megkerüléséhez tiltsa le az E-magokat (efficiency cores) a BIOS-ban. Ha konténereket vagy hipervizort használsz, mint Hyper-V Windows-en (beleértve a WSL-t is), a probléma nem érint téged.

Linux operációs rendszereken nem támogatott helyi ONNX-modellek

A külső modell létrehozása közvetlenül a SQL Server üzemeltetett helyi ONNX-modellek jelenleg nem érhetők el Linuxon a 2025-ös SQL Server (17.x) rendszeren.