Delen via


SQL Server Java Language Extension installeren in Windows

Van toepassing op: SQL Server 2019 (15.x) en latere versies

Informatie over het installeren van het onderdeel Java Language Extension voor SQL Server in Windows. De Java-taalextensie maakt deel uit van SQL Server Language Extensions.

Opmerking

Dit artikel is bedoeld voor de installatie van de Java-taalextensie voor SQL Server in Windows. Zie Sql Server Java Language Extension installeren in Linux voor Linux voor Linux. Zie SQL Server .NET Language Extension in Windows installeren voor de C#-taalextensie in Windows.

Vereiste voorwaarden

Opmerking

Functiemogelijkheden en installatieopties verschillen per versie van SQL Server. Gebruik de vervolgkeuzelijst versieselector om de juiste versie van SQL Server te kiezen.

  • SQL Server Setup is vereist als u ondersteuning wilt installeren voor de Java-taalextensie.

  • U kunt naar wens elke Java-runtime downloaden en installeren, inclusief de nieuwste Microsoft Build van OpenJDK of officieel gelicentieerde Java-runtime. In SQL Server 2022 (16.x) en latere versies wordt de Java-runtime niet geïnstalleerd door SQL Server Setup.

  • Een database-engine-exemplaar is vereist. U kunt niet alleen de functies van de Java-taalextensie installeren, maar u kunt ze incrementeel toevoegen aan een bestaand exemplaar.

  • Voor bedrijfscontinuïteit worden AlwaysOn-beschikbaarheidsgroepen ondersteund voor taalextensies. U moet taalextensies installeren en pakketten configureren op elk knooppunt. Het installeren van de Java-taalextensie wordt ook ondersteund op een exemplaar van een failovercluster in SQL Server.

  • Installeer geen SQL Server Language Extensions of de Java-taalextensie op een domeincontroller. Het gedeelte Taalextensies van de installatie mislukt.

  • Taalextensies en Machine Learning Services worden standaard geïnstalleerd op SQL Server Big Data-clusters. Als u Big Data-clusters gebruikt, hoeft u de stappen in dit artikel niet te volgen. Zie Python- en R-scripts uitvoeren met Machine Learning Services op SQL Server 2019 Big Data-clusters voor meer informatie.

Belangrijk

Nadat de installatie is voltooid, moet u de stappen na de configuratie voltooien die in dit artikel worden beschreven. Deze stappen omvatten het inschakelen van SQL Server voor het gebruik van externe code en het toevoegen van accounts die vereist zijn voor SQL Server om Namens u Java-code uit te voeren. Voor configuratiewijzigingen is over het algemeen een herstart van het exemplaar of een herstart van de Launchpad-service vereist.

Java JRE of JDK

Opmerking

Functiemogelijkheden en installatieopties verschillen per versie van SQL Server. Gebruik de vervolgkeuzelijst versieselector om de juiste versie van SQL Server te kiezen.

Met SQL Server 2022 (16.x) kunt u elke Java-runtime downloaden en installeren, inclusief de nieuwste Microsoft Build van OpenJDK of een officieel gelicentieerde Java-runtime.

Java 11 is momenteel de ondersteunde versie in Windows. De Java Runtime Environment (JRE) is de minimale vereiste, maar Java Development Kit (JDK) is handig als u de Java-compiler en ontwikkelpakketten nodig hebt. Omdat de JDK all-inclusive is, is de JRE niet nodig als u de JDK installeert. In Windows wordt u aangeraden de JDK indien mogelijk onder de standaardmap /Program Files/ te installeren. Anders is extra configuratie vereist voor het verlenen van machtigingen aan uitvoerbare bestanden. Zie de sectie Machtigingen verlenen (Windows) in dit document voor meer informatie.

Er zijn twee manieren om Java te installeren en te gebruiken met SQL Server 2019 (15.x) en latere versies:

  1. Gebruik de standaard Java-runtime, die is opgenomen in de SQL Server-installatie.

    De volgende tabel bevat de standaardversies van Java die zijn opgenomen in de installatie:

    SQL Server-versie StandaardVersie van Java
    SQL Server 2019 (15.x) CU 23 en latere versies Microsoft Build van OpenJDK 11.0.19
    SQL Server 2019 (15.x) RTM - CU22 Azul Zulu JRE 11.0.3
  2. Gebruik uw favoriete Java-distributie in plaats van de standaard Java-runtime.

    Java 11 is momenteel de ondersteunde versie in Windows. De Java Runtime Environment (JRE) is de minimale vereiste, maar Java Development Kit (JDK) is handig als u de Java-compiler en ontwikkelpakketten nodig hebt. Omdat de JDK all-inclusive is, is de JRE niet nodig als u de JDK installeert. In Windows wordt u aangeraden de JDK indien mogelijk onder de standaardmap /Program Files/ te installeren. Anders is extra configuratie vereist voor het verlenen van machtigingen aan uitvoerbare bestanden. Zie de sectie Machtigingen verlenen (Windows) in dit document voor meer informatie.

