Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2019 (15.x) no Linux e versões posteriores
Saiba como instalar o componente Extensão de Linguagem Java do SQL Server no Linux. A Extensão da Linguagem Java faz parte das Extensões de Linguagem do SQL Server e é um complemento do Mecanismo de Banco de Dados.
Embora você possa instalar o Mecanismo de Banco de Dados e as Extensões de Linguagem simultaneamente, é uma prática recomendada instalar e configurar primeiro o Mecanismo de Banco de Dados do SQL Server, para que você possa resolver quaisquer problemas antes de adicionar mais componentes.
Pré-requisitos
Sua distribuição Linux deve ser suportada pelo SQL Server. Os recipientes são cobertos separadamente em uma bala posterior. Distribuições suportadas incluem:
Você precisa de um editor de consultas para executar comandos Transact-SQL (T-SQL) para configuração e validação pós-instalação. Recomendamos a extensão MSSQL para Visual Studio Code. É um download gratuito que roda no Linux.
- O pacote de extensões Java está nos repositórios de código-fonte do SQL Server para Linux. Se você já configurou repositórios de origem para a instalação do Mecanismo de Banco de Dados, execute os
mssql-server-extensibility-javacomandos de instalação do pacote usando o mesmo registro de repositório.
As extensões de linguagem também são compatíveis com contêineres do Linux. Contêineres pré-construídos com Extensões de Linguagem não estão disponíveis, mas você pode criar um a partir dos contêineres do SQL Server usando um modelo de exemplo disponível no GitHub.
As Extensões de Linguagem e os Serviços de Machine Learning são instalados por padrão em Clusters de Big Data do SQL Server. Se você usa Clusters de Big Data, não precisa seguir as etapas deste artigo.
Lista de pacotes
Em um dispositivo conectado à internet, você baixa e instala pacotes independentemente do Mecanismo de Banco de Dados usando o instalador de pacotes para cada sistema operacional. A tabela a seguir descreve todos os pacotes disponíveis.
| Nome do pacote | Aplicável a | Description |
|---|---|---|
mssql-server-extensibility |
Todos os idiomas | Estrutura de extensibilidade usada para a extensão de linguagem Java |
mssql-server-extensibility-java |
Java | Estrutura de extensibilidade usada para a extensão de linguagem Java, incluindo suporte a um runtime Java Aplica-se a: SQL Server 2019 (15.x) apenas no Linux |
Instalar a extensão de linguagem Java
Para instalar Extensões de Linguagem e Java no Linux, instale o mssql-server-extensibility-java pacote. O pacote instala automaticamente o JRE 11 (se ainda não estiver instalado) e adiciona o caminho da JVM a uma variável de ambiente chamada JRE_HOME.
Para habilitar a extensão de linguagem Java, crie um binário personalizado seguindo as instruções da página da Extensão de Linguagem Java no GitHub.
Note
Em um servidor conectado à Internet, as dependências de pacote são baixadas e instaladas como parte da instalação do pacote principal. Se o servidor não estiver conectado à Internet, veja mais detalhes na instalação offline.
Você pode baixar e instalar qualquer runtime em Java, incluindo a versão mais recente do Microsoft Build do OpenJDK ou uma runtime Java oficialmente licenciada. A partir do SQL Server 2022 (16.x), a Instalação do SQL Server não instala um Java Runtime.
Para habilitar a extensão de linguagem Java, crie um binário personalizado seguindo as instruções da página da Extensão de Linguagem Java no GitHub.
Comando de instalação do Red Hat
Para instalar Extensões de Linguagem para Java no Red Hat, use o seguinte comando.
Tip
Se possível, execute yum clean all para atualizar pacotes no sistema antes da instalação.
# Install as root or sudo
sudo yum install mssql-server-extensibility-java
Comando de instalação do Ubuntu
Para instalar Extensões de Linguagem para Java no Ubuntu, use o seguinte comando.
Tip
Se possível, execute apt-get update para atualizar pacotes no sistema antes da instalação. Algumas imagens do Docker do Ubuntu não incluem o apt-transport-https pacote. Para instalar, execute apt-get install apt-transport-https.
# Install as root or sudo
sudo apt-get install mssql-server-extensibility-java
Comando de instalação do SUSE
Para instalar Extensões de Linguagem para Java no SUSE, use o seguinte comando.
# Install as root or sudo
sudo zypper install mssql-server-extensibility-java
Configuração pós-instalação (obrigatória)
Conceder permissões no Linux
Você não precisará executar esta etapa se usar bibliotecas externas. Bibliotecas externas são a abordagem recomendada. Para ajuda na criação de uma biblioteca externa a partir do seu
jararquivo, veja CREATE EXTERNAL LIBRARY.Se você não estiver usando bibliotecas externas, precisará fornecer ao SQL Server permissões para executar as classes Java no seu
jar.Para conceder acesso de leitura e execução a um
jararquivo, execute o seguintechmodcomando nojararquivo. Sempre coloque seus arquivos de classe quandojartrabalhar com SQL Server. Para obter ajuda na criação de umjar, confira Criar um arquivo Java .jar com base em arquivos de classe.chmod ug+rx <MyJarFile.jar>Você também precisa dar
mssql_satellitepermissões para ler e executar ojararquivo.chown mssql_satellite:mssql_satellite <MyJarFile.jar>A configuração adicional é principalmente por meio da ferramenta mssql-conf.
Adicione a conta de usuário
mssqlusada para executar o serviço SQL Server. Essa etapa é necessária se você não rodou a configuração antes.sudo /opt/mssql/bin/mssql-conf setupHabilite o acesso à rede de saída. O acesso à rede de saída está desabilitado por padrão. Para habilitar requisições de saída, defina a
outboundnetworkaccesspropriedade Booleana com amssql-confferramenta. Para obter mais informações, confira Configurar o SQL Server em Linux com mssql-conf.# Run as SUDO or root # Enable outbound requests over the network sudo /opt/mssql/bin/mssql-conf set extensibility outboundnetworkaccess 1Reinicie o serviço SQL Server Launchpad e a instância do Mecanismo de Banco de Dados para ler os valores atualizados do arquivo INI. Uma mensagem de reinício lembra sempre que você modifica uma configuração relacionada à extensibilidade.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceHabilitar a execução de script externo. Você pode se conectar a uma instância do SQL Server usando qualquer ferramenta de cliente familiar do SQL Server, como sqlcmd, SQL Server Management Studio (SSMS) ou a extensão MSSQL para Visual Studio Code.
EXECUTE sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;Reinicie o serviço
mssql-launchpaddnovamente.Para cada banco de dados onde você deseja usar extensões de linguagem, registre a linguagem externa com CREATE EXTERNAL LANGUAGE. Veja a próxima seção para os passos.
Registrar linguagem externa
Para cada banco de dados onde você deseja usar extensões de linguagem, registre a linguagem externa com CREATE EXTERNAL LANGUAGE.
O exemplo a seguir adiciona uma linguagem externa chamada Java a um banco de dados no SQL Server em 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"}'
);
Para a extensão Java, a variável JRE_HOME ambiente determina o caminho para encontrar e inicializar a JVM.
O CREATE EXTERNAL LANGUAGE DDL fornece um ENVIRONMENT_VARIABLES parâmetro para definir variáveis de ambiente para o processo que hospeda a extensão. Use esse parâmetro para definir variáveis de ambiente que extensões externas de linguagem exigem.
Para obter mais informações, consulte CREATE EXTERNAL LANGUAGE.
Verifique a instalação
A integração com recursos do Java não inclui bibliotecas, mas você pode rodar grep -r JRE_HOME /etc para confirmar que a JRE_HOME variável de ambiente existe.
Para validar a instalação, execute um script T-SQL que executa um procedimento armazenado do sistema que invoca o Java. Você precisa de uma ferramenta de consulta para essa tarefa. Você pode se conectar a uma instância do SQL Server usando qualquer ferramenta de cliente familiar do SQL Server, como sqlcmd, SQL Server Management Studio (SSMS) ou a extensão MSSQL para Visual Studio Code.
Instalação completa do SQL Server e da Extensão de Linguagem Java
Para instalar e configurar o Mecanismo de Banco de Dados e a Java Language Extension em um único procedimento, adicione pacotes e parâmetros Java a um comando que instale o Mecanismo de Banco de Dados.
Forneça uma linha de comando que inclua o mecanismo de banco de dados, além dos recursos de extensão de linguagem.
O comando a seguir adiciona extensibilidade em Java a uma instalação do Mecanismo de Banco de Dados.
sudo yum install -y mssql-server mssql-server-extensibility-javaAceite os contratos de licença e conclua a configuração pós-instalação. Use a
mssql-confferramenta.sudo /opt/mssql/bin/mssql-conf setupEsta etapa solicita que você aceite o contrato de licença do Mecanismo de Banco de dados, escolha uma edição e defina a senha do administrador.
Reinicie o serviço se for solicitado.
sudo systemctl restart mssql-server.service
Instalação autônoma
Use a instalação sem supervisão do Mecanismo de Banco de Dados e adicione os pacotes para mssql-server-extensibility-java.
Instalação offline
Para instalar os pacotes, siga as instruções de instalação offline . Encontre seu site de download e depois baixe os pacotes específicos listados mais adiante nesta seção.
Tip
Diversas ferramentas de gerenciamento de pacotes fornecem comandos que ajudam a determinar dependências de pacotes. Para yum, use sudo yum deplist [package]. Para o Ubuntu, use sudo apt-get install --reinstall --download-only [package name] seguido por dpkg -I [package name].deb.
Site de download
Baixe os pacotes de https://packages.microsoft.com/. O site hospeda todos os pacotes Java junto com o pacote Mecanismo de Banco de Dados.
Caminhos de download
| Package | Distribution | Local de download |
|---|---|---|
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 de pacotes
Dependendo de quais extensões você deseja usar, baixe os pacotes necessários para uma linguagem específica. Os nomes exatos dos arquivos incluem informações da plataforma no sufixo, mas os seguintes nomes ajudam a determinar quais arquivos adquirir.
Pacotes principais
mssql-server-15.0.1000mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Limitações
A autenticação implícita não está disponível no Linux. Código Java rodando no processo externo não consegue se conectar de volta ao servidor para acessar dados ou outros recursos.
Governança de recursos
Linux e Windows têm paridade para governança de recursos para pools externos, mas as estatísticas para sys.dm_resource_governor_external_resource_pools atualmente têm unidades diferentes no Linux.
Note
As estatísticas na tabela a seguir são obtidas dos subsistemas de Grupos de Controle (cgroups) especificados.
| Nome da coluna | Description | Valor no Linux |
|---|---|---|
peak_memory_kb |
A memória máxima que o pool de recursos utiliza. | No Linux, essa estatística é proveniente do subsistema memory, em que o valor é memory.max_usage_in_bytes |
write_io_count |
O total de IOs de escrita emitidos desde o último reset das estatísticas do Resource Governor. | No Linux, essa estatística é proveniente do subsistema blkio, em que o valor na linha de gravação é blkio.throttle.io_serviced |
read_io_count |
O total de IOs de leitura emitidos desde o último reset das estatísticas do Resource Governor. | No Linux, essa estatística é obtida do blkio subsistema, onde o valor na linha de leitura é blkio.throttle.io_serviced |
total_cpu_kernel_ms |
O tempo acumulado do kernel do usuário da CPU em milissegundos desde o último reset das estatísticas do Resource Governor. | No Linux, essa estatística é proveniente do subsistema cpuacct, em que o valor na linha do usuário é cpuacct.stat |
total_cpu_user_ms |
O tempo acumulado do usuário da CPU em milissegundos desde o último reset das estatísticas do Resource Governor. | No Linux, essa estatística é obtida do cpuacct subsistema, onde o valor na linha do sistema é cpuacct.stat |
active_processes_count |
O número de processos externos em execução no momento da solicitação. | No Linux, essa estatística é proveniente do subsistema pids, em que o valor é pids.current |