Rolling a Transaction Forward/Back

Os arquivos de log de transação são arquivos write-ahead que possuem a missão de garantir que todas as transações sejam persistidas e possam ser recuperadas.
Quando um registro é inserido primeiro ele passa pelo log de transação e durante um processo chamado checkpoint e outras situações, os dados do log são transferidos para o arquivo de dados.
A cada vez que o serviço do SQL Server for inicializado é executado um processo de recovery de cada banco de dados. Este processo permite que os dados sejam mantidos em estado consistente (committed).
O processo de recovery funciona com duas execuções:
Rolling a transaction forward: é o processo que lê o log de transações, procura por qualquer transação confirmada que não tenha sido escrita no arquivo de dados, ao encontrar alguma situação registra esse dado no arquivo de dados.
Rolling a transaction back: o processo de recovery também procura registros que foram pré-escritos nos arquivos de dados e que por algum motivo não finalizou, como isso não é considerado uma transação consistente o recovery irá remover essas alterações dos arquivos de dados.
Na edição Enterprise este processo pode ser feito em paralelo através de todos os bancos de dados da instância.
Concluindo, esse processo também acontece no final de um restore de banco de dados e é o mecanismo de garantia de que todo o restore não afetará ou comprometerá os dados já consolidados.
Abraço, Rodrigo

Um comentário em “Rolling a Transaction Forward/Back

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.