Dela via


Installera SQL Server Java Language Extension på Linux

Gäller för: SQL Server 2019 (15.x) – Linux och senare versioner

Lär dig hur du installerar Java Language Extension-komponenten för SQL Server i Linux. Java Language Extension är en del av SQL Server Language Extensions och ett tillägg till databasmotorn.

Även om du kan installera databasmotorn och språktillägg samtidigt är det en bra idé att installera och konfigurera SQL Server Database Engine först så att du kan lösa eventuella problem innan du lägger till fler komponenter.

Förutsättningar

  • Paketplatsen för Java-tilläggen finns i SQL Server Linux-källlagringsplatserna. Om du redan har konfigurerat källlagringsplatser för installationen av databasmotorn kan du köra mssql-server-extensibility-java paketinstallationskommandona med samma lagringsplatsregistrering.

Paketlista

På en Internetansluten enhet laddas paket ned och installeras oberoende av databasmotorn med hjälp av paketinstallationsprogrammet för varje operativsystem. I följande tabell beskrivs alla tillgängliga paket.

Paketnamn Gäller för Beskrivning
mssql-server-extensibility Alla språk Utökningsbarhetsramverk som används för Java-språktillägget
mssql-server-extensibility-java Java Gäller för: ENDAST SQL Server 2019 (15.x) på Linux

Utökningsbarhetsramverk som används för Java-språktillägget och innehåller en Java-körning som stöds

Installera Java-språktillägget

Du kan installera Språktillägg och Java på Linux genom att mssql-server-extensibility-javainstallera . När du installerar mssql-server-extensibility-javainstallerar paketet automatiskt JRE 11 om det inte redan är installerat. Den lägger också till JVM-sökvägen till en miljövariabel med namnet JRE_HOME.

Om du vill aktivera Java Language Extension skapar du en anpassad binärfil genom att följa anvisningarna från sidan Java Language Extension på GitHub.

Anmärkning

På en Internetansluten server laddas paketberoendena ned och installeras som en del av huvudpaketinstallationen. Om servern inte är ansluten till Internet kan du läsa mer i offlinekonfigurationen.

Du kan ladda ned och installera valfri Java-körning efter behov, inklusive den senaste Microsoft Build of OpenJDK eller officiellt licensierad Java-körning. Från och med SQL Server 2022 (16.x) installerar SQL Server-installationsprogrammet inte någon Java-körning.

Om du vill aktivera Java Language Extension skapar du en anpassad binärfil genom att följa anvisningarna från sidan Java Language Extension på GitHub.

Red Hat-installationskommando

Du kan installera Språktillägg för Java på Red Hat med hjälp av följande kommando.

Tips/Råd

Om möjligt kör du yum clean all för att uppdatera paket i systemet före installationen.

# Install as root or sudo
sudo yum install mssql-server-extensibility-java

Ubuntu-installationskommando

Du kan installera Språktillägg för Java på Ubuntu med hjälp av följande kommando.

Tips/Råd

Om möjligt kör du apt-get update för att uppdatera paket i systemet före installationen. Dessutom kanske vissa Docker-avbildningar av Ubuntu inte har transportalternativet https apt. Om du vill installera det använder du apt-get install apt-transport-https.

# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java

SUSE-installationskommando

Du kan installera Språktillägg för Java på SUSE med hjälp av följande kommando.

# Install as root or sudo
sudo zypper install mssql-server-extensibility-java

Konfiguration efter installationen (krävs)

  1. Bevilja behörigheter för Linux

    Du behöver inte utföra det här steget om du använder externa bibliotek. Det rekommenderade sättet att arbeta är att använda externa bibliotek. Hjälp med att skapa ett externt bibliotek från filen jar finns i SKAPA EXTERNT BIBLIOTEK

    Om du inte använder externa bibliotek måste du ge SQL Server behörighet att köra Java-klasserna i .jar

    Om du vill bevilja läs- och körningsåtkomst till en jar fil kör du följande chmod-kommandojar filen. Vi rekommenderar att du alltid placerar dina klassfiler i en jar när du arbetar med SQL Server. Mer information om hur du skapar en jarfinns i Skapa en Java .jar-fil från klassfiler.

    chmod ug+rx <MyJarFile.jar>
    

    Du måste också ge mssql_satellite behörigheter till jar filen för att läsa/köra.

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    Ytterligare konfiguration sker främst via verktyget mssql-conf.

  2. Lägg till användarkontot mssql som används för att köra SQL Server-tjänsten. Detta krävs om du inte har kört installationen tidigare.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Aktivera utgående nätverksåtkomst. Utgående nätverksåtkomst är inaktiverad som standard. Om du vill aktivera utgående begäranden anger du den outboundnetworkaccess booleska egenskapen med hjälp av verktyget mssql-conf . Mer information finns i Konfigurera SQL Server på Linux med mssql-conf.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Starta om SQL Server Launchpad-tjänsten och databasmotorinstansen för att läsa de uppdaterade värdena från INI-filen. Ett omstartsmeddelande påminner dig när en utökningsrelaterad inställning ändras.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Aktivera körning av externa skript med Hjälp av Azure Data Studio eller något annat verktyg som SQL Server Management Studio (endast Windows) som kör T-SQL.

    EXECUTE sp_configure 'external scripts enabled', 1;
    
    RECONFIGURE WITH OVERRIDE;
    
  6. mssql-launchpadd Starta om tjänsten igen.

  7. För varje databas som du vill använda språktillägg i måste du registrera det externa språket med SKAPA EXTERNT SPRÅK. Se steg i nästa avsnitt.

