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 2016 (13.x) e versões posteriores
Este artigo fornece diretrizes de solução de problemas para problemas envolvendo o serviço Barra Inicial do SQL Server usado com os Serviços de Aprendizado de Máquina. O serviço Launchpad suporta a execução de scripts externos para R e Python. Vários problemas podem impedir que a Barra Inicial seja iniciada, incluindo problemas de configuração ou alterações, ou protocolos de rede ausentes.
Determinar se o Launchpad está em execução
Abra SQL Server Configuration Manager. Na linha de comando, digite SQLServerManager13.msc, SQLServerManager14.msc ou SQLServerManager15.msc.
Anote a conta de serviço na qual o Launchpad está sendo executado. Cada instância em que R ou Python está habilitado deve ter sua própria instância do serviço Launchpad. Por exemplo, o serviço para uma instância nomeada pode ser algo como MSSQLLaunchpad$InstanceName.
Se o serviço for interrompido, reinicie-o. Ao reiniciar, se houver algum problema com a configuração, uma mensagem será publicada no log de eventos do sistema e o serviço será interrompido novamente. Verifique o log de eventos do sistema para obter detalhes sobre por que o serviço parou.
Revise o conteúdo do RSetup.log e certifique-se de que não há erros na configuração. Por exemplo, a mensagem Conclusão com o código 0 indica falha no início do serviço.
Para procurar outros erros, reveja o conteúdo de rlauncher.log.
Verifique a conta de serviço do Launchpad
A conta de serviço padrão pode ser "NT Service$SQL2016", "NT Service$SQL2017" ou "NT Service$SQL2019". A parte final pode variar, dependendo do nome da instância SQL.
O serviço Launchpad (Launchpad.exe) é executado usando uma conta de serviço de baixo privilégio. No entanto, para iniciar R e Python e se comunicar com a instância do banco de dados, a conta de serviço Launchpad requer os seguintes direitos de usuário:
- Iniciar sessão como serviço (SeServiceLogonRight)
- Substitua um token no nível do processo (SeAssignPrimaryTokenPrivilege)
- Ignorar verificação transversal (SeChangeNotifyPrivilege)
- Ajustar cotas de memória para um processo (SeIncreaseQuotaSizePrivilege)
Para obter informações sobre esses direitos de usuário, consulte a seção "Privilégios e direitos do Windows" em Configurar contas de serviço e permissões do Windows.
Sugestão
Se você estiver familiarizado com o uso da ferramenta SDP (Support Diagnostics Platform) para diagnósticos do SQL Server, poderá usar o SDP para revisar o arquivo de saída com o nome MachineName_UserRights.txt.
O grupo de usuários do Launchpad não pode fazer logon localmente
Durante a instalação dos Serviços de Aprendizado de Máquina, o SQL Server cria o grupo de usuários do Windows SQLRUserGroup e, em seguida, provisiona-o com todos os direitos necessários para que a Barra Inicial se conecte ao SQL Server e execute trabalhos de script externos. Se esse grupo de usuários estiver habilitado, ele também será usado para executar scripts Python.
No entanto, em organizações onde políticas de segurança mais restritivas são aplicadas, os direitos exigidos por esse grupo podem ter sido removidos manualmente ou podem ser automaticamente revogados pela política. Se os direitos tiverem sido removidos, o Launchpad já não se poderá conectar ao SQL Server e o SQL Server não poderá chamar o runtime externo.
Para corrigir o problema, certifique-se de que o grupo SQLRUserGroup tem o sistema certo Permitir logon localmente.
Para obter mais informações, consulte Configurar contas de serviço e permissões do Windows.
Permissões para executar scripts externos
Mesmo que o Launchpad esteja configurado corretamente, ele retornará um erro se o usuário não tiver permissão para executar scripts R ou Python.
Se você instalou o SQL Server como administrador de banco de dados ou é proprietário de banco de dados, essa permissão será concedida automaticamente. No entanto, outros usuários geralmente têm permissões mais limitadas. Se tentarem executar um script R, obterão um erro na Barra Inicial.
Para corrigir o problema, no SQL Server Management Studio, um administrador de segurança pode modificar o logon do SQL ou a conta de usuário do Windows executando o seguinte script:
GRANT EXECUTE ANY EXTERNAL SCRIPT TO <username>
Para obter mais informações, consulte GRANT (Transact-SQL.
Erros comuns do Launchpad
Esta seção lista as mensagens de erro mais comuns que a Barra Inicial retorna.
"Não é possível iniciar o tempo de execução para o script R"
Se o grupo do Windows para usuários do R (também usado para Python) não puder fazer logon na instância que está executando o R Services, você poderá ver os seguintes erros:
Erros gerados quando você tenta executar scripts R:
Não é possível iniciar o runtime de execução para o script 'R'. Por favor, verifique a configuração do runtime 'R'.
Ocorreu um erro de script externo. Não é possível iniciar o ambiente de execução.
Erros gerados pelo serviço Launchpad do SQL Server:
Falha ao inicializar o iniciador RLauncher.dll
Nenhum DLL de lançamento foi registado!
Os logs de segurança indicam que a conta NT SERVICE não pôde fazer logon
Para obter informações sobre como conceder a esse grupo de usuários as permissões necessárias, consulte Instalar o SQL Server R Services.
Observação
Essa limitação não se aplica se você usar logons SQL para executar scripts R de uma estação de trabalho remota.
"Falha de logon: o usuário não recebeu o tipo de logon solicitado"
Por padrão, a Barra Inicial do SQL Server usa a seguinte conta na inicialização: NT Service\MSSQLLaunchpad. A conta é configurada pela instalação do SQL Server para ter todas as permissões necessárias.
Se você atribuir uma conta diferente à Barra Inicial ou se o direito for removido por uma política na máquina do SQL Server, a conta pode não ter as permissões necessárias e você poderá ver este erro:
ERROR_LOGON_TYPE_NOT_GRANTED 1385 (0x569) Falha de início de sessão: o utilizador não recebeu o tipo de início de sessão solicitado neste computador.
Para conceder as permissões necessárias à nova conta de serviço, use o aplicativo Diretiva de Segurança Local e atualize as permissões na conta para incluir as seguintes permissões:
- Ajustar as cotas de memória para um processo específico (SeIncreaseQuotaPrivilege)
- Ignorar verificação transversal (SeChangeNotifyPrivilege)
- Iniciar sessão como serviço (SeServiceLogonRight)
- Substitua um token no nível do processo (SeAssignPrimaryTokenPrivilege)
"Não é possível comunicar com o serviço Launchpad"
Se você instalou e habilitou o aprendizado de máquina, mas recebe esse erro ao tentar executar um script R ou Python, o serviço Launchpad para a instância pode ter parado de ser executado.
Em um prompt de comando do Windows, abra o SQL Server Configuration Manager. Para obter mais informações, consulte SQL Server Configuration Manager.
Clique com o botão direito do mouse em Launchpad do SQL Server para a instância e selecione Propriedades.
Selecione a guia Serviço e verifique se o serviço está em execução. Se não estiver em execução, altere o Modo Iniciar para Automático e selecione Aplicar.
Reiniciar o serviço geralmente corrige o problema para que os scripts de aprendizado de máquina possam ser executados. Se a reinicialização não corrigir o problema, anote o caminho e os argumentos na propriedade Binary Path e faça o seguinte:
a) Revise o arquivo de .config do iniciador e verifique se o diretório de trabalho é válido.
b) Verifique se o grupo do Windows usado pelo Launchpad possa conectar-se à instância do SQL Server.
c. Se você alterar qualquer uma das propriedades do serviço, reinicie o serviço Launchpad.
"Falha na criação de tmpFile: erro fatal"
Nesse cenário, você instalou com êxito recursos de aprendizado de máquina e Launchpad está em execução. Você tenta executar algum código R ou Python simples, mas o Launchpad apresenta um erro como o seguinte:
Não é possível comunicar com o ambiente de execução para o script R. Verifique os requisitos do tempo de execução do R.
Ao mesmo tempo, o tempo de execução do script externo grava a seguinte mensagem como parte da mensagem STDERR:
Erro fatal: falha na criação do tmpfile.
Este erro indica que a conta que o Launchpad está a tentar utilizar não tem permissão para iniciar sessão na base de dados. Esta situação pode acontecer quando políticas de segurança rigorosas são implementadas. Para determinar se esse é o caso, revise os logs do SQL Server e verifique se a conta MSSQLSERVER01 foi negada no logon. As mesmas informações são fornecidas nos logs específicos para R_SERVICES ou PYTHON_SERVICES. Procure por ExtLaunchError.log
Por padrão, 20 contas são configuradas e associadas ao processo de Launchpad.exe, com os nomes MSSQLSERVER01 até MSSQLSERVER20. Se você fizer uso intenso de R ou Python, você pode aumentar o número de contas.
Para resolver o problema, verifique se o grupo tem permissões Permitir logon local para a instância local onde os recursos de aprendizado de máquina foram instalados e habilitados. Em alguns ambientes, esse nível de permissão pode exigir uma exceção de GPO do administrador de rede.
"Quota insuficiente para processar este comando"
Este erro pode significar uma de várias coisas:
A Plataforma de Lançamento pode ter utilizadores externos insuficientes para realizar uma consulta externa. Por exemplo, se você estiver executando mais de 20 consultas externas simultaneamente e houver apenas 20 usuários padrão, uma ou mais consultas poderão falhar.
Memória insuficiente está disponível para processar a tarefa R. Esse erro acontece com mais frequência em um ambiente padrão, onde o SQL Server pode estar usando até 70% dos recursos do computador. Para obter informações sobre como modificar a configuração do servidor para oferecer suporte a um maior uso de recursos por R, consulte Operacionalizando seu código R.
"Não consigo encontrar o pacote"
Se você executar o código R no SQL Server e receber essa mensagem, mas não recebeu a mensagem quando executou o mesmo código fora do SQL Server, isso significa que o pacote não foi instalado no local da biblioteca padrão usada pelo SQL Server.
Este erro pode acontecer de várias maneiras:
Você instalou um novo pacote no servidor, mas o acesso foi negado, então R instalou o pacote em uma biblioteca de usuário.
Você instalou o R Services e, em seguida, instalou outra ferramenta R ou um conjunto de bibliotecas, como o RStudio.
Para determinar o local da biblioteca de pacotes R usada pela instância, abra o SQL Server Management Studio (ou qualquer outra ferramenta de consulta de banco de dados), conecte-se à instância e execute o seguinte procedimento armazenado:
EXEC sp_execute_external_script @language = N'R',
@script = N' print(normalizePath(R.home())); print(.libPaths());';
Resultados da amostra
Mensagens do STDOUT do script externo:
[1] "C:\Arquivos de Programas\Microsoft SQL Server\MSSQL13. SQL2016\R_SERVICES"
[1] "C:/Arquivos de Programas/Microsoft SQL Server/MSSQL13. SQL2016/R_SERVICES/biblioteca"
Para resolver o problema, você deve reinstalar o pacote na biblioteca de instâncias do SQL Server.
Observação
Se você tiver atualizado uma instância do SQL Server 2016 para usar a versão mais recente do Microsoft R, o local da biblioteca padrão será diferente. Para obter mais informações, consulte Local padrão da biblioteca R.
O Launchpad é encerrado devido a DLLs incompatíveis
Se você instalar o mecanismo de banco de dados com outros recursos, corrigir o servidor e, posteriormente, adicionar o recurso de Aprendizado de Máquina usando a mídia original, a versão errada dos componentes do Aprendizado de Máquina poderá ser instalada. Quando o Launchpad deteta uma incompatibilidade de versão, ele é desligado e cria um arquivo de despejo.
Para evitar esse problema, certifique-se de instalar todos os novos recursos no mesmo nível de patch que a instância do servidor.
A maneira errada de atualizar:
- Instale o SQL Server 2016 sem o R Services.
- Atualize a Atualização Cumulativa 2 do SQL Server 2016.
- Instale o R Services (In-Database) usando a mídia RTM.
A maneira correta de atualizar:
- Instale o SQL Server 2016 sem o R Services.
- Atualize o SQL Server 2016 para o nível de patch desejado. Por exemplo, instale o Service Pack 1 e, em seguida, a Atualização Cumulativa 2.
- Para adicionar o recurso no nível de patch correto, execute a instalação do SP1 e CU2 novamente e escolha R Services (In-Database).
Launchpad falha ao iniciar se a notação 8dot3 for necessária
Observação
Em sistemas mais antigos, o Launchpad pode falhar ao iniciar se houver um requisito de notação 8dot3. Este requisito foi removido em versões posteriores. Os clientes do SQL Server 2016 R Services devem instalar uma das seguintes opções:
- SQL Server 2016 SP1 e CU1: Atualização cumulativa 1 para SQL Server 2016 SP1.
- SQL Server 2016 RTM, atualização cumulativa 3 e esse hotfix, que está disponível sob demanda.
Para compatibilidade com R, o SQL Server 2016 R Services (In-Database) exigia a unidade onde o recurso está instalado para dar suporte à criação de nomes de arquivo curtos usando a notação 8dot3. Um nome de arquivo 8.3 também é chamado de nome de arquivo curto e é usado para compatibilidade com versões anteriores do Microsoft Windows ou como uma alternativa a nomes de arquivo longos.
Se o volume onde você está instalando o R não oferecer suporte a nomes de arquivo curtos, os processos que iniciam o R do SQL Server podem não conseguir localizar o executável correto e a Barra Inicial não será iniciada.
Como solução alternativa, você pode habilitar a notação 8dot3 no volume onde o SQL Server está instalado e onde o R Services está instalado. Em seguida, você deve fornecer o nome abreviado para o diretório de trabalho no arquivo de configuração do R Services.
Para habilitar a notação 8dot3, execute o utilitário fsutil com o argumento 8dot3name conforme descrito aqui: fsutil 8dot3name.
Depois que a notação 8dot3 estiver habilitada, abra o arquivo RLauncher.config e anote a propriedade de
WORKING_DIRECTORY. Para obter informações sobre como localizar esse arquivo, consulte Coleta de dados para solução de problemas do Machine Learning.Use o utilitário fsutil com o argumento file para especificar um caminho de arquivo curto para a pasta especificada em WORKING_DIRECTORY.
Edite o arquivo de configuração para especificar o mesmo diretório de trabalho que você inseriu na propriedade WORKING_DIRECTORY. Como alternativa, você pode especificar um diretório de trabalho diferente e escolher um caminho existente que já seja compatível com a notação 8dot3.
Próximos passos
Coleta de dados para solução de problemas de aprendizado de máquina
Instalar os Serviços de Aprendizado de Máquina do SQL Server
Solucionar problemas de conexão com o motor de base de dados