Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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
Linux-versionen måste stödjas av SQL Server, men innehåller inte Docker-motorn. Exempel på versioner som stöds är:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
Du bör ha ett verktyg för att köra kommandon för Transact-SQL (T-SQL). En frågeredigerare krävs för konfiguration och validering efter installationen. Vi rekommenderar Azure Data Studio, en kostnadsfri nedladdning som körs på Linux.
- 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-javapaketinstallationskommandona med samma lagringsplatsregistrering.
Språktillägg stöds också på Linux-containrar. Vi tillhandahåller inte fördefinierade containrar med språktillägg, men du kan skapa en från SQL Server-containrarna med hjälp av en exempelmall som är tillgänglig på GitHub.
Språktillägg och Machine Learning 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. Mer information finns i Köra Python- och R-skript med Machine Learning Services på SQL Server 2019 Big Data Clusters.
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)
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
jarfinns i SKAPA EXTERNT BIBLIOTEKOm du inte använder externa bibliotek måste du ge SQL Server behörighet att köra Java-klasserna i .
jarOm du vill bevilja läs- och körningsåtkomst till en
jarfil kör du följande chmod-kommando påjarfilen. Vi rekommenderar att du alltid placerar dina klassfiler i enjarnär du arbetar med SQL Server. Mer information om hur du skapar enjarfinns i Skapa en Java .jar-fil från klassfiler.chmod ug+rx <MyJarFile.jar>Du måste också ge
mssql_satellitebehörigheter tilljarfilen för att läsa/köra.chown mssql_satellite:mssql_satellite <MyJarFile.jar>Ytterligare konfiguration sker främst via verktyget mssql-conf.
Lägg till användarkontot
mssqlsom 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 setupAktivera 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
outboundnetworkaccessbooleska 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 1Starta 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.serviceAktivera 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;mssql-launchpaddStarta om tjänsten igen.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.
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-javaAcceptera licensavtal och slutför konfigurationen efter installationen. Använd verktyget mssql-conf för den här uppgiften.
sudo /opt/mssql/bin/mssql-conf setupI det här steget uppmanas du att godkänna licensavtalet för databasmotorn, välja en utgåva och ange administratörslösenordet.
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.1000mssql-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 |