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ók

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 Jáva 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 Azure Data Studio vagy egy másik eszköz, például az SQL Server Management Studio (csak Windows esetén) használatával, amely T-SQL-t futtat.

    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 Azure Data Studio jó választás. Más gyakran használt eszközök, például az SQL Server Management Studio csak Windows rendszerűek. Ha windowsos számítógépe van ezekkel az eszközökkel, azzal csatlakozhat az adatbázismotor Linux-telepítéséhez.

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
  • Jáva

    • 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