Az SQL Server Java Language Extension telepítése Linux rendszeren

A következőkre vonatkozik: SQL Server 2019 (15.x) Linux és újabb verziókon

Megtudhatja, hogyan telepítheti a Java Language Extension összetevőt az SQL Serverhez Linuxon. A Java Language Extension az SQL Server nyelvi bővítményeinek és az adatbázismotor bővítményének része.

Bár az adatbázismotort és a nyelvi bővítményeket egyszerre is telepítheti, ajánlott először telepíteni és konfigurálni az SQL Server adatbázismotort, hogy további összetevők hozzáadása előtt megoldhassa a problémákat.

Prerequisites

  • A Java kiterjesztések csomagja az SQL Server Linux forrástárakban található. Ha már konfiguráltad a forrástárakat a Database Engine telepítéséhez, futtasd a mssql-server-extensibility-java csomagtelepítési parancsokat ugyanazzal a repo regisztrációval.
  • A nyelvi bővítmények Linux-tárolókon is támogatottak. Előre összeszerelt konténerek Language Extension-okkal nem elérhetők, de SQL Server konténerekből létrehozhatsz egyet egy GitHub-on elérhető példasablon segítségével.

  • A Language Extensions és a Machine Learning Services alapértelmezés szerint telepítve vannak az SQL Server Big Data-fürtökön. Big Data fürtök használata esetén nem kell követnie a cikkben leírt lépéseket.

Csomaglista

Egy internethez csatlakoztatott eszközön a csomagokat függetlenül töltöd le és telepíted a Database Engine-től függetlenül az operációs rendszer csomagtelepítőjével. Az alábbi táblázat az összes elérhető csomagot ismerteti.

A csomag neve A következőkre vonatkozik: Description
mssql-server-extensibility Minden nyelv A Java nyelvi bővítményhez használt bővíthetőségi keretrendszer
mssql-server-extensibility-java Java A Java nyelvi bővítményhez használt bővíthetőségi keretrendszer egy támogatott Java-futtatókörnyezetet tartalmaz

Vonatkozik: SQL Server 2019 (15.x) csak Linuxon

Java nyelvi bővítmény telepítése

A Language Extensions és a Java telepítéséhez Linuxon telepítsd a mssql-server-extensibility-java csomagot. A csomag automatikusan telepíti a JRE 11-et (ha még nincs telepítve), és hozzáadja a JVM útvonalat egy környezeti változóhoz, amelynek nevén JRE_HOME.

A Java Language Extension engedélyezéséhez hozzon létre egy egyéni bináris fájlt a GitHub Java Language Extension oldalának utasításait követve.

Note

Egy internetkapcsolattal rendelkező kiszolgálón a csomagfüggőségek a fő csomagtelepítés részeként töltődnek le és települnek. Ha a kiszolgáló nem csatlakozik az internethez, további részleteket az offline beállításban talál.

Bármilyen Java runtime-t letölthetsz és telepíthetsz, beleértve a legújabb Microsoft Build – OpenJDK-t vagy egy hivatalosan licencelt Java runtime-t. Az SQL Server 2022 -től (16.x) kezdődően az SQL Server telepítője nem telepít Java-futtatókörnyezetet.

A Java Language Extension engedélyezéséhez hozzon létre egy egyéni bináris fájlt a GitHub Java Language Extension oldalának utasításait követve.

Red Hat telepítési parancs

A Java nyelvkiterjesztések telepítéséhez Red Hat-en a következő parancsot használjuk.

Tip

Ha lehetséges, futtassa yum clean all a csomagok frissítését a rendszeren a telepítés előtt.

# Install as root or sudo
sudo yum install mssql-server-extensibility-java

Ubuntu telepítési parancs

A Java nyelvkiterjesztések telepítéséhez az Ubuntu-n a következő parancsot használjuk.

Tip

Ha lehetséges, futtassa apt-get update a csomagok frissítését a rendszeren a telepítés előtt. Néhány Ubuntu Docker kép nem tartalmazza a apt-transport-https csomagot. A telepítéshez futtassa a következőt apt-get install apt-transport-https: .

# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java

SUSE telepítési parancs

A Java nyelvkiterjesztések telepítéséhez a SUSE-ra a következő parancsot használjuk.

# Install as root or sudo
sudo zypper install mssql-server-extensibility-java

