Partilhar via


Instalar o SQL Server Java Language Extension no Windows

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores

Saiba como instalar o componente Java Language Extension para SQL Server no Windows. A extensão da linguagem Java faz parte das extensões de linguagem do SQL Server.

Observação

Este artigo destina-se à instalação da extensão de linguagem Java para SQL Server no Windows. Para Linux, consulte Instalar o SQL Server Java Language Extension no Linux. Para a extensão de linguagem C# no Windows, consulte Instalar a extensão de idioma do SQL Server .NET no Windows.

Pré-requisitos

Observação

Os recursos e as opções de instalação variam entre as versões do SQL Server. Use a lista suspensa do seletor de versão para escolher a versão apropriada do SQL Server.

  • A Instalação do SQL Server é necessária se você quiser instalar o suporte para a Extensão de Linguagem Java.

  • Você pode baixar e instalar qualquer tempo de execução Java conforme desejado, incluindo o mais recente Microsoft Build do OpenJDK ou o tempo de execução Java oficialmente licenciado. No SQL Server 2022 (16.x) e versões posteriores, o tempo de execução do Java não é instalado pela Instalação do SQL Server.

  • É necessária uma instância do Mecanismo de Banco de Dados. Não é possível instalar apenas os recursos do Java Language Extension, embora seja possível adicioná-los incrementalmente a uma instância existente.

  • Para continuidade de negócios, os grupos de disponibilidade Always On são suportados para extensões de idioma. Você precisa instalar extensões de idioma e configurar pacotes em cada nó. A instalação da extensão de linguagem Java também é suportada em uma instância de cluster de failover no SQL Server.

  • Não instale as Extensões de Linguagem do SQL Server ou a Extensão de Linguagem Java em um controlador de domínio. A parte Language Extensions da instalação falha.

  • 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. Para obter mais informações, consulte Executar scripts Python e R com Serviços de Aprendizado de Máquina em clusters de Big Data do SQL Server 2019.

Importante

Após a conclusão da instalação, conclua as etapas de pós-configuração descritas neste artigo. Essas etapas incluem habilitar o SQL Server para usar código externo e adicionar contas necessárias para que o SQL Server execute código Java em seu nome. As alterações de configuração geralmente exigem uma reinicialização da instância ou uma reinicialização do serviço Launchpad.

Java JRE ou JDK

Observação

Os recursos e as opções de instalação variam entre as versões do SQL Server. Use a lista suspensa do seletor de versão para escolher a versão apropriada do SQL Server.

Com o SQL Server 2022 (16.x), você pode baixar e instalar qualquer tempo de execução Java, incluindo o Microsoft Build mais recente do OpenJDK ou o tempo de execução Java oficialmente licenciado.

Java 11 é atualmente a versão suportada no Windows. O Java Runtime Environment (JRE) é o requisito mínimo, mas o Java Development Kit (JDK) é útil se você precisar do compilador Java e dos pacotes de desenvolvimento. Como o JDK é tudo incluído, se você instalar o JDK, o JRE não será necessário. No Windows, recomendamos instalar o JDK na pasta padrão /Program Files/ , se possível. Caso contrário, será necessária uma configuração extra para conceder permissões aos executáveis. Para obter mais informações, consulte a seção conceder permissões (Windows) neste documento.

Há duas maneiras de instalar e usar o Java com o SQL Server 2019 (15.x) e versões posteriores:

  1. Use o tempo de execução Java padrão, que está incluído na instalação do SQL Server.

    A tabela a seguir lista as versões padrão do Java incluídas na configuração:

    Versão do SQL Server Versão padrão do Java
    SQL Server 2019 (15.x) 23 e versões posteriores Compilação Microsoft do OpenJDK 11.0.19
    SQL Server 2019 (15.x) RTM - CU22 Azul Zulu JRE 11.0.3
  2. Use sua distribuição Java preferida em vez do tempo de execução Java padrão.

    Java 11 é atualmente a versão suportada no Windows. O Java Runtime Environment (JRE) é o requisito mínimo, mas o Java Development Kit (JDK) é útil se você precisar do compilador Java e dos pacotes de desenvolvimento. Como o JDK é tudo incluído, se você instalar o JDK, o JRE não será necessário. No Windows, recomendamos instalar o JDK na pasta padrão /Program Files/ , se possível. Caso contrário, será necessária uma configuração extra para conceder permissões aos executáveis. Para obter mais informações, consulte a seção conceder permissões (Windows) neste documento.

