Protocolos para recuperação que evitam propagação de rollbacks (que incluem quase todos os protocolos práticos) não exigem que operações READ sejam gravadas no log do sistema. Contudo, se o log também for usado para outras finalidades, como auditoria (mantendo registro de todas as operações do banco de dados) então essas entradas podem ser incluídas.

Além disso, alguns protocolos de recuperação que exigem entradas WRITE mais simples só incluem um valor novo ou valor antigo em vez de incluir ambos.

Observe que não estamos assumindo que todas as mudanças permanentes no banco de dados ocorrem nas transações, de modo que a noção de recuperação de uma falha de transação equivale a desfazer ou refazer operações de transação individualmente com base no log. Se o sistema falhar, podemos recuperar para um estado coerente do banco de dados ao examinar o log e usar uma das técnicas de recuperação.

Como o log contém um registro de cada operação WRITE que muda o valor de algum item do banco de dados, é possível desfazer o efeito dessas operações WRITE de uma transação rastreando o log de volta e retornando todos os itens alterados por uma operação WRITE a seus valores antigos.

Também pode ser necessário refazer uma operação se uma transação tiver suas atualizações registradas no log, mas houver uma falha antes que o sistema possa estar certo de que todos esses novos valores tenham sido gravados no banco de dados real em disco com base nos buffers da memória principal.
Copyright © 2016 AIEC.