Delen via


SQL Server Java Language Extension installeren in Linux

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

  • 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-java installatieopdrachten voor pakketten uitvoeren met dezelfde opslagplaatsregistratie.

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)

  1. 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 jar bestand

    Als 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 jar bestand wilt verlenen, voert u de volgende chmod-opdracht uit op het jar bestand. We raden u aan uw klasbestanden altijd in een jar te plaatsen wanneer u met SQL Server werkt. Zie Een Java-.jar-bestand maken op basis van klassebestanden voor hulp bij het maken jarvan een bestand.

    chmod ug+rx <MyJarFile.jar>
    

    U moet ook mssql_satellite-machtigingen verlenen voor het jar-bestand om te lezen en uit te voeren.

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    Aanvullende configuratie is voornamelijk via het hulpprogramma mssql-conf.

  2. Voeg het mssql gebruikersaccount 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 setup
    
  3. Uitgaande netwerktoegang inschakelen. Uitgaande netwerktoegang is standaard uitgeschakeld. Als u uitgaande aanvragen wilt inschakelen, stelt u de outboundnetworkaccess booleaanse 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 1
    
  4. Start 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.service
    
  5. Externe 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;
    
  6. Start de mssql-launchpadd service opnieuw op.

  7. 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.

  1. 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-java
    
  2. Accepteer licentieovereenkomsten en voltooi de configuratie na de installatie. Gebruik het hulpprogramma mssql-conf voor deze taak.

    sudo /opt/mssql/bin/mssql-conf setup
    

    In deze stap wordt u gevraagd de gebruiksrechtovereenkomst voor de database-engine te accepteren, een editie te kiezen en het beheerderswachtwoord in te stellen.

  3. 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.1000
    • mssql-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