Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2019 (15.x) em Linux e versões posteriores
Saiba como instalar o componente Java Language Extension para SQL Server no Linux. A Extensão de Linguagem Java faz parte das Extensões de Linguagem do SQL Server e é um complemento para o Mecanismo de Banco de Dados.
Embora você possa instalar o Mecanismo de Banco de Dados e as Extensões de Idioma simultaneamente, é uma prática recomendada instalar e configurar o Mecanismo de Banco de Dados do SQL Server primeiro para que você possa resolver quaisquer problemas antes de adicionar mais componentes.
Pré-requisitos
A sua distribuição Linux deve ser suportada pelo SQL Server. Os recipientes são cobertos separadamente numa bala posterior. Distribuições suportadas incluem:
Precisas 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 corre em Linux.
- O pacote de extensões Java está nos repositórios de código-fonte do SQL Server para Linux. Se já configurou repositórios fonte para a instalação do Database Engine, execute os
mssql-server-extensibility-javacomandos de instalação do pacote usando o mesmo registo de repositório.
Language Extensions também é suportado em contêineres Linux. Contentores pré-construídos com Extensões de Linguagem não estão disponíveis, mas podes criar um a partir dos contentores do SQL Server usando um modelo de exemplo disponível no GitHub.
As Extensões de Linguagem e os Serviços de Aprendizado de Máquina 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 neste artigo.
Lista de pacotes
Num dispositivo ligado à internet, descarrega e instala pacotes independentemente do Database Engine, usando o instalador de pacotes de cada sistema operativo. A tabela a seguir descreve todos os pacotes disponíveis.
| Nome do pacote | Aplica-se a | Description |
|---|---|---|
mssql-server-extensibility |
Todos os idiomas | Estrutura de extensibilidade usada para a extensão da linguagem Java |
mssql-server-extensibility-java |
Java | Estrutura de extensibilidade usada para a extensão da linguagem Java e inclui um tempo de execução Java suportado Aplica-se a: SQL Server 2019 (15.x) apenas em Linux |
Instalar 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 ativar a Java Language Extension, construa um binário personalizado seguindo as instruções da página Java Language Extension no GitHub.
Note
Em um servidor conectado à Internet, as dependências do pacote são baixadas e instaladas como parte da instalação do pacote principal. Se o servidor não estiver conectado à Internet, consulte mais detalhes na configuração offline.
Pode descarregar e instalar qualquer runtime em Java, incluindo a versão mais recente do Microsoft Build do OpenJDK ou um runtime Java oficialmente licenciado. A partir do SQL Server 2022 (16.x), o programa de Instalação do SQL Server não instala um ambiente de execução Java.
Para ativar a Java Language Extension, construa um binário personalizado seguindo as instruções da página Java Language Extension 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 Docker do Ubuntu não incluem o apt-transport-https pacote. Para instalá-lo, 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 precisa 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
jarficheiro, consulte CREATE EXTERNAL LIBRARY.Se você não estiver usando bibliotecas externas, precisará fornecer permissões ao SQL Server para executar as classes Java em seu
jar.Para conceder acesso de leitura e execução a um
jarficheiro, execute o seguintechmodcomando sobre ojarficheiro. Coloca sempre os ficheiros das tuas aulas quandojartrabalhares com SQL Server. Para obter ajuda com a criação de umjararquivo , consulte Criar um arquivo Java .jar a partir de arquivos de classe.chmod ug+rx <MyJarFile.jar>Também precisa de dar
mssql_satellitepermissões para ler e executar ojarficheiro.chown mssql_satellite:mssql_satellite <MyJarFile.jar>A configuração adicional é feita principalmente através da ferramenta mssql-conf.
Adicione a
mssqlconta de usuário usada para executar o serviço SQL Server. Este passo é obrigatório se ainda não tiver feito a configuração anteriormente.sudo /opt/mssql/bin/mssql-conf setupHabilite o acesso à rede de saída. O acesso à rede de saída está desativado por padrão. Para permitir pedidos de saída, defina a
outboundnetworkaccesspropriedade Booleana com amssql-confferramenta. Para mais informações, consulte Configurar 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 Barra Inicial do SQL Server e a instância do Mecanismo de Banco de Dados para ler os valores atualizados do arquivo INI. Uma mensagem de reinício lembra-o sempre que modifica uma configuração relacionada com extensibilidade.
systemctl restart mssql-launchpadd systemctl restart mssql-server.serviceAtivar a execução de scripts externos. 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
mssql-launchpaddserviço novamente.Para cada base de dados onde pretende usar extensões de linguagem, registe a linguagem externa com CREATE EXTERNAL LANGUAGE. Consulte a secção seguinte para os passos.
Registar língua externa
Para cada base de dados onde pretende usar extensões de linguagem, registe 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 no 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 este parâmetro para definir variáveis de ambiente que extensões externas de linguagem exigem.
Para obter mais informações, veja CREATE EXTERNAL LANGUAGE.
Verificar a instalação
A integração de funcionalidades em Java não inclui bibliotecas, mas podes correr 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 invocando 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 Java Language Extension
Para instalar e configurar o Database Engine e a Java Language Extension num só procedimento, adicione pacotes e parâmetros Java a um comando que instale o Database Engine.
Forneça uma linha de comando que inclua o Mecanismo de Banco de Dados, além de recursos de extensão de idioma.
O comando seguinte adiciona extensibilidade em Java a uma instalação do Database Engine.
sudo yum install -y mssql-server mssql-server-extensibility-javaAceite os contratos de licença e conclua a configuração pós-instalação. Usa a
mssql-confferramenta.sudo /opt/mssql/bin/mssql-conf setupEsta etapa solicita que você aceite o contrato de licença para o Mecanismo de Banco de Dados, escolha uma edição e defina a senha de administrador.
Reinicie o serviço se for solicitado.
sudo systemctl restart mssql-server.service
Instalação não supervisionada
Use a instalação autônoma para o 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 o seu site de downloads e depois descarregue os pacotes específicos listados mais adiante nesta secção.
Tip
Várias ferramentas de gestão 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 de dpkg -I [package name].deb.
Site de download
Descarregue os pacotes de https://packages.microsoft.com/. O site aloja todos os pacotes Java juntamente com o pacote Database Engine.
Caminhos de download
| Package | Distribution | Localização do download |
|---|---|---|
mssql/extensibility-java packages |
Chapéu Vermelho 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 um idioma específico. Os nomes exatos dos ficheiros incluem a informação da plataforma no sufixo, mas os seguintes nomes ajudam-no a determinar quais os ficheiros a 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. O código Java a correr no processo externo não consegue voltar a ligar-se ao servidor para aceder a dados ou outros recursos.
Governação dos recursos
Linux e Windows têm paridade na governação 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 seguinte provêm-se dos subsistemas de Grupos de Controlo (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 é originada do memory subsistema, onde 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 é originada do blkio subsistema, onde 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, esta estatística é obtida do blkio subsistema, onde o valor na linha de leitura é blkio.throttle.io_serviced |
total_cpu_kernel_ms |
O tempo cumulativo do kernel do utilizador da CPU em milissegundos desde o último reset das estatísticas do Resource Governor. | No Linux, essa estatística é originada do cpuacct subsistema, onde o valor na linha do usuário é cpuacct.stat |
total_cpu_user_ms |
O tempo acumulado de utilizador da CPU em milissegundos desde o último reset das estatísticas do Resource Governor. | No Linux, esta 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 é originada do pids subsistema, onde o valor é pids.current |