Megosztás:


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

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

Megtudhatja, hogyan telepítheti a Java Language Extension összetevőt az SQL Serverhez Windows rendszeren. A Java Language Extension az SQL Server nyelvi bővítményeinek része.

Megjegyzés:

Ez a cikk az SQL ServerHez készült Java Language Extension windowsos telepítéséről szól. Linux esetén lásd: AZ SQL Server Java Language Extension telepítése Linuxon. A Windowson futó C# nyelvi bővítményről az SQL Server .NET Nyelvi bővítmény telepítése Windows rendszeren című témakörben olvashat.

Előfeltételek

Megjegyzés:

A funkciók képességei és a telepítési lehetőségek az SQL Server különböző verzióiban eltérőek. Az SQL Server megfelelő verziójának kiválasztásához használja a verzióválasztó legördülő listát.

  • Ha telepíteni szeretné a Java Language Extension támogatását, az SQL Server telepítése kötelező.

  • 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 (16.x) és újabb verzióiban a Java-futtatókörnyezetet az SQL Server telepítője nem telepíti.

  • Adatbázismotor-példányra van szükség. Nem telepítheti csak a Java Language Extension funkcióit, bár növekményesen hozzáadhatja őket egy meglévő példányhoz.

  • Az üzletmenet folytonossága érdekében az Always On rendelkezésre állási csoportok támogatottak a nyelvi bővítmények esetében. Minden csomóponton telepítenie kell a nyelvi bővítményeket, és konfigurálnia kell a csomagokat. A Java Language Extension telepítése az SQL Server feladatátvevő fürtpéldányán is támogatott.

  • Ne telepítse az SQL Server nyelvi bővítményeit vagy a Java Nyelvi bővítményt tartományvezérlőre. A Nyelvi bővítmények beállítási része sikertelen.

  • A Language Extensions és a Machine Learning Services alapértelmezés szerint telepítve van 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. További információ: Python- és R-szkriptek futtatása Machine Learning Services használatával SQL Server 2019 Big Data-fürtökön.

Fontos

A telepítés befejezése után mindenképpen végezze el a cikkben ismertetett konfiguráció utáni lépéseket. Ezek a lépések közé tartozik, hogy az SQL Server külső kódot használjon, és hozzáadja az SQL Serverhez szükséges fiókokat a Java-kód ön nevében való futtatásához. A konfigurációs módosítások általában a példány újraindítását vagy a Launchpad szolgáltatás újraindítását igénylik.

Java JRE vagy JDK

Megjegyzés:

A funkciók képességei és a telepítési lehetőségek az SQL Server különböző verzióiban eltérőek. Az SQL Server megfelelő verziójának kiválasztásához használja a verzióválasztó legördülő listát.

Az SQL Server 2022 -vel (16.x) 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.

A Java 11 jelenleg a Windows támogatott verziója. A Java Runtime Environment (JRE) a minimális követelmény, de a Java Development Kit (JDK) akkor hasznos, ha a Java-fordítóra és a fejlesztői csomagokra van szüksége. Mivel a JDK mindenre kiterjed, a JDK telepítésekor a JRE nem szükséges. Windows rendszeren javasoljuk, hogy ha lehetséges, telepítse a JDK-t az alapértelmezett /Program Files/ mappába. Ellenkező esetben további konfigurációra van szükség a végrehajtható fájlok engedélyeinek megadásához. További információkért tekintse meg a dokumentum engedélyezési engedélyeinek (Windows) szakaszát.

A Java kétféleképpen telepíthető és használható az SQL Server 2019 (15.x) és újabb verzióival:

  1. Használja az alapértelmezett Java-futtatókörnyezetet, amely része az SQL Server telepítésének.

    Az alábbi táblázat a Beállítás részét képező Java alapértelmezett verzióit sorolja fel:

    SQL Server-verzió Alapértelmezett Java-verzió
    SQL Server 2019 (15.x) CU 23 és újabb verziók Microsoft Build of OpenJDK 11.0.19
    SQL Server 2019 (15.x) RTM – CU22 Azul Zulu JRE 11.0.3
  2. Az alapértelmezett Java-futtatókörnyezet helyett használja az előnyben részesített Java-disztribúciót.

    A Java 11 jelenleg a Windows támogatott verziója. A Java Runtime Environment (JRE) a minimális követelmény, de a Java Development Kit (JDK) akkor hasznos, ha a Java-fordítóra és a fejlesztői csomagokra van szüksége. Mivel a JDK mindenre kiterjed, a JDK telepítésekor a JRE nem szükséges. Windows rendszeren javasoljuk, hogy ha lehetséges, telepítse a JDK-t az alapértelmezett /Program Files/ mappába. Ellenkező esetben további konfigurációra van szükség a végrehajtható fájlok engedélyeinek megadásához. További információkért tekintse meg a dokumentum engedélyezési engedélyeinek (Windows) szakaszát.

