Operações de base de dados demoram muito tempo para concluir ou accionam erros quando o registo de transacções tem vários ficheiros de registo virtual

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

2028436
Sintomas
Num ambiente de SQL Server 2008, poderá detectar os seguintes sintomas:
  • Um ou mais bases de dados demoram muito tempo para concluir a recuperação durante o arranque do SQL Server.
  • Quando efectuar o restauro de uma base de dados, demora muito tempo a concluir.
  • Tentativas para anexar uma base de dados demoram muito tempo a concluir.
  • Quando tenta configurar espelhamento da base de dados, encontrar mensagens de erro 1413, 1443 e 1479, indicando um tempo limite.
  • Encontrar erros relacionados com a memória como 701 quando tenta restaurar uma base de dados.

Quando examina o registo de erros do SQL Server, notará que uma quantidade significativa de tempo é gasto antes da fase de análise do processo de recuperação de base de dados.
2010-05-08 14:42:38.65 spid22s da base de dados 'lot_of_vlfs' a iniciar.
14:46:04.76 de 2010-05-08 análise de spid22s da base de dados 'lot_of_vlfs' (16) é 0% concluído (continuam a cerca de 0 segundos). Fase 1 de 3. Esta é apenas uma mensagem informativa. Não é necessária nenhuma acção do utilizador.

Causa
Durante as fases iniciais de um processo de recuperação da base de dados, o SQL Server executa uma identificação de todos os ficheiros Virtual Log presentes em todos os ficheiros de registo de transacções. Uma lista de todos os ficheiros de registo Virtual é criada. Este processo pode demorar muito tempo, dependendo do número de ficheiros de registo Virtual presentes na base de dados específico. Uma base de dados pode ficar com um grande número de ficheiros de registo Virtual se encontra o registo de transacções frequentes automática crescer com o crescimento acontecer para incrementos de tamanho muito pequeno.

Normalmente, iniciar a encontrar problemas mencionados na secção "Sintomas" quando o número de ficheiros de registo Virtual é o intervalo de várias centenas de milhar.
Resolução
Pode utilizar os métodos de mensagens de blogue seguintes para localizar o número de ficheiros de registo Virtual numa base de dados específica:
Como uma estrutura de ficheiro de registo pode afectar o tempo de recuperação da base de dados

Poderá ter de manter o número total de ficheiros de registo Virtual sob um número razoável, como 10.000.

Pode reconfigurar o ficheiro de registo de transacções para conter apenas um número limitado de ficheiros de registo Virtual utilizando os seguintes métodos:
  1. Diminuir os ficheiros de registo de transacções, aumentar os ficheiros para o tamanho necessário manualmente utilizando TSQL ALTER DATABASE <database name="">modificar o ficheiro (nome = 'nome do ficheiro lógico da transacção de tamanho do registo', = <required size="">)</required> </database>
  2. Reconstruir o ficheiro de registo de transacções e, em seguida, aumentar manualmente os ficheiros de registo de transacções para o tamanho necessário:
    1. Se a base de dados anteriormente foi encerrado correctamente (com não utilizadores ou transacções abertas), pode utilizar a opção de ATTACH_REBUILD_LOG para criar a base de dados para criar um novo ficheiro de registo de transacções.
    2. Se uma base de dados de leitura/escrita tiver um único ficheiro que está actualmente indisponível de registo e se a base de dados foi encerrado limpar [com não utilizadores ou transacções abertas] antes da operação de anexação, para anexar a opção de criar a base de dados automaticamente recria o ficheiro de registo e actualiza o ficheiro principal.

Depois de reconfigurar o esquema do ficheiro de registo de transacções, rever e efectuar as alterações necessárias para o aumentar automaticamente as definições para o ficheiro de registo de transacções para evitar a ocorrência o mesmo problema no futuro.

Nota Antes de efectuar qualquer uma destas operações, certifique-se de que tem uma cópia de segurança restaurável válida no caso de se deparar com alguns problemas mais tarde.

2524743 CORRECÇÃO: A recuperação demora mais tempo do que o esperado para uma base de dados num SQL Server 2008 ou num ambiente de SQL Server 2008 R2

2455009 CORRECÇÃO: Desempenho lento quando recuperar uma base de dados, se existirem muitos VLF dentro do registo de transacções no SQL Server 2005, no SQL Server 2008 ou no SQL Server 2008 R2

2653893 CORRECÇÃO: Demora muito tempo para restaurar uma base de dados no SQL Server 2008 R2

979042 CORRECÇÃO: A base de dados principal não é recuperado se a base de dados tiver um grande número de ficheiros de registo virtual no SQL Server 2005 ou do SQL Server 2008

2882905 Uma mensagem informativa de 9017 é registada quando iniciar uma instância do SQL Server ou restaurar ou anexar uma base de dados

Mais Informação
Para obter informações completas sobre os ficheiros de registo virtual, consulte o seguinte tópico Books Online: Transaction Log Physical Architecture

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

Como uma estrutura de ficheiro de registo pode afectar o tempo de recuperação da base de dados
VLF de registo de transacções - demasiados ou poucos?
Erro de 1413 ao iniciar o espelhamento de bases de dados – como vários ficheiros de registo virtual é demasiados?

Certifique-se também de um problema conhecido com registos de transacções de cultura:

2633151 O ficheiro de registo de transacção de base de dados do SQL Server não aumenta pelo valor de crescimento ficheiro configurado

Nota Obter informações sobre uma alteração importante para o algoritmo de criação de VLF no SQL Server 2014:


Para mais informações sobre os produtos ou ferramentas que verificam automaticamente para esta condição à sua instância do SQL Server e sobre as versões do produto SQL Server, consulte a tabela seguinte:

Software de regraTítulo de regraDescrição da regraVersões de produtos contra os quais a regra é avaliada
SQL Server 2008 R2 melhor prática analisador (SQL Server 2008 R2 BPA)




Bases de dados com um número elevado de VLF presente





O SQL Server 2008 R2 prática analisador de melhores (SQL Server 2008 R2 BPA) fornece uma regra para detectar situações em que as bases de dados contém um grande número de ficheiros de registo Virtual. O SQL Server 2008 R2 BPA suporta o SQL Server 2008 e o SQL Server 2008 R2.

Se executar a ferramenta BPA e ocorrer um erro com o título do motor de base de dados - bases de dados com um número elevado de VLF presente, é necessário verificar o número de ficheiros de registo Virtual para a base de dados afectado e reconfigurar o ficheiro de log de transacções.
SQL Server 2008
SQL Server 2008 R2






Com o formato de analisador de melhor práticas do SQL Server 2012 (BPA de 2012 do SQL Server)



Bases de dados com um número elevado de VLF presente




O SQL Server 2012 prática analisador de melhores (BPA de 2012 do SQL Server) fornece uma regra para detectar situações em que as bases de dados contém um grande número de ficheiros de registo Virtual.

Se executar a ferramenta BPA e ocorrer um erro com o título do motor de base de dados - bases de dados com um número elevado de VLF presente, é necessário verificar o número de ficheiros de registo Virtual para a base de dados afectado e reconfigurar o ficheiro de log de transacções.
SQL Server 2012








Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2028436 - Última Revisão: 08/07/2015 03:43: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
Esta informação foi útil?