Partilhar via


MSSQLSERVER_21879

Aplica-se a: SQL Server

Detalhes

Atributo Valor
Nome do produto SQL Server
ID do evento 21879
Origem do Evento MSSQLSERVER
Componente SQLEngine
Nome simbólico SQLErrorNum21879
Texto da mensagem Não foi possível consultar o servidor redirecionado '% s' para o publicador original '% s' e o banco de dados publicador '% s' para determinar o nome do servidor remoto; Erro %d, Mensagem de erro '% s.'

Explicação

sp_validate_redirected_publisher usa um servidor vinculado temporário criado para se conectar ao publicador redirecionado e descobrir o nome do servidor remoto. O erro 21879 é retornado quando a consulta de servidor vinculado falha. A chamada para solicitar o nome de servidor remoto é normalmente o primeiro uso do servidor vinculado temporário e, portanto, se houver problemas de conectividade, é provável que eles apareçam primeiro com essa chamada. Essa chamada remota simplesmente executa @@servername selecionados no servidor remoto.

O servidor vinculado usado para consultar o publicador redirecionado usa o modo de segurança, o logon e a senha fornecidos quando sp_adddistpublisher foi chamado para o publicador original.

  • Se a autenticação do SQL Server tiver sido usada (modo de segurança 0), o logon e a senha especificados serão usados para se conectar ao servidor remoto.

  • Se a autenticação do Windows tiver sido usada (modo de segurança 1), uma conexão confiável será usada para conectar.

    • Se sp_validate_redirected_publisher for chamado explicitamente por um usuário, o logon do Windows usado pelo usuário será usado para a conexão.

    • Se o sp_validate_redirected_publisher for chamado por um agente de replicação em sp_get_redirected_publisher, o logon do Windows associado ao agente será usado.

O erro 21879 pode indicar que sp_validate_redirected_publisher foi chamado usando um logon que não é conhecido no publicador de destino redirecionado.

Ação do usuário

Verifique se o logon de autenticação do SQL Server ou o logon de autenticação do Windows é válido em todas as réplicas do grupo de disponibilidade e tem autorização suficiente para acessar as tabelas de metadados de assinatura (syssubscriptions e sysmergesubscriptions) no banco de dados do editor.

Existem considerações especiais quando o erro 21879 é retornado de uma chamada a sp_get_redirected_publisher iniciada por um agente de replicação executado em um nó diferente do distribuidor, como um agente de mesclagem executado em um assinante. Se a autenticação do Windows for usada para a conexão com o editor redirecionado, o SQL Server deverá ser configurado para autenticação Kerberos para que a conexão seja estabelecida com êxito. Quando a autenticação do Windows é usada e o SQL Server não está configurado para autenticação Kerberos, o erro 18456 indicando que o logon 'NT AUTHORITY\ANONYMOUS LOGON' falhou, é recebido por um agente de mesclagem em execução em um assinante. Há três maneiras possíveis de lidar com este problema:

  • Configure o SQL Server para autenticação Kerberos. Consulte Autenticação Kerberos e SQL Server nos Manuais Online do SQL Server.

  • Use sp_changedistpublisher para alterar o modo de segurança associado ao publicador original em MSdistpublishers, bem como para especificar um logon e a senha a serem usados para a conexão.

  • Especifique o parâmetro de linha de comando BypassPublisherValidation na linha de comando do agente de mesclagem para ignorar a validação quando sp_get_redirected_publisher for chamado no distribuidor.