Megjegyzés:

Mivel a Java visszamenőlegesen kompatibilis, a korábbi verziók működhetnek, de az SQL Server 2019 (15.x) támogatott és tesztelt verziója a Java 11.

A telepítési adathordozó lekérése

Az SQL Server letöltési helye a kiadástól függ:

  • SQL Server Enterprise, Standard és Express kiadások. Ezek a kiadások éles használatra vannak licencelve. Az Enterprise és Standard kiadások esetén forduljon a szoftver gyártójához a telepítési adathordozóhoz. A vásárlási információkat és a Microsoft-partnerek címtárát a Microsoft vásárlási webhelyén találja.

  • A legújabb ingyenes kiadás.

A telepítő futtatása

Helyi telepítések esetén rendszergazdaként kell futtatnia a telepítőt. Ha távoli megosztásból telepíti az SQL Servert, olyan tartományi fiókot kell használnia, amely olvasási és végrehajtási engedélyekkel rendelkezik a távoli megosztáson.

  1. Indítsa el az SQL Server telepítővarázslót.

  2. A Telepítés lapon válassza az Új SQL Server önálló telepítését, vagy adjon hozzá funkciókat egy meglévő telepítéshez.

  1. A Funkciókijelölés lapon válassza az alábbi beállításokat:

    Adatbázismotor-szolgáltatások: Ha nyelvi bővítményeket szeretne használni az SQL Serverrel, telepítenie kell az adatbázismotor egy példányát. Használhat alapértelmezett vagy elnevezett példányt is.

    Machine Learning Services és nyelvi bővítmények: Ez a beállítás telepíti a Java-kódfuttatást támogató Language Extensions összetevőt.

    Képernyőkép a Nyelvi bővítmények funkcióbeállításairól.

    1. Ha az előző lépésben a Java lehetőséget választja az alapértelmezett Java-futtatókörnyezet telepítéséhez, megjelenik a Java telepítési helye lap.

      Telepítse a telepítéshez tartozó alapértelmezett Java-t. A nyelvi bővítményekhez nem használható az a lehetőség, hogy egy másik, erre a számítógépre telepített verzió helyét adja meg.

      Képernyőkép a Java telepítési helyéről.

  1. A Funkciókijelölés lapon válassza az alábbi beállításokat:

    Adatbázismotor-szolgáltatások: Ha nyelvi bővítményeket szeretne használni az SQL Serverrel, telepítenie kell az adatbázismotor egy példányát. Használhat alapértelmezett vagy elnevezett példányt is.

    Machine Learning Services és nyelvi bővítmények: Ez a beállítás telepíti a Java-kódfuttatást támogató Language Extensions összetevőt.

    Képernyőkép a példányfunkciókról.

  1. A Telepítésre kész lapon ellenőrizze, hogy ezek a beállítások szerepelnek-e, majd válassza a Telepítés lehetőséget.

    • Adatbázismotor-szolgáltatások
    • Machine Learning Services és nyelvi bővítmények

    Jegyezze fel a mappa helyét a konfigurációs fájlok tárolási útvonala ..\Setup Bootstrap\Log alatt. Ha a telepítés befejeződött, áttekintheti a telepített összetevőket az Összegző fájlban.

  2. A telepítés befejezése után, ha a rendszer arra utasítja, hogy indítsa újra a számítógépet, tegye meg most. Fontos, hogy a telepítő befejezésekor olvassa el a telepítővarázsló üzenetét. További információt az SQL Server telepítő naplófájljainak megtekintése és olvasása című témakörben talál.

A JRE_HOME változó hozzáadása

