Vous êtes sur la page 1sur 6

18/9/2009

Recuperao aps Falha (ou Restaurao)


Aps uma falha na execuo de uma transao, o BD deve ser restaurado para um estado consistente anterior O Sistema deve manter informaes sobre as atualizaes do BD em separado (LOG) Estratgias Perda por falha: reconstruo (REDO) Backup ------------> estado consistente mais prximo da falha
Mestrado / Doutorado
2

Banco de Dados
Fernando Fonseca & Ana Carolina Salgado
Mestrado / Doutorado

Recuperao aps Falha


Estratgias (Cont.) O BD tornou-se inconsistente: reverter mudanas (UNDO) BD inconsistente-------> BD consistente Duas tcnicas de recuperao no caso 2 Atualizao adiada: BD atualizado depois do commit Antes do commit: atualizaes gravadas em reas de trabalho locais Durante o commit: atualizaes gravadas no log e depois no BD
Mestrado / Doutorado
3

Recuperao aps Falha


No necessrio Undo e o Redo necessrio em alguns casos: No-Undo/Redo Atualizao imediata: BD atualizado antes do commit Gravao no log antes do BD Recuperao possvel Undo e Redo necessrios: Undo/Redo

Mestrado / Doutorado

Conceitos para recuperao SGBD Cache: buffer na memria principal sob controle do SGBD Diretrio da Cache: controla que itens do BD esto em qual buffer. Quando requerido um item que no est na cache, provoca a paginao. Dirty Bit: indica se um item de dado na cache foi atualizado (1) ou no (0). Imagem antes (ImAn): valor antigo do dado Imagem depois (ImDp): valor novo do dado
Mestrado / Doutorado
5

Recuperao aps Falha

Recuperao aps Falha


Estratgias para liberao de um item de dado modificado da cache para o disco Atualizao in-place: grava o item no mesmo local do disco, apagando o valor anterior, mantendo apenas uma cpia do dado --> necessrio Log gravado antes do BD Shadowing (imagem): grava o novo item em uma localizao diferente, mantendo pelo menos duas cpias do item de dado -- > No necessrio o Log
Mestrado / Doutorado
6

18/9/2009

Recuperao aps Falha


Write-Ahead Logging: na atualizao inplace, garante que a ImAn seja gravada no log antes da gravao da ImDp no disco. Entradas do log Do tipo Redo: corresponde a uma operao de gravao (ImDp) --> write-item Do tipo Undo: corresponde ao antigo valor do item (ImAn) --> read-item

Recuperao aps Falha


Protocolo Write-Ahead Logging para Redo e Undo A ImAn no pode ser apagada pela sua ImDp no disco, at que todas as entradas do tipo Undo daquela transao (at aquele ponto) tenham sido gravadas no disco A operao Commit de uma transao no pode ser completada at que todas as entradas do tipo Undo e Redo tenham sido gravadas no disco
Mestrado / Doutorado
8

Mestrado / Doutorado

Recuperao aps Falha


O SGBD deve manter uma lista de transaes processadas com os seguintes estados Ativas: iniciadas mas sem commit Acabadas (committed): desde o ltimo checkpoint Abortadas desde o ltimo checkpoint

Recuperao aps Falha


Rollback de Transaes (Undo): necessrio se uma falha ocorrer depois do BD ter sido atualizado Qualquer item de dado atualizado pela transao deve voltar a seu valor anterior Rollback em Cascata: Se uma transao T desfeita e uma transao S leu algum dado atualizado por T, S tambm tem que ser desfeita e assim por diante
Mestrado / Doutorado
10

Mestrado / Doutorado

Recuperao aps Falha


Rollback em Cascata ou Undo

Recuperao aps Falha


Recuperao com Atualizao Adiada (RAA) Ambiente Mono-usurio Protocolo Uma transao no pode modificar o BD at seu commit Uma transao no pode chegar ao commit at que todas as operaes de atualizao sejam gravadas no log e o log no disco

read(b) write(b)
T1

read(a) read(d) write(d)

read(b) write(b)
T2

read(a) read(d) write(d)


T3

T1 desfeita porque no alcanou o commit T2 desfeita porque leu o valor de b gravado por T1 T3 refeita
Mestrado / Doutorado

FALHA

tempo

11

Mestrado / Doutorado

12

18/9/2009

Recuperao aps Falha


Procedimento Usar duas listas de transaes: as transaes acabadas desde o ltimo checkpoint e as transaes ativas Aplicar a operao Redo para todas as operaes write_item das transaes acabadas no log, na ordem na qual elas foram gravadas Recomear as transaes ativas

Recuperao aps Falha


Recuperao com Atualizao Adiada (RAA) (cont.) Redo Examinar a entrada no log [write_item, T, X, novovalor] e colocar o valor do item X no BD como novo valor (ImDp) A operao Redo idempotente: Redo(Redo(Redo(x)))=Redo(x)
T1 read_item(a) read_item(d) write_item(d) T2 read_item(b) write_item(b) read_item(d) write_item(d) Log [start_transaction, T1] [write_item, T1, d, 20] [commit, T1] [start_transaction, T2] [write_item, T2, b, 10] [write_item, T2, d, 25]

Falha --> A operao write_item de T1 refeita As entradas no log de T2 so ignoradas


Mestrado / Doutorado
13

Mestrado / Doutorado

14

Recuperao aps Falha


Recuperao com Atualizao Adiada (RAA) Ambiente Multi-usurio Protocolo Depende do protocolo usado no controle de concorrncia Assumir protocolo de duas fases com bloqueios antes do incio da execuo, guardando-os at o commit

