Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 Linux disztribúciódnak az SQL Server támogatását kell biztosítani. A tartályokat külön lefedik egy későbbi golyóban. A támogatott disztribúciók a következők:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
Szükséged van egy lekérdezésszerkesztőre, hogy Transact-SQL (T-SQL) parancsot futtasson be a telepítés utáni konfigurációhoz és ellenőrzéshez. A Visual Studio Code MSSQL kiterjesztését javasoljuk. Ez egy ingyenes letöltés, ami Linuxon fut.
- 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-javacsomagtelepí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ő)
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
jarlétrehozásához segítségért lásd.CREATE EXTERNAL LIBRARYHa 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
jarmegadásához a fájlon a következőchmodparancsotjarhajtsa végre. Mindig tegyd be az osztályfájlokat,jaramikor SQL Server-rel dolgozol. Ha segítségre van szüksége ajarlé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_satellitea fájl olvasásához és végrehajtásáhozjaris.chown mssql_satellite:mssql_satellite <MyJarFile.jar>A további konfiguráció elsősorban az mssql-conf eszközzel történik.
Adja hozzá az
mssqlSQL 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 setupKimenő 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
outboundnetworkaccessBoolean tulajdonságot azmssql-confeszkö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 1Indí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.serviceEngedé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;Indítsa újra a
mssql-launchpaddszolgáltatást.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.
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-javaFogadja el a licencszerződéseket, és végezze el a telepítés utáni konfigurációt. Használd az
mssql-confeszközt.sudo /opt/mssql/bin/mssql-conf setupEz 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.
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.1000mssql-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 |