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


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.

Előfeltételek

  • A Java-bővítmények csomaghelye az SQL Server Linux-forrástáraiban található. Ha már konfigurálta a forrástárakat az adatbázismotor telepítéséhez, a csomagtelepítési mssql-server-extensibility-java parancsokat ugyanazzal az adattárregisztrációval futtathatja.

Csomaglista

Az internetkapcsolattal rendelkező eszközökön a csomagok az adatbázismotortól függetlenül töltődnek le és települnek az egyes operációs rendszerek csomagtelepítőjének használatával. Az alábbi táblázat az összes elérhető csomagot ismerteti.

A csomag neve Alkalmazható Leírás
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 következőkre vonatkozik: SQL Server 2019 (15.x) csak Linux rendszeren

A Java nyelvi bővítményhez használt bővíthetőségi keretrendszer egy támogatott Java-futtatókörnyezetet tartalmaz

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

A mssql-server-extensibility-java segítségével telepítheti a Language Extensions-t és a Java-t Linuxra. A telepítéskor mssql-server-extensibility-javaa csomag automatikusan telepíti a JRE 11-et, ha még nincs telepítve. Emellett hozzáadja a JVM elérési útját egy úgynevezett JRE_HOMEkörnyezeti változóhoz.

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.

Megjegyzés

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.

Igény szerint bármilyen Java-futtatókörnyezetet letölthet és telepíthet, beleértve az OpenJDK legújabb Microsoft-buildjét vagy a hivatalosan licencelt Java-futtatókörnyezetet. 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 nyelvi bővítményeit a Következő paranccsal telepítheti a Red Hatra.

Jótanács

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 nyelvi bővítményeit az alábbi paranccsal telepítheti az Ubuntu-ra.

Jótanács

Ha lehetséges, futtassa apt-get update a csomagok frissítését a rendszeren a telepítés előtt. Emellett előfordulhat, hogy az Ubuntu néhány Docker-képe nem rendelkezik a https apt átviteli lehetőséggel. A telepítéshez használja a 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 nyelvi bővítményeit az alábbi paranccsal telepítheti a SUSE-ra.

# 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. A javasolt munkamódszer a külső kódtárak használata. Ha segítségre van szüksége egy külső tár fájlból való létrehozásához, olvassa el a jarKÜLSŐ TÁR LÉTREHOZÁSA című témakört

    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.

    Ha olvasási és végrehajtási hozzáférést szeretne biztosítani egy jar fájlhoz, futtassa a következő chmod parancsot a jar fájlon. Azt javasoljuk, hogy amikor az SQL Server-rel dolgozik, mindig helyezze el az osztályfájlokat egy jar-ben. 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>
    

    Önnek is engedélyeket kell adnia a mssql_satellite fájlra a jar olvasásához/végrehajtásához.

    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. Erre akkor van szükség, ha korábban még nem futtatta a telepítőt.

    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ítsa be a outboundnetworkaccess logikai tulajdonságot az mssql-conf eszközzel. További információ: Sql Server konfigurálása Linuxon mssql-conf.

    # 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. Az újraindítási üzenet emlékezteti önt, ha módosul egy bővíthetőséggel kapcsolatos beállítás.

    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ázishoz, amelyben nyelvi bővítményeket szeretne használni, regisztrálnia kell a külső nyelvet a CREATE EXTERNAL LANGUAGE használatával. Tekintse meg a következő szakasz lépéseit.

Külső nyelv regisztrálása

Minden olyan adatbázishoz, amelyben nyelvi bővítményeket szeretne használni, regisztrálnia kell a külső nyelvet a CREATE EXTERNAL LANGUAGE használatával.

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-bővítmény esetében a környezeti változó JRE_HOME határozza meg a JVM megkeresésének és inicializálásának elérési útját.

A CREATE EXTERNAL LANGUAGE DDL egy paramétert (ENVIRONMENT_VARIABLES) biztosít, amely kifejezetten a bővítményt futtató folyamathoz állítja be a környezeti változókat. Ez a folyamat a külső nyelvi bővítmények által igényelt környezeti változók beállításának ajánlott és leghatékonyabb módja.

További információ: CREATE EXTERNAL LANGUAGE.

Telepítés ellenőrzése

A Java-funkciók integrációja nem tartalmaz kódtárakat, de futtatható grep -r JRE_HOME /etc a JAVA_HOME környezeti változó létrehozásának megerősítéséhez.

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

Az adatbázismotort és a Java nyelvi bővítményt egyetlen eljárásban telepítheti és konfigurálhatja, ha Java-csomagokat és paramétereket fűz hozzá az adatbázismotort telepítő parancshoz.

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

    Az adatbázismotor telepítéséhez közvetlenül hozzáadhatja a Java bővíthetőséget.

    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. Ehhez a feladathoz használja 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ítsa újra a szolgáltatást, ha a rendszer erre kéri.

    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

Kövesse az Offline telepítési útmutatást a csomagok telepítésének lépéseihez. Keresse meg a letöltési webhelyet, majd töltse le az adott csomagokat a szakasz későbbi részében található csomaglistával.

Jótanács

Számos csomagkezelési eszköz olyan parancsokat biztosít, amelyek segítenek meghatározni a csomagfüggőségeket. Yum esetén használja a sudo yum deplist [package]. Ubuntu esetén használja a sudo apt-get install --reinstall --download-only [package name], majd a dpkg -I [package name].deb.

Webhely letöltése

A csomagokat https://packages.microsoft.com/innen töltheti le. A Java összes csomagja együtt van helyezve az adatbázismotor-csomaggal.

Útvonalak letöltése

Csomag 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 platformadatokat az utótagban, de a következő fájlnevek segítenek meghatározni, hogy mely fájlokat kell beszerezni.

  • Alapcsomagok

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

    • mssql-server-extensibility-java-15.0.1000

Korlátozások

A vélelmezett hitelesítés jelenleg nem érhető el Linuxon, ami azt jelenti, hogy nem tud visszacsatlakozni a kiszolgálóhoz a folyamatban lévő Java-ból az adatok vagy más erőforrások eléréséhez.

Erőforrás-szabályozás

A külső erőforráskészletek esetében a Linux és a Windows között paritásos az erőforrás-szabályozás , de a sys.dm_resource_governor_external_resource_pools statisztikái jelenleg eltérő egységeket tartalmaznak Linuxon.

Megjegyzés

Az alábbi táblázatban szereplő statisztikák a megadott vezérlőcsoportok (cgroupok) alrendszereiből származnak.

Oszlop név Leírás Érték Linuxon
peak_memory_kb Az erőforráskészlethez használt memória maximális mennyisége. 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áinak visszaállítása óta végrehajtott összes írási művelet. 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áinak visszaállítása óta kiadott teljes olvasási I/O-k. Linux rendszeren ez a statisztika az blkio alrendszerből származik, ahol az olvasási sor értéke blkio.throttle.io_serviced
total_cpu_kernel_ms A cpu-felhasználói kernel összesített ideje ezredmásodpercben a Resource Governor statisztikáinak alaphelyzetbe á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 Az erőforrás-kormányzó statisztikáinak alaphelyzetbe állítása óta eltelt összesített cpu-felhasználói idő ezredmásodpercben. Linux rendszeren ez a statisztika az cpuacct alrendszerből származik, ahol a rendszersor értéke 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