Compartilhar via


Validando informações de partição para um assinante de mesclagem

Quando você define um filtro de linha com parâmetros para uma publicação de mesclagem, usa uma função que faz referência à informação do Assinante, como o nome de logon do Assinante. Por padrão, a replicação valida a informação do Assinante baseada nessa função, antes de cada sincronização e sempre que um instantâneo é aplicado ao Assinante. O processo de validação assegura que os dados são particionados corretamente para cada Assinante. O comportamento da validação é controlado pela propriedade de publicação validate_subscriber_info, a qual pode ser alterada usando sp_changemergepublication (Transact-SQL) ou na página Opções de Assinatura da caixa de diálogo de Propriedades de Publicação. Para obter mais informações sobre como alterar propriedades de publicação, consulte Como exibir e modificar propriedades de publicação (Programação Transact-SQL de replicação) e Como exibir e modificar propriedades de Artigo e Publicação (SQL Server Management Studio).

Como a validação de partição funciona

Quando uma publicação é filtrada, por exemplo, usando a função SUSER_SNAME(), o Merge Agent aplica o instantâneo inicial a cada Assinante baseado nos dados válidos para a expressão SUSER_SNAME().

Se a validação é ativada, quando o Assinante se conecta novamente ao Publicador para a sincronização seguinte, o Merge Agent valida a informação do Assinante e assegura que cada partição de assinante seja a mesma que a recebida no instantâneo inicial. Para cada mesclagem subseqüente ou aplicativo de instantâneo, o Merge Agent valida a partição de cada Assinante.

Se o Merge Agent detecta que a função usada na expressão de filtragem retornou um valor diferente daquele do instantâneo inicial, o aplicativo de mesclagem ou de instantâneo falhará, e essa assinatura do Assinante poderá necessitar reinicialização. A reinicialização poderá ser necessária para evitar problemas, que podem surgir se as configurações de mesclagem de um Assinante são alteradas, mas poderá ser suficiente para alterar informações no Assinante, como o nome de logon, novamente ao valor usado no momento do instantâneo original.

Quando o Merge Agent valida uma partição, além de validar a partição comparando aos valores retornados por todas as funções usadas em expressões de filtragem, o agente também verifica se o instantâneo foi gerado antes das mudanças que o invalidem, como operações de limpeza de metadados ou mudanças de esquema. Se um instantâneo é muito antigo, o Merge Agent retornará um erro e você precisará gerar novamente um instantâneo particionado para esse Assinante, baseado em um instantâneo regular atual.