1 - Recuperação e categorização dos algoritmos de recuperação
Olá, seja bem-vindo a mais um módulo do nosso curso. Já tratamos anteriormente de conceitos gerais sobre informação, dispositivos para backup e políticas de backup e restauro. Agora, trataremos dos conceitos e técnicas relacionados à recuperação de banco de dados.
A recuperação de falhas de transação em geral significa que o banco de dados é restaurado ao estado consistente mais recente antes do momento da falha.
Para fazer isso, o sistema precisa manter informações sobre as mudanças que foram aplicadas aos itens de dados pelas diversas transações. Essa informação costuma ser mantida no log do sistema, conforme discutimos quando falamos sobre o arquivo de transações do banco de dados.
Uma estratégia típica para recuperação pode ser resumida informalmente da seguinte maneira:
Se houver dano extensivo a uma grande parte do banco de dados devido à falha catastrófica, como uma falha de disco, o método de recuperação restaura uma cópia antiga do banco de dados que teve backup para o arquivamento (normalmente, fita ou outro meio de armazenamento off-line de grande capacidade) e reconstrói um estado mais recente, reaplicando ou refazendo as operações das transações confirmadas do log em backup, até o momento da falha.
Quando o banco de dados no disco não está danificado fisicamente e uma falha não catastrófica tiver ocorrido (como, por exemplo, bloqueio mútuo), a estratégia de recuperação é identificar quaisquer mudanças que possam causar uma inconsistência no banco de dados. Veja um exemplo. Também pode ser preciso refazer algumas operações a fim de restaurar um estado consistente do banco de dados. Exemplo. Para a falha não catastrófica, o protocolo de recuperação não precisa de uma cópia de arquivamento completa do banco de dados. Em vez disso, as entradas mantidas no log do sistema on-line no disco são analisadas para determinar as ações apropriadas para recuperação.
Recuperação de falha catastrófica x falha não catastrófica.
Veja um exemplo
Por exemplo, uma transação que atualizou alguns itens do banco de dados no disco, mas não confirmou as necessidades de ter suas mudanças revertidas ao desfazer suas operações de gravação (nesse caso, os efeitos da transação devem ser desfeitos).