Observação

Dado que o Java é compatível com versões anteriores, as versões anteriores podem funcionar, mas a versão suportada e testada para o SQL Server 2019 (15.x) é Java 11.

Obtenha a mídia de instalação

O local de download do SQL Server depende da edição:

  • Edições SQL Server Enterprise, Standard e Express. Estas edições são licenciadas para uso em produção. Para as edições Enterprise e Standard, entre em contato com o fornecedor do software para obter a mídia de instalação. Você pode encontrar informações de compras e um diretório de parceiros da Microsoft no site de compras da Microsoft.

  • A última edição gratuita.

Executar o programa de configuração

Para instalações locais, você deve executar a Instalação como administrador. Se você instalar o SQL Server a partir de um compartilhamento remoto, deverá usar uma conta de domínio que tenha permissões de leitura e execução no compartilhamento remoto.

  1. Inicie o assistente de instalação do SQL Server.

  2. Na guia Instalação , selecione Nova instalação autônoma do SQL Server ou adicione recursos a uma instalação existente.

  1. Na página Seleção de Recursos , selecione estas opções:

    Serviços do Mecanismo de Banco de Dados: para usar Extensões de Idioma com o SQL Server, você deve instalar uma instância do Mecanismo de Banco de Dados. Você pode usar uma instância padrão ou nomeada.

    Serviços de Aprendizado de Máquina e Extensões de Linguagem: Esta opção instala o componente Extensões de Linguagem que suporta a execução de código Java.

    • Se quiser instalar o tempo de execução Java padrão, selecione Serviços de Aprendizado de Máquina e Extensões de Linguagem e Java.

    • Se você quiser usar seu próprio tempo de execução Java, selecione Serviços de Aprendizado de Máquina e Extensões de Linguagem. Não selecione Java.

    • Se você quiser usar R e Python, consulte Instalar o SQL Server Machine Learning Services (Python e R) no Windows.

    Captura de tela das opções de recurso para extensões de idioma.

    1. Se você escolher Java na etapa anterior para instalar o tempo de execução padrão do Java, a página Local de Instalação do Java será exibida.

      Instale o Java padrão incluído nesta instalação. A opção Fornecer o local de uma versão diferente que foi instalada neste computador não é usada para extensões de idioma.

      Captura de tela do local de instalação do Java.

  1. Na página Seleção de Recursos , selecione estas opções:

    Serviços do Mecanismo de Banco de Dados: para usar Extensões de Idioma com o SQL Server, você deve instalar uma instância do Mecanismo de Banco de Dados. Você pode usar uma instância padrão ou nomeada.

    Serviços de Aprendizado de Máquina e Extensões de Linguagem: Esta opção instala o componente Extensões de Linguagem que suporta a execução de código Java.

    Captura de tela dos recursos da instância.

  1. Na página Pronto para Instalar , verifique se essas seleções estão incluídas e selecione Instalar.

    • Serviços do Mecanismo de Banco de Dados
    • Serviços de Aprendizagem Automática e Extensões de Linguagem

    Observe o local da pasta sob o caminho ..\Setup Bootstrap\Log onde os arquivos de configuração estão armazenados. Quando a instalação estiver concluída, você poderá revisar os componentes instalados no arquivo de resumo.

  2. Após a conclusão da instalação, se você for instruído a reiniciar o computador, faça-o agora. É importante ler a mensagem do Assistente de Instalação quando terminar a Instalação. Para obter mais informações, consulte Exibir e ler arquivos de log da Instalação do SQL Server.

Adicionar a variável JRE_HOME

