Instalace rozšíření jazyka Java pro SQL Server v Linuxu

Platí pro: SQL Server 2019 (15.x) v Linuxu a novějších verzích

Zjistěte, jak nainstalovat komponentu Rozšíření jazyka Java pro SQL Server v Linuxu. Rozšíření jazyka Java je součástí jazykových rozšíření SQL Serveru a doplňku databázového systému.

I když můžete databázový stroj a rozšíření jazyka nainstalovat souběžně, je osvědčeným postupem nejprve nainstalovat a nakonfigurovat databázový stroj SQL Serveru, abyste mohli vyřešit případné problémy před přidáním dalších komponent.

Předpoklady

  • Balíček rozšíření Java je v repozitářích zdrojových kódů SQL Server Linuxu. Pokud jste už nakonfigurovali zdrojové repozitáře pro instalaci Database Engine, spusťte mssql-server-extensibility-java příkazy pro instalaci balíčků se stejnou registrací repozitáře.
  • Rozšíření jazyka se také podporují v kontejnerech Linuxu. Předpřipravené kontejnery s rozšířením jazyka nejsou dostupné, ale můžete si jeden vytvořit z SQL Server kontejnerů pomocí ukázkové šablony dostupné na GitHub.

  • Jazykové rozšíření a služby Machine Learning Services se ve výchozím nastavení instalují v clusterech s velkými objemy dat SQL Serveru. Pokud používáte clustery s velkými objemy dat, nemusíte postupovat podle kroků v tomto článku.

Seznam balíčků

Na zařízení připojeném k internetu stahujete a instalujete balíčky nezávisle na Database Engine pomocí instalátoru balíčků pro každý operační systém. Následující tabulka popisuje všechny dostupné balíčky.

Název balíčku Vztahuje se na Description
mssql-server-extensibility Všechny jazyky Architektura rozšiřitelnosti používaná pro rozšíření jazyka Java
mssql-server-extensibility-java Java Architektura rozšiřitelnosti používaná pro rozšíření jazyka Java a zahrnuje podporovaný modul runtime Javy.

Platí na: SQL Server 2019 (15.x) pouze na Linuxu

Instalace rozšíření jazyka Java

Pro instalaci rozšíření jazyka a Javy na Linux nainstalujte mssql-server-extensibility-java balíček. Balíček automaticky nainstaluje JRE 11 (pokud ještě není nainstalován) a přidá cestu JVM k proměnné prostředí nazvané JRE_HOME.

Pokud chcete povolit rozšíření jazyka Java, vytvořte vlastní binární soubor podle pokynů na stránce rozšíření jazyka Java na GitHubu.

Note

Na serveru připojeném k internetu se v rámci instalace hlavního balíčku stáhnou a nainstalují závislosti balíčků. Pokud váš server není připojený k internetu, podívejte se na další podrobnosti v offline nastavení.

Můžete si stáhnout a nainstalovat jakýkoli Java runtime, včetně nejnovější Microsoft Build pro OpenJDK nebo oficiálně licencovaného Java runtime. Počínaje SQL Serverem 2022 (16.x) nenainstaluje instalační program SQL Serveru modul runtime Java.

Pokud chcete povolit rozšíření jazyka Java, vytvořte vlastní binární soubor podle pokynů na stránce rozšíření jazyka Java na GitHubu.

Příkaz Instalace Red Hatu

Pro instalaci rozšíření jazyka pro Java na Red Hat použijte následující příkaz.

Tip

Pokud je to možné, spusťte yum clean all aktualizaci balíčků v systému před instalací.

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

Příkaz pro instalaci Ubuntu

Pro instalaci rozšíření jazyka pro Java na Ubuntu použijte následující příkaz.

Tip

Pokud je to možné, spusťte apt-get update aktualizaci balíčků v systému před instalací. Některé obrazy Ubuntu Dockeru balíček apt-transport-https neobsahují. Pokud ho chcete nainstalovat, spusťte apt-get install apt-transport-httpspříkaz .

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

Příkaz instalace SUSE

