Visão geral da replicação de mesclagem.
A replicação de mesclagem, como a replicação transacional, normalmente inicia com um instantâneo dos objetos e dos dados do banco de dados de publicação. As alterações dos dados subsequentes e as modificações de esquema feitas no Publicador e nos Assinantes são rastreadas com gatilhos. O Assinante sincroniza com o Publicador quando está conectado à rede e permuta todas as linhas que foram alteradas entre o Publicador e o Assinante desde a última vez que a sincronização ocorreu.
Normalmente, a replicação de mesclagem é usada normalmente em ambientes do tipo servidor para clientes. A replicação de mesclagem é apropriada em quaisquer das seguintes situações:
Diversos Assinantes podem atualizar os mesmos dados diversas vezes e propagar essas alterações para o Publicador e outros Assinantes.
Os Assinantes precisam receber dados, fazer alterações offline e sincronizar posteriormente as alterações com o Publicador e outros Assinantes.
Cada Assinante requer uma partição diferente de dados.
Conflitos podem ocorrer e, quando isto acontecer, você precisará do recurso para detectá-los e encontrar a solução.
O aplicativo requer a alteração nos dados da rede no lugar do acesso aos estados de dados intermediários. Por exemplo, se uma linha for alterada cinco vezes em um Assinante antes de ele sincronizar com um Publicador, a linha será alterada somente uma vez no Publicador pra refletir a alteração dos dados na rede (ou seja, o quinto valor).
A replicação de mesclagem permite que diversos sites operem de forma autônoma e que as atualizações posteriores de mesclagem obtenham um único resultado uniforme. Como as atualizações são feitas em mais de um nó, os mesmos dados podem ter sido atualizados pelo Publicador e por mais de um Assinante. Portanto, os conflitos podem ocorrer quando as atualizações forem mescladas e a replicação de mesclagem fornecer várias maneiras para controlar os conflitos.
Para rastrear as alterações, a replicação de mesclagem (e a replicação transacional, com assinaturas de atualização em fila) deve poder identificar exclusivamente cada linha em cada tabela publicada. Para fazer isso, a replicação de mesclagem adiciona a coluna rowguid a cada tabela, a menos que a tabela já tenha uma coluna do tipo de dados uniqueidentifier com a propriedade ROWGUIDCOL definida (neste caso, esta coluna será usada). Se a tabela for descartada da publicação, a coluna rowguid será removida; mas, se uma coluna existente foi usada para o rastreamento, ela não será removida. Um filtro não deve incluir o rowguidcol usado por replicação para identificar linhas. A função newid() é fornecida como um padrão para a coluna rowguid, mas os clientes podem fornecer um guid para cada linha, se necessário. Entretanto, não forneça valor 00000000-0000-0000-0000-000000000000.
Para obter informações sobre como implementar replicação de mesclagem, consulte Projetando e implementando (Replicação).
Para obter informações sobre cenários comuns que envolvem replicação de mesclagem, consulte Replicando dados entre um servidor e clientes.
Consulte também