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) op Linux en latere versies
Meer informatie over het installeren van het Java Language Extension-onderdeel voor SQL Server in Linux. De Java-taalextensie maakt deel uit van SQL Server Language Extensions en een invoegtoepassing voor de database-engine.
Hoewel u de database-engine en taalextensies gelijktijdig kunt installeren, is het een aanbevolen procedure om eerst de SQL Server Database Engine te installeren en te configureren, zodat u eventuele problemen kunt oplossen voordat u meer onderdelen toevoegt.
Prerequisites
Je Linux-distributie moet worden ondersteund door SQL Server. Containers worden apart bedekt in een latere kogel. Ondersteunde distributies zijn onder andere:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
Je hebt een query-editor nodig om Transact-SQL (T-SQL) commando's uit te voeren voor configuratie en validatie na de installatie. Wij raden de MSSQL-extensie aan voor Visual Studio Code. Het is een gratis download die op Linux draait.
- Het Java-extensiepakket bevindt zich in de SQL Server Linux source repositories. Als je al bronrepository's hebt geconfigureerd voor de Database Engine-installatie, voer dan de
mssql-server-extensibility-javapakketinstallatiecommando's uit met dezelfde repo-registratie.
Taalextensies worden ook ondersteund in Linux-containers. Vooraf gebouwde containers met Language Extensions zijn niet beschikbaar, maar je kunt er een maken vanuit de SQL Server-containers door gebruik te maken van een voorbeeldtemplate op GitHub.
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.
Pakketlijst
Op een apparaat met internetverbinding download en installeer je pakketten onafhankelijk van de Database Engine door gebruik te maken van de pakketinstaller voor elk besturingssysteem. In de volgende tabel worden alle beschikbare pakketten beschreven.
| Naam van het pakket | Van toepassing op: | Description |
|---|---|---|
mssql-server-extensibility |
Alle talen | Uitbreidbaarheidsframework dat wordt gebruikt voor de Java-taalextensie |
mssql-server-extensibility-java |
Java | Uitbreidbaarheidsframework dat wordt gebruikt voor de Java-taalextensie en bevat een ondersteunde Java-runtime Van toepassing op: SQL Server 2019 (15.x) alleen op Linux |
Java-taalextensie installeren
Om Language Extensions en Java op Linux te installeren, installeer je het mssql-server-extensibility-java pakket. Het pakket installeert automatisch JRE 11 (als het nog niet geïnstalleerd is) en voegt het JVM-pad toe aan een omgevingsvariabele genaamd JRE_HOME.
Als u de Java-taalextensie wilt inschakelen, maakt u een aangepast binair bestand door de instructies te volgen op de pagina Java Language Extension op GitHub.
Note
Op een server met internetverbinding worden pakketafhankelijkheden gedownload en geïnstalleerd als onderdeel van de installatie van het hoofdpakket. Als uw server niet is verbonden met internet, raadpleegt u meer informatie in de offline-installatie.
Je kunt elke Java-runtime downloaden en installeren, inclusief de nieuwste Microsoft Build van OpenJDK of een officieel gelicentieerde Java-runtime. Vanaf SQL Server 2022 (16.x) installeert SQL Server Setup geen Java-runtime.
Als u de Java-taalextensie wilt inschakelen, maakt u een aangepast binair bestand door de instructies te volgen op de pagina Java Language Extension op GitHub.
Red Hat-installatieopdracht
Om Language Extensions for Java op Red Hat te installeren, gebruik je het volgende commando.
Tip
Voer indien yum clean all mogelijk uit om pakketten op het systeem te vernieuwen vóór de installatie.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Ubuntu-installatieopdracht
Om Language Extensions voor Java op Ubuntu te installeren, gebruik je het volgende commando.
Tip
Voer indien apt-get update mogelijk uit om pakketten op het systeem te vernieuwen vóór de installatie. Sommige Ubuntu Docker-images bevatten het apt-transport-https pakket niet. Voer apt-get install apt-transport-https uit om het te installeren.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
SUSE-installatieopdracht
Om Language Extensions for Java op SUSE te installeren, gebruik je het volgende commando.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Post-installatie configuratie (vereist)
Machtigingen verlenen voor Linux
U hoeft deze stap niet uit te voeren als u externe bibliotheken gebruikt. Externe bibliotheken zijn de aanbevolen aanpak. Voor hulp bij het maken van een externe bibliotheek uit je
jarbestand, zie CREATE EXTERNAL LIBRARY.Als u geen externe bibliotheken gebruikt, moet u SQL Server machtigingen geven voor het uitvoeren van de Java-klassen in uw
jar.Om lees- en uitvoeringstoegang te verlenen aan een
jarbestand, voer je het volgendechmodcommando uit op hetjarbestand. Zet je cursusbestanden altijd in eenjarfunctie wanneer je met SQL Server werkt. Ziejarvoor hulp bij het maken van een bestand.chmod ug+rx <MyJarFile.jar>Je moet ook toestemming geven
mssql_satelliteom het bestand te lezen en uit tejarvoeren.chown mssql_satellite:mssql_satellite <MyJarFile.jar>Aanvullende configuratie is voornamelijk via het hulpprogramma mssql-conf.
Voeg het
mssqlgebruikersaccount toe dat wordt gebruikt om de SQL Server-service uit te voeren. Deze stap is nodig als je de setup nog niet eerder hebt uitgevoerd.sudo /opt/mssql/bin/mssql-conf setupUitgaande netwerktoegang inschakelen. Uitgaande netwerktoegang is standaard uitgeschakeld. Om uitgaande verzoeken in te schakelen, stel je de
outboundnetworkaccessBoolean-eigenschap in met demssql-conftool. Zie SQL Server configureren in Linux met mssql-conf voor meer informatie.# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Start de SQL Server Launchpad-service en het Database Engine-exemplaar opnieuw op om de bijgewerkte waarden uit het INI-bestand te lezen. Een herstartbericht herinnert je telkens wanneer je een uitbreidbaarheids-gerelateerde instelling aanpast.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceExterne scriptuitvoering inschakelen. U kunt verbinding maken met een exemplaar van SQL Server met behulp van een vertrouwd SQL Server-clienthulpprogramma, zoals sqlcmd, SQL Server Management Studio (SSMS) of de MSSQL-extensie voor Visual Studio Code.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;Start de
mssql-launchpaddservice opnieuw op.Registreer voor elke database waarin je taalextensies wilt gebruiken de externe taal met CREATE EXTERNAL LANGUAGE. Zie de volgende sectie voor stappen.
Externe taal registreren
Registreer voor elke database waarin je taalextensies wilt gebruiken de externe taal met CREATE EXTERNAL LANGUAGE.
In het volgende voorbeeld wordt een externe taal met de naam Java toegevoegd aan een database op SQL Server in Linux.
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"}'
);
Voor de Java-extensie bepaalt de omgevingsvariabele JRE_HOME het pad om de JVM te vinden en te initialiseren.
De CREATE EXTERNAL LANGUAGE DDL biedt een ENVIRONMENT_VARIABLES parameter om omgevingsvariabelen in te stellen voor het proces dat de extensie host. Gebruik deze parameter om omgevingsvariabelen in te stellen die externe taaluitbreidingen vereisen.
Zie CREATE EXTERNAL LANGUAGE voor meer informatie.
Installatie verifiëren
Java-feature-integratie bevat geen bibliotheken, maar je kunt wel uitvoeren grep -r JRE_HOME /etc om te bevestigen dat de JRE_HOME omgevingsvariabele bestaat.
Als u de installatie wilt valideren, voert u een T-SQL-script uit waarmee een door het systeem opgeslagen procedure wordt uitgevoerd die Java aanroept. U hebt een queryhulpprogramma nodig voor deze taak. U kunt verbinding maken met een exemplaar van SQL Server met behulp van een vertrouwd SQL Server-clienthulpprogramma, zoals sqlcmd, SQL Server Management Studio (SSMS) of de MSSQL-extensie voor Visual Studio Code.
Volledige installatie van SQL Server en Java Language Extension
Om de Database Engine en Java Language Extension in één procedure te installeren en te configureren, voeg je Java-pakketten en parameters toe aan een commando dat de Database Engine installeert.
Geef een opdrachtregel op die de database-engine bevat, plus taaluitbreidingsfuncties.
Het volgende commando voegt Java-uitbreidbaarheid toe aan een Database Engine-installatie.
sudo yum install -y mssql-server mssql-server-extensibility-javaAccepteer licentieovereenkomsten en voltooi de configuratie na de installatie. Gebruik het
mssql-confhulpmiddel.sudo /opt/mssql/bin/mssql-conf setupIn deze stap wordt u gevraagd de gebruiksrechtovereenkomst voor de database-engine te accepteren, een editie te kiezen en het beheerderswachtwoord in te stellen.
Herstart de dienst als je erom vraagt.
sudo systemctl restart mssql-server.service
Installatie zonder toezicht
Gebruik de installatie zonder toezicht voor de database-engine en voeg de pakketten toe voor mssql-server-extensibility-java.
Offline-installatie
Om de pakketten te installeren, volg je de instructies voor offline installatie . Zoek je downloadsite en download vervolgens de specifieke pakketten die later in deze sectie worden vermeld.
Tip
Verschillende pakketbeheertools bieden commando's die je helpen pakketafhankelijkheden te bepalen. Voor yum, gebruik sudo yum deplist [package]. Voor Ubuntu gebruikt u sudo apt-get install --reinstall --download-only [package name] gevolgd door dpkg -I [package name].deb.
Site downloaden
Download de pakketten van https://packages.microsoft.com/. De site host alle Java-pakketten naast het Database Engine-pakket.
Paden downloaden
| Pakket | Distribution | Downloadlocatie |
|---|---|---|
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/ |
Pakketlijst
Afhankelijk van de extensies die u wilt gebruiken, downloadt u de pakketten die nodig zijn voor een specifieke taal. Exacte bestandsnamen bevatten platforminformatie in het achtervoegsel, maar de volgende bestandsnamen helpen je bepalen welke bestanden je moet ophalen.
Kernpakketten
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Limitations
Impliciete authenticatie is niet beschikbaar op Linux. Java-code die in het externe proces draait, kan niet terugverbinden met de server om toegang te krijgen tot data of andere bronnen.
Resourcebeheer
Linux en Windows hebben gelijkheid voor resource governance voor externe resource pools, maar de statistieken voor sys.dm_resource_governor_external_resource_pools hebben momenteel verschillende eenheden op Linux.
Note
De statistieken in de volgende tabel zijn afkomstig van de gespecificeerde controlegroepen (cgroepen) subsystemen.
| Kolomnaam | Description | Waarde in Linux |
|---|---|---|
peak_memory_kb |
Het maximale geheugen dat de resourcepool gebruikt. | In Linux wordt deze statistiek afkomstig uit het memory subsysteem, waarbij de waarde is memory.max_usage_in_bytes |
write_io_count |
Het totaal aantal schrijf-IO's dat is uitgegeven sinds de laatste reset van de Resource Governor-statistieken. | In Linux is deze statistiek afkomstig uit het blkio subsysteem, waarbij de waarde op de schrijfrij is blkio.throttle.io_serviced |
read_io_count |
Het totaal aantal geleesde IO's die sinds de laatste reset van de Resource Governor-statistieken is uitgegeven. | Op Linux wordt deze statistiek afkomstig van het blkio subsysteem, waarbij de waarde op de leesrij is blkio.throttle.io_serviced |
total_cpu_kernel_ms |
De cumulatieve CPU-gebruikerskerneltijd in milliseconden sinds de laatste reset van de Resource Governor-statistieken. | In Linux is deze statistiek afkomstig uit het cpuacct subsysteem, waarbij de waarde in de gebruikersrij is cpuacct.stat |
total_cpu_user_ms |
De cumulatieve CPU-gebruikerstijd in milliseconden sinds de laatste reset van de Resource Governor-statistieken. | Op Linux wordt deze statistiek afkomstig van het cpuacct subsysteem, waarbij de waarde op de systeemrij is cpuacct.stat |
active_processes_count |
Het aantal externe processen dat wordt uitgevoerd op het moment van de aanvraag. | In Linux wordt deze statistiek afkomstig uit het pids subsysteem, waarbij de waarde is pids.current |