Dúvidas frequentes sobre Transactional Log no SQL Server

O transactional log (ou o log de transações, em bom português), de modo resumido, é um arquivo que contém as transações e modificações realizadas em um banco de dados a partir de uma transação Todo banco de dados no SQL Server possui pelo menos um arquivo de dados (de extensão .mdf) e um arquivo de log (de extensão .ldf).

As funções principais do arquivo de log são:

  • Garantir a consistência e durabilidade das transações.
  • Permitir, via backups de log, a restauração point-in-time de um banco de dados, desde que ele esteja configurado com o recovery model FULL

Separei duas perguntas recorrentes que continuo a receber até hoje sobre o T-Log do SQL Server.

Pergunta: Se o arquivo de log contém o histórico das transações, eu posso então utiliza-lo para consultar as alterações realizadas em uma tabela?

Resposta:”Não”. O arquivo de log não pode ser consultado por meio de código SQL de uma forma que seja entendível por humanos.Seu maior propósito na escrita das transações neste arquivo é feita para satisfazer o protocolo WAL (Write Ahead Logging), que nada mais é que um mecanismo que garante que todas as mudanças serão primeiro escritas no arquivo de log, sendo somente escritas nos arquivos de dados quando ela tiver sido finalizada.

Pergunta: Recebi a mensagem de erro 9002 The transaction log for database X  is full due to ‘ACTIVE_TRANSACTION’. O que isso significa? Como realizo a limpa do arquivo de log?

Resposta: Este erro indica que a transação que estava rodando no seu banco de dados não pode ser completada pois a utilização do arquivo de log de transações chegou a 100% durante a sua execução. O resultado disto é que a sua transação realizará o rollback das modificações.

Deixe um comentário