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) - 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.
Vereiste voorwaarden
De Linux-versie moet worden ondersteund door SQL Server, maar bevat geen Docker Engine. Ondersteunde versies zijn onder andere:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
U moet een hulpprogramma hebben voor het uitvoeren van Transact-SQL (T-SQL)-opdrachten. Een query-editor is nodig voor configuratie en validatie na installatie. We raden Azure Data Studio aan, een gratis download die wordt uitgevoerd op Linux.
- Pakketlocatie voor de Java-extensies bevindt zich in de SQL Server Linux-bronopslagplaatsen. Als u al bronopslagplaatsen hebt geconfigureerd voor de installatie van de database-engine, kunt u de
mssql-server-extensibility-javainstallatieopdrachten voor pakketten uitvoeren met dezelfde opslagplaatsregistratie.
Taalextensies worden ook ondersteund in Linux-containers. We bieden geen vooraf gemaakte containers met taalextensies, maar u kunt er een maken vanuit de SQL Server-containers met behulp van een voorbeeldsjabloon die beschikbaar is 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. Zie Python- en R-scripts uitvoeren met Machine Learning Services op SQL Server 2019 Big Data-clusters voor meer informatie.
Pakketlijst
Op een apparaat met internetverbinding worden pakketten onafhankelijk van de Database Engine gedownload en geïnstalleerd met behulp van het pakketinstallatieprogramma voor elk besturingssysteem. In de volgende tabel worden alle beschikbare pakketten beschreven.
| Naam van het pakket | Van toepassing op | Beschrijving |
|---|---|---|
mssql-server-extensibility |
Alle talen | Uitbreidbaarheidsframework dat wordt gebruikt voor de Java-taalextensie |
mssql-server-extensibility-java |
Java |
Van toepassing op: ALLEEN SQL Server 2019 (15.x) op Linux Uitbreidbaarheidsframework dat wordt gebruikt voor de Java-taalextensie en bevat een ondersteunde Java-runtime |
Java-taalextensie installeren
U kunt taalextensies en Java op Linux installeren door te installeren mssql-server-extensibility-java. Wanneer u het pakket installeert mssql-server-extensibility-java, wordt JRE 11 automatisch geïnstalleerd als het nog niet is geïnstalleerd. Ook wordt het JVM-pad toegevoegd aan een omgevingsvariabele met de naam 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.
Notitie
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.
U kunt naar wens elke Java-runtime downloaden en installeren, inclusief de nieuwste Microsoft Build van OpenJDK of 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
U kunt Language Extensions voor Java op Red Hat installeren met behulp van de volgende opdracht.
Hint
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
U kunt Taalextensies voor Java op Ubuntu installeren met behulp van de volgende opdracht.
Hint
Voer indien apt-get update mogelijk uit om pakketten op het systeem te vernieuwen vóór de installatie. Daarnaast hebben sommige Docker-installatiekopieën van Ubuntu mogelijk niet de https apt-transportoptie. Als u deze wilt installeren, gebruikt u apt-get install apt-transport-https.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
SUSE-installatieopdracht
U kunt Taalextensies voor Java op SUSE installeren met behulp van de volgende opdracht.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Configuratie na installatie (vereist)
Machtigingen verlenen voor Linux
U hoeft deze stap niet uit te voeren als u externe bibliotheken gebruikt. De aanbevolen manier van werken is het gebruik van externe bibliotheken. Zie CREATE EXTERNAL LIBRARY voor hulp bij het maken van een externe bibliotheek vanuit uw
jarbestandAls u geen externe bibliotheken gebruikt, moet u SQL Server machtigingen geven voor het uitvoeren van de Java-klassen in uw
jar.Als u lees- en uitvoertoegang tot een
jarbestand wilt verlenen, voert u de volgende chmod-opdracht uit op hetjarbestand. We raden u aan uw klasbestanden altijd in eenjarte plaatsen wanneer u met SQL Server werkt. Zie Een Java-.jar-bestand maken op basis van klassebestanden voor hulp bij het makenjarvan een bestand.chmod ug+rx <MyJarFile.jar>U moet ook
mssql_satellite-machtigingen verlenen voor hetjar-bestand om te lezen en uit te voeren.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. Dit is vereist als u de installatie nog niet eerder hebt uitgevoerd.sudo /opt/mssql/bin/mssql-conf setupUitgaande netwerktoegang inschakelen. Uitgaande netwerktoegang is standaard uitgeschakeld. Als u uitgaande aanvragen wilt inschakelen, stelt u de
outboundnetworkaccessbooleaanse eigenschap in met behulp van het hulpprogramma mssql-conf . Zie SQL Server configureren in Linux met mssql-confvoor 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 u eraan wanneer een instelling voor uitbreidbaarheid wordt gewijzigd.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceExterne scriptuitvoering inschakelen met behulp van Azure Data Studio of een ander hulpprogramma, zoals SQL Server Management Studio (alleen Windows), waarop T-SQL wordt uitgevoerd.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;Start de
mssql-launchpaddservice opnieuw op.Voor elke database waarin u taalextensies wilt gebruiken, moet u de externe taal registreren bij CREATE EXTERNAL LANGUAGE. Zie de stappen in de volgende sectie.
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 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 wordt de omgevingsvariabele JRE_HOME gebruikt om het pad te bepalen waaruit de JVM moet worden gezocht en geïnitialiseerd.
De CREATE EXTERNAL LANGUAGE DDL biedt een parameter (ENVIRONMENT_VARIABLES) om omgevingsvariabelen specifiek in te stellen voor het proces dat als host fungeert voor de extensie. Dit proces is de aanbevolen en meest effectieve manier om omgevingsvariabelen in te stellen die zijn vereist voor externe taalextensies.
Zie CREATE EXTERNAL LANGUAGE voor meer informatie.
Installatie controleren
Integratie van Java-functies bevat geen bibliotheken, maar u kunt uitvoeren grep -r JRE_HOME /etc om het maken van de JAVA_HOME omgevingsvariabele te bevestigen.
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. Azure Data Studio is een goede keuze. Andere veelgebruikte hulpprogramma's, zoals SQL Server Management Studio, zijn alleen beschikbaar voor Windows. Als u een Windows-computer met deze hulpprogramma's hebt, gebruikt u deze om verbinding te maken met uw Linux-installatie van de database-engine.
Volledige installatie van SQL Server en Java Language Extension
U kunt de database-engine en java-taalextensie in één procedure installeren en configureren door Java-pakketten en -parameters toe te voegen aan een opdracht waarmee de Database Engine wordt geïnstalleerd.
Geef een opdrachtregel op die de database-engine bevat, plus taaluitbreidingsfuncties.
U kunt Java-uitbreidbaarheid toevoegen 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 hulpprogramma mssql-conf voor deze taak.
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.
Start de service opnieuw op als u hierom wordt gevraagd.
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
Volg de offline-installatie instructies voor het installeren van de pakketten. Zoek uw downloadsite en download vervolgens specifieke pakketten met behulp van de pakketlijst verderop in deze sectie.
Hint
Verschillende hulpprogramma's voor pakketbeheer bieden opdrachten waarmee u pakketafhankelijkheden kunt bepalen. Gebruik sudo yum deplist [package]voor yum. Gebruik voor Ubuntu sudo apt-get install --reinstall --download-only [package name] gevolgd door dpkg -I [package name].deb.
Site downloaden
U kunt de pakketten downloaden van https://packages.microsoft.com/. Alle pakketten voor Java worden gekoppeld aan het Database Engine-pakket.
Paden downloaden
| Pakket | Distributie | 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 moeten u helpen bepalen welke bestanden u moet ophalen.
Kernpakketten
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Beperkingen
Impliciete verificatie is momenteel niet beschikbaar in Linux, wat betekent dat u vanuit een lopende Java-sessie geen verbinding terug naar de server kunt maken om toegang te krijgen tot gegevens of andere bronnen.
Resourcebeheer
Er is pariteit tussen Linux en Windows voor resourcebeheer voor externe resourcegroepen, maar de statistieken voor sys.dm_resource_governor_external_resource_pools hebben momenteel verschillende eenheden in Linux.
Notitie
Statistieken in de volgende tabel zijn afkomstig van de opgegeven subsystemen voor besturingsgroepen (cgroups).
| Kolomnaam | Beschrijving | Waarde in Linux |
|---|---|---|
peak_memory_kb |
De maximale hoeveelheid geheugen die wordt gebruikt voor de resourcegroep. | In Linux wordt deze statistiek afkomstig uit het memory subsysteem, waarbij de waarde is memory.max_usage_in_bytes |
write_io_count |
De totale schrijf I/O-bewerkingen die zijn verwerkt sinds de statistieken van de Resource Governor opnieuw zijn ingesteld. | In Linux is deze statistiek afkomstig uit het blkio subsysteem, waarbij de waarde op de schrijfrij is blkio.throttle.io_serviced |
read_io_count |
De totale gelezen IO's die zijn uitgegeven sinds de statistieken van Resource Governor opnieuw zijn ingesteld. | In Linux is deze statistiek afkomstig uit het blkio subsysteem, waarbij de waarde in de leesrij is blkio.throttle.io_serviced |
total_cpu_kernel_ms |
De cumulatieve cpu-gebruikerskerneltijd in milliseconden sinds de statistieken van Resource Governor opnieuw zijn ingesteld. | 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 Resource Governor-statistieken opnieuw zijn ingesteld. | In Linux is deze statistiek afkomstig uit het cpuacct subsysteem, waarbij de waarde op de systeemrijwaarde 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 |