JRE_HOME egy rendszerkörnyezeti változó, amely meghatározza a Java-értelmező helyét. Ebben a lépésben hozzon létre egy rendszerkörnyezeti változót a Windows rendszeren.

  1. Keresse meg és másolja ki a JRE kezdőlapját.

    Az alapértelmezett Java-futtatókörnyezet, a Zulu JRE 11.0.3 JRE otthoni elérési útja például az %ProgramFiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\AZUL-OpenJDK-JRE\.

    Az SQL Server telepítési útvonalától függően vagy ha egy másik Java-futtatókörnyezetet választott, a JDK vagy a JRE helye eltérhet az előző példában szereplő útvonaltól. Még akkor is, ha telepítve van egy JDK, gyakran kap egy JRE almappát a telepítés részeként, ezért ebben az esetben mutasson a JRE mappára. A Java-bővítmény megpróbálja betölteni az jvm.dll elérési útról %JRE_HOME%\bin\server.

  1. Keresse meg és másolja ki a JRE kezdőlapját.

    Ez az elérési út a futtatókörnyezettől és a telepítési lehetőségektől függ.

    A Java-bővítmény megpróbálja betölteni az jvm.dll elérési útról %JRE_HOME%\bin\server.

  1. A Vezérlőpulton nyissa meg a Rendszer és biztonság elemet, nyissa meg a System elemet, és válassza a Speciális rendszertulajdonságok lehetőséget.

  2. Válassza ki a Környezeti változók lehetőséget.

  3. Hozzon létre egy új rendszerváltozót JRE_HOME a JDK/JRE elérési út értékével (az 1. lépésben található).

  1. Indítsa újra a Launchpadet.

    1. Nyissa meg SQL Server Configuration Manager.

    2. Az SQL Server Services területen kattintson a jobb gombbal az SQL Server Launchpadre, és válassza az Újraindítás lehetőséget.

  1. Nyelvi bővítmény regisztrálása. Az alábbi lépéseket követve töltse le és regisztrálja a Java egyéni futtatókörnyezetéhez használt Java nyelvi bővítményt.

    1. Töltse le a java-lang-extension-windows-release.zip fájlt az SQL Server GitHub-adattár Java nyelvi bővítményéből. Töltse le a legújabb Windows-fájlt java-lang-extension-windows.zip . Ha még nem telepítette az alapértelmezett Java-t az SQL Server telepítőjéből, győződjön meg arról, hogy a JRE-verzió megegyezik a GitHubról letöltött verzióval. Ha inkább a saját telepített JRE-verziót szeretné használni, előfordulhat, hogy a GitHub forráskódjából kell lefordítania java-lang-extension .

    2. Az Azure Data Studio használatával csatlakozzon az SQL Server-példányhoz, és futtassa a következő T-SQL-parancsot a Java nyelvbővítmény regisztrálásához a CREATE EXTERNAL LANGUAGE használatával.

    3. Módosítsa az ebben az utasításban szereplő elérési utat a letöltött nyelvbővítmény zip-fájljának (java-lang-extension-windows-release.zip) és az egyéni Java-telepítés helyének (%ProgramFiles%\Python) megfelelően.

    CREATE EXTERNAL LANGUAGE [Java]
    FROM (CONTENT = N'C:\path\to\java-lang-extension-windows-release.zip',
        FILE_NAME = 'javaextension.dll',
        ENVIRONMENT_VARIABLES = N'{"JAVAHOME": "C:\\Program Files\\Java"}');
    GO
    
  2. Indítsa újra a Launchpadet.

    1. Nyissa meg SQL Server Configuration Manager.

    2. Az SQL Server Services területen kattintson a jobb gombbal az SQL Server Launchpadre, és válassza az Újraindítás lehetőséget.

Hozzáférés biztosítása nem alapértelmezett JRE-mappához

Ha nem telepítette az SQL Serverhez tartozó alapértelmezett Java-t, és nem telepítette a Java-t /Program Files, hajtsa végre a következő lépéseket.

Ha nem telepítette a Java-t a programfájlok alatt, hajtsa végre a következő lépéseket.

Futtassa az icacls parancsokat egy emelt szintű sorból, hogy hozzáférést biztosítson az SQLRUsergroup és az SQL Server szolgáltatásfiókjaihoz (in ALL_APPLICATION_PACKAGES) a JRE eléréséhez. A parancsok rekurzív módon biztosítanak hozzáférést az adott könyvtár elérési útja alatt lévő összes fájlhoz és mappához.

  1. SQLRUserGroup-engedélyek megadása

    Névvel ellátott példány esetén fűzze hozzá a példány nevét az SQLRUsergrouphoz (például SQLRUsergroupINSTANCENAME).

    icacls "<PATH to JRE>" /grant "SQLRUsergroup":(OI)(CI)RX /T
    

    Ezt a lépést kihagyhatja, ha telepítette a JDK/JRE fájlt a Windows programfájljai alatti alapértelmezett mappába.

  2. Adjon AppContainer-engedélyeket. Ez a parancs engedélyeket ad a számítógép SID-jének S-1-15-2-1, amely egyenértékű ALL APPLICATION PACKAGES a Windows angol verziójával. Másik lehetőségként használhatja icacls "<PATH to JRE>" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T a Windows angol verzióját is.

    icacls "<PATH to JRE>" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

A szolgáltatás újraindítása

Ha a telepítés befejeződött, indítsa újra az adatbázismotort, mielőtt továbblép a következő lépésre, és engedélyezi a szkript végrehajtását.

A szolgáltatás újraindítása automatikusan újraindítja a kapcsolódó SQL Server Launchpad szolgáltatást is.

A szolgáltatás újraindításához kattintson a jobb gombbal az SSMS-példány Újraindítás parancsára, a Vezérlőpult Szolgáltatások paneljén vagy az SQL Server Configuration Manager használatával.