Opmerking

Aangezien Java compatibel is met eerdere versies, werken eerdere versies mogelijk, maar de ondersteunde en geteste versie voor SQL Server 2019 (15.x) is Java 11.

De installatiemedia ophalen

De downloadlocatie voor SQL Server is afhankelijk van de editie:

  • SQL Server Enterprise-, Standard- en Express-edities. Deze edities zijn gelicentieerd voor productiegebruik. Neem voor de Enterprise- en Standard-edities contact op met uw softwareleverancier voor de installatiemedia. U vindt aankoopgegevens en een adreslijst van Microsoft-partners op de microsoft-aankoopwebsite.

  • De nieuwste gratis editie.

Setup uitvoeren

Voor lokale installaties moet u Setup uitvoeren als beheerder. Als u SQL Server installeert vanaf een externe share, moet u een domeinaccount met lees- en uitvoermachtigingen voor de externe share gebruiken.

  1. Start de installatiewizard voor SQL Server.

  2. Selecteer op het tabblad Installatiede optie Nieuwe zelfstandige installatie van SQL Server of voeg functies toe aan een bestaande installatie.

  1. Selecteer deze opties op de pagina Functieselectie :

    Database Engine Services: Als u taalextensies wilt gebruiken met SQL Server, moet u een exemplaar van de database-engine installeren. U kunt een standaard- of een benoemd exemplaar gebruiken.

    Machine Learning Services en taalextensies: met deze optie wordt het onderdeel Language Extensions geïnstalleerd dat ondersteuning biedt voor de uitvoering van Java-code.

    • Als u de standaard Java-runtime wilt installeren, selecteert u zowel Machine Learning Services als Taalextensies en Java.

    • Als u uw eigen Java-runtime wilt gebruiken, selecteert u Machine Learning Services en taalextensies. Selecteer Java niet.

    • Als u R en Python wilt gebruiken, raadpleegt u SQL Server Machine Learning Services (Python en R) installeren in Windows.

    Schermopname van de functieopties voor taalextensies.

    1. Als u Java in de vorige stap kiest om de standaard Java-runtime te installeren, wordt de pagina Java-installatielocatie weergegeven.

      Installeer de standaard Java die is opgenomen in deze installatie. De optie voor het opgeven van de locatie van een andere versie die op deze computer is geïnstalleerd , wordt niet gebruikt voor taalextensies.

      Schermopname van de Java-installatielocatie.

  1. Selecteer deze opties op de pagina Functieselectie :

    Database Engine Services: Als u taalextensies wilt gebruiken met SQL Server, moet u een exemplaar van de database-engine installeren. U kunt een standaard- of een benoemd exemplaar gebruiken.

    Machine Learning Services en taalextensies: met deze optie wordt het onderdeel Language Extensions geïnstalleerd dat ondersteuning biedt voor de uitvoering van Java-code.

    Schermopname van exemplaarfuncties.

  1. Controleer op de pagina Gereed om te installeren of deze selecties zijn opgenomen en selecteer Installeren.

    • Database Engine Services
    • Machine Learning Services en taalextensies

    Noteer de locatie van de map onder het pad ..\Setup Bootstrap\Log waar de configuratiebestanden zijn opgeslagen. Wanneer de installatie is voltooid, kunt u de geïnstalleerde onderdelen in het samenvattingsbestand bekijken.

  2. Nadat de installatie is voltooid, doet u dit nu als u wordt gevraagd de computer opnieuw op te starten. Het is belangrijk om het bericht van de installatiewizard te lezen wanneer u klaar bent met Setup. Zie Logboekbestanden voor HET instellen van SQL Server weergeven en lezen voor meer informatie.

De variabele JRE_HOME toevoegen

