Notatka
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) w systemie Linux i nowszych wersjach
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
Twoja dystrybucja Linuksa musi być wspierana przez SQL Server. Pojemniki są zakryte osobno w późniejszym pocisku. Wspierane dystrybucje obejmują:
- Red Hat Enterprise Linux (RHEL)
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
Potrzebujesz edytora zapytań, aby uruchomić Transact-SQL (T-SQL) poleceń do konfiguracji i walidacji po instalacji. Polecamy rozszerzenie MSSQL dla Visual Studio Code. To darmowy plik do pobrania, który działa na Linuksie.
- Pakiet rozszerzeń Java znajduje się w repozytoriach źródłowych SQL Server Linux. Jeśli już skonfigurowałeś repozytoria źródłowe dla instalacji Database Engine, uruchom
mssql-server-extensibility-javapolecenia instalacyjne pakietu używając tej samej rejestracji repozytorium.
Rozszerzenia językowe są również obsługiwane w kontenerach systemu Linux. Gotowe kontenery z rozszerzeniami języka nie są dostępne, ale możesz stworzyć jeden z kontenerów SQL Server, korzystając z przykładowego szablonu dostępnego na 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.
Lista pakietów
Na urządzeniu podłączonym do internetu pobierasz i instalujesz pakiety niezależnie od Database Engine, korzystając z instalatora pakietów dla każdego systemu operacyjnego. W poniższej tabeli opisano wszystkie dostępne pakiety.
| Nazwa pakietu | Dotyczy | Description |
|---|---|---|
mssql-server-extensibility |
Wszystkie języki | Struktura rozszerzalności używana dla rozszerzenia języka Java |
mssql-server-extensibility-java |
Java | Struktura rozszerzalności używana na potrzeby rozszerzenia języka Java i zawiera obsługiwane środowisko uruchomieniowe Języka Java Dotyczy do: SQL Server 2019 (15.x) tylko na Linuksie |
Instalowanie rozszerzenia języka Java
Aby zainstalować rozszerzenia językowe i Java na Linuksie, zainstaluj mssql-server-extensibility-java pakiet. Pakiet automatycznie instaluje JRE 11 (jeśli nie jest już zainstalowany) i dodaje ś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.
Note
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ć dowolny program Java runtime, w tym najnowszą wersję Microsoft Build of OpenJDK lub oficjalnie licencjonowany Java runtime. 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
Aby zainstalować rozszerzenia języka Java na Red Hat, użyj 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
Aby zainstalować rozszerzenia językowe dla Javy na Ubuntu, użyj 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ą. Niektóre obrazy Ubuntu Docker nie zawierają tego apt-transport-https pakietu. Aby go zainstalować, uruchom polecenie apt-get install apt-transport-https.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
Polecenie instalacji systemu SUSE
Aby zainstalować rozszerzenia języka Java na SUSE, użyj 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 rozwiązaniem są biblioteki zewnętrzne. Aby uzyskać pomoc w tworzeniu zewnętrznej biblioteki z
jarpliku, zobacz CREATE EXTERNAL LIBRARY.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 uzyskać dostęp
jardo odczytu i wykonania pliku, wykonajchmodnastępujące polecenie na plikujar. Zawsze umieszczaj plikijarzajęć, gdy pracujesz 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 też dać
mssql_satelliteuprawnienia do odczytu i uruchomienia plikujar.chown mssql_satellite:mssql_satellite <MyJarFile.jar>Dodatkową konfigurację wykonuje się przede wszystkim za pomocą narzędzia mssql-conf.
Dodaj konto użytkownika
mssqlużywane do uruchamiania usługi SQL Server. Ten krok jest wymagany, jeśli wcześniej nie uruchamiałeś konfiguracji.sudo /opt/mssql/bin/mssql-conf setupWłącz wychodzący dostęp sieciowy. Dostęp sieciowy wychodzący jest domyślnie wyłączony. Aby umożliwić żądania wychodzące, ustaw właściwość Boole'a
outboundnetworkaccessw narzędziumssql-conf. Aby uzyskać więcej informacji, zobacz Configure SQL Server on Linux with mssql-conf (Konfigurowanie programu SQL Server w systemie Linux przy użyciu programu mssql-conf).# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Uruchom ponownie usługę SQL Server Launchpad oraz instancję silnika bazy danych, aby odczytać zaktualizowane wartości z pliku INI. Komunikat w CV przypomina Ci za każdym razem, gdy zmieniasz ustawienie związane z rozszerzeniem.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceWłącz wykonywanie skryptów zewnętrznych. Możesz nawiązać połączenie z wystąpieniem programu SQL Server przy użyciu dowolnego znanego narzędzia klienckiego programu SQL Server, takiego jak sqlcmd, SQL Server Management Studio (SSMS) lub rozszerzenie MSSQL dla programu Visual Studio Code.
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, zarejestruj język zewnętrzny za pomocą .CREATE EXTERNAL LANGUAGE Zobacz kolejną sekcję, aby poznać kroki.
Rejestrowanie języka zewnętrznego
Dla każdej bazy danych, w której chcesz używać rozszerzeń językowych, zarejestruj język zewnętrzny za pomocą .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 rozszerzeniu Java zmienna JRE_HOME środowiskowa określa ścieżkę do znalezienia i inicjalizacji JVM.
CREATE EXTERNAL LANGUAGE DDL dostarcza ENVIRONMENT_VARIABLES parametr do ustawiania zmiennych środowiskowych dla procesu, który hostuje rozszerzenie. Użyj tego parametru do ustawienia zmiennych środowiskowych, których wymagają zewnętrzne rozszerzenia językowe.
Aby uzyskać więcej informacji, zobacz CREATE EXTERNAL LANGUAGE.
Weryfikowanie instalacji
Integracja funkcji Java nie obejmuje bibliotek, ale możesz uruchomić uruchomieniegrep -r JRE_HOME /etc, aby potwierdzić JRE_HOME istnienie zmiennej środowiskowej.
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ń. Możesz nawiązać połączenie z wystąpieniem programu SQL Server przy użyciu dowolnego znanego narzędzia klienckiego programu SQL Server, takiego jak sqlcmd, SQL Server Management Studio (SSMS) lub rozszerzenie MSSQL dla programu Visual Studio Code.
Pełna instalacja programu SQL Server i rozszerzenia języka Java
Aby zainstalować i skonfigurować Database Engine oraz rozszerzenie języka Java w jednej procedurze, należy dodać pakiety i parametry Java do polecenia instalującego Database Engine.
Podaj wiersz polecenia zawierający aparat bazy danych oraz funkcje rozszerzenia języka.
Następujące polecenie dodaje rozszerzalność Java do instalacji Database Engine.
sudo yum install -y mssql-server mssql-server-extensibility-javaZaakceptuj umowy licencyjne i ukończ konfigurację po instalacji. Użyj narzędzia
mssql-conf.sudo /opt/mssql/bin/mssql-conf setupW tym kroku zostanie wyświetlony monit o zaakceptowanie umowy licencyjnej silnika baz danych, wybranie wersji i ustawienie hasła administratora.
Zrestartuj usługę, jeśli zostanie o to poproszony.
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
Aby zainstalować pakiety, należy postępować zgodnie z instrukcjami instalacji offline . Znajdź swoją stronę do pobrania, a następnie pobierz konkretne pakiety wymienione później w tej sekcji.
Wskazówka
Kilka narzędzi do zarządzania pakietami oferuje polecenia, które pomagają określić zależności pakietów. Dla yum użyj 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ę
Pobierz pakiety z .https://packages.microsoft.com/ Strona zawiera wszystkie pakiety Java wraz z pakietem Database Engine.
Ścieżki pobierania
| Package | Distribution | 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 poniższe nazwy plików pomagają określić, które pliki pobrać.
Pakiety podstawowe
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Ograniczenia
Domniemane uwierzytelnianie nie jest dostępne na Linuksie. Kod Java działający w procesie zewnętrznym nie może połączyć się z serwerem, aby uzyskać dostęp do danych lub innych zasobów.
Nadzór nad zasobami
Linux i Windows mają parytet zarządzania zasobami dla zewnętrznych pul zasobów, ale statystyki dla sys.dm_resource_governor_external_resource_pools obecnie pokazują różne jednostki na Linuksie.
Note
Statystyki w poniższej tabeli pochodzą z określonych podsystemów Control Groups (cgroups).
| Nazwa kolumny | Description | Wartość w systemie Linux |
|---|---|---|
peak_memory_kb |
Maksymalna ilość pamięci używanej przez pulę 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 zapisów IO wydanych od ostatniego resetu statystyk Resource Governor. | 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 IO wydanych od ostatniego resetu statystyk Resource Governor. | Na Linuksie ta statystyka pochodzi z podsystemu blkio , gdzie wartość wiersza odczytu to blkio.throttle.io_serviced |
total_cpu_kernel_ms |
Skumulowany czas działania użytkownika CPU w milisekundach od ostatniego resetu statystyk Resource Governor. | 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 CPU w milisekundach od ostatniego resetu statystyk Resource Governor. | Na Linuksie ta statystyka pochodzi z podsystemu cpuacct , gdzie wartość w wierszu systemu jest 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 |