Pro instalaci rozšíření jazyka pro Java na SUSE použijte následující příkaz.

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

Konfigurace po instalaci (vyžadována)

  1. Udělení oprávnění v Linuxu

    Pokud používáte externí knihovny, nemusíte tento krok provádět. Externí knihovny jsou doporučený přístup. Pro pomoc s vytvořením externí knihovny ze jar souboru viz CREATE EXTERNAL LIBRARY.

    Pokud nepoužíváte externí knihovny, musíte SQL Serveru poskytnout oprávnění ke spouštění tříd Java ve vašem jarprostředí .

    Pro udělení čtení a spuštění souboru jar spusťte chmod následující příkaz na soubor.jar Vždy si při práci se SQL Server vkládejte své třídní soubory do ajar. Nápovědu jark vytvoření souboru java .jar ze souborů třídy najdete v tématu Vytvoření souboru java .jar.

    chmod ug+rx <MyJarFile.jar>
    

    Také musíte dát mssql_satellite oprávnění ke čtení a spuštění souboru jar .

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    Další konfigurace je primárně prostřednictvím nástroje mssql-conf.

  2. mssql Přidejte uživatelský účet použitý ke spuštění služby SQL Serveru. Tento krok je nutný, pokud jste předtím nespustili nastavení.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Povolte odchozí síťový přístup. Odchozí síťový přístup je ve výchozím nastavení zakázaný. Pro povolení odchozích požadavků nastavte v nástroji mssql-conf vlastnost outboundnetworkaccess Booleovské hodnoty. Další informace naleznete v tématu Konfigurace SQL Serveru v Linuxu pomocí mssql-conf.

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Restartujte službu Launchpad SYSTÉMU SQL Server a instanci databázového stroje, abyste mohli číst aktualizované hodnoty ze souboru INI. Životopis vás upozorní pokaždé, když upravíte nastavení související s rozšiřitelností.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Povolte spuštění externího skriptu. K instanci SQL Serveru se můžete připojit pomocí libovolného známého klientského nástroje SQL Serveru, jako je sqlcmd, SQL Server Management Studio (SSMS) nebo rozšíření MSSQL pro Visual Studio Code.

    EXECUTE sp_configure 'external scripts enabled', 1;
    
    RECONFIGURE WITH OVERRIDE;
    
  6. mssql-launchpadd Restartujte službu znovu.

  7. Pro každou databázi, kde chcete používat jazyková rozšíření, zaregistrujte externí jazyk pomocí CREATE EXTERNAL LANGUAGE. Viz další část pro kroky.

Registrace externího jazyka

Pro každou databázi, kde chcete používat jazyková rozšíření, zaregistrujte externí jazyk pomocí CREATE EXTERNAL LANGUAGE.

Následující příklad přidá externí jazyk s názvem Java do databáze na SQL Serveru v Linuxu.

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"}'
);

U rozšíření Java určuje proměnná JRE_HOME prostředí cestu k nalezení a inicializaci JVM.

CREATE EXTERNAL LANGUAGE DDL poskytuje ENVIRONMENT_VARIABLES parametr pro nastavení proměnných prostředí pro proces, který hostuje rozšíření. Použijte tento parametr k nastavení proměnných prostředí, které externí jazyková rozšíření vyžadují.

Další informace najdete na webu CREATE EXTERNAL LANGUAGE.

Ověření instalace

Integrace funkcí Java neobsahuje knihovny, ale můžete spustit a grep -r JRE_HOME /etc potvrdit, že proměnná JRE_HOME prostředí existuje.

Pokud chcete ověřit instalaci, spusťte skript T-SQL, který spouští systémovou uloženou proceduru, která vyvolá Javu. Pro tento úkol potřebujete nástroj pro dotazy. K instanci SQL Serveru se můžete připojit pomocí libovolného známého klientského nástroje SQL Serveru, jako je sqlcmd, SQL Server Management Studio (SSMS) nebo rozšíření MSSQL pro Visual Studio Code.

Úplná instalace SQL Serveru a rozšíření jazyka Java

