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.
Bom dia,
Gostei da sua explicação e gostaria de uma outra.
Na minha empresa o LOG está com 75 gigas e preciso agir nesse arquivo, posso truncar o log e começar novamente?
Quando alguém fala que se der problema o log retorna é em que sentido, prq no meu caso, eu fiz o processo em base de teste e logo após fiz o bkp e consegui restaurar normalmente, não consigo entender onde pode ocorrer algum problema, obrigado.
Se você mudar o Recovery model para Simple, você pode fazer o SHRINK sem problemas.
mas o arquivo de log vai apagar,correto?Em nada implica?
Obrigado.
se você alterar para Simple, o Log ficará praticamente vazio, assim executa o SHRINK no log para reduzir para o tamanho em uso (conforme o post).
Muito bom artigo, obrigado!
Amigo, fiz todo o procedimento como você sugeriu, mas quando fiz um novo backup o tamanho continuou a crescer. Você tem alguma ideia do motivo?
Carlos, você pode manter o Recovery Model em Simple, assim o Log só usará o necessário para realizar as transações do seu ambiente.
Outro motivo, pode ser alguma rotina de replicação configurada neste banco de dados.
Bom dia,
Quando eu faço este procedimento de diminuir o arquivo de LOG, naturalmente perderei meu Log que se encontra em Management -> SQL Server Logs ?
Este procedimento só irá diminuir o arquivo de Log que guarda logs internos do database (*.LDF) (ex.: logs de transações realizadas, dados para replicação), assim não afetará o ‘Management -> SQL Server Logs’.
O ‘Management -> SQL Server Logs’ tem seu próprio armazenado no SQL Server em:
%Program-Files%\Microsoft SQL Server\MSSQL.1MSSQL\LOG\ERRORLOG
Ola Paulo, não consigo reduzir o log do banco em SQL Server 2005, a cada comando que tento ele cresce mais, mesmo colocando em Simple Recovery, ele aumenta.
Não sei mais o que fazer.
quando rodo o comando Dbcc ShrinkFile(meu banco, 1000) em modo recovery ele mostra a mensagem abaixo.
Cannot shrink log file 2 (Meu_Banco_Log) because all logical log files are in use.
Ele não esta em uso, e um backup novo.
Tente executar o comando abaixo e, em seguida, dar SHRINK.
BACKUP LOG [nome do banco] WITH TRUNCATE_ONLY
Se não resolver, verifique se tem alguma replicação configurada nesta base, pois elas também usam log.
Lembrando que com o modo de recuperação “simple” você não poderá recuperar o banco de dados em um ponto do tempo, no caso de não haver necessidade, tudo bem, agora em caso de uma catástrofe, aí só o ultimo backup completo.