Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
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 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.
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.
Start de installatiewizard voor SQL Server.
Selecteer op het tabblad Installatiede optie Nieuwe zelfstandige installatie van SQL Server of voeg functies toe aan een bestaande installatie.
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.
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.
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.
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\Logwaar de configuratiebestanden zijn opgeslagen. Wanneer de installatie is voltooid, kunt u de geïnstalleerde onderdelen in het samenvattingsbestand bekijken.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.
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.dlluit het pad%JRE_HOME%\bin\serverte laden.
Zoek en kopieer het JRE-basispad.
Dit pad is afhankelijk van de runtime en de installatieopties.
De Java-extensie probeert de
jvm.dlluit het pad%JRE_HOME%\bin\serverte laden.
Open Systeem en beveiliging in het Configuratiescherm, open Systeem en selecteer Geavanceerde systeemeigenschappen.
Selecteer Omgevingsvariabelen.
Maak een nieuwe systeemvariabele voor
JRE_HOMEmet de waarde van het JDK/JRE-pad (gevonden in stap 1).
Start Launchpad opnieuw op.
Klik onder SQL Server Services met de rechtermuisknop op SQL Server Launchpad en selecteer Opnieuw opstarten.
Registreer de taalextensie. Volg deze stappen om de Java-taalextensie te downloaden en te registreren, die wordt gebruikt voor de aangepaste Java-runtime.
Download het
java-lang-extension-windows-release.zipbestand uit de Java-taalextensie voor sql Server GitHub-opslagplaats. Download het meest recente Windows-bestandjava-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 compilerenjava-lang-extensionvanuit gitHub-broncode.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.
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"}'); GOStart Launchpad opnieuw op.
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.
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 /TU kunt deze stap overslaan als u de JDK/JRE hebt geïnstalleerd in de standaardmap onder programmabestanden in Windows.
Geef AppContainer-machtigingen. Met deze opdracht worden machtigingen verleend aan de computer-SID
S-1-15-2-1, die gelijk is aanALL APPLICATION PACKAGESop een Engelse versie van Windows. U kunt ook een Engelse versie van Windows gebruikenicacls "<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
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 (
valueis0) en moet expliciet worden ingeschakeld door een beheerder voordat u Java-code kunt uitvoeren.Voer de volgende instructie uit om de externe scriptfunctie in te schakelen:
EXECUTE sp_configure 'external scripts enabled', 1; GO RECONFIGURE WITH OVERRIDE; GOAls 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.
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_valueis nu ingesteld op 1.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:
- Firewallconfiguratie voor SQL Server Machine Learning Services
- Een servernetwerkprotocol in- of uitschakelen
- Serverconfiguratie: externe toegang
- Een aanmelding maken voor SQLRUserGroup
In de database hebt u mogelijk de volgende configuratie-updates nodig:
- Databasegebruikers toestemming geven om Python- en R-scripts uit te voeren met SQL Server Machine Learning Services
- Gebruikers toestemming geven om een specifieke taal uit te voeren
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.
Zie CREATE EXTERNAL RESOURCE POOL (Transact-SQL)om een resourcegroep te configureren voor het beheren van externe resources.
Zie Opties voor servergeheugenconfiguratie om de hoeveelheid geheugen te wijzigen die is gereserveerd voor de database.
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: