Instalar a Extensão de Linguagem Java do SQL Server no Linux
Aplicável a: SQL Server 2019 (15.x) - 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
A versão Linux deve ser compatível no SQL Server, mas não inclui o Mecanismo do Docker. As versões com suporte incluem:
Você deve ter uma ferramenta para executar comandos Transact-SQL (T-SQL). Um editor de consultas é necessário para a configuração e a validação pós-instalação. Recomendamos o Azure Data Studio, um download gratuito que é executado no Linux.
- A localização do pacote das extensões Java está nos repositórios de origem do Linux do SQL Server. Se você já configurou repositórios de origem para a instalação do Mecanismo de Banco de Dados, pode executar os comandos de instalação do pacote
mssql-server-extensibility-java
usando o mesmo registro de repositório.
As extensões de linguagem também são compatíveis com contêineres do Linux. Não fornecemos contêineres pré-criados com Extensões de Linguagem, 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. Para obter mais informações, consulte Executar scripts do Python e do R com serviços do Machine Learning em Clusters de Big Data do SQL Server 2019.
Lista de pacotes
Em um dispositivo conectado à Internet, os pacotes são baixados e instalados 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 | Aplica-se a | Descrição |
---|---|---|
mssql-server-extensibility |
Todos os idiomas | Estrutura de extensibilidade usada para a extensão de linguagem Java |
mssql-server-extensibility-java |
Java | Aplicável a: SQL Server 2019 (15.x) somente no Linux Estrutura de extensibilidade usada para a extensão de linguagem Java, incluindo suporte a um runtime Java |
Instalar a extensão de linguagem Java
Você pode instalar Extensões de Linguagem e Java no Linux instalando mssql-server-extensibility-java
. Quando você instala mssql-server-extensibility-java
, o pacote instala automaticamente o JRE 11 caso ele ainda não esteja instalado. Ele também 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.
Observação
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 Java que desejar, incluindo o Build da Microsoft do OpenJDK mais recente ou o runtime Java licenciado oficialmente. 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
Você pode instalar Extensões de Linguagem para Java no Red Hat usando o seguinte comando.
Dica
Se possível, execute yum clean all
para atualizar os 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
Você pode instalar Extensões de Linguagem para Java no Ubuntu usando o seguinte comando.
Dica
Se possível, execute apt-get update
para atualizar os pacotes no sistema antes da instalação. Além disso, algumas imagens do Docker do Ubuntu podem não ter a opção https apt transport. Para instalá-la, use 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
Você pode instalar Extensões de Linguagem para Java no SUSE usando 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. A maneira recomendada de trabalhar é usar bibliotecas externas. Para obter ajuda com a criação de uma biblioteca externa a partir do seu arquivo
jar
, consulte CRIAR BIBLIOTECA EXTERNASe 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 arquivo
jar
, execute o seguinte comando chmod no arquivojar
. Recomendamos sempre colocar seus arquivos de classe em umjar
quando você trabalha com o SQL Server. Para obter ajuda com a criação de umjar
, consulte Criar um arquivo jar Java a partir de arquivos de classe.chmod ug+rx <MyJarFile.jar>
Você também precisa dar permissões
mssql_satellite
ao arquivojar
para ler/executar.chown mssql_satellite:mssql_satellite <MyJarFile.jar>
A configuração adicional é principalmente por meio da ferramenta mssql-conf.
Adicione a conta de usuário
mssql
usada para executar o serviço SQL Server. Isso será necessário se você não tiver executado a instalação anteriormente.sudo /opt/mssql/bin/mssql-conf setup
Habilite o acesso à rede de saída. O acesso à rede de saída está desabilitado por padrão. Para habilitar solicitações de saída, defina a propriedade
outboundnetworkaccess
booliana usando a ferramenta mssql-conf. 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 1
Reinicie 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 reinicialização lembrará você sempre que uma configuração relacionada à extensibilidade for modificada.
systemctl restart mssql-launchpadd systemctl restart mssql-server.service
Habilite a execução de scripts externos usando o Azure Data Studio ou outra ferramenta, como o SQL Server Management Studio (somente Windows), que executa o T-SQL.
EXEC sp_configure 'external scripts enabled', 1; RECONFIGURE WITH OVERRIDE;
Reinicie o serviço
mssql-launchpadd
novamente.Para cada banco de dados no qual você deseja usar extensões de linguagem, é necessário registrar a linguagem externa com CREATE EXTERNAL LANGUAGE. Veja as etapas na próxima seção.
Registrar linguagem externa
Para cada banco de dados no qual você deseja usar extensões de linguagem, é necessário registrar 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 de ambiente JRE_HOME
é usada para determinar o caminho para localizar e inicializar a JVM.
O DDL CREATE EXTERNAL LANGUAGE
fornece um parâmetro (ENVIRONMENT_VARIABLES
) para definir variáveis de ambiente especificamente para o processo que hospeda a extensão. Esse processo é a maneira recomendada e mais eficaz de definir variáveis de ambiente exigidas por extensões de linguagem externas.
Para obter mais informações, confira CREATE EXTERNAL LANGUAGE.
Verifique a instalação
A integração de recursos Java não inclui bibliotecas, mas você pode executar grep -r JRE_HOME /etc
para confirmar a criação da variável de ambiente JAVA_HOME
.
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. O Azure Data Studio é uma boa opção. Outras ferramentas comumente usadas, como o SQL Server Management Studio, são somente para Windows. Se você tiver um computador Windows com essas ferramentas, use-o para se conectar à sua instalação Linux do Mecanismo de Banco de Dados.
Instalação completa do SQL Server e da Extensão de Linguagem Java
Você pode instalar e configurar o mecanismo de banco de dados e a Extensão de Linguagem Java em um procedimento acrescentando pacotes e parâmetros Java em um comando que instala 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.
Você pode adicionar a extensibilidade do Java a uma instalação do mecanismo de banco de dados.
sudo yum install -y mssql-server mssql-server-extensibility-java
Aceite os contratos de licença e conclua a configuração pós-instalação. Use a ferramenta mssql-conf para esta tarefa.
sudo /opt/mssql/bin/mssql-conf setup
Esta 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 solicitado a fazê-lo.
sudo systemctl restart mssql-server.service
Instalação autônoma
Use a instalação autônoma do Mecanismo de Banco de Dados e adicione os pacotes para mssql-server-extensibility-java
.
Instalação offline
Siga as instruções de Instalação offline para conhecer as etapas da instalação dos pacotes. Encontre seu site de download e, em seguida, baixe pacotes específicos usando a lista de pacotes mais adiante nesta seção.
Dica
Várias das ferramentas de gerenciamento de pacotes fornecem comandos que podem ajudá-lo a determinar as dependências do pacote. 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
Você pode baixar os pacotes em https://packages.microsoft.com/. Todos os pacotes para Java são colocados no pacote do Mecanismo de Banco de Dados.
Caminhos de download
Pacote | Distribuição | 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 de arquivos exatos incluem informações da plataforma no sufixo, mas os nomes de arquivo a seguir devem ajudar você a determinar quais arquivos obter.
Pacotes principais
mssql-server-15.0.1000
mssql-server-extensibility-15.0.1000
Java
mssql-server-extensibility-java-15.0.1000
Limitações
No momento, a autenticação implícita não está disponível no Linux, o que significa que você não pode se conectar novamente ao servidor usando o Java em andamento para acessar dados ou outros recursos.
Governança de recursos
Há paridade entre o Linux e o Windows para Governança de recursos para pools de recursos externos, mas as estatísticas para sys.dm_resource_governor_external_resource_pools atualmente têm unidades diferentes no Linux.
Observação
As estatísticas na tabela a seguir são provenientes dos subsistemas de Grupos de Controle (cgroups) especificados.
Nome da coluna | Descrição | Valor no Linux |
---|---|---|
peak_memory_kb |
A quantidade máxima de memória usada para o pool de recursos. | No Linux, essa estatística é proveniente do subsistema memory , em que o valor é memory.max_usage_in_bytes |
write_io_count |
O total de E/Ss de gravação emitidas desde que as estatísticas do Resource Governor foram redefinidas. | 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 E/S lidas emitidas desde que as estatísticas do Resource Governor foram redefinidas. | No Linux, essa estatística é proveniente do subsistema blkio , em que o valor na linha de leitura é blkio.throttle.io_serviced |
total_cpu_kernel_ms |
O tempo do kernel do usuário da CPU cumulativo em milissegundos desde que as estatísticas do Resource Governor foram redefinidas. | 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 de do usuário da CPU cumulativo em milissegundos desde que as estatísticas do Resource Governor foram redefinidas. | No Linux, essa estatística é proveniente do subsistema cpuacct , em que o valor no valor da 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 |