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.

12 pensamentos sobre “Arquivo de log grande no SQL Server

  1. 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.

  2. 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.

    • 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

  3. 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.

  4. 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.

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.