CORRECÇÃO: O usuários podem controlar o processo de compensação de mudanças na replicação de mesclagem

Traduções deste artigo Traduções deste artigo
ID do artigo: 828637 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você usa replicação de mesclagem, o agente de mesclagem pode perceber erros de sincronização se uma alteração de inserção, uma alteração de atualização ou uma alteração de exclusão não pode ser aplicada em uma réplica de destino por vários motivos, incluindo uma violação de chave primária no Editor ou no assinante. O Merge Agent sempre envia uma alteração de compensação para a réplica de origem para desfazer a alteração falhou. O Merge Agent executa o processo de alteração de compensação para Certifique-se de que dados são mantidos em um estado consistente e convergent em todas as réplicas. Sem as alterações de compensação, os dados podem variar entre réplicas se ocorrer um erro, como uma violação de chave primária. Se os dados variam entre réplicas, não-convergência de dados ocorre.

Antes desse hotfix, não havia nenhuma maneira de permitir que os usuários para controlar o processo de alteração compensação. O processo de alteração compensação foi tratado internamente pelo Merge Agent. Porque esse processo foi tratado internamente pelo Merge Agent, era difícil solucionar o motivo pelo qual determinados conflitos ocorreram. Além disso, porque a linha conflitante é removida ou desfeita em todas as réplicas, os dados de linha são removidos da topologia do toda. Para ajudar a solucionar esses problemas, a Microsoft adicionou uma nova propriedade nível de artigo para replicação que permite que os usuários para controlar o processo de alteração compensação de mesclagem.

Resolução

Informações sobre o service pack

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211Como obter o SQL Server 2000 service pack mais recente

Informações sobre o hotfix

A versão em inglês deste hotfix apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version            Size    File name
   ----------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe      
   25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll     
   25-Apr-2003  02:12                    786,432  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf
   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql
   26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll      
   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll        
   23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll       
   24-Apr-2003  02:51                    747,927  Instdist.sql
   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll      
   01-Apr-2003  02:07                      1,873  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll     
   07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll     
   02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll     
   04-Aug-2003  18:17                    550,780  Procsyst.sql
   22-May-2003  22:57                     19,195  Qfe469571.sql
   06-Sep-2003  01:36                  1,090,932  Replmerg.sql
   06-Sep-2003  07:18  2000.80.858.0     221,768  Replprov.dll     
   06-Sep-2003  07:18  2000.80.858.0     307,784  Replrec.dll      
   06-Sep-2003  00:00                  1,087,150  Replsys.sql
   13-Aug-2003  16:28                    986,603  Repltran.sql
   29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll
   05-Aug-2003  21:06                    127,884  Sp3_serv_uni.sql
   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172  Sqldumper.exe    
   19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll
   02-Jul-2003  00:18  2000.80.834.0     180,736  Sqlmap70.dll     
   03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll       
   02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll
   08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll     
   06-Sep-2003  07:19  2000.80.858.0   7,598,161  Sqlservr.exe     
   25-Jul-2003  21:44  2000.80.845.0     590,396  Sqlsort.dll      
   08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll       
   25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll     
   01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll     
   01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll     
   01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll     
   31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe     
   30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll          
   02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll      

Observação Devido às dependências do arquivo, o hotfix mais recente ou o recurso que contém esses arquivos também pode conter arquivos adicionais.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft que estão listados na seção "Aplica-se a" deste artigo.Esse problema foi corrigido primeiro no Microsoft SQL Server 2000 Service Pack 4.

Mais Informações

Esse hotfix adiciona uma nova propriedade de artigo nível compensate_for_errors para publicações de mesclagem. Você pode definir essa propriedade como true ou false. O valor padrão para essa propriedade é true. A configuração padrão significa que a replicação de mesclagem continua a emitir compensação alterações porque ela tem em todos os service packs e versões anteriores. Quando essa propriedade é definida como true e uma alteração de inserção, uma alteração de atualização, ou uma alteração de exclusão não puder ser aplicada em uma réplica de destino por várias razões (uma violação de chave primária ocorre no Editor ou assinante, por exemplo), o Merge Agent envia uma alteração de compensação para a réplica de origem para desfazer a alteração.

Quando a propriedade compensate_for_errors é definida como false e uma alteração não pode ser aplicada em uma réplica de destino, ações de compensação não são emitidas e a falha na alteração permanece como um conflito até que o administrador de banco de dados resolve a condição de erro. O Merge Agent tenta replicar a linha em cada sincronização subseqüente executada até que a condição de erro foi resolvida.