JRE_HOME is een omgevingsvariabele van het systeem die de locatie van de Java-interpreter aangeeft. In deze stap maakt u een omgevingsvariabele voor het systeem in Windows.

  1. Zoek en kopieer het JRE-basispad.

    Het jre-beginpad voor de standaard Java-runtime Zulu JRE 11.0.3 is %ProgramFiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\AZUL-OpenJDK-JRE\bijvoorbeeld .

    Afhankelijk van uw SQL Server-installatiepad of als u een andere Java-runtime hebt gekozen, kan uw locatie van de JDK of JRE afwijken van het pad in het vorige voorbeeld. Zelfs als u een JDK hebt geïnstalleerd, krijgt u vaak een JRE-submap als onderdeel van die installatie, dus wijs in dat geval de JRE-map aan. De Java-extensie probeert de jvm.dll uit het pad %JRE_HOME%\bin\serverte laden.

  1. Zoek en kopieer het JRE-basispad.

    Dit pad is afhankelijk van de runtime en de installatieopties.

    De Java-extensie probeert de jvm.dll uit het pad %JRE_HOME%\bin\serverte laden.

  1. Open Systeem en beveiliging in het Configuratiescherm, open Systeem en selecteer Geavanceerde systeemeigenschappen.

  2. Selecteer Omgevingsvariabelen.

  3. Maak een nieuwe systeemvariabele voor JRE_HOME met de waarde van het JDK/JRE-pad (gevonden in stap 1).

  1. Start Launchpad opnieuw op.

    1. Open SQL Server Configuration Manager.

    2. Klik onder SQL Server Services met de rechtermuisknop op SQL Server Launchpad en selecteer Opnieuw opstarten.

  1. Registreer de taalextensie. Volg deze stappen om de Java-taalextensie te downloaden en te registreren, die wordt gebruikt voor de aangepaste Java-runtime.

    1. Download het java-lang-extension-windows-release.zip bestand uit de Java-taalextensie voor sql Server GitHub-opslagplaats. Download het meest recente Windows-bestand java-lang-extension-windows.zip . Als u de standaardVersie van Java niet hebt geïnstalleerd via SQL Server Setup, controleert u of de JRE-versie overeenkomt met de versie die is gedownload van GitHub. Als u liever uw eigen geïnstalleerde JRE-versie gebruikt, moet u mogelijk compileren java-lang-extension vanuit gitHub-broncode.

    2. Gebruik Azure Data Studio om verbinding te maken met uw SQL Server-exemplaar en voer de volgende T-SQL-opdracht uit om de Java-taalextensie te registreren bij CREATE EXTERNAL LANGUAGE.

    3. Wijzig het pad in deze instructie zodat deze overeenkomt met de locatie van het zip-bestand met de gedownloade taalextensie (java-lang-extension-windows-release.zip) en de locatie van uw aangepaste Java-installatie (%ProgramFiles%\Python).

    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. Start Launchpad opnieuw op.

    1. Open SQL Server Configuration Manager.

    2. Klik onder SQL Server Services met de rechtermuisknop op SQL Server Launchpad en selecteer Opnieuw opstarten.

Toegang verlenen tot niet-standaard JRE-map

Als u de standaard Java die is opgenomen in SQL Server niet hebt geïnstalleerd en de Java niet hebt geïnstalleerd, /Program Filesmoet u de volgende stappen uitvoeren.

Als u de Java niet hebt geïnstalleerd onder programmabestanden, moet u de volgende stappen uitvoeren.

Voer de icacls-opdrachten uit vanaf een regel met verhoogde bevoegdheid om toegang te verlenen tot de SQLRUsergroup - en SQL Server-serviceaccounts (in ALL_APPLICATION_PACKAGES) voor toegang tot de JRE. De opdrachten verlenen recursief toegang tot alle bestanden en mappen onder het opgegeven mappad.

  1. SQLRUserGroup-machtigingen geven

    Voor een benoemd exemplaar voegt u de naam van het exemplaar toe aan SQLRUsergroup (bijvoorbeeld SQLRUsergroupINSTANCENAME).

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

    U kunt deze stap overslaan als u de JDK/JRE hebt geïnstalleerd in de standaardmap onder programmabestanden in Windows.

  2. Geef AppContainer-machtigingen. Met deze opdracht worden machtigingen verleend aan de computer-SID S-1-15-2-1, die gelijk is aan ALL APPLICATION PACKAGES op een Engelse versie van Windows. U kunt ook een Engelse versie van Windows gebruiken icacls "<PATH to JRE>" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T .

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

Start de service opnieuw op

Wanneer de installatie is voltooid, start u de database-engine opnieuw op voordat u doorgaat met de volgende stap, waardoor scriptuitvoering wordt ingeschakeld.

Als u de service opnieuw start, wordt de gerelateerde SQL Server Launchpad-service ook automatisch opnieuw opgestart.

