RECUPERAÇÃO APÓS FALHA
Material baseado nas aulas da prof. Renata
Vilas Boas
Motivação
 Conceitos Básicos
 Meios de Armazenamento
 Tipos de Falha e sua Recuperação
 LOG
 Checkpoint

Propriedades de uma transação




Atomicidade: Todas as ações na transação
acontecem, ou nenhuma acontece.
Consistência: Se toda a transação é consistente, e
o BD inicia consistente, então o BD termina
consistente.
Isolamento: A execução de uma transação é
isolada de outras transações.
Durabilidade: Se uma transação é finalizada, seu
efeito persiste.
Motivação

Sistema de computador está sujeito a falhas
 Existem
diversos tipos de falhas, as quais podem
acarretar perda dos dados

O sistema deve garantir que as propriedades de
atomicidade e durabilidade das transações sejam
preservadas
Motivação
Falha
BD
Consistente
BD
Inconsistente
Técnicas de
Recuperação
Conceitos Básicos

Transação



Recuperação


O SGBD é acionado automaticamente para resolver os tipos de
falhas esperados
Condição básica


Unidade de trabalho; Unidade de recuperação
As propriedades devem ser preservadas
Armazenamento de informação redundante durante o
funcionamento normal (log, backup)
Estado do BD deve ser recuperado

Ao mais recente estado consistente antes da falha (satisfaz todas
as restrições de integridade)
Observe

O planejamento e o processo de Back Up geralmente envolve
a seguinte questão:
Quanto você está disposto a perder?


Isto porque é preciso conhecer o funcionamento do
gerenciador de recuperação, determinar a frequência com
que será feito o Backup e onde ele ficará armazenado
No pior caso, se o backup estiver guardado próximo a
máquina com os dados e a sala que eles estiverem pegar
fogo....
Meios de Armazenamento

Volátil





Não-volátil



Buffer
Os dados estão armazenados na memória principal do computador
Acesso mais rápido
A informação residente neste meio usualmente, não sobrevive a quedas no
sistema
Os dados estão armazenados em discos e/ou fitas
A informação residente neste meio sobrevive a quedas no sistema mas
pode não sobreviver a falhas neste meio
Estável


A informação residente neste meio “nunca” é perdida
Meio mais seguro do que a não-volátil
Tipos Falhas

Falha de transação



Falha do sistema


Erro lógico. A transação não pode continuar sua execução normal
devido a alguma condição não satisfeita
Erro de sistema. O sistema entrou em um estado inadequado
(deadlock)
Queda de energia. Não danifica fisicamente o BD, mas as
informações em memória volátil são perdidas. Afeta todas as
transações em curso no momento
Falha de Mídia

Bloco de disco perdeu conteúdo em função da quebra do
cabeçote ou falha durante a transferência de dados. Danifica
fisicamente o BD
Como recuperar o BD?

Falha de transação
 Desfazer
as operações já realizadas pela transação
até o início da transação ou até um determinado ponto
dentro da transação

Falha do sistema
 Recuperar
o mais recente estado consistente do BD que
existia antes da falha
 Refazer

ou desfazer transações
Falha de disco
 Refazer
o BD utilizando um BD espelho ou uma cópia
de segurança
Arquitetura do Gerenciador de
Recuperação
Transações

Escalonamento
Gerenciador de
Recuperação
BD
Cópia de
segurança
Log  recuperação de curta duração


Falha de transação
Recuperação de média e longa duração
Falha de sistema (BD + Log)
 Falha de disco (Cópia de segurança + Log)

Log
Recuperação usando Log

Arquivo onde ficam armazenadas todas as
operações realizadas no BD
 Cada
vez que é executada uma operação sobre uma
linha de uma tabela é criado uma entrada (ou registro)
no Log

Exemplos de registros no Log:
1.
2.
3.
4.
5.
[begin_Transaction, T]
[write, T, X, old, new]
[read, T, X]
[commit, T]
[abort, T]
Log





