Partilhar via


Como exibir informações sobre conflitos para publicações de mesclagem (Programação Transact-SQL de replicação)

Quando um conflito é resolvido em uma replicação de mesclagem, os dados da linha perdedora são gravados em uma tabela de conflitos. Os dados de conflito podem ser visualizados de forma programática, usando procedimentos armazenados de replicação. Para obter mais informações, consulte Detecção e resolução de conflito de replicação de mesclagem avançada.

Para visualizar informações sobre conflitos e dados de linhas perdedoras para todos os tipos de conflitos

  1. No Publicador do banco de dados de publicação, execute sp_helpmergepublication. Observe os valores das colunas a seguir no conjunto de resultados.

    • centralized_conflicts - 1 indica que as linhas de conflito são armazenadas no Publicador e 0 indica que as linhas de conflito não são armazenadas no Publicador.

    • decentralized_conflicts - 1 indica que as linhas de conflito são armazenadas no Assinante e 0 indica que as linhas de conflito não são armazenadas no Assinante.

      ObservaçãoObservação

      O comportamento do log de conflito de uma publicação de mesclagem é definido, usando-se o parâmetro @conflict_logging de sp_addmergepublication. O uso do parâmetro @centralized_conflicts não está mais em uso.

    A tabela seguinte descreve os valores dessas colunas com base no valor especificado para @conflict_logging.

    @conflict_logging value

    centralized_conflicts

    decentralized_conflicts

    publisher

    1

    0

    subscriber

    0

    1

    both

    1

    1

  2. No Publicador do banco de dados de publicação ou no Assinante, no banco de dados da assinatura, execute sp_helpmergearticleconflicts. Especifique um valor para @publication para retornar apenas as informações de conflitos para artigos que pertençam a uma publicação específica. Isto retorna informações da tabela de conflitos para artigos com conflitos. Observe o valor de conflict_table para qualquer artigo de interesse. Se o valor de conflict_table para um artigo for NULL, exclua apenas os conflitos que tenham ocorrido neste artigo.

  3. (Opcional) Revise linhas de conflito para artigos de interesse. Dependendo dos valores de centralized_conflicts e decentralized_conflicts de etapa 1, execute um dos seguintes procedimentos:

    • No Publicador do banco de dados de publicação, execute sp_helpmergeconflictrows. Especifique uma tabela de conflitos para o artigo (de etapa 1) para @conflict_table. (Opcional) Especifique um valor de @publication para restringir informações sobre conflitos retornadas a uma publicação específica. Isso retorna dados de linha e outra informações para a linha perdedora.

    • No Assinante, no banco de dados da assinatura, execute sp_helpmergeconflictrows. Especifique uma tabela de conflitos para o artigo (de etapa 1) para @conflict_table. Isso retorna dados de linha e outra informações para a linha perdedora.

Para visualizar informações somente sobre conflitos onde a exclusão falhou

  1. No Publicador do banco de dados de publicação, execute sp_helpmergepublication. Observe os valores das colunas a seguir no conjunto de resultados.

    • centralized_conflicts - 1 indica que as linhas de conflito são armazenadas no Publicador, e 0 indica que as linhas de conflito não são armazenadas no Publicador.

    • decentralized_conflicts - 1 indica que as linhas de conflito são armazenadas no Assinante e 0 indica que as linhas de conflito não são armazenadas no Assinante.

      ObservaçãoObservação

      O comportamento do log de conflito de uma publicação de mesclagem é definido usando-se o parâmetro @conflict_logging de sp_addmergepublication. O uso do parâmetro @centralized_conflicts não está mais em uso.

  2. No Publicador do banco de dados de publicação ou no Assinante, no banco de dados da assinatura, execute sp_helpmergearticleconflicts. Especifique um valor para @publication para retornar apenas as informações das tabelas de conflitos para artigos que pertençam a uma publicação específica. Isso retorna informações da tabela de conflitos para artigos com conflitos. Observe o valor de source_object para qualquer artigo de interesse. Se o valor de conflict_table para um artigo for NULL, só exclua conflitos que tenham ocorrido neste artigo.

  3. (Opcional) Revise informações sobre conflitos para excluir conflitos. Dependendo dos valores de centralized_conflicts e decentralized_conflicts de etapa 1, execute um dos seguintes procedimentos:

    • No Publicador do banco de dados de publicação, execute sp_helpmergedeleteconflictrows. Especifique o nome da tabela de fonte (da etapa 1) na qual o conflito aconteceu para @source_object. (Opcional) Especifique um valor de @publication para restringir informações sobre conflitos retornadas a uma publicação específica. Isso retorna informações sobre conflitos de exclusão armazenadas no Publicador.

    • No Assinante, no banco de dados da assinatura, execute sp_helpmergedeleteconflictrows. Especifique o nome da tabela de fonte (da etapa 1) na qual o conflito aconteceu para @source_object. (Opcional) Especifique um valor de @publication para restringir informações sobre conflitos retornadas a uma publicação específica. Isso retorna informações sobre conflitos de exclusão armazenadas no Assinante.