Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server 2019 (15.x) — Linux и более поздних версий
Узнайте, как установить компонент расширения языка Java для SQL Server в Linux. Расширение языка Java является частью расширений языка SQL Server и надстройкой для ядро СУБД.
Хотя вы можете одновременно установить ядро СУБД и языковые расширения, рекомендуется установить и настроить ядро СУБД SQL Server, чтобы устранить любые проблемы перед добавлением дополнительных компонентов.
Предварительные условия
Версия Linux должна поддерживаться SQL Server, но не включает подсистему Docker. Поддерживаемые версии
У вас должен быть инструмент для выполнения команд Transact-SQL (T-SQL). Редактор запросов необходим для настройки и проверки после установки. Рекомендуется использовать бесплатное решение Azure Data Studio, работающее в Linux.
- Пакет расширений Java находится в репозиториях исходного кода SQL Server для Linux. Если вы уже настроили исходные репозитории для установки ядра СУБД, вы можете запустить
mssql-server-extensibility-javaкоманду установки пакета с помощью той же регистрации репозиториев.
Расширения языка также поддерживаются в контейнерах Linux. Мы не предоставляем предварительно созданные контейнеры с расширениями языка, но их можно создать из контейнеров SQL Server с помощью примера шаблона, доступного на сайте GitHub.
Расширения языка и службы машинного обучения устанавливаются по умолчанию в кластерах больших данных SQL Server. Если вы используете Кластеры больших данных, вам не нужно выполнять действия, описанные в этой статье. Дополнительные сведения см. в Запуске скриптов Python и R с сервисами машинного обучения на кластерах больших данных SQL Server 2019.
Список пакетов
На подключенном к Интернету устройстве пакеты загружаются и устанавливаются независимо от ядра СУБД с помощью установщика пакетов для каждой операционной системы. В таблице ниже содержится описание доступных пакетов.
| Имя пакета | Область действия | Описание |
|---|---|---|
mssql-server-extensibility |
Все языки | Платформа расширяемости, используемая для расширения языка Java. |
mssql-server-extensibility-java |
Java |
Применимо: ТОЛЬКО SQL Server 2019 (15.x) в Linux Платформа расширяемости, которая используется для расширения языка Java и включает среду выполнения Java. |
Установка расширения языка Java
Вы можете установить языковые расширения и Java в Linux, установив mssql-server-extensibility-java. При установке mssql-server-extensibility-javaпакет автоматически устанавливает JRE 11, если он еще не установлен. Он также добавляет путь JVM к переменной среды, называемой JRE_HOME.
Чтобы включить расширение языка Java, создайте пользовательский двоичный файл, следуя инструкциям на странице расширения языка Java на GitHub.
Вы можете скачать и установить любую среду выполнения Java, включая последнюю версию Microsoft Build OpenJDK или официальную лицензированную среду выполнения Java. Начиная с SQL Server 2022 (16.x), программа установки SQL Server не устанавливает среду выполнения Java.
Чтобы включить расширение языка Java, создайте пользовательский двоичный файл, следуя инструкциям на странице расширения языка Java на GitHub.
Команда установки Red Hat
Расширения языка для Java можно установить в Red Hat с помощью следующей команды.
Совет
По возможности выполните обновление yum clean all пакетов в системе перед установкой.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Команда установки для Ubuntu
Расширения языка для Java можно установить в Ubuntu с помощью следующей команды.
Совет
По возможности выполните обновление apt-get update пакетов в системе перед установкой. Кроме того, некоторые образы Docker в Ubuntu могут не иметь варианта транспорта apt https. Чтобы установить его, используйте apt-get install apt-transport-https.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
Команда установки для SUSE
Расширения языка для Java можно установить в SUSE с помощью следующей команды.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Настройка после установки (обязательно)
Предоставление разрешений в Linux
Этот шаг не требуется выполнять, если вы используете внешние библиотеки. Рекомендуемый способ работы — использование внешних библиотек. Инструкцию по созданию внешней библиотеки из файла
jarсм. в разделе CREATE EXTERNAL LIBRARYЕсли вы не используете внешние библиотеки, необходимо предоставить SQL Server разрешения для выполнения классов Java в вашей
jar.Чтобы предоставить доступ к
jarфайлу для чтения и выполнения, выполните следующую команду chmod вjarфайле. При работе с SQL Server мы рекомендуем всегда помещать файлы класса вjar. Дополнительные сведения о созданииjarфайла java .jar см. в разделе "Создание файла .jar Java" из файлов классов.chmod ug+rx <MyJarFile.jar>Вам также нужно предоставить
mssql_satelliteразрешенияjarна чтение и выполнение файла.chown mssql_satellite:mssql_satellite <MyJarFile.jar>Дополнительная настройка осуществляется в основном с помощью средства mssql-conf.
Добавьте учетную запись пользователя, используемую
mssqlдля запуска службы SQL Server. Это необходимо, если вы не выполняли установку ранее.sudo /opt/mssql/bin/mssql-conf setupВключите исходящий сетевой доступ. По умолчанию исходящий сетевой доступ отключен. Чтобы включить исходящие запросы, задайте
outboundnetworkaccessлогическое свойство с помощью средства mssql-conf . Дополнительные сведения см. в статье Настройка SQL Server на Linux с помощью средства mssql-conf.# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Перезапустите службу панели запуска SQL Server и экземпляр ядро СУБД, чтобы прочитать обновленные значения из INI-файла. При изменении любого свойства, связанного с расширяемостью, появляется сообщение с напоминанием о необходимости перезапуска.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceВключите выполнение внешних скриптов с помощью Azure Data Studio или другого средства, например SQL Server Management Studio (только Для Windows), который запускает T-SQL.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;Снова перезапустите службу
mssql-launchpadd.Для каждой базы данных, в которой необходимо использовать расширения языка, зарегистрируйте внешний язык с помощью команды CREATE EXTERNAL LANGUAGE. Инструкции приведены в следующем разделе.
Регистрация внешнего языка
Для каждой базы данных, в которой необходимо использовать расширения языка, зарегистрируйте внешний язык с помощью команды CREATE EXTERNAL LANGUAGE.
Следующий пример добавляет внешний язык Java в базу данных на сервере SQL Server на 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"}'
);
Для расширения Java используется переменная среды JRE_HOME для определения пути поиска и инициализации виртуальной машины Java.
CREATE EXTERNAL LANGUAGE DDL предоставляет параметр (ENVIRONMENT_VARIABLES), чтобы задать переменные среды специально для процесса размещения расширения. Этот процесс является рекомендуемой и наиболее эффективной способом задания переменных среды, необходимых расширениям внешнего языка.
Дополнительные сведения см. в разделе CREATE EXTERNAL LANGUAGE.
Проверка установки
Интеграция функций Java не включает библиотеки, но можно запустить grep -r JRE_HOME /etc для подтверждения создания переменной JAVA_HOME среды.
Чтобы проверить установку, запустите скрипт T-SQL, который выполняет системную хранимую процедуру, вызывающую Java. Для этой задачи необходим инструмент запроса. Хорошим выбором станет Azure Data Studio. Другие часто используемые средства, такие как SQL Server Management Studio, доступны только для Windows. Если у вас есть компьютер с Windows и этими средствами, используйте его для подключения к вашей установке СУБД на Linux.
Полная установка SQL Server и расширения языка Java
Вы можете установить и настроить расширение языка Java и ядро СУБД в одной процедуре, добавив пакеты и параметры Java в команду, которая устанавливает ядро СУБД.
Укажите командную строку, включающую ядро СУБД, а также функции расширения языка.
Вы можете добавить расширяемость Java в установку ядро СУБД.
sudo yum install -y mssql-server mssql-server-extensibility-javaПримите условия лицензионных соглашений и завершите настройку после установки. Для этой задачи используйте средство mssql-conf.
sudo /opt/mssql/bin/mssql-conf setupНа этом шаге вам будет предложено принять лицензионное соглашение для ядро СУБД, выбрать выпуск и задать пароль администратора.
При появлении соответствующего запроса перезапустите службу.
sudo systemctl restart mssql-server.service
Автоматическая установка
Используйте автоматическую установку для ядро СУБД и добавьте пакеты для mssql-server-extensibility-java.
Автономная установка
Описание шагов по установке пакетов см. в инструкциях по автономной установке. Найдите сайт загрузки, а затем скачайте определенные пакеты с помощью списка пакетов далее в этом разделе.
Совет
Некоторые средства управления пакетами предоставляют команды, помогающие определить зависимости пакетов. Для yum используйте sudo yum deplist [package]. Для Ubuntu используйте sudo apt-get install --reinstall --download-only [package name], а затем dpkg -I [package name].deb.
Сайт загрузки
Пакеты можно скачать по адресу https://packages.microsoft.com/. Все пакеты для Java размещаются вместе с пакетом ядро СУБД.
Путь к скачиванию
| Пакет | Распределение | Расположение для скачивания |
|---|---|---|
mssql/extensibility-java packages |
Red Hat 8 | https://packages.microsoft.com/rhel/8/mssql-server-2019/ |
mssql/extensibility-java packages |
SUSE версии 15 | 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/ |
Список пакетов
В зависимости от того, какие расширения вы хотите использовать, скачайте пакеты, необходимые для конкретного языка. Точные имена файлов включают сведения о платформе в суффиксе, но следующие имена файлов должны помочь определить, какие файлы нужно получить.
Основные пакеты
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Ограничения
Подразумеваемая проверка подлинности в настоящее время недоступна в Linux, что означает, что вы не можете подключиться к серверу с помощью Java для доступа к данным или другим ресурсам.
Управление ресурсами
Существует четность между Linux и Windows для управления ресурсами для внешних пулов ресурсов, но статистика для sys.dm_resource_governor_external_resource_pools в настоящее время имеют разные единицы в Linux.
Примечание.
Статистические данные в следующей таблице взяты из указанных подсистем Control Groups (cgroups).
| Имя столбца | Описание | Значение в Linux |
|---|---|---|
peak_memory_kb |
Максимальный объем используемой памяти для пула ресурсов. | В Linux эта статистика создается из memory подсистемы, где значение равно memory.max_usage_in_bytes |
write_io_count |
Общее число выполняемых записывающих операций ввода-вывода после сброса статистики в Resource Governor. | В Linux эта статистика получается из blkio подсистемы, где значение на строке записи составляет blkio.throttle.io_serviced. |
read_io_count |
Общее число использованных операций чтения ввода-вывода с момента сброса статистики Resource Governor. | В Linux эта статистика поступает из blkio подсистемы, где значение в строке считывания blkio.throttle.io_serviced |
total_cpu_kernel_ms |
Совокупное время работы ядра пользовательского режима ЦП в миллисекундах с момента сброса статистики Resource Governor. | В Linux эта статистика создается из cpuacct подсистемы, где значение в строке пользователя находится cpuacct.stat |
total_cpu_user_ms |
Совокупное время использования ЦП, в миллисекундах, с момента сброса статистики Resource Governor. | В Linux эта статистика создается из cpuacct подсистемы, где значение в системной строке имеет значение. cpuacct.stat |
active_processes_count |
Количество внешних процессов, выполняемых в момент запроса. | В Linux эта статистика создается из pids подсистемы, где значение равно pids.current |