ID do artigo: 307356 - Última revisão: sexta-feira, 3 de outubro de 2003 - Revisão: 3.3

INF: Noções básicas sobre mala replicação artigo ordem de processamento

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

O agente de mesclagem segue um conjunto específico de regras que governam a ordem na qual o processo de mesclagem aplica as alterações para artigos durante o processo de sincronização.

Este artigo descreve por que a ordem de processamento do artigo é importante.

Mais Informações

Há duas razões principais por que a ordem de processamento do artigo é importante:
  • Em muitos casos, o Merge Agent deve processar alterações para artigos que participam de restrições de integridade referencial declarativa (DRI) em uma ordem específica para atingir um desempenho ideal. Se não, o Merge Agent talvez precise repetir operações DML (linguagem de manipulação de dados)-tentado em uma ordem incorreta (que é, tente INSERT uma linha filho antes de que seu pai).
  • Aplicativos que usar disparadores para manter a integridade referencial requerem o Merge Agent enviar as alterações em uma ordem específica. Se o Merge Agent envia alterações em uma ordem incorreta, o disparador será provavelmente reverter a alteração e a alteração não se propague em toda a topologia de replicação.
Observe que o Merge Agent podem ignorar a avaliação de restrição FOREIGN KEY e execução do disparador usuário quando ele se aplica DML SQL alterar operações para uma réplica de parceiro. Para que isso ocorra, restrição FOREIGN KEY e o disparador de usuário ou ambos, devem ter sido criados com a opção NOT FOR REPLICATION. Em ambos os casos, o processo de mesclagem pressupõe que SQL Server foi avaliado a lógica de negócios com êxito quando ele executa a alteração iniciada pelo usuário original contra o objeto e que ele não tem reavaliar essas condições quando ele replica os dados para a réplica de parceiro. A principal vantagem de usar sem réplica dessa maneira é aumentar o desempenho. Para obter mais informações sobre a opção NOT FOR REPLICATION e como usá-lo adequadamente, consulte o tópico "NOT FOR REPLICATION opção" nos manuais online do SQL Server 2000.

Por dois motivos listados anteriormente, a ordem na qual o Merge Agent envia as alterações para uma réplica de parceiro é importante.

Antes de iniciar uma discussão sobre ordem de processamento do artigo, é importante ter uma compreensão dos dois conceitos-chave. Os dois conceitos chaves são:
  • Um apelido do artigo.

    - e -

  • Uma geração.
Aqui é uma descrição dos dois conceitos.

artigo apelidos

Um apelido é um valor inteiro que o agente de mesclagem utiliza para identificar um artigo (uma tabela do SQL Server) para replicação de mesclagem. O processo de mesclagem instalação atribui um apelido artigo quando ele adiciona o artigo a uma publicação de mesclagem. Se um artigo participar de restrições DRI, o processo de mesclagem de instalação tenta gerar um apelido de artigo que reflete definidas restrições DRI. O processo de mesclagem atribui tabelas referenciadas por uma restrição FOREIGN KEY (pai) nickname um artigo menor do que a tabela de referência (a tabela filho ou a tabela na qual a restrição FOREIGN KEY é definida).

Se uma tabela não participa de restrições DRI, o processo de instalação mesclagem atribuirá o apelido do artigo baseado na ordem em que ela adiciona o artigo à publicação (em ordem crescente).

geração

Uma geração é um valor inteiro que o Merge Agent usa para controlar um grupo lógico de alterações a um artigo específico. Todas as alterações feitas em um artigo específico em uma determinada réplica entre sincronizações de mesclagem estão associadas com a geração do mesma. Cada vez em que o Merge Agent é executado, ele fecha a geração de abrir existente e, em seguida, abre uma nova geração ao qual associar o próximo conjunto de alterações.

Processamento insere UPDATEs e exclui

O Merge Agent partições os artigos para uma publicação específica em dois grupos distintos:
  • O Merge Agent coloca artigos que não são envolvidos em quaisquer relacionamentos de filtro de associação e não relacionados a DRI para qualquer artigos envolvidos em filtros de associação em um grupo.
  • O Merge Agent coloca artigos explicitamente envolvidos em relações de filtro de associação e artigos relacionados ao ingressar em artigos de filtro por meio de DRI em um grupo segundo distinto.
