Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Wersja systemu Linux musi być obsługiwana przez serwer SQL Server, ale nie zawiera silnika Docker. Obsługiwane wersje obejmują:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
Powinno być narzędzie do uruchamiania poleceń Transact-SQL (T-SQL). Edytor zapytań jest niezbędny do konfiguracji i weryfikacji po instalacji. Zalecamy korzystanie z usługi Azure Data Studio — bezpłatnego pobierania działającego w systemie Linux.
- 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.
Rozszerzenia językowe są również obsługiwane w kontenerach systemu Linux. Nie udostępniamy wstępnie utworzonych kontenerów z rozszerzeniami języka, ale można je utworzyć na podstawie kontenerów programu SQL Server przy użyciu przykładowego szablonu dostępnego w usłudze GitHub.
Rozszerzenia języka i usługi Machine Learning Services są instalowane domyślnie w klastrach danych big data programu SQL Server. Jeśli używasz klastrów danych big data, nie musisz wykonywać kroków opisanych w tym artykule. Aby uzyskać więcej informacji, zobacz Run Python and R scripts with Machine Learning Services on SQL Server 2019 Big Data Clusters (Uruchamianie skryptów języka Python i R za pomocą usług Machine Learning Services w klastrach danych big data programu SQL Server 2019).
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-java
pakiet 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)
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 pliku
jar
, 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 plikujar
. Zalecamy zawsze umieszczanie plików klas wjar
podczas pracy z SQL Server. Aby uzyskać pomoc dotyczącą tworzenia obiektujar
, 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
uprawnieniajar
do odczytu i wykonywania.chown mssql_satellite:mssql_satellite <MyJarFile.jar>
Dodatkową konfigurację wykonuje się przede wszystkim za pomocą narzędzia mssql-conf.
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
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, zobaczConfigure 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
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
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;
Ponownie uruchom usługę
mssql-launchpadd
.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.
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
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.
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 |