Megosztás a következőn keresztül:


SQL Server Linux rendszeren: Ismert problémák

A következő szakaszok a Linuxon futó SQL Server ismert problémáit ismertetik.

Általános

Az alábbi táblázat a Linuxon futó SQL Serverrel kapcsolatos leggyakoribb problémákat sorolja fel.

Probléma Felbontás
Az SQL Server telepítésére szolgáló állomásnév hosszának legalább 15 karakter hosszúságúnak kell lennie. Módosítsa a /etc/hostname nevét 15 karakter hosszú vagy kisebb értékre.
Ha manuálisan állítja be a rendszeridőt visszamenőlegesen, az SQL Server leállítja a belső rendszeridő frissítését az adatbázismotoron belül. Indítsa újra az SQL Servert.
Csak egyetlen példány telepítése támogatott. Ha egy adott gazdagépen több példányt szeretne használni, fontolja meg virtuális gépek vagy Linux-tárolókhasználatát.
Az SQL Server Configuration Manager nem tud csatlakozni az SQL Serverhez Linuxon. Egyik sem.
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ót SHA256 algoritmussal írták alá. Az SQL Server adatbázismotorja nem ellenőrzi megfelelően a „.dll” aláírt elemet.
A mssql-conf jelszó-visszaállítási parancs a következő hibát dobja:

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

Csak a következőre vonatkozik: SQL Server 2022 (16.x) tárolólemezképekre.

Adatbázisok

  • A adatbázis nem helyezhető át az mssql-conf segédprogrammal. Más rendszeradatbázisok áthelyezhetők mssql-conf.

  • Amikor visszaállít egy adatbázist, amelyről a Windows operációs rendszeren futó SQL Serveren készült biztonsági másolat, a Transact-SQL utasítás WITH MOVE záradékát szükséges használni. További információ: SQL Server-adatbázis áttelepítése Windowsról Linuxra biztonsági mentéssel és visszaállítással.

  • A Transport Layer Security (TLS) egyes algoritmusai (titkosítási csomagjai) nem működnek megfelelően a Linuxon futó SQL Serverrel. Ez kapcsolódási hibákat eredményez az SQL Serverhez való kapcsolódáskor, és problémákat okoz a replikák közötti kapcsolatok magas rendelkezésre állású csoportokban való létesítésekor.

    A probléma megoldásához módosítsa a linuxos SQL Server mssql.conf konfigurációs parancsfájlját a problémás titkosítási csomagok letiltásához az alábbi lépések végrehajtásával:

    1. Adja hozzá a következő szakaszt a /var/opt/mssql/mssql.conf-hoz. A felkiáltójel (!) eltitkolja a kifejezést. Ez arra utasítja az OpenSSL-t, 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 az SQL Servert a következő paranccsal.

      sudo systemctl restart mssql-server
      
  • Az In-Memory OLTP-t használó windowsos SQL Server 2014 -adatbázisok (12.x) nem állíthatók vissza linuxos SQL Serverre. Ha az SQL Server 2014 (12.x) adatbázisa In-Memory OLTP-t használ, először frissítse az adatbázisokat a Windows SQL Server újabb verziójára. Ezután áthelyezheti linuxos SQL Serverre biztonsági mentéssel/visszaállítással vagy leválasztással/csatolással.

  • A felhasználói engedély ADMINISTER BULK OPERATIONS Linux rendszereken jelenleg nem támogatott.

  • Az SQL Server 2019 (15.x) CU 16-os és újabb verzióival készített TDE-tömörített biztonsági másolatok nem állíthatók vissza az SQL Server 2019 korábbi CU-verzióira (15.x). További információ: JAVÍTÁS: A 3241-es hiba a RESTORE LOG vagy a RESTORE DATABASEvégrehajtása során fordul elő.

    Az SQL Server 2019 (15.x) korábbi CU-verzióival készített transzparens adattitkosítási (TDE)-tömörített biztonsági másolatok továbbra is visszaállíthatók az SQL Server 2019 (15.x) CU 16-os és újabb verzióival.

  • Az SQL Server 2022 (16.x) Ubuntu 22.04-en való telepítésekor 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. A módosítás elvégzése után indítsa újra a szolgáltatást.

Hálózat

