Recuperação
após
falhas
Recuperação
após falhas
SISTEMAS DE
GERENCIAMENTO DE BANCO
– UFPE
DECIN
DADOS
Hélder Lima e Silva - hmls
hélder manoel lima e
silva
Recuperação
após falhas
1.
2.
3.
4.
system crash ▷ perda da memória principal
falha de mídia ▷ perda da memória secundária
erros em aplicativos ▷ erro lógico no aplicativo
desastres naturais/físicos ▷ incêndios,
terremotos, blecautes
5. descuido do operador ▷ destruição dos dados
de forma não intencional
6. sabotagem ▷ destruição intencional dos dados
hélder manoel lima e
silva
Recuperação
após falhas
1. Impossibilidade
de recuperar os
dados
2. BD
inconsistente
BACKUP
Undo/Redo
hélder manoel lima e
silva
Recuperação
após falhas

Transações e
Recuperação
transação: unidade de recuperação de
um BD
BUFFER
MEMÓRIA
SECUNDÁRIA
hélderwriting
manoel lima e
a gravação explícita do buffer no disco chama-se force
silva
Recuperação
após falhas
UNDO/RE
DO
hélder manoel lima e
silva
Recuperação
após falhas
Gerenciamento de buffer
 estratégias de relocação: FIFO/LRU
