CORRECÇÃO: Algumas alterações podem não ser replicadas para o assinante corretamente no SQL Server 2005 ou no SQL Server 2008 quando a soma dos parâmetros excede 2,100

Traduções deste artigo Traduções deste artigo
ID do artigo: 959893 - Exibir os produtos aos quais esse artigo se aplica.
Bug #: 50004054 (Hotfix do SQL); 50004028 (Hotfix do SQL)

A Microsoft distribui o Microsoft SQL Server 2005 ou SQL Server 2008 corrige como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções segurança que foram incluídas com o SQL Server 2005 ou SQL Server 2008 anteriores corrigir lançamento.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Considere o seguinte cenário:
  • No Microsoft SQL Server 2005 ou Microsoft SQL Server 2008, você configurar uma replicação transacional.
  • A replicação transacional contém alguns artigos.
  • Um dos artigos, use procedimentos armazenados para entregar o comando Inserir, o comando update e o comando delete. Por exemplo, você definir a entrega de instrução para usar chamada <stored procedure> na janela Propriedades do artigo. Ou, especifique os comandos usando @ ins_cmd parâmetro, @ del_cmd parâmetro e @ upd_cmd parâmetro do sp_addarticle procedimento armazenado.
  • Para outro artigo, você pode usar comandos Transact-SQL para enviar as instruções.
  • Fazer algumas alterações para os artigos. As alterações serão enviadas para o assinante no mesmo lote de execução.
  • A soma dos parâmetros que são necessários para enviar o lote excede 2,100.

    Observação Se você usar rastreamento do SQL Profiler para capturar um rastreamento, você pode localizar o procedimento sp_executesql armazenados para o lote que é chamado pelo agente de distribuição.
  • Sincronizar os dados.
Nesse cenário, algumas alterações podem não ser replicadas para o assinante corretamente.

Observação Você pode verificar se esse problema ocorre usando a ferramenta de comparação de tabela (Tablediff.exe).

Além disso, a instrução que ocorre no final do lote está ausente. Por padrão, um lote contém 100 transações.

Observação Você pode exibir os comandos duplicados usando o procedimento sp_browsereplcmds armazenados no banco de dados de distribuição.

Nessa situação, se a instrução executa uma operação INSERT, uma linha pode ser perdida no assinante. Em seguida, se operações DML posteriores ocorrerem na linha perdida no Editor, Distribution Agent falhar e a seguinte mensagem "erro 20598":
A linha não foi encontrada no assinante ao aplicar o comando replicado.

Causa

Agente de distribuição deve detectar se o limite máximo do parâmetro 2.100 para procedimentos armazenados é excedido. Em seguida, Distribution Agent deve mover os comandos excedente para o próximo lote de execução. No entanto, devido a um erro, o último comando será ignorado e não é processado.

Resolução

SQL Server 2005 Service Pack 2

importante Você deve usar essa correção se você estiver executando o SQL Server 2005 Service Pack 2.

A correção para este problema primeiro foi lançada em 11 de actualização cumulativa para o SQL Server 2005 Service Pack 2. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
958735Pacote de atualizações cumulativas 11 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:
937137Compilações do SQL Server 2005 lançados após o SQL Server 2005 Service Pack 2 foi lançado
Microsoft SQL Server 2005 hotfixes 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.

Observação Para inscrições de envio, aplicar a atualização cumulativa 11 no servidor de distribuição. Para inscrições de recepção, aplicar a atualização cumulativa 11 os assinantes.

SQL Server 2005 Service Pack 3

importante Você deve usar essa correção se você estiver executando o SQL Server 2005 Service Pack 3.

A correção para esse problema também posterior foi lançada na atualização cumulativa 1 para o SQL Server 2005 Service Pack 3. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
959195Pacote de atualizações cumulativas 1 para SQL Server 2005 Service Pack 3
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:
960598Compilações do SQL Server 2005 lançados após o lançamento do SQL Server 2005 Service Pack 3
Microsoft SQL Server 2005 hotfixes são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 3 para uma instalação do SQL Server 2005 Service Pack 3. Por padrão, qualquer hotfix fornecidas em um SQL Server service pack está incluído no service pack seguinte do SQL Server.

Observação Para inscrições de envio, aplicar a atualização cumulativa 1 no servidor de distribuição. Para inscrições de recepção, aplicar a atualização cumulativa 1 os assinantes.

SQL Server 2008

A correção para esse problema foi lançada primeiro em 3 atualização cumulativa. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2008, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
960484Pacote de atualizações cumulativas 3 para SQL Server 2008
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 segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. Recomendamos 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:
956909O SQL Server 2008 compilações que lançadas foram após o lançamento SQL Server 2008 foi lançado
Observação Para inscrições de envio, aplicar a atualização cumulativa 3 no servidor de distribuição. Para inscrições de recepção, aplicar a atualização cumulativa 3 os assinantes.

Como Contornar

Para contornar esse problema, use um dos seguintes métodos.

Método 1

Diminua o valor do parâmetro CommitBatchSize para Distribution Agent. Portanto, você pode evitar exceder 2.100 parâmetros por lote de transações confirmadas.

Método 2

Use o mesmo mecanismo de entrega de comando para todos os artigos na publicação. Evite misturar os mecanismos de entrega de comando para os artigos na mesma publicação.

Para evitar o erro 20598

Erro 20598 pode ocorrer como um efeito colateral desse problema. Para evitar o erro 20598, você pode usar o -SkipErrors 20598 alternar. Após ativar essa opção, o Distribution Agent registra o erro e, em seguida, continua a processar as linhas adicionais que precisam ser entregue. Após o Distribution Agent ignora o erro 20598, integridade dos dados permanece comprometida devido a linha ausente. Talvez você precise excluir a linha e, em seguida, insira a linha novamente no Editor para entregar as alterações para todos os assinantes.

Situação

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

Mais Informações

SQL Server 2005

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:
958735Pacote de atualizações cumulativas 11 para SQL Server 2005 Service Pack 2

SQL Server 2008

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:
960484Pacote de atualizações cumulativas 3 para SQL Server 2008

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:
937137Compilaçõ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:
935897Há 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:
913089Como 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
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:
822499Novo 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:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 959893 - Última revisão: segunda-feira, 19 de janeiro de 2009 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB959893 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: 959893

Submeter comentários

 

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