Reduzir Log SQL Server

Nesse primeiro post sobre SQL Server vou explicar como reduzir o log do SQL Server 2005 e 2008. No log contêm as instruções que foram executadas ultimamente no banco de dados. Para quem trabalha com recuperação em log pode preferir manter o log por algum período antes de fazer uma redução. Mas para outros bancos de dados que realizam inserções e atualizações constantes pode ficar inviável manter o log por grandes períodos devido a prover um crescimento exarcebado. Bem isso você pode ver melhor a depender da política de backup que você for utilizar. Considerando que o log para você não tem importância de mantê-lo por muito tempo e não quer mexer nas configurações no SQL Server, essa é uma boa dica de fazer a redução através de comandos SQL.

Pelo próprio SQL Server Management Studio você pode utilizar da função Shrink e fazer a redução do banco de dados e log. Muitas vezes a redução (vamos nos atentar ao do log) chega a ser pouca pois ele mantêm ainda algumas das instruções mais recentes. Mas para forçosamente realizar a redução execute a seguinte intrução:

SQL Server 2005
USE Banco_Dados
GO
BACKUP LOG Banco_Dados WITH TRUNCATE_ONLY
DBCC SHRINKFILE (Banco_Dados_log, 1)

SQL Server 2008
USE Banco_Dados;
GO
ALTER DATABASE Banco_Dados
SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (Banco_Dados_Log, 1);
GO
ALTER DATABASE Banco_Dados
SET RECOVERY FULL;
GO
 
Ambos os procedimentos fazem com que o log seja reduzido a 1Mb. Nota-se que a instrução de redução é a mesma. A única diferença é que para realizar a trucamento, no 2005 é preciso informar que o backup de log será truncado explicitamente e no 2008 deve mudar o status para recuperação simples antes de truncá-lo. Se quiser realizar o truncamento automático de todos os bancos do servidor basta fazer um SELECT com cursor sobre todos os bancos pegando o name deles e executando o script acima. Mas isso deixarei para mostrar outro dia...

8 comentários:

Anônimo disse...

Post muito bom!

Estava com problema em um Banco da minha empresa e executei o script para reduzir o tamanho do Log e tudo certo!

Obrigado!

Anônimo disse...

Parabens;

Useu e relamente Funciona


Obrigado

Cosme disse...

Show de Bola! Muito obrigado!

Anônimo disse...

FUNCIONOU PERFEITAMENTE, OBRIGADO!

Guilherme disse...

Muito bom, deu certo, fiz na empresa que eu trabalho e deu tudo certo.

Anônimo disse...

Excelente!!

Anônimo disse...

Te AMO!!! auhsahushuahusauhsuhahusa

Thiago Coelho disse...

Otimo post, mas cuidado pois não é a melhor pratica em certos ambientes.

Se o arquivo de log esta crescendo muito, e mesmo com backup de log não esta resolvendo o problema, tente gerenciar o tamanho de suas transações.
Não execute deletes ou updates muito longo.Execute commit aos poucos, isso vai resolver seu problema.

Postar um comentário