ID do artigo: 953568 - Última revisão: segunda-feira, 14 de julho de 2008 - Revisão: 1.0

CORRECÇÃO: A operação de sincronização de uma replicação de mesclagem expira no Microsoft SQL Server 2005

Download do hotfix está disponívelDownload do Hotfix Disponível
Visualizar e solicitar downloads de hotfix
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.
Bug #: 50002786 (Hotfix do SQL)
A Microsoft distribui correções do Microsoft SQL Server 2005 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todos os as correções de segurança que foram incluídas com o anterior SQL Server 2005 corrigir lançamento.
Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário. Microsoft SQL Server 2005, você configurará a replicação de mesclagem. Em seguida, você implantar o instantâneo para um assinante. Nesse cenário, quando você executar o Merge Agent para sincronizar dados, a operação expira quando o Merge Agent chama o procedimento sp_MSmakegeneration armazenados.

Além disso, quando você executa a instrução a seguir no banco de dados replicado do assinante após a operação expira, a consulta retorna alguns registros que são suscetíveis ao problema:
select * from dbo.MSmerge_genhistory gh 
where not exists 
      (select * from dbo.MSmerge_contents as mc
       where mc.generation = gh.generation)
and not exists
      (select * from dbo.MSmerge_tombstone as ts
       where ts.generation = gh.generation)
and genstatus = 0
union 
select * from dbo.MSmerge_genhistory gh 
where exists 
      (select * from dbo.MSmerge_contents as mc
      where mc.generation = gh.generation
      and mc.tablenick <> gh.art_nick)
or exists
      (select * from dbo.MSmerge_tombstone as ts
      where ts.generation = gh.generation
      and ts.tablenick <> gh.art_nick)
and genstatus = 0

Causa

Esse problema ocorre porque há uma linha na tabela MSmerge_genhistory que atenda a uma das seguintes condições:
  • A geração não tem nenhuma alteração é mapeadas para ele na tabela MSmerge_tombstone ou na tabela MSmerge_contents.
  • Um ou mais linhas que são mapeadas para a geração tenham um valor incorreto na coluna tablenick na tabela MSmerge_tombstone ou na tabela MSmerge_contents.
Essa situação faz com que o procedimento sp_MSmakegeneration armazenados ir para um loop infinito.

Resolução

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 8. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2005 Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
951217  (http://support.microsoft.com/kb/951217/LN/ ) Pacote de atualização cumulativo 8 para SQL Server 2005 Service Pack 2
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança foram incluídas com o anterior SQL Server 2005 corrigir lançamento. A Microsoft recomenda que você considere a aplicação a versão de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Compilações do SQL Server 2005 lançados após o SQL Server 2005 Service Pack 2 foi lançado
Os hotfixes do Microsoft SQL Server 2005 são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 2 para uma instalação do SQL Server 2005 Service Pack 2. Por padrão, qualquer hotfix fornecidas em um SQL Server service pack está incluído no service pack seguinte do SQL Server.

Como Contornar

Para contornar esse problema, execute estas etapas:
  1. Cancele a operação de sincronização não será concluída.
  2. Execute as seguintes instruções para obter a configuração generation_leveling_threshold para a publicação: uso
    use <Publication Database Name>
    go
    exec sp_helpmergepublication @publication = '<Publication Name>'
    
    Observe o valor da configuração generation_leveling_threshold.
  3. Execute as instruções a seguir para desativar geração de redistribuição e concentração de geração:
    use <Publication Database Name>
    exec sp_changemergepublication @publication = '<Publication Name>'
    , @property = 'generation_leveling_threshold'
    , @value = 0
    
  4. Sincronize dados para a publicação.
  5. Depois que a sincronização for concluída com êxito, redefini o generation_leveling_threshold definir volta para o valor que você anotou na etapa 2. Para fazer isso, execute as seguintes instruções:
    use <Publication Database Name>
    exec sp_changemergepublication @publication = '<Publication Name>'
    , @property = 'generation_leveling_threshold'
    , @value = <Value>
    
Após usar esse método para solucionar esse problema, esse problema ocorrerá novamente se outro assinante tentar processar a geração. Você deve repetir essas etapas para todos os assinantes que encontrar o problema.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Para mais informações sobre quais arquivos são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de atualização cumulativa que contém o hotfix descrito neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
951217  (http://support.microsoft.com/kb/951217/LN/ ) Pacote de atualização cumulativo 8 para SQL Server 2005 Service Pack 2

Referências

Para obter mais informações sobre a lista de compilações disponibilizadas após o SQL Server Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Compilações do SQL Server 2005 lançados após o SQL Server 2005 Service Pack 2 foi lançado
Para obter mais informações sobre o modelo incremental de serviços para o SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
935897  (http://support.microsoft.com/kb/935897/LN/ ) Há um modelo incremental de serviços da equipe do SQL Server para fornecer hotfixes para problemas relatados
Para obter mais informações sobre como obter o SQL Server 2005 Service Pack 2, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
913089  (http://support.microsoft.com/kb/913089/LN/ ) Como obter o service pack mais recente para o SQL Server 2005
Para obter mais informações sobre os novos recursos e os aprimoramentos no SQL Server 2005 Service Pack 2, visite o seguinte site:
http://go.microsoft.com/fwlink/?LinkId=71711 (http://go.microsoft.com/fwlink/?LinkId=71711)
Para obter mais informações sobre o esquema para nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499  (http://support.microsoft.com/kb/822499/LN/ ) Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL Server
Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684  (http://support.microsoft.com/kb/824684/LN/ ) Descrição da terminologia padrão que é usada para descrever as atualizações de software

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
Palavras-chave: 
kbmt kbautohotfix kbsql2005repl kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced kbhotfixserver KB953568 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: 953568  (http://support.microsoft.com/kb/953568/en-us/ )