Szkript végrehajtásának engedélyezése

  1. Nyissa meg az SQL Server Management Studiót. Csatlakozzon ahhoz a példányhoz, ahol telepítette a Nyelvi bővítményeket, válassza az Új lekérdezés lehetőséget egy lekérdezési ablak megnyitásához, és futtassa a következő parancsot:

    EXECUTE sp_configure;
    

    A funkció alapértelmezés szerint ki van kapcsolva (value van 0), és a Java-kód futtatása előtt a rendszergazdának explicit módon engedélyeznie kell.

  2. A külső szkriptelési funkció engedélyezéséhez futtassa a következő utasítást:

    EXECUTE sp_configure 'external scripts enabled', 1;
    GO
    
    RECONFIGURE WITH OVERRIDE;
    GO
    

    Ha már engedélyezte a Machine Learning Services szolgáltatását, ne futtassa újra a nyelvi bővítmények újrakonfigurálását. A mögöttes bővíthetőségi platform mindkettőt támogatja.

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 windowsos SQL Serveren futó adatbázishoz.

CREATE EXTERNAL LANGUAGE Java
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO

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

Telepítés ellenőrzése

Ellenőrizze a példány telepítési állapotát a telepítési naplókban.

Az alábbi lépésekkel ellenőrizheti, hogy a külső szkript indításához használt összes összetevő fut-e.

  1. Az SQL Server Management Studióban vagy az Azure Data Studióban nyisson meg egy új lekérdezési ablakot, és futtassa a következő utasítást:

    EXECUTE sp_configure 'external scripts enabled';
    

    A run_value beállítás értéke 1.

  2. Nyissa meg a Szolgáltatások panelt vagy az SQL Server Configuration Managert, és ellenőrizze, hogy fut-e az SQL Server Launchpad szolgáltatás . Minden olyan adatbázismotor-példányhoz rendelkeznie kell egy szolgáltatással, amely rendelkezik telepített nyelvi bővítményekkel. A szolgáltatással kapcsolatos további információkért lásd: Bővíthetőségi architektúra az SQL Server Language Extensionsben.

További konfiguráció

Ha az ellenőrzési lépés sikeres volt, futtathatja a Java Code-ot az SQL Server Management Studióból, az Azure Data Studióból, a Visual Studio Code-ból vagy bármely más ügyfélből, amely T-SQL-utasításokat küldhet a kiszolgálónak.

Ha a parancs futtatásakor hibaüzenetet kapott, tekintse át a jelen szakaszban található további konfigurációs lépéseket. Előfordulhat, hogy további megfelelő konfigurációkat kell létrehoznia a szolgáltatáshoz vagy az adatbázishoz.

A példány szintjén további konfigurációk lehetnek a következők:

Az adatbázisban a következő konfigurációs frissítésekre lehet szükség:

Megjegyzés:

Az, hogy további konfigurációra van-e szükség, a biztonsági sémától, az SQL Server telepítésének módjától, valamint attól függ, hogy a felhasználók hogyan csatlakozhatnak az adatbázishoz, és hogyan futtathatnak külső szkripteket.

Javasolt optimalizálások

Most, hogy minden működik, érdemes lehet optimalizálni a kiszolgálót a Java Language Extension támogatásához.

A kiszolgáló optimalizálása Java nyelvi bővítményhez

Az SQL Server beállításának alapértelmezett beállításai arra szolgálnak, hogy optimalizálják a kiszolgáló egyensúlyát az adatbázismotor által támogatott különféle szolgáltatásokhoz, amelyek lehetnek például az SQL Server-adatokat használó folyamatok kinyerése, átalakítása és betöltése (ETL), jelentéskészítés, naplózás és alkalmazások. Ezért az alapértelmezett beállítások között előfordulhat, hogy a nyelvi bővítmények erőforrásai néha korlátozottak vagy szabályozva vannak, különösen a memóriaigényes műveletek esetében.

Annak érdekében, hogy a nyelvi bővítmények feladatai rangsorolása és erőforrás-erőforrás-beállítása megfelelő legyen, javasoljuk, hogy az SQL Server Resource Governor használatával konfiguráljon egy külső erőforráskészletet. Érdemes lehet módosítani az adatbázismotor számára lefoglalt memória mennyiségét, vagy növelni az SQL Server Launchpad szolgáltatásban futó fiókok számát.

Ha Standard kiadást használ, és nem rendelkezik erőforrás-kormányzóval, dinamikus felügyeleti nézeteket (DMV-ket) és bővített eseményeket, valamint Windows-eseményfigyelést használhat a kiszolgáló erőforrásainak kezeléséhez.

Következő lépés

A Java-fejlesztők megismerkedhetnek néhány egyszerű példával, és megismerhetik a Java SQL Serverrel való működésének alapjait. A következő lépéshez tekintse meg a következő hivatkozást: