CORRECÇÃO: Recebe mensagens de erro de falta de memória ao usar a replicação de mesclagem com a sincronização da Web no SQL Server 2005 ou no SQL Server 2008

Traduções deste artigo Traduções deste artigo
ID do artigo: 974660 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Você usa replicação de mesclagem do SQL Server 2005 ou replicação de mesclagem do SQL Server 2008 com uma sincronização da Web com base no assinante. Um vazamento de memória ocorre após as sincronizações repetidas e você poderá receber erros "de memória" após um período de tempo. Isso se torna perceptível quando o processo de host não é reiniciado por um longo tempo, por exemplo, quando o Merge Agent (Replmerg.exe) é usado com o Continuous switch - ou quando o parâmetro contínuo for especificado no perfil de agente é aplicado ao agente. Também esse problema pode afetar um RMO aplicativo ou serviço que você desenvolveu que executa sincronização em um loop quando o aplicativo é executado por vários dias sem sair do.

Causa

Vários objetos internos são vazados após cada sincronização.

Resolução

SQL Server 2005 Service Pack 3

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 6 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:
974648Pacote de atualização cumulativa 6 para SQL Server 2005 Service Pack 3
Observação: Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2005 anteriores corrigir lançamento. A Microsoft recomenda que você considere a aplicação a versão mais recente de correção 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:
960598O SQL Server 2005 compilações que foram lançadas lançamento 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 service pack do SQL Server está incluído no próximo service pack do SQL Server.

A versão de lançamento do SQL Server 2008

Importante Você deve instalar essa correção se você estiver executando a versão de lançamento do SQL Server 2008.

A correção deste problema primeiro foi lançada em 8 de atualização cumulativa. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas do SQL Server 2008, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
975976Pacote de atualização cumulativo 8 para SQL Server 2008
Observação: Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de 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 mais recente de correção 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:
956909Compilações do SQL Server 2008 que foram lançadas lançamento após o lançamento do SQL Server 2008

SQL Server 2008 Service Pack 1

Importante Você deve instalar essa correção se você estiver executando o SQL Server 2008 Service Pack 1.

A correção deste problema primeiro foi lançada em 5 de atualizações cumulativas para o SQL Server 2008 Service Pack 1. 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:
975977Pacote de atualizações cumulativas 5 para SQL Server 2008 Service Pack 1
Observação: Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. A Microsoft recomenda que você considere a aplicação a versão mais recente de correção 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:
970365Compilações do SQL Server 2008 que foram lançadas lançamento após o lançamento do SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 hotfixes são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por padrão, qualquer hotfix fornecidas em um service pack do SQL Server está incluído no próximo service pack do SQL Server.

Situação

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

Como Contornar

Para contornar este problema, use um dos seguintes métodos:

Método 1

Se você estiver usando um agente de mesclagem no modo contínuo, interrompa o processo de agente de mesclagem periodicamente e inicie-o novamente.

Por exemplo, você recebe erros "de memória" após cinco dias, e o Merge Agent está agendado como um trabalho. Em seguida, você agendar um novo trabalho do SQL Server Agent para chamar sp_stop_job seguido sp_start_job especificando seu nome de trabalho do Merge Agent, circulará o processo afetado cada cinco dias. Quando você pára o processo do Merge Agent (Replmerg.exe), qualquer memória vazada dentro do espaço de memória de processo será liberada.

Para obter mais informações sobre o uso da opção-contínua sobre o Merge Agent, consulte o seguinte site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms147839.aspx

sp_stop_jobhttp://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx

sp_start_jobhttp://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx

Método 2

Se você usar o agente de mesclagem de um trabalho, você pode configurar manual lógica loop dentro do trabalho usando as etapas adicionais em vez de contar com o parâmetro contínuo. Em vez do processo de agente de uma mesclagem looping internamente para sempre continuamente, agende o agente de mesclagem como uma etapa de trabalho que se repete em uma base freqüente, como uma vez a cada minuto. O processo será encerrado entre repetições e isso libera qualquer memória perdida.
Edite trabalho para que repetir as etapas em um loop com uma pausa entre repete Merge Agent.
  1. Após a etapa [3] "Detectar desligamento de agente nonlogged,"Adicionar nova etapa [4] chamada"loop indefinido de repetir." Defina o tipo TSQL e o comando para "atraso waitfor ' 0: 00: 05 '", esse atraso TSQL fornecerá uma pausa segundo 5 que você pode configurar como um intervalo de pesquisa de forma que o agente de mesclagem será faça uma breve pausa entre as execuções e não serem executados constantemente. Na guia avançada especificar o "sucesso OnAction" como "Ir para etapa [2] executar agente" e "Na ação de falha"como"Ir para a etapa Agent executar [2]".
  2. Edite etapa [2] Run Agent para garantir que o loop etapa [4] é alcançado. Na guia avançada do Step [2], defina o sucesso OnAction, "Ir para a etapa: [4] loop indefinido de repetir" e defina a ação falha em "Ir para a próxima etapa."
  3. Editar etapa [3] "Desligamento de agente nonlogged detectar" para certificar-se de que o loop na etapa [4] é alcançado. Na guia avançada da etapa [3], defina o sucesso OnAction, "Ir para a próxima etapa". Você também pode decidir se deseja que a etapa [3] na ação falha seja definido como "Ir para a próxima etapa"ou "fechar o trabalho de relatório de falha." Se estiver configurado para sair, ela mostrará a falha do trabalho no Monitor de replicação e o Monitor de trabalho. Se estiver configurado em caso de falha para ir para a quarta etapa do loop, o agente de mesclagem pode executar novamente indefinidamente e os erros registrada indefinidamente.

Método 3

Da mesma forma se você usar um aplicativo RMO para chamar o método MergeSynchronizationAgent.Synchronize() que sincroniza o banco de dados em um loop de assinante, pare e reinicie o processo periodicamente para liberar qualquer memória que vazarem por causa do problema.
Para obter mais informações sobre esse objeto e método, consulte o seguinte site da Microsoft Developer Network (MSDN): http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx

Referências

Para obter mais informações sobre como usar o Continuous switch - sobre o Merge Agent, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms147839.aspx

Para obter mais informações sobre o procedimento armazenado sp_stop_job, visite o seguinte site da Microsoft Developer Network (MSDN):
http://http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx

Para obter mais informações sobre o procedimento armazenado sp_start_job, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx

Para obter informações adicionais sobre como obter o SQL Server 2005 Service Pack 3, 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 do SQL Server 2005 Service Pack 3 (SP3) e sobre os aperfeiçoamentos no SQL Server 2005 SP3, visite o seguinte site da Microsoft:
http://go.microsoft.com/fwlink/?LinkId=131442
Para obter informações adicionais 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 dos pacotes de atualização de software Microsoft SQL Server
Para obter mais informações sobre a terminologia da atualização, 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 as atualizações de software

Propriedades

ID do artigo: 974660 - Última revisão: segunda-feira, 2 de novembro de 2009 - Revisão: 3.2
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 Workgroup 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 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsurveynew kbexpertiseadvanced kbqfe kbfix KB974660 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: 974660

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