O Merge Agent adiciona cada artigo definido para a publicação para apenas um dos grupos anteriores.

O Merge Agent usa os grupos para determinar o geral ordem de processamento de UPDATEs, inserções e exclusões para todos os artigos definidos para a publicação.

Em cada um dos dois respectivos grupos, o Merge Agent processa INSERTs e UPDATEs no artigo apelido ordem crescente e processos exclui no artigo apelido ordem decrescente. Primeiro, os processos do Merge Agent todos os exclui em sua totalidade de um grupo específico, seguido pelo INSERTs e UPDATEs (também em um grupo específico). Conceitualmente, o Merge Agent acrescenta os dois grupos mencionados anteriormente um do outro (não mescladas) na ordem listada anteriormente. O Merge Agent começa por exclusões de processamento para o primeiro grupo e, em seguida, se estende DELETE processamento para o segundo grupo e o restante do alterações para os dois grupos é processado em paralelo. Embora o Merge Agent mantém artigo ordem de processamento em cada grupo respectivo, o Merge Agent não mantém ordem de processamento artigo estrito entre os dois grupos respectivos. Como tal, no caso de um INSERT ou UPDATE, é possível que as alterações do primeiro grupo com um apelido artigo superior podem chegar antes de os a partir do segundo grupo com um apelido inferior. A situação inverso também pode ocorrer por um DELETE. Ambos esses comportamentos são por design.


Possível afeta de geração de lotes na ordem de processamento do artigo

Como mencionado anteriormente, com uma geração você pode logicamente agrupar alterações (INSERTs, atualizações e exclusões) que ocorrem para um artigo específico em uma determinada réplica entre sessões de sincronização. Por fim, o Merge Agent trabalha gerações quando ele determina quais alterações deve trocar entre duas réplicas. O Merge Agent negocia uma geração comum nos seguintes pontos no processo de sincronização:
  • Antes de ele carrega as alterações do assinante no Editor.
  • Antes de ele baixa alterações do Editor para o assinante.
O agente de mesclagem usa esta geração comuns como ponto de partida ao enumerar as gerações para enviar para uma réplica de parceiro durante o carregamento e download fases de sincronização de mesclagem.

O Merge Agent processa gerações em lotes, também conhecidas como geração de lotes. Por padrão, 100 gerações são incluídas em cada lote de geração que o Merge Agent carrega para o Editor do assinante ou baixa para o assinante do Editor. O tamanho de lote geração é configurável por meio do
-UploadGenerationsPerBatch e o -DownloadGenerationsPerBatch parâmetros do Merge Agent, ou através de perfil do Merge Agent. No caso padrão, se houver mais de 100 gerações que você precisa para troca (isto é, download e carregamento ou ambos) entre um editor (ou um reeditor) e um assinante, o Merge Agent processa vários geração de lotes. O número de lotes depende do número de gerações que o agente de mesclagem do exchange e gerações por lote configurações na força para uma sessão de mesclagem específico.

Em uma situação onde vários geração de lotes são trocados, o Merge Agent pode dividir relacionado pai e filho alterações em dois lotes geração separado. Se for o caso, o Merge Agent pode fornecer uma alteração de filho em um lote de geração à frente do lote de geração que contém a alteração de pai associada. Topologias de mesclagem hierárquica que usam re-publishers, há uma situação rara em que a divisão de alterações de pai e filho em lotes de geração pode levar à não-convergência. Para obter mais informações sobre não-convergência, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
308266  (http://support.microsoft.com/kb/308266/EN-US/ ) PROBLEMA: Não-convergência ao SQL Server processos filho e pai gerações na geração separada em lotes

Você pode aumentar o -UploadGenerationsPerBatch
e o -DownloadGenerationsPerBatch parâmetros discutido anteriormente para evitar dividir as alterações de pai e filho através de geração de lotes.

Ordem de processamento do artigo é mantida em um lote de geração específica acordo com a regras discutido anteriormente. No entanto, o Merge Agent não é possível manter artigo ordem de processamento em lotes de geração.

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbinfo KB307356 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 307356  (http://support.microsoft.com/kb/307356/en-us/ )