JRE_HOME é uma variável de ambiente do sistema que especifica a localização do interpretador Java. Nesta etapa, crie uma variável de ambiente do sistema para ela no Windows.

  1. Localize e copie o caminho inicial do JRE.

    Por exemplo, o caminho inicial do JRE para o tempo de execução padrão do Java Zulu JRE 11.0.3 é %ProgramFiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\AZUL-OpenJDK-JRE\.

    Dependendo do caminho de instalação do SQL Server ou se você escolher outro tempo de execução Java, seu local do JDK ou JRE pode ser diferente do caminho no exemplo anterior. Mesmo que você tenha um JDK instalado, geralmente obtém uma subpasta JRE como parte dessa instalação, então aponte para a pasta JRE nesse caso. A extensão Java tenta carregar o jvm.dll do caminho %JRE_HOME%\bin\server.

  1. Localize e copie o caminho inicial do JRE.

    Esse caminho depende do tempo de execução e das opções de instalação.

    A extensão Java tenta carregar o jvm.dll do caminho %JRE_HOME%\bin\server.

  1. No Painel de Controle, abra Sistema e Segurança, abra Sistema e selecione Propriedades Avançadas do Sistema.

  2. Selecione Variáveis de ambiente.

  3. Crie uma nova variável de sistema para JRE_HOME com o valor do caminho JDK/JRE (encontrado na etapa 1).

  1. Reinicie a Barra Inicial.

    1. Abra SQL Server Configuration Manager.

    2. Em Serviços do SQL Server, clique com o botão direito do mouse em Barra Inicial do SQL Server e selecione Reiniciar.

  1. Registre a extensão de idioma. Siga estas etapas para baixar e registrar a extensão da linguagem Java, que é usada para o Java custom runtime.

    1. Baixe o java-lang-extension-windows-release.zip arquivo da extensão de linguagem Java para o repositório GitHub do SQL Server. Transfira o ficheiro mais recente do Windows java-lang-extension-windows.zip . Se você não tiver instalado o Java padrão da Instalação do SQL Server, verifique se a versão do JRE corresponde à que foi baixada do GitHub. Se você preferir usar sua própria versão instalada do JRE, talvez seja necessário compilar java-lang-extension a partir do código-fonte do GitHub.

    2. Use o Azure Data Studio para se conectar à sua instância do SQL Server e execute o seguinte comando T-SQL para registrar a extensão da linguagem Java com CREATE EXTERNAL LANGUAGE.

    3. Modifique o caminho nesta instrução para refletir o local do arquivo zip da extensão de idioma baixada (java-lang-extension-windows-release.zip) e o local da sua instalação Java personalizada (%ProgramFiles%\Python).

    CREATE EXTERNAL LANGUAGE [Java]
    FROM (CONTENT = N'C:\path\to\java-lang-extension-windows-release.zip',
        FILE_NAME = 'javaextension.dll',
        ENVIRONMENT_VARIABLES = N'{"JAVAHOME": "C:\\Program Files\\Java"}');
    GO
    
  2. Reinicie a Barra Inicial.

    1. Abra SQL Server Configuration Manager.

    2. Em Serviços do SQL Server, clique com o botão direito do mouse em Barra Inicial do SQL Server e selecione Reiniciar.

Conceder acesso à pasta JRE não padrão

Se você não instalou o Java padrão que foi incluído no SQL Server e não instalou o Java em /Program Files, você precisa executar as etapas a seguir.

Se você não instalou o Java em arquivos de programa, você precisa executar as etapas a seguir.

Execute os comandos icacls a partir de uma linha elevada para conceder acesso às contas de serviço SQLRUsergroup e SQL Server (em ALL_APPLICATION_PACKAGES) para acessar o JRE. Os comandos concedem recursivamente acesso a todos os arquivos e pastas sob o caminho de diretório fornecido.

  1. Conceder permissões SQLRUserGroup

    Para uma instância nomeada, acrescente o nome da instância ao SQLRUsergroup (por exemplo, SQLRUsergroupINSTANCENAME).

    icacls "<PATH to JRE>" /grant "SQLRUsergroup":(OI)(CI)RX /T
    

    Você pode pular esta etapa se tiver instalado o JDK/JRE na pasta padrão em arquivos de programa no Windows.

  2. Dê permissões ao AppContainer. Este comando concede permissões ao SID S-1-15-2-1do computador , que é equivalente a ALL APPLICATION PACKAGES uma versão em inglês do Windows. Como alternativa, você pode usar icacls "<PATH to JRE>" /grant "ALL APPLICATION PACKAGES":(OI)(CI)RX /T em uma versão em inglês do Windows.

    icacls "<PATH to JRE>" /grant *S-1-15-2-1:(OI)(CI)RX /T
    

Reiniciar o serviço

Quando a instalação estiver concluída, reinicie o Mecanismo de Banco de Dados antes de continuar para a próxima etapa, habilitando a execução do script.

A reinicialização do serviço também reinicia automaticamente o serviço relacionado da Barra Inicial do SQL Server.

Você pode reiniciar o serviço usando o comando Reiniciar com o botão direito do mouse para a instância no SSMS, com o painel Serviços no Painel de Controle ou usando o SQL Server Configuration Manager.