alternativa: utilizar 2 variáveis pincount e dirty inicializadas com 0
Quando uma requisição de página ocorre, o gerenciador de buffer
verifica se a página já está em um buffer do SGBD. Se não estiver:
1.
Usar a estratégia de relocação;
Incrementar o pincount (impede a escrita da página no disco
A estratégia não pode escolher um buffer pinado
2.
Se a variável dirty estiver TRUE então ele gravará o buffer no disco
3.
Lê a página no disco
Coloca no buffer escolhido e
Faz dirty = FALSE
hélder manoel lima e
silva
Recuperação
após falhas
Gerenciamento de buffer
terminologias
steal policy
Permite ao gerenciador de buffer escrever no disco antes do commit da
transação. Alternativa: NO-STEAL
force policy
Garante que todas as páginas atualizadas por uma transação são
escritas no disco quando a transação chega no commit . Alternativa: NO-FORCE
IMPLEMENTAÇÃO MAIS SIMPLES: NO-STEAL/FORCE
undo desnecessário e redo desnecessário para transações consolidadas
(commited)
IMPLEMENTAÇÃO MAIS USADA: STEAL/NO-FORCE
steal evita necessidade de buffer’s muito grandes e no-force evita reescrita de
páginas que não foram utilizadas por uma transação mais nova e não
hélder manoel lima e
consolidada
silva
Recuperação
após falhas
backup
Recursos para
recuperação
faz cópias periodicamente do BD
logging
guarda caminho do estado atual das transações e modificações no BD
checkpoint
permite que atualizações ao banco se tornem permanentes.
gerenciador de recuperação
permite ao sistema restaurar o BD para um estado consistente
hélder manoel lima e
silva
Recuperação
após falhas
Recursos para
recuperação
BACKUP fita magnética
LOGGING
não é usado apenas para recovery (monitoramento de
performance)
pode conter:
1. entrada de transações
identificador
tipo de entrada (start, insert, delete, update, commit)
identificador do item de dado afetado
imagem antiga do item de dade afetado
imagem nova
informações de manutenção do log
2. checkpoints (o ponto de sincronização entre
o BD e o log)
hélder manoel lima e
silva
Recuperação
após falhas
Recursos para
recuperação
CHECKPOINT
Envolve as seguintes operações:
1. Escrever todas as entradas do log de
memória
principal para a secundária
BD
2. Escreve os blocos modificados no buffer do
para a memória secundária
3. Escreve uma entrada do tipo checkpoint no
arquivo
de log
hélder manoel lima e
silva
Recuperação
após falhas
Recursos para
recuperação
CHECKPOINT
transações em série  falha
Verificar o arquivo de log para encontrar a última
transação iniciada antes do último checkpoint.
Qualquer transação anterior já foi escrita no BD.
Aplicar REDO para as transações ativas e com
entradas do tipo start e commit no log.
hélder manoel lima e
silva
Recuperação
após falhas
Recursos para
recuperação
CHECKPOINT
transações concorrentes  falha
Refazer (REDO) as transações depois do checkpoint e
desfazer todas as transações ativas no momento da
falha.
hélder manoel lima e
silva
Recuperação
após falhas
UNDO/RE
DO
hélder manoel lima e
silva
Recuperação
após falhas
Técnicas de Recuperação
Dependem da extensão do dano no BD
Dois casos:
1. BD AMPLAMENTE DANIFICADO
* restaurar o último backup
* reaplicar as alterações das
transações
comitadas a partir do
arquivo de log
2. BD NÃO FOI FISICAMENTE DANIFICADO
MAS TORNOU-SE INCONSISTENTE
* atualização adiada
* atualização imediata
* shadow
hélder manoel lima e
silva
Recuperação
após falhas
Estratégias de recuperação

adiada (BD atualizado depois do commit)
o
o
o
antes do commit: atualizações em memória principal
depois do commit: log  disco
undo desnecessário
hélder manoel lima e
silva
recuperação adiada
protocolo:
Recuperação
após falhas
1. quando uma transação se inicia, escrever uma entrada transaction start
no log;
2. quando qualquer operação de escrita for executada, escrever uma
entrada de log. Não atualizar buffer e BD;
3. quando a transação está prestes a se consolidar, escrever uma entrada
transaction commit no log. Escrever todas as entradas do log no disco.
Depois consolidar a transação. Usar as entradas no log para executar as
atualizações no BD
4. qualquer transação com entradas no log do tipo transaction start e
transaction commit deverão sofrer REDO. O procedimento de REDO
executa as escritas no BD usando as entradas IMdepois no log das
transações na mesma ordem que elas entraram no log;
5. para qualquer transação com entradas no log do tipo transaction start e
transaction abort no log, nada precisa ser desfeito, pois as atualizações
não chegaram a ser escitas no BD
* Se uma segunda falha ocorre durante a recuperação, as entradas no log
podem ser usadas novamente para recuperar o BD, não importa quantas
vezes
hélder manoel lima e
silva
Recuperação
após falhas
Estratégias de recuperação

imediata (BD atualizado antes do commit)
o
o
gravação no log antes do BD
undo/redo ou undo/no-redo
hélder manoel lima e
silva
recuperação imediata
Recuperação
após falhas
protocolo:
1. quando uma transaçào se inicia, escrever uma entrada transaction start no
log;
2. quando qualquer operação de escrita for executada, escrever uma entrada
de log;
3. uma vez que o log é escrito, atualizar o buffer;
4. as atualizações no BD serão escritas automaticamente, quando os buffers
são escritos no disco;
5. quando a transação se consolidar, escreva uma entrada do tipo transaction
commit no log;
6. para qualquer transação do tipo transection start e transaction commit
aplicar REDO para escrever a IMdepois dos campos atualizados;
7. para as transações com entradas do tipo transaction start mas sem
transaction commit, será necessário desfazer a transação (escrever as IMantes
nos itens afetados.) A soperações de UNDO são realizadas na ordem inversa a
que aparecem no log
* É essencial que as entradas no log sejam escritas antes da escrita correspondente
hélder manoel lima e
no BD.
silva
Shadow paging
Recuperação
após falhas
protocolo:
1. mantém duas páginas durante a vida da transação (página atual e página
sombra)
Quando a transação começa, as duas páginas são idênticas. Durante a
transação, a página atual é utilizada para gravar todas as atualizações no BD.
Quando uma atualização se completa a página atua se torna a página sombra
Vantagens
1. Elimina OVERHEAD para manter o arquivo de log
2. Recovery mais rápido
3. Nem UNDO, nem REDO.
Desvantagens
1. fragmentação
2. Necessidade de garbage collection
hélder manoel lima e
silva
Recuperação
após falhas
FIM
hélder manoel lima e
silva
Recuperação
após falhas
hélder manoel lima e
silva
Download

recuperação_apos_falhas