Page tree
Skip to end of metadata
Go to start of metadata

O SQL Server usa o arquivo de log de transações - transaction log - para recuperação e garantia da integridade dos dados. Nele ficam registradas as alocações, liberações de páginas, COMMIT e ROLLBACK de cada transação, permitindo ao sistema gerenciador do banco de dados confirmar ou desfazer as transações (os chamados COMMITs e ROLLBACKs).

A principal função do transaction log ocorre quando o servidor SQL é reiniciado pois ao pará-lo o conteúdo que havia em memória é perdido. Ao reiniciar, o SQL Server faz uso do transaction log para a recuperação de seu estado e execução dos commits (COMMIT FORWARD) e roolbacks não finalizados.

Com o passar do tempo faz-se necessária a limpeza do dispositivo de log de modo a evitar o seu esgotamento (o que, quando ocorre, provoca o erro TRANSACTION LOG FULL). 

Limpeza do transaction log

O processo abaixo no geral pode ser útil para a limpeza.

Acesse o banco utilizando o Query Analyzer e execute os seguintes comandos:

SHRINK LOG
Use [databasename]
BACKUP LOG [databasename] TO [bkplogdatabasename]
BACKUP LOG [databasename] WITH NO_LOG
DBCC SHRINKFILE ([name], 1)

IMPORTANTE

  1. Substitua databasename no comando BACKUP com o nome do seu banco de dados.
  2. Substitua name no comando DBCC com o nome do seu transaction log.
  3. Para descobrir o nome do dispositivo transaction log execute o comando EXEC SP_HELPDB databasename.
  4. Para verificar se houve a alteração no tamanho do arquivo de transaction log execute novamente o comando EXEC SP_HELPDB databasename.
  5. Verifique se o arquivo do transaction log reduziu de tamanho.
  6. Geralmente este procedimento reduz o arquivo porém há condições em que isto pode não ocorrer. Nestes casos recomendamos solicitar a ampliação dos limites dos dispositivos.

 

A parte ativa do transaction log jamais poderá ser liberada pois é necessária para que seja mantida a intregridade da base de dados.