Recuperao aps Falha


Procedimento Usar duas listas de transaes: as transaes acabadas desde o ltimo checkpoint e as transaes ativas Aplicar a operao Redo para todas as operaes write_item das transaes acabadas no log, na ordem na qual elas foram gravadas As transaes ativas e no acabadas so canceladas e devem ser re-submetidas
Mestrado / Doutorado
16

Mestrado / Doutorado

15

Recuperao aps Falha


Recuperao com Atualizao Adiada (RAA) T1 T2 T3 T4 T5

Recuperao aps Falha


Recuperao com Atualizao Adiada (RAA) Desvantagem Limita a execuo concorrente das transaes porque itens ficam bloqueados at o commit das transaes Vantagens Uma transao no grava as modificaes no BD at o commit. Logo, uma transao nunca desfeita por causa de falha
Mestrado / Doutorado
18

checkpoint T1: OK T2 e T3: operaes write_item devem ser refeitas T4 e T5: canceladas e re-submetidas
Mestrado / Doutorado

t1

t2
FALHA

tempo

17

18/9/2009

Recuperao aps Falha


Vantagens (Cont.) Uma transao nunca vai ler o valor de um item gravado por outra no acabada, porque os itens esto bloqueados. Logo, no ocorrer rollback em cascata

Recuperao aps Falha


Recuperao com Atualizao Imediata (RAI) Dois tipos de Algoritmos Undo/No-Redo Se a tcnica de recuperao garante que todas as atualizaes so gravadas no BD (disco) antes do commit da transao, no necessrio Redo Undo/Redo Se as modificaes so gravada no BD (disco) depois do commit da transao Caso mais geral e mais complexo
Mestrado / Doutorado
20

Mestrado / Doutorado

19

Recuperao aps Falha


Recuperao com Atualizao Imediata (RAI) Ambiente Mono-usurio Procedimento Usar duas listas de transaes: as transaes acabadas desde o ltimo checkpoint e a transao ativa (mximo 1) Aplicar o procedimento Undo: para desfazer todas as operaes write_item da transao ativa no log
Mestrado / Doutorado
21

Recuperao aps Falha


Procedimento (Cont.) Aplicar a operao Redo: para todas as operaes write_item das transaes acabadas na ordem na qual elas foram gravadas no log Undo Desfazer uma operao write_item consiste em examinar sua entrada no log: [write_item, T, X, valor_ant, valor_novo] e colocar o valor do item X no BD como valor_ant (ImAn)
Mestrado / Doutorado
22

Recuperao aps Falha


Undo (Cont.) Para desfazer as operaes write_item de uma ou mais transaes do log, deve-se proceder na ordem inversa de gravao no log

Recuperao aps Falha


Recuperao com Atualizao Imediata (RAI) Ambiente Multi-usurio Protocolo Assume-se que o log inclui checkpoints e o protocolo de concorrncia como o de duas fases

Mestrado / Doutorado

23

Mestrado / Doutorado

24

18/9/2009

Recuperao aps Falha


Procedimento Usar duas listas de transaes: as transaes acabadas desde o ltimo checkpoint e as transaes ativas Aplicar a operao Undo para todas as operaes write_item das transaes ativas, na ordem inversa de suas gravaes no log Aplicar a operao Redo para todas as operaes write_item das transaes acabadas, na ordem na qual elas foram gravadas no log
Mestrado / Doutorado
25

Recuperao aps Falha


Backup e Recuperao aps Falhas Catastrficas (Exemplo: pane no disco) Principal Tcnica: backup do BD Cpia peridica do BD e do log em outro meio de armazenamento (fitas) necessrio backup do log para no perder as transaes efetuadas desde o ltimo checkpoint

Mestrado / Doutorado

26

Recuperao aps Falha


Um log inicializado aps cada operao de backup. Logo, para recuperar aps uma falha no disco O BD recriado a partir do ltimo backup Os efeitos de todas as transaes committed, cujas operaes foram gravadas no log, so reconstrudos

Recuperao aps Falha


Pginas Imagem (Shadow) Ambiente Mono-usurio: no necessrio o log Ambiente Multi-usurio: pode-se usar o log se o mtodo de controle de concorrncia usar Pressupe-se que o BD seja composto por n pginas de tamanho fixo Uma tabela de pginas com n entradas construda onde pag_tabi = pag_bdi Begin_Transaction =>tab_pag_corrente -->tab_pag_imagem Nunca modificada durante a transao

Mestrado / Doutorado

27

Mestrado / Doutorado

28

Recuperao aps Falha


Pginas do BD
Tab_pag_corrente (depois da atualiz. 2 e 5) 1 2 3 4 5 6 Pag 5 (anterior) Pag 1 Pag 4 Pag 3 Pag 2 (anterior) Pag 6 Pag 2 (nova) Pag 5 (nova)
Mestrado / Doutorado

Recuperao aps Falha


Pginas Imagem (Shadow) Vantagem No h necessidade de Undo ou Redo de operaes Desvantagens Pginas atualizadas mudam de localizao no disco, impedindo de manter juntas pginas relacionadas

Tab_pag_imagem (no atualizada)


1 2 3 4 5 6

...

29

Mestrado / Doutorado

30

18/9/2009

Recuperao aps Falha


Desvantagens (Cont.) Se a tabela de pginas grande, o tempo para gravar as tabelas de pginas imagem no commit significativo Garbage Collection (liberao de pginas antigas) necessrio aps o commit

Mestrado / Doutorado

31