Árvore de páginas

*Recomendamos que todas as manutenções em banco de dados de clientes sejam feitas por um DBA, garantindo assim menor risco e maior sucesso nas manutenções.

Abaixo, descrevemos algumas recomendações da Microsoft para diminuição do arquivo de LOG.

É importante salientar que a manutenção abaixo é simples e efetiva. Para manutenções mais complexas, acesse o link da documentação oficial da Microsoft para leitura.

Crescimento do log de transações SQL:

O Mecanismo de Banco de Dados do SQL Server grava um registro de log para cada operação no banco de dados, que inclui iniciar ou encerrar uma transação SQL quando um processo de modificação de dados é executado, quando uma tabela ou índice de banco de dados é criado ou descartado e após cada operação de desalocação. Nos sistemas altamente transacionais com operações de registro em log excessivas, o arquivo de log de transações do SQL Server aumentará rapidamente até atingir seu tamanho máximo, gerando o erro número 9002. E se a opção de crescimento automático estiver habilitada, a unidade de disco subjacente ficará sem espaço livre.

Shrink do Log do Banco de Dados:


Opcionalmente, marque a caixa de seleção Liberar espaço não utilizado .

Selecionar essa opção faz com que qualquer espaço não usado no arquivo seja liberado para o sistema operacional e reduz o arquivo à última extensão alocada. Isso reduz o tamanho do

arquivo sem mover quaisquer dados.


Solução de problemas:

Caso a operação não esteja disponível ou a opção não ocorra de maneira satisfatória, avalie os passos abaixo:

O arquivo de log não é reduzido

Se o tamanho do arquivo não sofrer alterações após uma operação de redução sem erros, tente o seguinte para verificar se o arquivo tem espaço livre o suficiente:


SELECT
name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files;


A operação de redução não poderá reduzir mais o tamanho do arquivo se não houver espaço livre suficiente disponível.

Normalmente, o arquivo de log é que parece não ser reduzido. Em geral, a não redução é resultado de um arquivo de log que não foi truncado. Para truncar o log, você pode definir o modelo de recuperação de banco de dados como SIMPLE ou fazer backup do log e executar novamente a operação DBCC SHRINKFILE.

A operação de redução de log está bloqueada

Uma transação em execução em um nível de isolamento baseado em controle de versão de linha pode bloquear as operações de redução. Por exemplo, se uma grande operação de exclusão estiver sendo executada em um nível de isolamento de controle de versão de linha quando uma operação DBCC SHRINK DATABASE for executada, a operação de redução aguardará a exclusão ser concluída para continuar.

Ou seja, agende sua manutenção do banco de dados, fora do horário comercial, para evitar queda de performance na aplicação e no banco de dados.

Referência:

https://docs.microsoft.com/pt-br/sql/relational-databases/logs/manage-the-size-of-the-transaction-log-file?view=sql-server-2017

https://docs.microsoft.com/pt-br/sql/relational-databases/databases/shrink-a-file?view=sql-server-2017




  • Sem rótulos