Udostępnij za pośrednictwem


Instalowanie rozszerzenia języka Java programu SQL Server w systemie Linux

Dotyczy: SQL Server 2019 (15.x) — Linux i nowsze wersje

Dowiedz się, jak zainstalować składnik rozszerzenia języka Java dla programu SQL Server w systemie Linux. Rozszerzenie języka Java jest częścią SQL Server Language Extensions i dodatkiem do silnika bazy danych.

Mimo że aparat bazy danych i rozszerzenia języka można zainstalować jednocześnie, najlepiej jest najpierw zainstalować i skonfigurować aparat bazy danych programu SQL Server, aby móc rozwiązać wszelkie problemy przed dodaniem kolejnych składników.

Wymagania wstępne

  • Lokalizacja pakietu rozszerzeń Języka Java znajduje się w repozytoriach źródłowych programu SQL Server Linux. Jeśli skonfigurowano już repozytoria źródłowe na potrzeby instalacji silnika baz danych, możesz uruchomić mssql-server-extensibility-java polecenia instalacji pakietu, korzystając z tej samej rejestracji repozytorium.

Lista pakietów

Na urządzeniu połączonym z Internetem pakiety są pobierane i instalowane niezależnie od aparatu bazy danych przy użyciu instalatora pakietów dla każdego systemu operacyjnego. W poniższej tabeli opisano wszystkie dostępne pakiety.

Nazwa pakietu Dotyczy Opis
mssql-server-extensibility Wszystkie języki Struktura rozszerzalności używana dla rozszerzenia języka Java
mssql-server-extensibility-java Jawa Dotyczy: Tylko program SQL Server 2019 (15.x) w systemie Linux

Struktura rozszerzalności używana na potrzeby rozszerzenia języka Java i zawiera obsługiwane środowisko uruchomieniowe Języka Java

Instalowanie rozszerzenia języka Java

Rozszerzenia językowe i język Java można zainstalować w systemie Linux, instalując program mssql-server-extensibility-java. Podczas instalacji mssql-server-extensibility-javapakiet automatycznie instaluje środowisko JRE 11, jeśli nie jest jeszcze zainstalowane. Dodaje również ścieżkę JVM do zmiennej środowiskowej o nazwie JRE_HOME.

Aby włączyć rozszerzenie języka Java, utwórz niestandardowy plik binarny, postępując zgodnie z instrukcjami na stronie Rozszerzenia języka Java w witrynie GitHub.

Uwaga

Na serwerze połączonym z Internetem zależności pakietów są pobierane i instalowane w ramach instalacji pakietu głównego. Jeśli serwer nie jest połączony z Internetem, zobacz więcej szczegółów w konfiguracji offline.

Możesz pobrać i zainstalować dowolne środowisko uruchomieniowe Java zgodnie z potrzebami, w tym najnowszą kompilację Microsoft Build zestawu OpenJDK lub oficjalnie licencjonowane środowisko uruchomieniowe Java. Począwszy od programu SQL Server 2022 (16.x), instalator programu SQL Server nie instaluje środowiska uruchomieniowego Języka Java.

Aby włączyć rozszerzenie języka Java, utwórz niestandardowy plik binarny, postępując zgodnie z instrukcjami na stronie Rozszerzenia języka Java w witrynie GitHub.

Polecenie instalacji Red Hat

Rozszerzenia językowe dla języka Java w systemie Red Hat można zainstalować przy użyciu następującego polecenia.

Wskazówka

Jeśli to możliwe, uruchom polecenie yum clean all , aby odświeżyć pakiety w systemie przed instalacją.

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

Polecenie instalacji systemu Ubuntu

Rozszerzenia językowe dla języka Java w systemie Ubuntu można zainstalować przy użyciu następującego polecenia.

Wskazówka

Jeśli to możliwe, uruchom polecenie apt-get update , aby odświeżyć pakiety w systemie przed instalacją. Ponadto niektóre obrazy Ubuntu w Dockerze mogą nie mieć opcji transportu apt przez protokół HTTPS. Aby go zainstalować, użyj polecenia apt-get install apt-transport-https.

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

Polecenie instalacji systemu SUSE

Rozszerzenia językowe dla języka Java w systemie SUSE można zainstalować przy użyciu następującego polecenia.

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