Registrera externt språk

För varje databas som du vill använda språktillägg i måste du registrera det externa språket med SKAPA EXTERNT SPRÅK.

I följande exempel läggs ett externt språk med namnet Java till en databas på SQL Server i 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"}'
);

För Java-tillägget används miljövariabeln JRE_HOME för att fastställa sökvägen för att hitta och initiera JVM från.

CREATE EXTERNAL LANGUAGE DDL innehåller en parameter (ENVIRONMENT_VARIABLES) för att ange miljövariabler specifikt för processen som är värd för tillägget. Den här processen är det rekommenderade och mest effektiva sättet att ange miljövariabler som krävs av externa språktillägg.

Mer information finns i SKAPA EXTERNT SPRÅK.

Verifiera installationen

Java-funktionsintegrering innehåller inte bibliotek, men du kan köra grep -r JRE_HOME /etc för att bekräfta att miljövariabeln har skapats JAVA_HOME .

Verifiera installationen genom att köra ett T-SQL-skript som kör en system lagrad procedur som anropar Java. Du behöver ett frågeverktyg för den här uppgiften. Azure Data Studio är ett bra val. Andra verktyg som används ofta, till exempel SQL Server Management Studio, finns endast tillgängliga för Windows. Om du har en Windows-dator med dessa verktyg använder du den för att ansluta till linux-installationen av databasmotorn.

Fullständig installation av SQL Server och Java Language Extension

Du kan installera och konfigurera databasmotorn och Java Language Extension i en procedur genom att lägga till Java-paket och parametrar på ett kommando som installerar databasmotorn.

  1. Ange en kommandorad som innehåller databasmotorn, plus språktilläggsfunktioner.

    Du kan lägga till Utökningsbarhet för Java i en installation av databasmotorn.

    sudo yum install -y mssql-server mssql-server-extensibility-java
    
  2. Acceptera licensavtal och slutför konfigurationen efter installationen. Använd verktyget mssql-conf för den här uppgiften.

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

    I det här steget uppmanas du att godkänna licensavtalet för databasmotorn, välja en utgåva och ange administratörslösenordet.

  3. Starta om tjänsten om du uppmanas att göra det.

    sudo systemctl restart mssql-server.service
    

Obevakad installation

Använd den obevakade installationen för databasmotorn och lägg till paketen för mssql-server-extensibility-java.

Offline-installation

Följ anvisningarna i Offlineinstallation anvisningar för hur du installerar paketen. Leta upp din nedladdningswebbplats och ladda sedan ned specifika paket med hjälp av paketlistan senare i det här avsnittet.

Tips/Råd

Flera av pakethanteringsverktygen innehåller kommandon som kan hjälpa dig att fastställa paketberoenden. För yum använder du sudo yum deplist [package]. För Ubuntu använder du sudo apt-get install --reinstall --download-only [package name] följt av dpkg -I [package name].deb.

Ladda ned webbplats

Du kan ladda ned paketen från https://packages.microsoft.com/. Alla paket för Java är samlokaliserade med databasmotorpaketet.

Ladda ned sökvägar

Paket Fördelning Nedladdningsplats
mssql/extensibility-java packages Röd hatt 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/

Paketlista

Beroende på vilka tillägg du vill använda laddar du ned de paket som behövs för ett visst språk. Exakta filnamn innehåller plattformsinformation i suffixet, men följande filnamn bör hjälpa dig att avgöra vilka filer som ska hämtas.

  • Kärnpaket

    • mssql-server-15.0.1000
    • mssql-server-extensibility-15.0.1000
  • Java

    • mssql-server-extensibility-java-15.0.1000

Begränsningar

Underförstådd autentisering är för närvarande inte tillgänglig i Linux, vilket innebär att du inte kan ansluta tillbaka till servern från pågående Java för att komma åt data eller andra resurser.

Resursförvaltning

Det finns paritet mellan Linux och Windows för resursstyrning för externa resurspooler, men statistiken för sys.dm_resource_governor_external_resource_pools har för närvarande olika enheter på Linux.

Anmärkning

Statistik i följande tabell hämtas från de angivna undersystemen Kontrollgrupper (cgroups).

Kolumnnamn Beskrivning Värde i Linux
peak_memory_kb Den maximala mängden minne som används för resurspoolen. I Linux hämtas den här statistiken från memory undersystemet, där värdet är memory.max_usage_in_bytes
write_io_count Det totala antalet skriv-I/O:er som utfärdats sedan resource governor-statistiken återställdes. I Linux hämtas den här statistiken från blkio undersystemet, där värdet på skrivraden är blkio.throttle.io_serviced
read_io_count Totala antalet läs-I/O:er som har utfärdats sedan Resource Governor-statistiken återställdes. I Linux hämtas den här statistiken från blkio undersystemet, där värdet på läsraden är blkio.throttle.io_serviced
total_cpu_kernel_ms Den kumulativa CPU-användartiden i kärna i millisekunder sedan resursstyrningsstatistiken återställdes. I Linux hämtas den här statistiken från cpuacct undersystemet, där värdet på användarraden är cpuacct.stat
total_cpu_user_ms Den kumulativa CPU-användartiden i millisekunder sedan resource governor-statistiken återställdes. I Linux hämtas den här statistiken från cpuacct undersystemet, där värdet på systemradsvärdet är cpuacct.stat
active_processes_count Antalet externa processer som körs vid tidpunkten för begäran. I Linux hämtas den här statistiken från pids undersystemet, där värdet är pids.current