Telepítés utáni konfiguráció (kötelező)

  1. Engedélyek megadása Linuxon

    Külső kódtárak használata esetén nem kell elvégeznie ezt a lépést. Külső könyvtárak a javasolt megközelítések. A fájlból külső könyvtár jar létrehozásához segítségért lásd.CREATE EXTERNAL LIBRARY

    Ha nem használ külső kódtárakat, engedélyt kell adnia az SQL Server számára, hogy végrehajtsa a Java-osztályokat a(z) jar-ban.

    Egy fájl olvasási és végrehajtási hozzáférésének jar megadásához a fájlon a következő chmod parancsot jar hajtsa végre. Mindig tegyd be az osztályfájlokat, jar amikor SQL Server-rel dolgozol. Ha segítségre van szüksége a jarlétrehozáshoz, olvassa el a Java-.jar fájl létrehozása osztályfájlokból című témakört.

    chmod ug+rx <MyJarFile.jar>
    

    Engedélyeket kell adni mssql_satellite a fájl olvasásához és végrehajtásához jar is.

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    A további konfiguráció elsősorban az mssql-conf eszközzel történik.

  2. Adja hozzá az mssql SQL Server szolgáltatás futtatásához használt felhasználói fiókot. Ez a lépés szükséges, ha korábban nem futtattad a beállítást.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Kimenő hálózati hozzáférés engedélyezése. A kimenő hálózati hozzáférés alapértelmezés szerint le van tiltva. A kimenő kérések engedélyezéséhez állítsuk be a outboundnetworkaccess Boolean tulajdonságot az mssql-conf eszközzel. További információ: Sql Server konfigurálása Linuxon mssql-conf használatával.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Indítsa újra az SQL Server Launchpad szolgáltatást és az adatbázismotor-példányt, hogy beolvassa a frissített értékeket az INI-fájlból. Egy újraindítási üzenet emlékeztet, amikor módosítasz egy bővíthetőségi beállítást.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Engedélyezze a külső szkriptek végrehajtását. Az SQL Server egy példányához bármilyen ismerős SQL Server-ügyféleszközzel csatlakozhat, például sqlcmd, SQL Server Management Studio (SSMS) vagy a Visual Studio Code MSSQL-bővítményével.

    EXECUTE sp_configure 'external scripts enabled', 1;
    
    RECONFIGURE WITH OVERRIDE;
    
  6. Indítsa újra a mssql-launchpadd szolgáltatást.

  7. Minden olyan adatbázisnál, ahol nyelvkiterjesztéseket szeretnél használni, regisztráld a külső nyelvet a CREATE EXTERNAL LANGUAGE. A következő szakaszban a lépések találhatók.

Külső nyelv regisztrálása

Minden olyan adatbázisnál, ahol nyelvkiterjesztéseket szeretnél használni, regisztráld a külső nyelvet a CREATE EXTERNAL LANGUAGE.

Az alábbi példa egy Java nevű külső nyelvet ad hozzá egy linuxos SQL Serveren futó adatbázishoz.

CREATE EXTERNAL LANGUAGE Java
FROM (
    CONTENT = N'/opt/mssql-extensibility/lib/java-lang-extension.tar.gz',
    FILE_NAME = 'javaextension.so',
    ENVIRONMENT_VARIABLES = N'{"JRE_HOME":"/opt/mssql/lib/zulu-jre-11"}'
);

A Java kiterjesztésnél a környezeti változó JRE_HOME határozza meg az utat a JVM megtalálásához és inicializálásához.

A CREATE EXTERNAL LANGUAGE DDL egy ENVIRONMENT_VARIABLES paramétert biztosít a környezeti változók beállításához ahhoz a folyamathoz, amely a kiterjesztést üzemelteti. Ezt a paramétert használd olyan környezeti változók beállítására, amelyeket a külső nyelvi kiterjesztések igényelnek.

További információért lásd CREATE EXTERNAL LANGUAGE.

A telepítés ellenőrzése

A Java funkcióintegráció nem tartalmaz könyvtárakat, de futtathatodgrep -r JRE_HOME /etc, hogy megerősítsd a JRE_HOME környezeti változó létezését.

A telepítés ellenőrzéséhez futtasson egy T-SQL-szkriptet, amely egy, a Java-t invokáló rendszer által tárolt eljárást hajt végre. Ehhez a feladathoz szüksége van egy lekérdezési eszközre. Az SQL Server egy példányához bármilyen ismerős SQL Server-ügyféleszközzel csatlakozhat, például sqlcmd, SQL Server Management Studio (SSMS) vagy a Visual Studio Code MSSQL-bővítményével.

Az SQL Server és a Java Nyelvi bővítmény teljes telepítése

