Rollback – até que ponto?
Last updated
Last updated
Quando necessitamos de fazer rollback a questão que se coloca é:
Até que ponto do transaction log devemos recuar?
Deverá ser o momento em que o transaction log e a base de dados estão sincronizados.
Só a partir desse ponto é que nos interessa refazer as transações.
Solução segura: último backup!
Operação lenta ...
... pois pode ser um momento muito recuado o que obrigará a um grande esforço pois temos de refazer todos as transação até ao momento da falha!!!
Solução baseada em Chekpoint
Marca no transaction log que identifica o momento em que os buffers são escritos para disco.
Ponto de sincronismo (em disco) entre o transaction log e a BD
São fundamentais para limitar a amplitude dos processos de rollback e rollforward.
Tn4 não é recuperável
Tn2 e Tn3 são refeitas: primeiro são desfeitas (rollbacked) e depois executadas novamente (rollforward)
Tn e Tn1 não necessitam de intervenção
Alguns sistemas suportam Savepoint numa transação.
Permite reconstruir a transação até esses pontos
Savepoint versus Commit
Savepoint é interno à transação
Commit efetiva (BD) as operações e torna-as visíveis para outras