Como diminuir o tamanho do log file via SQL Server

Hoje vou mostrar como usar o SHRINK e diminuir o tamanho do log file de uma database no SQL Server.

Quando muitas operações começam a executar no SQL Server, os arquivos de log (ldf) costumam aumentar de tamanho.

Se o tamanho ficar muito grande e lotar o espaço em disco, isso pode ocasionar erros e falhas nos procedimentos no SQL Server.

Para corrigir isso, o ideal é rodar um Shrink diminuindo o arquivo de logs, e depois voltando ao normal, com os seguintes comandos.

ALTER DATABASE BaseDeDados	SET RECOVERY SIMPLE;
GO

DBCC SHRINKFILE (BaseDeDados_Log, 1);
GO

ALTER DATABASE BaseDeDados SET RECOVERY FULL;
GO

Agora, caso você tenha espelhamento e cópia em outro servidor, é necessário também suspender isso e depois retomar, conforme abaixo.

ALTER DATABASE BaseDeDados SET PARTNER SUSPEND;
ALTER DATABASE BaseDeDados SET RECOVERY SIMPLE;
GO

DBCC SHRINKFILE (BaseDeDados_Log, 1);
GO

ALTER DATABASE BaseDeDados SET RECOVERY FULL;
ALTER DATABASE BaseDeDados SET PARTNER RESUME;
GO

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

10 Responses

  1. Julio Cesar Marques Pires disse:

    valeu ! muito obrigado pelos ensinamentos !

  2. Roberto Junior disse:

    Bom dia Dan_Atilio, me desculpe a pergunta, mas vai lá. Fazendo o Shirink no LOG corre algum risco de zuar o DATABASE?
    Valeu!

    • Dan_Atilio disse:

      Bom dia Roberto. Acha, não precisa se desculpar.
      Então, até onde sei não, como é um log file (ldf), ele fica separado da database file (mdf).
      O que você vai fazer, é perder os logs das operações apenas.

  3. Roberto disse:

    Obrigado por responder. Fiz deu tudo certo. Quanto tempo acha que devo guardar o backup do log? Parei o SQL e fiz uma cópia do LDF. Mas em algum tempo ele perde a função, não?

    • Dan_Atilio disse:

      No caso, ele serve para você avaliar logs e se acontecer algum problema com o mdf, você conseguir ver se tem algum log nele apontando algum problema.
      Então assim, se você faz backup do mdf, o ideal é manter o ldf junto.

  4. Vitor disse:

    Boa tarde a todos,

    @Dan, pode-me explicar para que ser o “1” dentro dos parentises na linha 4?

    Obrigado

  5. Vitor disse:

    Já agora, posso correr o script como um ficheiro .bat ??

Deixe uma resposta para Dan_AtilioCancelar resposta

Terminal de Informação