Konfiguracja po instalacji (wymagana)

  1. Udzielanie uprawnień w systemie Linux

    Nie musisz wykonywać tego kroku, jeśli używasz bibliotek zewnętrznych. Zalecanym sposobem pracy jest używanie bibliotek zewnętrznych. Aby uzyskać pomoc dotyczącą tworzenia biblioteki zewnętrznej z plikujar, zobacz CREATE EXTERNAL LIBRARY (TWORZENIE ZEWNĘTRZNEJ BIBLIOTEKI)

    Jeśli nie używasz bibliotek zewnętrznych, musisz zapewnić programowi SQL Server uprawnienia do wykonywania klas Języka Java w usłudze jar.

    Aby udzielić dostępu do odczytu i wykonania na pliku jar, uruchom następujące polecenie chmod na pliku jar. Zalecamy zawsze umieszczanie plików klas w jar podczas pracy z SQL Server. Aby uzyskać pomoc dotyczącą tworzenia obiektu jar, zobacz Create a Java .jar file from class files (Tworzenie pliku java .jar z plików klas).

    chmod ug+rx <MyJarFile.jar>
    

    Musisz również przyznać plikowi mssql_satellite uprawnienia jar do odczytu i wykonywania.

    chown mssql_satellite:mssql_satellite <MyJarFile.jar>
    

    Dodatkową konfigurację wykonuje się przede wszystkim za pomocą narzędzia mssql-conf.

  2. Dodaj konto użytkownika mssql używane do uruchamiania usługi SQL Server. Jest to wymagane, jeśli wcześniej nie uruchomiono instalacji.

    sudo /opt/mssql/bin/mssql-conf setup
    
  3. Włącz wychodzący dostęp sieciowy. Dostęp sieciowy wychodzący jest domyślnie wyłączony. Aby umożliwić żądania wychodzące, ustaw wartość logiczną outboundnetworkaccess za pomocą narzędzia mssql-conf. Aby uzyskać więcej informacji, zobacz Configure SQL Server on Linux with mssql-conf(Konfigurowanie programu SQL Server w systemie Linux przy użyciumssql-conf).

    # Run as SUDO or root
    # Enable outbound requests over the network
    sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1
    
  4. Uruchom ponownie usługę SQL Server Launchpad oraz instancję silnika bazy danych, aby odczytać zaktualizowane wartości z pliku INI. Komunikat ponownego uruchomienia przypomina o każdej modyfikacji ustawienia związanego z rozszerzalnością.

    systemctl restart mssql-launchpadd
    systemctl restart mssql-server.service
    
  5. Włącz wykonywanie skryptów zewnętrznych przy użyciu narzędzia Azure Data Studio lub innego narzędzia, takiego jak SQL Server Management Studio (tylko system Windows), z uruchomionym językiem T-SQL.

    EXECUTE sp_configure 'external scripts enabled', 1;
    
    RECONFIGURE WITH OVERRIDE;
    
  6. Ponownie uruchom usługę mssql-launchpadd .

  7. Dla każdej bazy danych, w której chcesz używać rozszerzeń językowych, należy zarejestrować język zewnętrzny za pomocą polecenia CREATE EXTERNAL LANGUAGE. Zobacz kroki w następnej sekcji.

Rejestrowanie języka zewnętrznego

Dla każdej bazy danych, w której chcesz używać rozszerzeń językowych, należy zarejestrować język zewnętrzny za pomocą polecenia CREATE EXTERNAL LANGUAGE.

Poniższy przykład dodaje język zewnętrzny o nazwie Java do bazy danych w programie SQL Server w systemie 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"}'
);

W przypadku rozszerzenia Java zmienna środowiskowa JRE_HOME służy do określania ścieżki do znajdowania i inicjowania maszyny wirtualnej JVM.

DDL CREATE EXTERNAL LANGUAGE udostępnia parametr (ENVIRONMENT_VARIABLES) do ustawiania zmiennych środowiskowych specjalnie dla procesu hostowania rozszerzenia. Ten proces jest zalecanym i najbardziej efektywnym sposobem ustawiania zmiennych środowiskowych wymaganych przez rozszerzenia języka zewnętrznego.

Aby uzyskać więcej informacji, zobacz CREATE EXTERNAL LANGUAGE (TWORZENIE JĘZYKA ZEWNĘTRZNEgo).

Weryfikowanie instalacji

Integracja funkcji Języka Java nie obejmuje bibliotek, ale można uruchomić polecenie grep -r JRE_HOME /etc w celu potwierdzenia utworzenia zmiennej środowiskowej JAVA_HOME .

Aby zweryfikować instalację, uruchom skrypt języka T-SQL, który wykonuje systemową procedurę składowaną wywołującą język Java. Do tego zadania potrzebne jest narzędzie do wykonywania zapytań. Usługa Azure Data Studio jest dobrym wyborem. Inne powszechnie używane narzędzia, takie jak SQL Server Management Studio, to tylko system Windows. Jeśli masz komputer z systemem Windows z tymi narzędziami, użyj go do nawiązania połączenia z instalacją systemu Linux aparatu bazy danych.

Pełna instalacja programu SQL Server i rozszerzenia języka Java

