Gostaria de saber se os métodos internos de crescimento de um arquivo usando
ALTER DATABASE testdb
MODIFY FILE
(
NAME = testdb_Log
, SIZE = 40960MB --40 GB
)
trabalhar diferente, deixando o arquivo crescer automaticamente para o mesmo tamanho ao longo do tempo?
Antecedentes da minha pergunta: eu enfrento contagens de VLF muito altas (> 10K) em vários arquivos de log de diferentes bancos de dados ativos com recuperação total com tamanho em torno de 100 GB.
Ao testar estratégias para corrigir isso, redimensionei um arquivo de log para 16 MB com 4 VLFs e deixei crescer para 40960 MB e depois com uma configuração AUTOGROW de 100 MB. Depois eu tinha 20 VLF no arquivo.
Minha expectativa era ver mais
(40960 MB - 16 MB) / 100 MB * (8 VLF por crescimento automático) = 3276 VLF no arquivo.
Em vez disso, agora tenho apenas 20. Por quê?
Segunda parte da minha pergunta: Até agora eu entendi que uma configuração de AUTOGROW inadequada causa as altas contagens de VLF, que é definitivamente o caso em nossos dbs onde essa configuração não foi cuidada por um longo período de tempo. Todos os artigos explicando como lidar com esta situação aconselham escolher um valor adequado para AUTOGROW. Mas se eu estiver certo, supondo que, se o processo de crescimento manual (primeira parte deste post) nem usar a configuração de crescimento automático, e eu aumentar o arquivo de log dessa maneira para um tamanho adequado que não exija nenhum crescimento automático, o crescimento automático configurações não é tão importante depois?
Terceira parte da minha pergunta? A contagem de VLF de 20 em um arquivo de log de 40 GB agora é muito baixa? É por isso que li que devemos incrementar o arquivo novamente em incrementos? Qual contagem de VLF pode ser um número BOM (de desempenho) para um arquivo de log de 40 G ou 80 G?
Cálculos VLF
O número de VLFs não é diferente para um crescimento manual ou automático do arquivo de log de transações.
SQL Server < 2014
Até a versão 2014 do SQL Server, o algoritmo para o número de VLFs é o seguinte quando você cria, aumenta ou aumenta automaticamente o arquivo TLog:
SQL Server 2014 e superior
A partir do SQL Server 2014 e superior, o algoritmo é o seguinte:
Seu cálculo para o número de VLFs deve estar correto.
Seu banco de dados está definido como AUTOSHRINK? Você está executando alguma outra tarefa de manutenção que poderia estar redimensionando o tamanho do TLOG?
Auto-crescimento: sim ou não?
Se você aumentar manualmente seu arquivo TLog, poderá desativar a configuração de crescimento automático. Mas fique atento: o que acontecerá se você não estiver disponível e o banco de dados tiver que crescer? O banco de dados será interrompido com uma mensagem de erro.
Tamanho da linha de base
Em algum momento, seu banco de dados terá um tamanho TLog que terá espaço adequado para as importações gerais que ocorrem e a carga de trabalho diária e os backups TLog/Diff/Full ocorrendo.
Use esse tamanho de linha de base como ponto de partida ao criar um novo TLog do zero. Se o TLog do banco de dados for realmente grande, crie um TLog com um tamanho base de 8 GB e aumente manualmente em etapas de 8 GB até atingir o tamanho "baseline".
Em seguida, deixe algum espaço adicional no disco para permitir um ou dois "aumentos automáticos" de tamanho de 8 GB.
Isso deixará você com as melhores configurações de acordo com o artigo VLFs de log de transações – muitos ou poucos? onde eles recomendam que os VLFs tenham 512 MB de tamanho.
Espaço em disco
Se você não tiver espaço em disco infinito, certifique-se de que o arquivo TLog tenha um tamanho máximo definido, que não preencha seu disco ao máximo.
Monitoramento
O ponto mais importante é ter uma ferramenta de monitoramento que monitore o "espaço livre" do banco de dados, porque você nunca sabe se um processo não autorizado fará coisas que você não previu.
Arquitetura física do log de transações
Há um bom artigo no TechNet que explica a arquitetura física do log de transações . Isso fornece algumas informações sobre por que o TLog rola ou por que ele pode ter que crescer.
Referências
Alteração importante no algoritmo de criação de VLF no SQL Server 2014
Números de sequência iniciais de VLF e tamanho padrão do arquivo de
log VLFs de log de transações – muitos ou poucos?
Arquitetura física do log de transações