quinta-feira, 1 de novembro de 2012

Arquivo de log grande no sql server

Em ambientes de desenvolvimento, testes e implantação de sistemas é comum o banco de dados sofrer grandes alterações, importações de dados massivas, exclusões de grande porcentagem de dados e transações com milhares de operações que aumentam o arquivo de log do banco de dados consideravelmente.

Uma saída no SQL Server para estes ambientes que não precisam de backups, é utilizar bancos de dados no modo de recuperação simples (recovery model, simple), onde o arquivo de log do banco de dados (*.ldf) somente será utilizado para gerenciar as transações correntes (e operações de replicação), diminuindo bastante a necessidade de espaço no HD.

Então, nas propriedades do “bando” de dados, aba “Options”, temos a propriedade “Recovery Model”, onde alteramos para Simple e damos OK!


É só isso? Sim!

Mas se você possui um arquivo de log que já esta ocupando muito espaço em disco, não seria interessante diminuir um pouco ele? Então após aplicar o modo de recuperação simples, vá na aba “Files” altere o “Initial Size (MB)” para um valor que você considere adequado para seu banco de dados e dê OK!




Mas algumas vezes só alterar esta propriedade não ajuda muito…



Então, nas “Tasks”, temos a opção “Shrink”, “Files”:



Neste nova janela, escolha a propriedade “File type” “Log” e dê OK:



Pronto, agora você tem um banco de dados com log reduzido.


Obs.: Até mesmo em ambientes de desenvolvimento não recomendo realizar shrink de qualquer outro tipo de arquivo que não seja o de log, então somente utilize shrink em arquivos de dados se realmente for necessário (ex.: exclusão de tabelas gigantes), pois shrink em arquivos de dados pode afetar consideravelmente o desempenho do banco de dados, por fragmentar de índices e arquivos de dados, e também no caso do arquivo de log, gerar processamento desnecessário para alocar mais espaço em disco em futuras operações.