Solução de problemas do Scale Out
Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory
O SSIS Scale Out envolve a comunicação entre o banco de dados do Catálogo do SSIS SSISDB
, o serviço Mestre do Scale Out e o serviço Trabalho do Scale Out. Às vezes, essa comunicação é interrompida devido a erros de configuração, falta de permissões de acesso e outros motivos. Este artigo ajuda você a solucionar problemas com a configuração do Scale Out.
Para investigar os sintomas que você encontrar, siga as etapas abaixo uma a uma até que o problema seja resolvido.
Falha do Mestre do Scale Out
Sintomas
O Mestre do Scale Out não é capaz de se conectar ao SSISDB.
Não é possível mostrar as propriedades do Mestre Gerenciador do Scale Out.
As propriedades do Mestre não são populadas na exibição
[catalog].[master_properties]
.
Solução
Verifique se o Scale Out está habilitado.
No SSMS, no Pesquisador de Objetos, clique com o botão direito do mouse em SSISDB e verifique se o recurso Scale Out está habilitado.
Se o valor da propriedade for False, habilite o Scale Out chamando o procedimento armazenado
[catalog].[enable_scaleout]
.Verifique se o nome do SQL Server especificado no arquivo de configuração do Mestre do Scale Out está correto e reinicie o serviço Mestre do Scale Out.
Falha do Trabalho do Scale Out
Sintomas
O Trabalho do Scale Out não pode se conectar ao Mestre do Scale Out.
O Trabalho do Scale Out não é mostrado depois de ser adicionado no Gerenciador do Scale Out.
O Trabalho do Scale Out não é mostrado na exibição
[catalog].[worker_agents]
.O serviço Trabalho do Scale Out está em execução, mas o Trabalho do Scale Out está offline.
Solução
Verifique as mensagens de erro no log do serviço do Trabalho do Scale Out em \<drive\>:\Users\\*[account running worker service]*\AppData\Local\SSIS\Cluster\Agent
.
Nenhuma escuta do ponto de extremidade
Sintomas
"System.ServiceModel.EndpointNotFoundException: Não havia nenhum ponto de extremidade escutando em https:// [NomeDoComputador]:[Porta] /ClusterManagement/ que pudesse aceitar a mensagem. "
Solução
Verifique se o número da porta especificado no arquivo de configuração de serviço do Mestre do Scale Out está correto e reinicie o serviço Mestre do Scale Out.
Verifique se o ponto de extremidade mestre especificado no arquivo de configuração de serviço do Trabalho do Scale Out está correto e reinicie o serviço Trabalho do Scale Out.
Verifique se a porta do firewall está aberta no nó Mestre do Scale Out.
Resolva quaisquer outros problemas de conexão entre o nó Mestre do Scale Out e o nó de Trabalho do Scale Out.
Não foi possível estabelecer a relação de confiança
Sintomas
""System.ServiceModel.Security.SecurityNegotiationException: Não foi possível estabelecer a relação de confiança para o canal seguro de SSL/TLS com autoridade '[Nome do Computador]:[Porta]'. "
"System.Net.WebException: A conexão subjacente estava fechada: Não foi possível estabelecer relação de confiança para o canal seguro SSL/TLS."
"System.Security.Authentication.AuthenticationException: O certificado remoto é inválido de acordo com o procedimento de validação."
Solução
Instale o certificado do Mestre do Scale Out no repositório de certificados Raiz do computador local no nó de Trabalho do Scale Out, caso o certificado ainda não esteja instalado e reinicie o serviço Trabalho do Scale Out.
Verifique se o nome do host no ponto de extremidade mestre está incluído nos CNs do certificado do Mestre do Scale Out. Caso contrário, redefina o ponto de extremidade mestre no arquivo de configuração do Trabalho do Scale Out e reinicie o serviço Trabalho do Scale Out.
Observação
Se não for possível alterar o nome do host do ponto de extremidade mestre devido a configurações de DNS, você precisará alterar o certificado do Mestre do Scale Out. Consulte Gerenciar certificados para o SSIS Scale Out.
Verifique se a impressão digital mestre especificada na configuração do Trabalho do Scale Out corresponde à impressão digital do certificado do Mestre do Scale Out.
Não foi possível estabelecer um canal de segurança
Sintomas
"System.ServiceModel.Security.SecurityNegotiationException: Não foi possível estabelecer um canal seguro para SSL/TLS com autoridade '[Nome do Computador]:[Porta]'."
"System.Net.WebException: A solicitação foi anulada: Não foi possível criar um canal seguro SSL/TLS."
Solução
Verifique se a conta que executa o serviço Trabalho do Scale Out tem acesso ao certificado do Trabalho do Scale Out executando o seguinte comando:
winhttpcertcfg.exe -l -c LOCAL_MACHINE\MY -s {CN of the worker certificate}
Se a conta não tiver acesso, conceda acesso a ela executando o comando a seguir e reinicie o serviço Trabalhador do Scale Out.
winhttpcertcfg.exe -g -c LOCAL_MACHINE\My -s {CN of the worker certificate} -a {the account running Scale Out Worker service}
Solicitação HTTP proibida
Sintomas
"System.ServiceModel.Security.MessageSecurityException: A solicitação HTTP foi proibida com o esquema de autenticação cliente 'Anônimo'."
"System.Net.WebException: O servidor remoto retornou um erro: (403) Proibido."
Solução
Instale o certificado do Trabalho do Scale Out no repositório de certificados Raiz do computador local no nó Mestre do Scale Out, caso o certificado ainda não esteja instalado e reinicie o serviço Trabalho do Scale Out.
Limpe os certificados inúteis no repositório de certificados Raiz do computador local no nó Mestre do Scale Out.
Configure o Schannel para não enviar mais a lista de autoridades de certificação confiáveis durante o processo de handshake TLS/SSL adicionando a entrada do Registro a seguir ao nó Mestre do Scale Out.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Nome do valor: SendTrustedIssuerList
Tipo de valor: REG_DWORD
Dados do valor: 0 (Falso)
Se não for possível limpar todos os certificados não autoassinados, conforme descrito na etapa 2, defina o valor da chave do Registro a seguir como 2.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL
Nome do valor: ClientAuthTrustMode
Tipo de valor: REG_DWORD
Dados do valor: 2
Observação
Se você tiver certificados não autoassinados no repositório de certificados raiz, a autenticação de certificado do cliente falhará. Para saber mais, confira Os Serviços de Informações da Internet (IIS) 8 podem rejeitar solicitações de certificado de cliente com erros HTTP 403.7 ou 403.16.
Erro de solicitação HTTP
Sintomas
“System.ServiceModel.CommunicationException: erro ao fazer a solicitação HTTP para https://[Machine Name]:[Port]/ClusterManagement/. Isso pode ser devido ao fato de que o certificado do servidor não está configurado corretamente com HTTP.SYS no caso HTTPS. Isso também pode ser causado por uma incompatibilidade da associação de segurança entre o cliente e o servidor.”
Solução
Verifique se o certificado do Mestre do Scale Out está associado à porta no ponto de extremidade mestre corretamente do nó mestre executando o seguinte comando:
netsh http show sslcert ipport=0.0.0.0:{Master port}
Verifique se o hash de certificado exibido corresponde à impressão digital do certificado do Mestre do Scale Out. Se a associação não estiver correta, redefina-a executando os comandos a seguir e reinicie o serviço Trabalho do Scale Out.
netsh http delete sslcert ipport=0.0.0.0:{Master port} netsh http add sslcert ipport=0.0.0.0:{Master port} certhash={Master certificate thumbprint} certstorename=Root appid={random guid}
Não é possível abrir o repositório de certificados
Sintomas
Falha na validação ao conectar um Trabalho do Scale Out ao Mestre do Scale Out no Gerenciador do Scale Out com a mensagem de erro “Não é possível abrir o repositório de certificados no computador.”
Solução
Execute o Gerenciador do Scale Out como administrador. Se você abrir o Gerenciador do Scale Out com o SSMS, precisará executar o SSMS como administrador.
Inicie o serviço Registro Remoto no computador caso ele não esteja em execução.
A execução não é iniciada
Sintomas
A execução no Scale Out não inicia.
Solução
Verifique o status dos computadores selecionados para executar o pacote na exibição [catalog].[worker_agents]
. Pelo menos um trabalho deve estar online e habilitado.
Nenhum log
Sintomas
Os pacotes são executados com êxito, mas não há nenhuma mensagem registrada em log.
Solução
Verifique se a Autenticação do SQL Server é permitida pela instância do SQL Server que hospeda o SSISDB.
Observação
Se você alterou a conta para registro em log do Scale Out, consulte Alterar a conta para registro em log do Scale Out e verifique a cadeia de conexão usada para registro em log.
As mensagens de erro não são úteis
Sintomas
As mensagens de erro do relatório de execução de pacote não são suficientes para solucionar os problemas.
Solução
Mais logs de execução podem ser encontrados na TasksRootFolder
configurada em WorkerSettings.config
. Por padrão, essa pasta é \<drive\>:\Users\\[account]\AppData\Local\SSIS\ScaleOut\Tasks
. A [account] é a conta que executa o serviço Trabalho do Scale Out, com o valor padrão SSISScaleOutWorker140
.
Para localizar o log para a execução de pacote com a [execution ID] , execute o comando T-SQL a seguir para obter a [task ID] . Em seguida, encontre o nome da subpasta que contém a [task ID] em TasksRootFolder
.
SELECT [TaskId]
FROM [SSISDB].[internal].[tasks] tasks, [SSISDB].[internal].[executions] executions
WHERE executions.execution_id = *Your Execution Id* AND tasks.JobId = executions.job_id
Aviso
Essa consulta destina-se apenas à solução de problemas. As exibições internas referenciadas na consulta deverão ser alteradas no futuro.
Próximas etapas
Para obter mais informações, consulte os seguintes artigos sobre como configurar a Escala horizontal do SSIS: