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

Traduções de Artigos Traduções de Artigos
Artigo: 2882905 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando iniciar uma instância do Microsoft SQL Server ou restaurar ou anexar uma base de dados, uma mensagem informativa 9017 semelhante à seguinte é registada no registo de erros de SQL Server:

Base de dados dbName tem mais do que n ficheiros de registo virtual que é excessivo. Demasiados ficheiros de registo virtual podem causar arranque longo e tempos de cópia de segurança. Considere a diminuição do registo e utilizar um incremento de crescimento diferentes para reduzir o número de ficheiros de registo virtual.

Demasiados ficheiros de registo virtual podem afectar negativamente o tempo de recuperação da base de dados.

Além disso, se utilizar tecnologias de replicação ou de espelhamento da base de dados no seu ambiente, poderá detectar problemas de desempenho com estas tecnologias.

Causa

Este problema ocorre quando especifica valores pequenos para o Parâmetro FILEGROWTH para o ficheiro de registo.

O motor de base de dados do SQL Server divide cada ficheiro de registo físico internamente em vários ficheiros de registo virtual (VLF). SQL Server 2008 R2 Service Pack 2 e versões posteriores introduziu uma nova mensagem (9017) que é registada quando uma base de dados é iniciado (devido a inicialização de uma instância do SQL Server ou devido a anexar ou restauro da base de dados) e tem mais de 1.000 VLF no SQL Server 2008 R2 ou tem VLF mais de 10.000 no SQL Server 2012.

NotaNo SQL Server 2012, embora esta mensagem é registada quando a base de dados tem 10.000 VLF, a mensagem real que está incorrectamente comunicada no registo de erros indicar "1000 VLF." Basicamente, o aviso ocorre depois de 10.000 VLF. No entanto, a mensagem relatórios 1.000 VLF. Este problema será corrigido numa edição futura.

Para mais informações sobre como o número acrescido de VLF pode originar problemas de desempenho na replicação ou configurações de espelhamento da base de dados, consulte a secção "Mais informação".

Resolução

Para resolver este problema, siga estes passos:
  1. Reduzir o log de transacções, utilizando DBCC SHRINKDB ou utilizando o SQL Server Management Studio.
  2. Aumente o tamanho do ficheiro de registo de transacção para um valor maior para evitar epidérmicas automática frequente. Para mais informações, consulte o tópico seguinte no Web site do SQL Server Books Online:

    http://msdn.microsoft.com/en-us/library/ms365418.aspx#AddOrEnlarge
  3. Aumentar a Parâmetro FILEGROWTH para um valor maior que está actualmente configurada. Isto deve basear-se sobre a actividade da base de dados e com que frequência o ficheiro de registo está a aumentar.

Além disso, recomendamos que considere instalar as seguintes correcções, dependendo da versão do SQL Server que está a executar:


Mais Informação

Como verificar o número de segmentos VLF numa base de dados

Pode encontrar o número de segmentos VLF numa base de dados localizando a diferença entre os números de sequência registo de mais recentes (LSNs) de cópias de segurança de registo da transacção e o mais recente para a base de dados.

É possível localizar o LSN da cópia de segurança de registo da transacção, verificando o registo de erros do SQL Server para uma mensagem semelhante à seguinte:

{Registo foi feita uma cópia. Base de dados: mydbname, creation_date_(time): data(tempo), LSN primeiro: 1: 5068:70, LSN última: 1: 5108:1, número de dispositivos de informações de estado: 1, informações de dispositivo: (ficheiro = 1, tipo = DISK: {'C:\folder\logbackup1.trn'}). Esta é apenas uma mensagem informativa. Não é necessária nenhuma acção do utilizador.

NotaNesta mensagem, o LSN de registo de transacções é1. (É o primeiro número antes dos dois primeiros pontos no "LSN: 1:5068:70.")

Para tal, siga estes passos:
  1. Localizar o LSN para a cópia de segurança do registo earliesttransaction para a base de dados no seu Errorlog SQL (por exemplo, LSN: 1:5108:1).
  2. Localizar o LSN mais recente para a cópia de segurança do registo de transacções no Errorlog a SQL (por exemplo, LSN:10, 235: 5108: 1).
  3. O número de segmentos VLF é a diferença entre o LSN mais recente e a LSN mais antiga (neste caso, é 10,235-1 = 10,234).

O efeito de muito VLF na replicação

Demasiados ficheiros de registo podem afectar a replicação uma vez que o processo de leitor de registo tem de analisar todos os ficheiros de registo virtual para transacções marcadas para replicação. Pode ver este comportamento, rastrear o desempenho do procedimento armazenado sp_replcmds . A leitura do registo processar utiliza o sp_replcmds armazenados procedimento para analisar os ficheiros de registo virtual e ler as transacções marcadas para replicação. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

949523 A latência de uma replicação transaccional é elevada no SQL Server 2005 quando o valor da propriedade "Initial Size" e o valor da propriedade Autogrowth são pequenas

O efeito de muito VLF no espelhamento da base de dados

Demasiados ficheiros de registo também podem afectar o espelhamento da base de dados. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

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

Referências

Para mais informações, consulte os seguintes tópicos no Web site da Microsoft Developer Network (MSDN):

Diminuir o registo de transacções

Factores que podem atrasar a truncagem do registo

Truncagem do registo de transacções

Arquitectura de lógica de registo de transacções

Transaction Log Physical Architecture


Propriedades

Artigo: 2882905 - Última revisão: 12 de setembro de 2013 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
Palavras-chave: 
kbexpertiseinter kbprb kbsurveynew kbmt KB2882905 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 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.
Clique aqui para ver a versão em Inglês deste artigo: 2882905

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