Armazenado na memória principal, em meio não-volátil e em meio
estável
É um arquivo serial que guarda todas as modificações que foram
realizadas no BD e quais transações realizaram quais modificações
Este arquivo é lido durante o processo de recuperação pois pode
levar um BD ao seu último estado consistente antes da falha
Uma transação só é considerada executada quando todos os
registros do Log desta transação estiverem armazenadas no banco
de dados físico
Registros do Log devem ser armazenados no arquivo na ordem em
que eles foram criados (exemplo: antes que o registro <commit, Ti>
seja armazenado no arquivo, todos os outros registros desta
transação já devem estar)
Recuperação de Falha de Transação

Deve ser executada pelo SGBD quando
 uma
transação que estava sendo executada é
cancelada (explícita/implícitamente)

Recuperação
 Os
efeitos da transação em questão devem ser desfeitos
 Para isso, deve-se varrer o arquivo de Log para
identificar as operações já realizadas pela transação
Recuperação de Falha do Sistema



O SGBD parou de executar
Operações que estavam na memória volátil não
foram armazenadas na memória física
Consequentemente
 Todas
as transações que estavam em execução no
momento da falha devem ser desfeitas

Questão:
 Como
o SGBD sabe as transações que estavam em
execução? Deverá varrer todo o Log?
Checkpoint



Ponto de controle
De tempos em tempos, o SGBD escreve no Log um
registro especial chamado checkpoint, que serve para
registrar as transações em execução
A execução de um checkpoint envolve:
Gravar fisicamente o conteúdo do BD da memória volátil no
BD físico
 Gravar fisicamente (meio estável) o conteúdo do Log
 Gravar um registro de checkpoint no Log


Se não existe este registro, teríamos que investigar
todo o arquivo de Log para recuperar o BD
Checkpoint

Quando ocorre uma falha de sistema
 Todas
as transações cujos registros <commit, Ti>
estejam depois do checkpoint mais recente gravado no
Log
 Devem
ser refeitas (REDO)
 Todas
as transações cujos registros <begin transaction,
Ti> estejam no Log mas os registros <commit, Ti> ou
<rollback, Ti> não estejam
 Devem
ser desfeitas (UNDO)
Tempo
Checkpoint
Falha do sistema
T1
T2
T3
T4
T5


Quando ocorre uma falha, o SGBD verifica o último
checkpoint
A recuperação de cada uma das transações ocorre das
seguintes maneiras
T1 não é afetada
 T2 e T4 já estão completadas mas não conseguiram ter suas
atualizações gravadas no BD físico  Refazê-las
 T3 e T5 ainda não tinham sido encerradas  Desfazê-las

Recuperação de Falha de Disco




O BD está danificado!
Uma falha deste tipo ocorre raramente, mas deve
ser prevista
Necessita de uma cópia de segurança (backup)
atualizada periodicamente
O BD deve ser restaurado
 pela
carga da cópia de segurança e
 pelo uso do Log para refazer todas as operações
feitas após a cópia
Tipos de Backup

Completo
 Banco
de Dados
 Realiza
 Arquivo
de Log
 Realiza

o backup de todo o banco de dados
o backup apenas do Log
Diferencial
 Realiza
o backup apenas da parte que foi modificada
após o último backup
Exercícios



Discuta os tipos de falhas que podem ocorrer a um
BD.
O que é checkpoint? Qual a importância de
gravar um registro de checkpoint no Log?
Explique o procedimento que deve ser feito para
restaurar o BD no caso de uma falha do sistema.
Exercícios

Responda: (1) O que acontece depois da falha com cada
transação e por quê? (2) Qual o valor dos dados após o
processo de recuperação?
[início, T1]
[read, T1, A]
[read, T1, B]
[início, T2]
[read, T2, C]
[write, T1, A, 3, 20]
[commit, T1]
[write, T2, C, 2, 40]
[início, T3]
[read, T3, B]
[checkpoint]
[write, T3, B, 10, 8]
[commit, T3]
[início, T4]
[read, T4, A]
[write, T2, D, 0, 25]
[início, T5]
[write, T4, A, 20, 15]
[read, T5, A]
[commit, T4]
[write, T5, A, 15, 65]
[read, T2, B]
FALHA!
Download

Recuperação de Falha de Transação