Kommentar
Å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) 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
Din Linux-distribution måste stödjas av SQL Server. Behållare täcks separat i en senare kula. Stödda distributioner inkluderar:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
Du behöver en frågeredigerare för att köra Transact-SQL (T-SQL)-kommandon för post-installation konfiguration och validering. Vi rekommenderar MSSQL-tillägget för Visual Studio Code. Det är en gratis nedladdning som körs på Linux.
- 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-javapaketinstallationskommandona 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)
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
jarfil, 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 .
jarFör att ge läs- och exekveringsåtkomst till en
jarfil, kör följandechmodkommando på filenjar. Lägg alltid dina kursfiler 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 för att läsa och körajarfilen.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 steg krävs om du inte har kört setupen tidigare.sudo /opt/mssql/bin/mssql-conf setupAktivera 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
outboundnetworkaccessmed verktygetmssql-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 omstartmeddelande påminner dig varje gång du ändrar en utbyggbarhetsrelaterad inställning.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceAktivera 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;mssql-launchpaddStarta om tjänsten igen.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.
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-javaAcceptera licensavtal och slutför konfigurationen efter installationen. Använd verktyget
mssql-conf.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 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.1000mssql-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 |