Nível inferior agentes de inscrição, particularmente os assinantes de recepção que não têm esse hotfix instalado, continuam a se comportar como se a propriedade compensate_for_errors fosse definida como true, mesmo se você tiver instalado esse hotfix no Editor e a propriedade compensate_for_errors é definida como false no Editor. Portanto, os usuários devem atualizar todos os assinantes para esse hotfix se desejarem usar a funcionalidade fornecida pela nova propriedade compensate_for_errors . Esta atualização ajuda a garantir um comportamento consistente em toda a topologia.

Para o Microsoft SQL Server 2000 Windows CE Edition comportam de conflitos de download de assinantes, o mesmo do SQL Server anterior todos os libera, independentemente da configuração da propriedade compensate_for_errors . Entretanto, a configuração da propriedade compensate_for_errors determina se as alterações de compensação são geradas durante o carregamento de erros e conflitos de assinantes do SQL Server CE para um editor do SQL Server (quando o Editor e o computador que está executando o Microsoft Internet Information Services (IIS) foram atualizados para esse hotfix).

Essa propriedade é exposta no procedimento sp_addmergearticle armazenado e o procedimento sp_changemergearticle armazenado como um novo parâmetro chamado @ compensate_for_errors . Essa propriedade não é exposta no SQL Server Enterprise Manager. Essa propriedade pode ser alterada para artigos existentes sem sendo reinicializado. O uso dessa propriedade típico é:
exec sp_addmergearticle @publication = N'mypubl1', @article = N'authors', @source_owner = N'dbo', @source_object = N'authors', @compensate_for_errors='false'
or
exec sp_changemergearticle  @publication='mypubl1',@article='authors', @property='compensate_for_errors',@value='false'

Adições ao tópico nos manuais online do SQL Server 2000 "sp_addmergearticle"

sp_addmergearticle [@compensate_for_errors = ]
		  'compensate_for_errors'
A propriedade compensate_for_errors controla se a compensação ações são executadas quando são encontrados erros durante a sincronização. @ compensate_for_errors parâmetro está definido como nvarchar(5) e possui uma configuração padrão de true. Por padrão, uma alteração que não pode ser aplicada em um assinante ou em um editor durante a sincronização sempre leva a ações de compensação para reverter a alteração. No entanto, um assinante configurado incorretamente que gera um erro pode causar alterações em outros assinantes e editores para ser revertida incorretamente. Configuração da propriedade compensate_for_errors como false desativa essas ações de compensação.

Observação A definição de propriedade compensate_for_errors para false pode tornar não-convergência.

Adições ao tópico nos manuais online do SQL Server "sp_changemergearticle"

sp_changemergearticle [ @publication = ] 'publication' , [ @article = ] 'article' [ , [
		  @property = ] 'property' ] [ , [ @value =] 'value' ]
Recolher esta tabelaExpandir esta tabela
propriedade valores Descrição
compensate_for_errors TrueCompensação de ações são executadas quando ocorrerem erros durante a sincronização. Esse é o comportamento padrão.
compensate_for_errors False Ações de compensação não são executadas

Observação A definição de propriedade compensate_for_errors para false pode tornar não-convergência.

A seguinte instrução de seleção determina se a propriedade compensate_for_errors está definida como VERDADEIRO ou FALSO:
select CASE compensate_for_errors WHEN 0 THEN ?FALSE? ELSE ?TRUE? END from sysmergearticles where name = ?NameOfTheArticle?

como a propriedade compensate_for_errors é uma propriedade compartilhada para um artigo específico, seu valor deve para ser consistente se o artigo pertencer a várias publicações (como com reeditor cenários e parceiros de sincronização alternativo). Essa condição é aplicada na maioria das vezes. No entanto, é responsabilidade do usuário para certificar-se que a propriedade compensate_for_errors tem o mesmo valor para um artigo específico em todas as publicações que compartilham o artigo. Novamente, isso garante um comportamento consistente em toda a topologia.

Observação Se você tiver que restaurar um backup de um banco de dados replicado que foi feito backup antes que esse hotfix foi aplicado à instância do SQL Server, execute o procedimento sp_vupgrade_replication armazenado com os parâmetros necessários contra a instância do SQL Server para usar o banco de dados restaurado na replicação.

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão usada para descrever atualizações de Software Microsoft

Propriedades

ID do artigo: 828637 - Última revisão: quinta-feira, 27 de fevereiro de 2014 - Revisão: 5.3
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB828637 KbMtpt
Traduçã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: 828637

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com