Você está aqui: Página Inicial Artigos Tecnologia Truncando arquivos de log do SQL Server

Truncando arquivos de log do SQL Server

O que fazer quando os arquivos de log ficam muito grandes

Todas as operações em um banco de dados são logadas no transaction log (arquivos .ldf).
 
Se elas nunca forem apagadas, o arquivo vai crescer até ocupar todo espaço disponível no disco.
 
Por isso, é necessário que, em algum momento, os registros antigos do log que não são mais necessários para uma recuperação do banco de dados sejam removidos para fazer espaço a novo log.
 
Este processo se chama truncar o log: truncate the log.
 
O SQL Server (incluindo o MSDE) trabalha em 3 modos na manutenção dos arquivos de log (recovery model):
- Simple Recovery: Neste modo, o log é truncado automaticamente a intervalos regulares. É o modo mais simples de administrar um BD, mas é o menos seguro. Se ocorrer algum problema, você terá que retornar o banco de dados ao estado em que estava no último backup.
- Full Recovery: Neste modo, tudo que é feito no BD é logado no arquivo de log (.LDF). Ocorrendo um problema nos arquivos de dados, você pode voltar o BD em determinado ponto no tempo. Como estes arquivos pode ser arquivos espelhados em discos diferentes, este modo oferece grande proteção em falhas. Mas o log deve ser truncado a cada backup geral.
- Bulk-Logged Recovery: É parecido com o Full Recovery, mas nem tudo é logado.
 
Como seu arquivo de log não para de crescer, você não deve estar no modo "Simple Recovery". Para verificar isto, uso o comando:
 
exec sp_dboption 'seuBD', 'trunc. log on chkpt.'
 
se estiver ON, é por quê estamos em "simple recovery". Se estiver 'off', estamos em 'full' ou 'bulk-logged' e você precisará fazer o truncate de alguma maneira.
 
para alterar o recovery model, use:
alter database seuDB set recovery full
ou
alter database seuDB set recovery simple
 
Se estiver em modo SIMPLE, o trucante ocorrerá automaticamente. Se estiver em modo FULL, use o seguinte comando para truncar o log:
 
backup log seuBD with truncate_only
 
O comando acima não faz backup, apenas trunca o log. O mais correto seria fazer um backup de LOG normal (em arquivo externo) já associado com o truncate.
 
Tudo isto, ainda não vai diminuir o tamanho do seu arquivo. Para fazer isto, use o comando:
 
DBCC SHRINKDATABASE (SeuDB)

Ações do documento

Comentários (0)

« Maio 2012 »
Maio
SeTeQuQuSeSaDo
123456
78910111213
14151617181920
21222324252627
28293031
Acessar


Esqueceu sua senha?