Pro instalaci a konfiguraci Database Engine a rozšíření Java Language v jednom postupu přidejte Java balíčky a parametry k příkazu, který instaluje Database Engine.

  1. Zadejte příkazový řádek, který obsahuje databázový stroj a funkce rozšíření jazyka.

    Následující příkaz přidává rozšiřitelnost Java k instalaci Database Engine.

    sudo yum install -y mssql-server mssql-server-extensibility-java
    
  2. Přijměte licenční smlouvy a dokončete konfiguraci po instalaci. Použijte mssql-conf nástroj.

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

    Tento krok vás vyzve, abyste přijali licenční smlouvu pro databázový stroj, zvolili edici a nastavili heslo správce.

  3. Pokud se k tomu vyptává, restartujte službu.

    sudo systemctl restart mssql-server.service
    

Bezobslužná instalace

Použijte bezobslužnou instalaci databázového stroje a přidejte balíčky pro mssql-server-extensibility-java.

Instalace offline

Pro instalaci balíčků postupujte podle offline instalačních instrukcí. Najděte si stránku ke stažení a poté si stáhněte konkrétní balíčky uvedené později v této sekci.

Tip

Několik nástrojů pro správu balíčků poskytuje příkazy, které vám pomohou určit závislosti balíčků. Pro yum použijte sudo yum deplist [package]. Pro Ubuntu použijte sudo apt-get install --reinstall --download-only [package name] následovaný dpkg -I [package name].deb.

Stáhnout z webu

Stáhněte si balíčky z https://packages.microsoft.com/. Stránka hostuje všechny Java balíčky spolu s balíčkem Database Engine.

Cesty ke stažení

Package Distribuce Umístění pro stažení
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/

Seznam balíčků

V závislosti na tom, která rozšíření chcete použít, si stáhněte balíčky potřebné pro konkrétní jazyk. Přesná jména souborů obsahují informace o platformě v příponě, ale následující názvy souborů vám pomohou určit, které soubory si pořídit.

  • Základní balíčky

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

    • mssql-server-extensibility-java-15.0.1000

Omezení

Implicitní autentizace není na Linuxu dostupná. Java kód běžící v externím procesu se nemůže připojit zpět k serveru a přistupovat k datům nebo jiným zdrojům.

Zásady správného řízení prostředků

Linux a Windows mají paritu v správě zdrojů pro externí zdrojové pooly, ale statistiky pro sys.dm_resource_governor_external_resource_pools aktuálně ukazují různé jednotky na Linuxu.

Note

Statistiky v následující tabulce jsou čerpány ze specifikovaných podsystémů Control Groups (cgroups).

Název sloupce Description Hodnota v Linuxu
peak_memory_kb Maximální paměť, kterou zdrojový fond používá. V Linuxu je tato statistika zdrojem z subsystému memory , kde je hodnota memory.max_usage_in_bytes
write_io_count Celkový počet zápisových IO vydaných od posledního resetu statistik Resource Governor. V Linuxu je tato statistika čerpána ze subsystému blkio, kde je hodnota na řádku zápisu blkio.throttle.io_serviced.
read_io_count Celkový počet přečtených IO vydaných od posledního resetu statistik Resource Governor. Na Linuxu je tato statistika získána z podsystému blkio , kde je hodnota v řádku čtení blkio.throttle.io_serviced
total_cpu_kernel_ms Kumulativní čas uživatele CPU v milisekundách od posledního resetu statistik Resource Governor. V Linuxu je tato statistika zdrojem ze subsystému cpuacct , kde je hodnota na řádku uživatele cpuacct.stat
total_cpu_user_ms Kumulativní uživatelský čas CPU v milisekundách od posledního resetu statistik Resource Governor. Na Linuxu je tato statistika pocházela z cpuacct podsystému, kde je hodnota v řádku systému cpuacct.stat
active_processes_count Počet externích procesů spuštěných v okamžiku požadavku. V Linuxu je tato statistika zdrojem z subsystému pids , kde je hodnota pids.current