Installera SQL Server Java Language Extension på Linux

Gäller för: SQL Server 2019 (15.x) i 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 Databasmotor för SQL Server först så att du kan lösa eventuella problem innan du lägger till fler komponenter.

Förutsättningar

  • Java-tilläggspaketet finns i SQL Server Linux-källkodsarkiven. Om du redan har konfigurerat källkodsarkiv för Database Engine-installationen, kör mssql-server-extensibility-java paketinstallationskommandona med samma repo-registrering.
  • Språktillägg stöds också på Linux-containrar. Färdigbyggda containrar med Language Extensions finns inte tillgängliga, men du kan skapa en från SQL Server-containrarna genom att använda ett exempelmall som finns på GitHub.

  • Språktillägg och strojové učenie Services installeras som standard på SQL Server-stordatakluster. Om du använder stordatakluster behöver du inte följa stegen i den här artikeln.

Paketlista

På en internetansluten enhet laddar du ner och installerar paket oberoende av Database Engine genom att använda paketinstallationsprogrammet för varje operativsystem. I följande tabell beskrivs alla tillgängliga paket.

Paketnamn Gäller för Description
mssql-server-extensibility Alla språk Utökningsbarhetsramverk som används för Java-språktillägget
mssql-server-extensibility-java Java Utökningsbarhetsramverk som används för Java-språktillägget och innehåller en Java-körning som stöds

Gäller för: SQL Server 2019 (15.x) endast på Linux

Installera Java-språktillägget

För att installera Language Extensions och Java på Linux, installera paketetmssql-server-extensibility-java. Paketet installerar automatiskt JRE 11 (om det inte redan är installerat) och lägger till JVM-sökvägen till en miljövariabel som heter 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.

Note

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 ner och installera vilken Java-runtime som helst, inklusive den senaste Microsoft Build för OpenJDK eller en officiellt licensierad Java-runtime. 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

För att installera Language Extensions för Java på Red Hat, använd följande kommando.

Tip

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

För att installera Language Extensions för Java på Ubuntu, använd följande kommando.

Tip

Om möjligt kör du apt-get update för att uppdatera paket i systemet före installationen. Vissa Ubuntu Docker-avbilder inkluderar inte paketet apt-transport-https . Installera det genom att köra apt-get install apt-transport-https.

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

SUSE-installationskommando

För att installera Language Extensions för Java på SUSE, använd följande kommando.

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

Konfiguration efter installation (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. Externa bibliotek är det rekommenderade tillvägagångssättet. För hjälp med att skapa ett externt bibliotek från din jar fil, se CREATE EXTERNAL LIBRARY.

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

    För att ge läs- och exekveringsåtkomst till en jar fil, kör följande chmod kommando på filen jar . Lägg alltid dina kursfiler 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 för att läsa och köra jar filen.

    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 steg krävs om du inte har kört setupen tidigare.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Aktivera utgående nätverksåtkomst. Utgående nätverksåtkomst är inaktiverad som standard. För att aktivera utgående förfrågningar, ställ in egenskapen Boolean outboundnetworkaccess med 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 omstartmeddelande påminner dig varje gång du ändrar en utbyggbarhetsrelaterad inställning.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Aktivera körning av externa skript. Du kan ansluta till en instans av SQL Server med alla välbekanta SQL Server-klientverktyg, till exempel sqlcmd, SQL Server Management Studio (SSMS) eller MSSQL-tillägget för Visual Studio Code.

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

  7. För varje databas där du vill använda språktillägg, registrera det externa språket med CREATE EXTERNAL LANGUAGE. Se nästa avsnitt för steg.

Registrera externt språk

För varje databas där du vill använda språktillägg, registrera det externa språket med CREATE EXTERNAL LANGUAGE.

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 bestämmer miljövariabeln JRE_HOME vägen för att hitta och initiera JVM.

CREATE EXTERNAL LANGUAGE DDL tillhandahåller en ENVIRONMENT_VARIABLES parameter för att sätta miljövariabler för processen som är värd för tillägget. Använd denna parameter för att sätta miljövariabler som externa språktillägg kräver.

Mer information finns i CREATE EXTERNAL LANGUAGE.

Kontrollera installation

Java-funktionsintegration inkluderar inte bibliotek, men du kan köra grep -r JRE_HOME /etc för att bekräfta att miljövariabeln JRE_HOME finns.

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. Du kan ansluta till en instans av SQL Server med alla välbekanta SQL Server-klientverktyg, till exempel sqlcmd, SQL Server Management Studio (SSMS) eller MSSQL-tillägget för Visual Studio Code.

Fullständig installation av SQL Server och Java Language Extension

För att installera och konfigurera Database Engine och Java Language Extension i en och samma procedur, lägg till Java-paket och parametrar i ett kommando som installerar Database Engine.

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

    Följande kommando lägger till Java-utbyggbarhet i en installation av Database Engine.

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

    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 blir tillfrågad.

    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ör att installera paketen, följ instruktionerna för offline-installation . Hitta din nedladdningssida och ladda sedan ner de specifika paketen som listas senare i detta avsnitt.

Tip

Flera pakethanteringsverktyg tillhandahåller kommandon som hjälper dig att identifiera paketberoenden. För yumanvä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

Ladda ner paketen från https://packages.microsoft.com/. Sajten är värd för alla Java-paket tillsammans med Database Engine-paketet.

Ladda ned sökvägar

Package Distribution 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 inkluderar plattformsinformation i suffixet, men följande filnamn hjälper dig att avgöra vilka filer du ska hämta.

  • Kärnpaket

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

    • mssql-server-extensibility-java-15.0.1000

Limitations

Implicit autentisering finns inte tillgängligt på Linux. Java-kod som körs i den externa processen kan inte ansluta tillbaka till servern för att komma åt data eller andra resurser.

Resursförvaltning

Linux och Windows har paritet 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.

Note

Statistiken i följande tabell hämtas från de specificerade kontrollgrupperna (cgroups) delsystemen.

Kolumnnamn Description Värde i Linux
peak_memory_kb Det maximala minne som resurspoolen använder. 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-IOs som utfärdats sedan den senaste återställningen av Resource Governor-statistiken. 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 Det totala antalet lästa IO:er som utfärdats sedan den senaste återställningen av Resource Governor-statistiken. På Linux hämtas denna statistik från blkio delsystemet, där värdet på läsraden är blkio.throttle.io_serviced
total_cpu_kernel_ms Den kumulativa CPU-användarkärntiden i millisekunder sedan den senaste återställningen av Resource Governor-statistiken. 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 senaste återställning av Resource Governor-statistiken. På Linux hämtas denna statistik från cpuacct delsystemet, där värdet på systemraden ä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