Você está offline; aguardando reconexão

Operações de banco de dados levar muito tempo para ser concluída ou que acionem erros quando o log de transações tiver vários arquivos de log virtuais

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
Sintomas
Em um ambiente do SQL Server 2008, você poderá encontrar os seguintes sintomas:
  • Um ou mais bancos de dados demoram muito tempo para concluir a recuperação durante a inicialização do SQL Server.
  • Quando você executar a restauração de um banco de dados, leva muito tempo para ser concluída.
  • Tentativa de anexar um banco de dados demorar muito tempo para concluir.
  • Quando você tenta configurar o espelhamento de banco de dados, você encontrar mensagens de erro 1413, 1443 e 1479, indicando um tempo limite.
  • Você encontrar erros relacionados à memória 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, o SQL Server executa uma detecção 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 do 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 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, 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 de log', tamanho = <required size="">)</required> </database>
  2. Recriar o arquivo de log de transação e aumentar manualmente os arquivos de log de transação para os tamanhos necessários:
    1. Se o banco de dados anteriormente foi encerrado corretamente (com nenhum usuário ou transações abertas), você pode usar a opção ATTACH_REBUILD_LOG para criar o 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.

Depois de 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 válido restaurável caso você encontre 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, SQL Server 2008 ou no SQL Server 2008 R2

2653893 CORREÇÃO: Leva 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

2882905 Uma mensagem informativa 9017 é registrada quando você inicia uma instância do SQL Server ou restaurar ou anexar um banco de dados

Mais Informações
Para obter informações completas sobre os arquivos de log virtuais, consulte o seguinte tópico de livros on-line: Arquitetura física de Log de transação

Para obter mais informações sobre esse problema, consulte o seguinte:

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 esteja ciente de um problema conhecido com crescimento de logs de transação:

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

Observação: Saiba mais sobre uma alteração importante para o algoritmo de criação VLF de 2014 SQL Server:


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

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. O BPA do SQL Server 2008 R2 oferece suporte ao SQL Server 2008 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 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 (SQL Server 2012 BPA) 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








Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2028436 - Última Revisão: 08/05/2015 20:29:00 - Revisão: 6.0

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

  • kbmt KB2028436 KbMtpt
Comentários
l>>html>