Recentemente, descobri que nosso banco de dados SQL Server 2012 contém mais de 100.000 arquivos de log virtual executando o comando DBCC LOGINFO. Depois de fazer muita pesquisa, ainda estou inseguro quanto ao tamanho exato que devo definir o Log após o encolhimento.
Usando o snippet de código abaixo e com base em meus detalhes, qual tamanho sugerido devo definir para meu arquivo de log e você recomendaria que eu alterasse meu crescimento automático?
USE AdventureWorks
GO
BACKUP LOG AdventureWorks TO DISK='d:\adtlog.bak'
GO
-- Get Logical file name of the log file
sp_helpfile
GO
DBCC SHRINKFILE(AdventureWorks_Log,TRUNCATEONLY)
GO
ALTER DATABASE AdventureWorks
MODIFY FILE
(NAME = AdventureWorks_Log,SIZE = 1GB)
GO
DBCC LOGINFO
GO
- Tamanho atual do banco de dados: 39.482.368 KB
- Tamanho inicial do banco de dados: 38.557.000 KB
Crescimento Automático: 128 MB
Tamanho do arquivo de log atual: 34.964.480 KB
- Tamanho do arquivo de log inicial: 34.145.000 KB
- Crescimento Automático: 128 MB
Um backup de log é feito 8 vezes por dia, 6 dias por semana, e o Autogrowth está acontecendo praticamente uma vez por semana. O arquivo de log também está em um dispositivo de armazenamento separado do banco de dados
Além disso: Muitos dos VLFs provavelmente são remanescentes do último DBA que não reduz o arquivo. Já faz um ou dois anos desde que atualizamos o crescimento automático para 128 MB do padrão e definimos esse tamanho inicial.
Acho que você encontrará um bom ponto de partida aqui - Defina o tamanho e o crescimento do log de transações
Resumindo no link:
Em uma nota lateral, sua pergunta afirma que você está fazendo backups de log de transações 8 vezes por dia (6 dias por semana). Eu recomendo que você leia Fazer backup dos logs de transações a cada minuto. Sim, realmente.