Aparat bazy danych i rozszerzenie języka Java można zainstalować i skonfigurować w jednej procedurze, dołączając pakiety i parametry języka Java w poleceniu, które instaluje aparat bazy danych.

  1. Podaj wiersz polecenia zawierający aparat bazy danych oraz funkcje rozszerzenia języka.

    Można dodać rozszerzenia języka Java do instalacji silnika bazy danych.

    sudo yum install -y mssql-server mssql-server-extensibility-java
    
  2. Zaakceptuj umowy licencyjne i ukończ konfigurację po instalacji. W tym zadaniu użyj narzędzia mssql-conf .

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

    W tym kroku zostanie wyświetlony monit o zaakceptowanie umowy licencyjnej silnika baz danych, wybranie wersji i ustawienie hasła administratora.

  3. Uruchom ponownie usługę, jeśli zostanie wyświetlony monit o to.

    sudo systemctl restart mssql-server.service
    

Instalacja nienadzorowana

Użyj instalacji nienadzorowanej dla silnika bazy danych i dodaj pakiety dla mssql-server-extensibility-java.

Instalacja w trybie offline

Postępuj zgodnie z instrukcjami instalacji w trybie offline , aby uzyskać instrukcje dotyczące instalowania pakietów. Znajdź witrynę pobierania, a następnie pobierz określone pakiety przy użyciu listy pakietów w dalszej części tej sekcji.

Wskazówka

Kilka narzędzi do zarządzania pakietami udostępnia polecenia, które mogą ułatwić określenie zależności pakietów. Dla yum użyj polecenia sudo yum deplist [package]. W przypadku systemu Ubuntu użyj polecenia sudo apt-get install --reinstall --download-only [package name] , a następnie dpkg -I [package name].deb.

Pobierz witrynę

Pakiety można pobrać z witryny https://packages.microsoft.com/. Wszystkie pakiety dla języka Java są umieszczone razem z pakietem silnika bazy danych.

Ścieżki pobierania

Pakiet Dystrybucja Lokalizacja pobierania
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/

Lista pakietów

W zależności od rozszerzeń, których chcesz użyć, pobierz pakiety niezbędne dla określonego języka. Dokładne nazwy plików zawierają informacje o platformie w sufiksie, ale następujące nazwy plików powinny ułatwić określenie plików do pobrania.

  • Pakiety podstawowe

    • mssql-server-15.0.1000
    • mssql-server-extensibility-15.0.1000
  • Jawa

    • mssql-server-extensibility-java-15.0.1000

Ograniczenia

W tej chwili uwierzytelnianie implikowane nie jest obecnie dostępne w systemie Linux, co oznacza, że nie można nawiązać połączenia z serwerem z poziomu języka Java w toku w celu uzyskania dostępu do danych lub innych zasobów.

Nadzór nad zasobami

Istnieje równorzędność między systemami Linux i Windows w zarządzaniu zasobami w przypadku zewnętrznych pul zasobów, ale statystyki dotyczące sys.dm_resource_governor_external_resource_pools mają obecnie różne jednostki w systemie Linux.

Uwaga

Statystyki w poniższej tabeli pochodzą z określonych podsystemów grup kontrolnych (cgroups).

Nazwa kolumny Opis Wartość w systemie Linux
peak_memory_kb Maksymalna ilość pamięci używanej dla puli zasobów. W systemie Linux ta statystyka jest pozyskiwana z podsystemu memory , gdzie wartość jest memory.max_usage_in_bytes
write_io_count Łączna liczba operacji zapisu we/wy wystawionych od czasu zresetowania statystyk Zarządcy Zasobów. W systemie Linux ta statystyka jest pozyskiwana z podsystemu blkio , gdzie wartość w wierszu zapisu jest blkio.throttle.io_serviced
read_io_count Łączna liczba odczytów operacji I/O przeprowadzonych od czasu zresetowania statystyk gubernatora zasobów. W systemie Linux ta statystyka jest pozyskiwana z podsystemu blkio , gdzie wartość w wierszu odczytu jest blkio.throttle.io_serviced
total_cpu_kernel_ms Skumulowany czas jądra procesora CPU w milisekundach od czasu zresetowania statystyk zarządcy zasobów. W systemie Linux ta statystyka jest pozyskiwana z podsystemu cpuacct , gdzie wartość w wierszu użytkownika jest cpuacct.stat
total_cpu_user_ms Skumulowany czas użytkownika procesora CPU w milisekundach od czasu zresetowania statystyk zarządcy zasobów. W systemie Linux ta statystyka jest pozyskiwana z podsystemu cpuacct , gdzie wartość w wierszu systemu to cpuacct.stat
active_processes_count Liczba procesów zewnętrznych uruchomionych w momencie żądania. W systemie Linux ta statystyka jest pozyskiwana z podsystemu pids , gdzie wartość jest pids.current