A Database Engine és a Java Language Extension telepítéséhez és konfigurálásához egy eljárásban csatolj Java csomagokat és paramétereket egy parancshoz, amely telepíti a Database Engine-t.

  1. Adjon meg egy olyan parancssort, amely tartalmazza az adatbázismotort, valamint a nyelvi bővítmény funkcióit.

    A következő parancs hozzáadja a Java bővíthetőségét egy Database Engine telepítéshez.

    sudo yum install -y mssql-server mssql-server-extensibility-java
    
  2. Fogadja el a licencszerződéseket, és végezze el a telepítés utáni konfigurációt. Használd az mssql-conf eszközt.

    sudo /opt/mssql/bin/mssql-conf setup
    

    Ez a lépés arra kéri, hogy fogadja el az adatbázismotor licencszerződését, válasszon ki egy kiadást, és adja meg a rendszergazdai jelszót.

  3. Indítsd újra a szolgáltatást, ha kérik.

    sudo systemctl restart mssql-server.service
    

Felügyelet nélküli telepítés

Használja az adatbázismotor felügyelet nélküli telepítését , és adja hozzá a csomagokat a következőhöz mssql-server-extensibility-java: .

Offline telepítés

A csomagok telepítéséhez kövesse az Offline telepítési utasításokat. Keresd meg a letöltő oldalodat, majd töltsd le a későbbi szakaszban felsorolt konkrét csomagokat.

Tip

Számos csomagkezelő eszköz is olyan parancsokat kínál, amelyek segítenek a csomagfüggőségek meghatározásában. A yum esetében használja a sudo yum deplist [package]. Az Ubuntu esetében használja a sudo apt-get install --reinstall --download-only [package name] parancsot, majd kövesse a dpkg -I [package name].deb parancsot.

Webhely letöltése

Töltse le a csomagokat a .https://packages.microsoft.com/ Az oldal minden Java csomagot a Database Engine csomaggal együtt üzemeltet.

Útvonalak letöltése

Package Disztribúció Letöltési hely
mssql/extensibility-java packages Red Hat 8 https://packages.microsoft.com/rhel/8/mssql-server-2019/
mssql/extensibility-java packages SUSE v15 https://packages.microsoft.com/sles/15/mssql-server-2019/
mssql/extensibility-java packages Ubuntu 20.04 https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019/pool/main/m/

Csomaglista

Attól függően, hogy mely bővítményeket szeretné használni, töltse le az adott nyelvhez szükséges csomagokat. A pontos fájlnevek tartalmazzák a platform adatait a toldaliumban, de a következő fájlnevek segítenek eldönteni, mely fájlokat érdemes megszerezni.

  • Alapcsomagok

    • mssql-server-15.0.1000
    • mssql-server-extensibility-15.0.1000
  • Java

    • mssql-server-extensibility-java-15.0.1000

Limitations

A implicit hitelesítés Linuxon nem elérhető. A külső folyamatban futó Java kód nem tud visszacsatlakozni a szerverhez adatokhoz vagy egyéb erőforrásokhoz.

Erőforrások szabályozása

A Linux és Windows paritással rendelkeznek az erőforrás-menedzsment külső erőforrás-poolok esetében, de a sys.dm_resource_governor_external_resource_pools statisztikái jelenleg eltérőek a Linuxon.

Note

Az alábbi táblázat statisztikái a meghatározott Kontrollcsoportok (cgrupok) alrendszereiből származnak.

Oszlop neve Description Érték Linuxon
peak_memory_kb Az erőforrás maximális memóriája. Linuxon ez a statisztika az memory alrendszerből származik, ahol az érték memory.max_usage_in_bytes
write_io_count A Resource Governor statisztikák utolsó visszaállítása óta kiadott összes írási IO-k. Linux rendszeren ez a statisztika az blkio alrendszerből származik, ahol az írási sor értéke blkio.throttle.io_serviced
read_io_count A Resource Governor statisztikák utolsó visszaállítása óta kiadott összes IO-k olvasása. Linuxon ez a statisztika az blkio alrendszerből származik, ahol az olvasott sor értéke blkio.throttle.io_serviced
total_cpu_kernel_ms A CPU felhasználói kernel összesített ideje milliszekundumokban a Resource Governor statisztikák utolsó visszaállítása óta. Linux rendszeren ez a statisztika az cpuacct alrendszerből származik, ahol a felhasználói sor értéke cpuacct.stat
total_cpu_user_ms A CPU felhasználói együttes ideje milliszekundumokban a Resource Governor statisztikák utolsó visszaállítása óta. Linuxon ez a statisztika az cpuacct alrendszerből származik, ahol a rendszer sorban található érték cpuacct.stat
active_processes_count A kérés pillanatában futó külső folyamatok száma. Linuxon ez a statisztika az pids alrendszerből származik, ahol az érték pids.current