Compartilhar via


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

  1. 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.

    O Scale Out está habilitado

    Se o valor da propriedade for False, habilite o Scale Out chamando o procedimento armazenado [catalog].[enable_scaleout].

  2. 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

  1. 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.

  2. 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.

  3. Verifique se a porta do firewall está aberta no nó Mestre do Scale Out.

  4. 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

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. Limpe os certificados inúteis no repositório de certificados Raiz do computador local no nó Mestre do Scale Out.

  3. 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)

  4. 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

  1. 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

  1. 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.

  2. 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: