Categorias
banco de dados log sql server

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…