Habilitar a execução de scripts

  1. Abra o SQL Server Management Studio. Conecte-se à instância onde você instalou as Extensões de Idioma, selecione Nova Consulta para abrir uma janela de consulta e execute o seguinte comando:

    EXECUTE sp_configure;
    

    O recurso está desativado (value is 0) por padrão e deve ser explicitamente ativado por um administrador antes que você possa executar o código Java.

  2. Para habilitar o recurso de script externo, execute a seguinte instrução:

    EXECUTE sp_configure 'external scripts enabled', 1;
    GO
    
    RECONFIGURE WITH OVERRIDE;
    GO
    

    Se você já ativou o recurso para Serviços de Aprendizado de Máquina, não execute reconfigurar uma segunda vez para Extensões de Idioma. A plataforma de extensibilidade subjacente suporta ambos.

Registar língua externa

Para cada banco de dados em que você deseja usar extensões de idioma, você precisa registrar o idioma externo com CREATE EXTERNAL LANGUAGE.

O exemplo a seguir adiciona uma linguagem externa chamada Java a um banco de dados no SQL Server no Windows.

CREATE EXTERNAL LANGUAGE Java
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'javaextension.dll');
GO

Para obter mais informações, consulte CREATE EXTERNAL LANGUAGE.

Verificar a instalação

Verifique o status de instalação da instância nos logs de instalação.

Use as etapas a seguir para verificar se todos os componentes usados para iniciar o script externo estão em execução.

  1. No SQL Server Management Studio ou no Azure Data Studio, abra uma nova janela de consulta e execute a seguinte instrução:

    EXECUTE sp_configure 'external scripts enabled';
    

    O run_value número está agora definido para 1.

  2. Abra o painel Serviços ou o SQL Server Configuration Manager e verifique se o serviço Barra Inicial do SQL Server está em execução. Você deve ter um serviço para cada instância do Mecanismo de Banco de Dados que tenha extensões de idioma instaladas. Para obter mais informações sobre o serviço, consulte Arquitetura de extensibilidade em extensões de linguagem do SQL Server.

Configuração adicional

Se a etapa de verificação tiver sido bem-sucedida, você poderá executar o Java Code do SQL Server Management Studio, Azure Data Studio, Visual Studio Code ou qualquer outro cliente que possa enviar instruções T-SQL para o servidor.

Se você tiver um erro ao executar o comando, revise as etapas de configuração adicionais nesta seção. Talvez seja necessário fazer configurações adicionais apropriadas para o serviço ou banco de dados.

No nível da instância, a configuração extra pode incluir:

No banco de dados, talvez você precise das seguintes atualizações de configuração:

Observação

Se a configuração adicional é necessária depende do seu esquema de segurança, onde você instalou o SQL Server e como você espera que os usuários se conectem ao banco de dados e executem scripts externos.

Otimizações sugeridas

Agora que você tem tudo funcionando, você também pode querer otimizar o servidor para suportar Java Language Extension.

Otimizar o servidor para Java Language Extension

As configurações padrão para a instalação do SQL Server destinam-se a otimizar o equilíbrio do servidor para uma variedade de serviços suportados pelo Mecanismo de Banco de Dados, que podem incluir processos de extração, transformação e carregamento (ETL), relatórios, auditoria e aplicativos que usam dados do SQL Server. Portanto, nas configurações padrão, você pode achar que os recursos para extensões de idioma às vezes são restritos ou limitados, particularmente em operações que consomem muita memória.

Para garantir que os trabalhos de extensões de idioma sejam priorizados e dotados de recursos adequados, recomendamos que você use o Administrador de Recursos do SQL Server para configurar um pool de recursos externos. Você também pode querer alterar a quantidade de memória alocada para o Mecanismo de Banco de Dados ou aumentar o número de contas executadas no serviço Barra Inicial do SQL Server.

Se você usa a edição Standard e não tem o Administrador de Recursos, pode usar modos de exibição de gerenciamento dinâmico (DMVs) e Eventos Estendidos, bem como o monitoramento de eventos do Windows, para ajudar a gerenciar os recursos do servidor.

Próximo passo

Os desenvolvedores Java podem começar com alguns exemplos simples e aprender as noções básicas de como o Java funciona com o SQL Server. Para a próxima etapa, consulte o seguinte link: