Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2019 (15.x) в Linux и более поздних версиях
Узнайте, как установить компонент расширения языка Java для SQL Server в Linux. Расширение языка Java является частью расширений языка SQL Server и надстройкой для ядро СУБД.
Хотя вы можете одновременно установить ядро СУБД и языковые расширения, рекомендуется установить и настроить ядро СУБД SQL Server, чтобы устранить любые проблемы перед добавлением дополнительных компонентов.
Prerequisites
Ваш дистрибутив Linux должен поддерживаться SQL Server. Контейнеры покрываются отдельно в более поздней пуле. Поддерживаемые дистрибутивы включают:
Вам нужен редактор запросов для запуска команд Transact-SQL (T-SQL) для настройки и валидации после установки. Рекомендуем расширение MSSQL для Visual Studio Code. Это бесплатная загрузка, которая работает на Linux.
- Пакет расширений Java находится в исходных репозиториях Linux SQL Server. Если вы уже настроили исходные репозитории для установки ядро СУБД, запустите
mssql-server-extensibility-javaкоманды установки пакета, используя ту же регистрацию репозитория.
Расширения языка также поддерживаются в контейнерах Linux. Готовые контейнеры с расширениями языка недоступны, но вы можете создать их из контейнеров SQL Server, используя пример шаблона, доступный на GitHub.
Расширения языка и службы машинного обучения устанавливаются по умолчанию в кластерах больших данных SQL Server. Если вы используете Кластеры больших данных, вам не нужно выполнять действия, описанные в этой статье.
Список пакетов
На устройстве, подключённом к интернету, вы скачиваете и устанавливаете пакеты независимо от ядро СУБД, используя установщик пакетов для каждой операционной системы. В таблице ниже содержится описание доступных пакетов.
| Имя пакета | Применимо к | Description |
|---|---|---|
mssql-server-extensibility |
Все языки | Платформа расширяемости, используемая для расширения языка Java. |
mssql-server-extensibility-java |
Java | Платформа расширяемости, которая используется для расширения языка Java и включает среду выполнения Java. Относится к: SQL Server 2019 (15.x) только на Linux |
Установка расширения языка Java
Чтобы установить расширения языка и Java на Linux, установите пакетmssql-server-extensibility-java. Пакет автоматически устанавливает JRE 11 (если он ещё не установлен) и добавляет путь JVM к переменной среды под названием JRE_HOME.
Чтобы включить расширение языка Java, создайте пользовательский двоичный файл, следуя инструкциям на странице расширения языка Java на GitHub.
Вы можете скачать и установить любой Java runtime, включая последнюю версию Microsoft Build of OpenJDK или официально лицензированную Java runtime. Начиная с SQL Server 2022 (16.x), программа установки SQL Server не устанавливает среду выполнения Java.
Чтобы включить расширение языка Java, создайте пользовательский двоичный файл, следуя инструкциям на странице расширения языка Java на GitHub.
Команда установки Red Hat
Чтобы установить расширения языка для Java на Red Hat, используйте следующую команду.
Tip
По возможности выполните обновление yum clean all пакетов в системе перед установкой.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Команда установки для Ubuntu
Чтобы установить расширения языка для Java на Ubuntu, используйте следующую команду.
Tip
По возможности выполните обновление apt-get update пакетов в системе перед установкой. Некоторые образы Ubuntu Docker не включают этот apt-transport-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. Всегда размещайте файлы классов в Ajar, когда работаете с SQL Server. Дополнительные сведения о создании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Включите выполнение внешнего скрипта. Вы можете подключиться к экземпляру SQL Server с помощью любого знакомого клиентского средства SQL Server, например sqlcmd, SQL Server Management Studio (SSMS) или расширения MSSQL для Visual Studio Code.
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 среды определяет путь для поиска и инициализации JVM.
CREATE EXTERNAL LANGUAGE DDL предоставляет ENVIRONMENT_VARIABLES параметр для установки переменных среды для процесса, который размещает расширение. Используйте этот параметр для установки переменных среды, необходимых внешним языковым расширениям.
Дополнительные сведения см. в разделе CREATE EXTERNAL LANGUAGE.
Проверка установки
Интеграция функций Java не включает библиотеки, но можно запуститьgrep -r JRE_HOME /etc, чтобы подтвердить существование JRE_HOME переменной среды.
Чтобы проверить установку, запустите скрипт T-SQL, который выполняет системную хранимую процедуру, вызывающую Java. Для этой задачи необходим инструмент запроса. Вы можете подключиться к экземпляру SQL Server с помощью любого знакомого клиентского средства SQL Server, например sqlcmd, SQL Server Management Studio (SSMS) или расширения MSSQL для Visual Studio Code.
Полная установка SQL Server и расширения языка Java
Чтобы установить и настроить ядро СУБД и расширение Java Language Extension в одной процедуре, в команду для установки ядро СУБД добавлены пакеты и параметры 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.
Автономная установка
Чтобы установить пакеты, следуйте инструкциям по установке Offline . Найдите свой сайт для скачивания, а затем скачайте конкретные пакеты, перечисленные позже в этом разделе.
Tip
Несколько инструментов управления пакетами предоставляют команды, которые помогают определять зависимости от пакетов. Для 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 вместе с пакетом ядро СУБД.
Путь к скачиванию
| Package | Distribution | Расположение для скачивания |
|---|---|---|
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.
Note
Статистика в следующей таблице взята из указанных подсистем контрольных групп (cgroups).
| Название столбца | Description | Значение в Linux |
|---|---|---|
peak_memory_kb |
Максимальная память, которую использует пул ресурсов. | В Linux эта статистика создается из memory подсистемы, где значение равно memory.max_usage_in_bytes |
write_io_count |
Общее количество IO, выпущенных с момента последнего сброса статистики Resource Governor. | В Linux эта статистика получается из blkio подсистемы, где значение на строке записи составляет blkio.throttle.io_serviced. |
read_io_count |
Общее количество IO, выпущенных с момента последнего сброса статистики Resource Governor. | В Linux эта статистика взята из blkio подсистемы, где значение в строке чтения равно blkio.throttle.io_serviced |
total_cpu_kernel_ms |
Накопленное время ядра пользователя CPU в миллисекундах с момента последнего сброса статистики Resource Governor. | В Linux эта статистика создается из cpuacct подсистемы, где значение в строке пользователя находится cpuacct.stat |
total_cpu_user_ms |
Совокупное пользовательское время процессора в миллисекундах с момента последнего сброса статистики Resource Governor. | В Linux эта статистика взята из подсистемы cpuacct , где значение в системной строке равно cpuacct.stat |
active_processes_count |
Количество внешних процессов, выполняемых в момент запроса. | В Linux эта статистика создается из pids подсистемы, где значение равно pids.current |