Determinadas operações de banco de dados tenham uma duração muito longa para concluir ou encontrar erros quando o log de transações tem 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 de SQL Server
  2. Quando você executar a restauração do banco de dados, leva muito tempo para concluir
  3. Tentativas para 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 erros como 701 ao tentar restaurar um banco de dados

Quando você examinar o log de erros de SQL Server, observe 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 iniciando 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 do usuário é 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 virtuais presentes 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 finalizar com um grande número de arquivos de Log virtuais se encontra a Log de transações freqüente auto-crescer 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 seguinte blog para localizar 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 você precise 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, aumentar os arquivos para os tamanhos necessários manualmente usando TSQL ALTER DATABASE <database name="">modificar o arquivo (nome = 'nome do arquivo lógico de transação ', tamanho do log = <required size="">)</required> </database>
  2. Recriar o arquivo de log de transação e crescer manualmente os arquivos de log de transação para tamanhos necessários
    1. Se o banco de dados foi desligada limpar [com sem usuários ou transações abertas] anteriormente, você pode fazer uso de ATTACH_REBUILD_LOG para 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 tiver um único log file está disponível no momento e se o banco de dados foi desligado limpar [com sem usuários ou transações abertas] antes da operação de attach para ANEXAR a opção de criar o banco de dados automaticamente recria o arquivo de log e atualiza o arquivo primário.

Após reconfigurar o layout do arquivo de log de transação, revisar e fazer 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 válido restaurável caso você encontre alguns problemas posteriormente.

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

2455009 CORREÇÃO: Desempenho lento ao recuperar um banco de dados se houver muitos VLFs dentro do log de transações no SQL Server 2005, 2008 de SQL Server ou no SQL Server 2008 R2

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

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

Mais Informações

Para obter informações completas sobre arquivos de Log virtuais, consulte o tópico 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 do banco de dados SQL Server não crescer pelo valor de crescimento de arquivo configurado


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

Recolher esta tabelaExpandir esta tabela
Software de regraTítulo da 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 situações onde os bancos de dados contêm um grande número de arquivos de Log virtuais. Oferece suporte a SQL Server 2008 R2 BPA 2008 de SQL Server e 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 estiver 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 de 2008
SQL Server 2008 R2






SQL Server 2012 Best Practice Analyzer (SQL Server 2012 BPA)



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 situações onde 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 estiver 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: quinta-feira, 24 de maio de 2012 - Revisão: 3.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
Palavras-chave: 
kbmt KB2028436 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: 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