Előfordulhat, hogy a sqlservr folyamatból kimenő TCP-kapcsolatokat (például csatolt kiszolgálókat, PolyBase-et vagy rendelkezésre állási csoportokat) tartalmazó szolgáltatások nem működnek, ha mindkét feltétel teljesül:

  • 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.
    • A socket(AF_INET6, SOCK_STREAM, IPPROTO_IP)-t meghívó C programnak sikeresnek kell lennie – a syscallnak fd != -1-et kell visszaadnia, és nem szabad EAFNOSUPPORThibával sikertelennek lennie.

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. Rendelkezésre állási csoportok esetén a másodlagos ALTER AVAILABILITY GROUP JOIN DDL öt perc után download configuration timeout hibával sikertelen lesz.

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

Csak a következőre vonatkozik: SQL Server 2022 (16.x).

Bár a TLS 1.3 támogatott a Windows SQL Server 2022 (16.x) rendszeren, Linuxon a TLS 1.2-t kell használnia.

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árakat keresse meg az NFS-csatlakoztatáson. Más fájlok, például az 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.

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 tudja használni az UTF-8 kódolást, futtassa a telepítőt a MSSQL_LCID környezeti változóval a nyelvválasztás megadásához.

    sudo MSSQL_LCID=<LcidValue> /opt/mssql/bin/mssql-conf setup
    
  • A mssql-conf setupfuttatásakor és az SQL Server nem angol nyelvű telepítésekor helytelenül kiterjesztett karakterek jelenhetnek meg az "SQL Server konfigurálása..." honosított szöveg után. 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 sztring csak tájékoztatási célú kimenet, semmilyen módon nem befolyásolja az SQL Server sikeres 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ának megtekintéséhez lásd a SQL Server telepítése Full-Text Keresés Linuxonszakaszt.

SQL Server Integration Services (SSIS)

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

Az Integration Services-csomagok ODBC-kapcsolatokat használhatnak Linuxon. Ezt a funkciót az SQL Server és a MySQL ODBC-illesztőprogramok tesztelték, de várhatóan bármely Unicode ODBC-illesztőprogrammal is működni fog, amely az ODBC specifikációját figyeli. Tervezéskor megadhat egy DSN-t vagy egy kapcsolati sztringet az ODBC-adatokhoz való csatlakozáshoz; Windows-hitelesítést is használhat. További információért tekintse meg a blogbejegyzést, amely bejelenti az ODBC támogatását a Linuxon.

A következő funkciók nem támogatottak ebben a kiadásban, amikor SSIS-csomagokat futtat Linuxon:

  • Integration Services-katalógus adatbázisa
  • Ütemezett csomagvégrehajtás az SQL Server-ügynökkel
  • 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 Feature Pack az SSIS-hez
  • Hadoop és HDFS-támogatás
  • Microsoft Connector az SAP BW-hez

Azoknak a beépített SSIS-összetevőknek a listáját, amelyek jelenleg nem támogatottak, vagy amelyek korlátozásokkal támogatottak, tekintse meg Az SSIS linuxos-alapú korlátozásai és ismert problémái.

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

SQL Server Management Studio (SSMS)

A következő korlátozások az SQL Server Management Studio-ra vonatkoznak a Linuxon futó SQL Serverhez csatlakoztatott Windows rendszeren.

  • A karbantartási tervek nem támogatottak.

  • A Felügyeleti adattárház (MDW) és az SQL Server Management Studio adatgyűjtője nem támogatott.

  • A Windows-hitelesítéssel vagy Windows-eseménynapló-beállításokkal rendelkező SQL Server Management Studio 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.

  • A megőrizni kívánt naplófájlok száma nem módosítható.

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

Csak a következőre vonatkozik: SQL Server 2022 (16.x).

Ha az SQL Server 2022 (16.x) CU 16-os és korábbi verzióit futtatja, 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) nem definiált alkalmazásként kell telepítenie a SELinux bekapcsolt használatával, hogy kihasználhassa a Pacemaker fürtözési képességeit. Ez a probléma az SQL Server 2022 (16.x) CU 17-ben oldódott meg.

Gépi Tanulás Szolgáltatások

Csak a következőre vonatkozik: SQL Server 2022 (16.x).

Az RHEL 9 és Ubuntu 22.04 SQL Server 2022 (16.x) csomagjai esetében a Machine Learning Services telepítése előtt figyelembe kell venni a cgroup-v1néhány előfeltételét.

  1. Előfeltételként a cgroup-v1 engedélyezése szükséges, ahogyan azt a A cgroupok manuális kezelésének módja a cgroupfs használatával Red Hat Enterprise Linux 9 esetén Red Hat ajánlja.

  2. Ezután kövesse az utasításokat az SQL Machine Learning Services telepítéséhez a dokumentáció szerint.

  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