Este artigo descreve como solucionar o erro 20598 "a linha não foi encontrada no assinante ao aplicar o comando replicado" na replicação transacional.

Como solucionar problemas

Para solucionar esse problema, execute as seguintes etapas:

  1. No monitor de replicação do agente de distribuição para o assinante, extrair o número de sequência da transação e ID que encontrou o erro do comando:



    Observação: Você pode obter o mesmo número de sequência da transação no servidor do distribuidor, usando a seguinte consulta:

  2. Extraia os comandos que mapeiam para o número de sequência da transação no servidor do distribuidor. Use o número de sequência da transação da etapa 1 como o parâmetro para esse comando:

  3. A partir da saída da etapa 2, identifica o comando que está falhando, usando o ID de comando da etapa 1. Consulte a coluna command_id no conjunto de resultados.

  4. Valide as informações do artigo no Editor. Use a identificação do artigo que você obtém da etapa 2 e verificar os detalhes do artigo que você está tentando atualizar:

  5. Valide a chave primária no Editor.

    Você tem dois tipos de informação: a tabela na qual você está tentando realizar a atualização e o valor da chave primária. Você pode consultar a tabela com o valor da chave primária e localize a linha no banco de dados do publisher. Por exemplo:

    Selecione * de tbl_sample onde nome da coluna = < primary_key_value >

  6. Verifique se o problema no assinante.

    Executar a mesma consulta no banco de dados do assinante e compará-lo com o resultado que você recebe do banco de dados do publisher.

Solução alternativa

Para contornar esse problema, use os dois métodos a seguintes:

  • Inserir manualmente a linha ausente no assinante. Isso pode permitir que o agente de distribuição repetir o comando falhou e seguir adiante com a replicação.

    Observação: Pode haver outras linhas que estão faltando e que devem ser inseridos manualmente no assinante se existem mais falhas.

  • Instruir o Distribution Agent para ignorar este erro e continuar a replicar o restante das alterações. O Distribution Agent aceita o parâmetro skiperrors . Você pode usar esse parâmetro para passar o código de erro 20598. Isso pode manter a configuração de replicação intactas enquanto espera pela oportunidade de sincronizar manualmente as linhas ausentes.

    Observação Você deve avaliar cuidadosamente os efeitos ramificados de integridade referencial e os disparadores que estão presentes na tabela afetada antes de continuar.

Mais informações

Coleta de dados para investigar a causa deste problema

Se esse problema ocorrer repetidamente, você deve coletar os seguintes dados para análise pela equipe de suporte do Microsoft SQL Server para que possa tentar identificar a causa do problema:

  • O backup do banco de dados de distribuição quando esse problema ocorre. (Isso deve ser após o erro é relatado e antes que a assinatura é reinicializada.)

  • Backups de log de transação do Editor e no assinante. (Esses devem ser pelo menos 24 horas que levam à hora do problema.)

  • Rastreamentos do Profiler que mostram a atividade dos agentes de replicação no Editor, o assinante e o distribuidor. (Por favor, certifique-se de que o profiler está sendo executado mesmo antes do início do problema. Idealmente, você deseja iniciar o profiler ao mesmo tempo como a hora de início do trabalho de reindexação.)

  • Saídas das cinco etapas anteriores para identificar a tabela afetada e o valor da chave primária está ausente

  • Saída dos modos de exibição de catálogo do publisher e os bancos de dados do assinante:

    • sys.partitions

    • sys.allocation_units

    • sys.objects

  • Saídas detalhadas dos logs do agente de replicação

Problemas conhecidos que são endereçados

Os seguintes problemas ocorrem em versões anteriores do SQL Server:

Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Referências

Para obter mais informações sobre a terminologia de atualização de software, consulte a Descrição da terminologia padrão que é usada para descrever as atualizações de software.

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade da tradução?
O que afetou sua experiência?

Obrigado por seus comentários!

×