U kunt de service opnieuw opstarten met de rechtermuisknop op De opdracht Opnieuw opstarten voor het exemplaar in SSMS, met het deelvenster Services in het Configuratiescherm of met behulp van SQL Server Configuration Manager.

Scriptuitvoering inschakelen

  1. Open SQL Server Management Studio. Maak verbinding met het exemplaar waarin u Taalextensies hebt geïnstalleerd, selecteer Nieuwe query om een queryvenster te openen en voer de volgende opdracht uit:

    EXECUTE sp_configure;
    

    De functie is standaard uitgeschakeld (value is 0) en moet expliciet worden ingeschakeld door een beheerder voordat u Java-code kunt uitvoeren.

  2. Voer de volgende instructie uit om de externe scriptfunctie in te schakelen:

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

    Als u de functie voor Machine Learning Services al hebt ingeschakeld, moet u de configuratie niet opnieuw uitvoeren voor taalextensies. Het onderliggende uitbreidbaarheidsplatform ondersteunt beide.

Externe taal registreren

Voor elke database waarin u taalextensies wilt gebruiken, moet u de externe taal registreren bij CREATE EXTERNAL LANGUAGE.

In het volgende voorbeeld wordt een externe taal met de naam Java toegevoegd aan een database op SQL Server in Windows.

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

Zie CREATE EXTERNAL LANGUAGE voor meer informatie.

Installatie controleren

Controleer de installatiestatus van het exemplaar in de installatielogboeken.

Gebruik de volgende stappen om te controleren of alle onderdelen die worden gebruikt voor het starten van een extern script worden uitgevoerd.

  1. Open in SQL Server Management Studio of Azure Data Studio een nieuw queryvenster en voer de volgende instructie uit:

    EXECUTE sp_configure 'external scripts enabled';
    

    De run_value is nu ingesteld op 1.

  2. Open het deelvenster Services of SQL Server Configuration Manager en controleer of de SQL Server Launchpad-service wordt uitgevoerd. U moet één service hebben voor elk Database Engine-exemplaar waarop taalextensies zijn geïnstalleerd. Zie De architectuur voor uitbreidbaarheid in SQL Server Language Extensions voor meer informatie over de service.

Aanvullende configuratie

Als de verificatiestap is geslaagd, kunt u Java Code uitvoeren vanuit SQL Server Management Studio, Azure Data Studio, Visual Studio Code of een andere client die T-SQL-instructies naar de server kan verzenden.

Als er een fout optreedt bij het uitvoeren van de opdracht, raadpleegt u de aanvullende configuratiestappen in deze sectie. Mogelijk moet u extra geschikte configuraties aanbrengen voor de service of database.

Op exemplaarniveau kan extra configuratie het volgende omvatten:

In de database hebt u mogelijk de volgende configuratie-updates nodig:

Opmerking

Of extra configuratie vereist is, is afhankelijk van uw beveiligingsschema, waar u SQL Server hebt geïnstalleerd en hoe u verwacht dat gebruikers verbinding maken met de database en externe scripts uitvoeren.

Voorgestelde optimalisaties

Nu alles werkt, wilt u mogelijk ook de server optimaliseren voor de ondersteuning van Java Language Extension.

De server optimaliseren voor Java Language Extension

De standaardinstellingen voor het instellen van SQL Server zijn bedoeld om de balans van de server te optimaliseren voor verschillende services die worden ondersteund door de Database Engine, waaronder ETL-processen (extract, transform, and load), rapportage, controle en toepassingen die gebruikmaken van SQL Server-gegevens. Daarom kunt u onder de standaardinstellingen merken dat resources voor taalextensies soms worden beperkt of beperkt, met name bij geheugenintensieve bewerkingen.

Om ervoor te zorgen dat taken voor taalextensies prioriteit krijgen en op de juiste wijze worden geresourceeerd, raden we u aan SQL Server Resource Governor te gebruiken om een externe resourcegroep te configureren. U kunt ook de hoeveelheid geheugen wijzigen die is toegewezen aan de database-engine of het aantal accounts verhogen dat wordt uitgevoerd onder de SQL Server Launchpad-service.

Als u de Standard-editie gebruikt en geen Resource Governor hebt, kunt u dynamische beheerweergaven (DMV's) en uitgebreide gebeurtenissen, evenals bewaking van Windows-gebeurtenissen, gebruiken om de serverresources te beheren.

Volgende stap

Java-ontwikkelaars kunnen aan de slag met enkele eenvoudige voorbeelden en de basisprincipes leren van hoe Java werkt met SQL Server. Zie de volgende koppeling voor de volgende stap: