Determinadas operações de banco de dados demorar um tempo muito longo para concluir ou encontrar erros quando o log de transações tiver vários arquivos de log virtuais

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

Sintomas

Você pode encontrar os seguintes problemas:
  1. Um ou mais bancos de dados demoram muito tempo para concluir a recuperação durante a inicialização do SQL Server
  2. Quando você executar a restauração de um banco de dados, leva muito tempo para concluir
  3. Tentativa de anexar um banco de dados leva muito tempo para concluir
  4. Quando você tenta para banco de dados de configuração de espelhamento você encontrar mensagens de erro 1413, 1443 e 1479 indicando um tempo limite.
  5. Encontrar memória relacionados a erros como 701 ao tentar restaurar um banco de dados

Quando você examinar o log de erros do SQL Server, você notar que uma quantidade significativa de tempo é gasto antes da fase de análise do processo de recuperação de banco de dados.
2010-05-08 14:42:38.65 spid22s iniciar o banco de dados 'lot_of_vlfs'.
2010-05-08 14:46:04.76 spid22s análise do banco de dados 'lot_of_vlfs' (16) é 0% concluído (permanecem aproximadamente 0 segundos). Fase 1 de 3. Isso é apenas uma mensagem informativa. Nenhuma ação é necessária.

Causa

Durante os estágios iniciais de um processo de recuperação do banco de dados, SQL Server proforms uma descoberta de todos os arquivos de Log Virtual presente em todos os arquivos de Log de transações. Uma lista de todos os arquivos de Log Virtual é criada. Esse processo pode levar muito tempo dependendo no número de arquivos de Log virtuais presentes no banco de dados específico. Um banco de dados pode acabar tendo um grande número de arquivos de Log virtuais se encontra no Log de transações freqüente aumento automático com o crescimento acontecendo por incrementos de tamanho muito pequeno.

Normalmente você começar encontrando os problemas mencionados na seção sintomas quando o número de arquivos de Log virtuais está no intervalo de várias centenas de milhares.

Resolução

Você pode usar os métodos do blog do seguinte para encontrar o número de arquivos de Log virtuais em um determinado banco de dados:
Como uma estrutura de arquivos de log pode afetar o tempo de recuperação do banco de dados
Talvez seja necessário manter o número total de arquivos de Log virtuais em um número razoável como 10.000.

Você pode reconfigurar o arquivo de log de transação para conter apenas um número limitado de arquivos de Log virtuais usando os seguintes métodos:
  1. Reduzir os arquivos de log de transações, expandir os arquivos para os tamanhos necessários manualmente usando TSQL ALTER DATABASE <database name="">Modificar arquivo (nome = 'nome do arquivo lógico da transação ', tamanho log = <required size="">)</required> </database>
  2. Recriar o arquivo de log de transação e aumentar manualmente os arquivos de log de transação para tamanhos necessários
    1. Se o banco de dados foi desligada limpar [com nenhum usuário ou transações abertas] anteriormente, você pode fazer uso do ATTACH_REBUILD_LOG para a opção de criar banco de dados para criar um novo arquivo de log de transação.
    2. Se um banco de dados de leitura/gravação tem um único log que está disponível no momento e se o banco de dados foi desligado limpe [com nenhum usuário ou transações abertas] antes da operação de anexação, opção CREATE DATABASE para ANEXAR automaticamente recria o arquivo de log e atualiza o arquivo principal.

Após reconfigurar o layout do arquivo de log de transação, reveja e faça as alterações necessárias para o crescimento automático de configurações para o arquivo de log de transação para evitar o mesmo problema no futuro.

Observação Antes de executar qualquer uma dessas operações, certifique-se de que você tenha um backup restaurável válido no caso de você encontrar alguns problemas mais tarde.

2524743 CORREÇÃO: Recuperação demora mais que o esperado para um banco de dados em um SQL Server de 2008 ou em um ambiente do SQL Server 2008 R2

2455009 CORREÇÃO: Desempenho lento quando você recuperar um banco de dados se houver muitos VLFs dentro do log de transação no SQL Server 2005, no SQL Server 2008 ou no SQL Server 2008 R2

2653893 CORREÇÃO: Demora muito tempo para restaurar um banco de dados no SQL Server 2008 R2

979042 CORREÇÃO: O banco de dados principal não é recuperado se o banco de dados tiver um grande número de arquivos de log virtuais no SQL Server 2005 ou no SQL Server 2008

Mais Informações

Para obter informações completas sobre os arquivos de Log virtuais, consulte o tópico dos Manuais Online: Arquitetura física de Log de transação
Discussões sobre esse problema:
Como uma estrutura de arquivos de log pode afetar o tempo de recuperação do banco de dados
Transação Log VLFs - muitos ou poucos?
1413 erro ao iniciar o espelhamento de banco de dados ? quantos arquivos de log virtuais é demais?

Também observe um problema conhecido com os logs de transação em crescimento:

2633151 O arquivo de log de transação de banco de dados do SQL Server não ser aumentado pelo valor de crescimento de arquivo configurado


Para obter mais informações sobre os produtos e ferramentas que verificam automaticamente a essa condição na sua instância do SQL Server e sobre as versões do produto SQL Server, consulte a tabela a seguir:

Recolher esta tabelaExpandir esta tabela
Software de regraTítulo de regraDescrição da regraVersões do produto em relação à qual a regra será avaliada
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)




Bancos de dados com alto número de VLF presente





O SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) fornece uma regra para detectar as situações em que os bancos de dados contêm um grande número de arquivos de Log virtuais. A ferramenta BPA do SQL Server 2008 R2 oferece suporte ao SQL Server 2008 e do SQL Server 2008 R2.

Se você executar a ferramenta BPA e encontrar um erro com o título do mecanismo de banco de dados - bancos de dados com alto número de VLF presente, você precisa verificar o número de arquivos de Log virtuais para o banco de dados afetado e reconfigurar os arquivos de log de transação.
SQL Server 2008
SQL Server 2008 R2






Analisador de práticas recomendadas (BPA do SQL Server 2012) do SQL Server 2012



Bancos de dados com alto número de VLF presente




O SQL Server 2012 Best Practice Analyzer (SQL Server 2012 BPA) fornece uma regra para detectar as situações em que os bancos de dados contêm um grande número de arquivos de Log virtuais.

Se você executar a ferramenta BPA e encontrar um erro com o título do mecanismo de banco de dados - bancos de dados com alto número de VLF presente, você precisa verificar o número de arquivos de Log virtuais para o banco de dados afetado e reconfigurar os arquivos de log de transação.
SQL Server 2012








Propriedades

ID do artigo: 2028436 - Última revisão: quarta-feira, 7 de maio de 2014 - Revisão: 4.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Palavras-chave: 
kbmt KB2028436 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 2028436

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