Anda di halaman 1dari 3

09-Nov-09

Recuperao de Falhas Conceitos

Recuperao de Falhas
Conceitos Escalonamento x Recuperao Operaes de recuperao Tcnicas de recuperao (LOG)

Quando uma transao falha o BD deve voltar ao estado original que estava antes da transao comear. O SGBD deve assegurar atomicidade
Que todas as operaes da transao sejam completadas com sucesso, ou que todas as operaes sejam ignoradas isso ocorre quando a transao falha aps executar algumas operaes, mas no todas.

Durante o funcionamento normal do SGBD


Manter informaes sobre o que foi atualizado no BD pelas transaes
2

Recuperao de Falhas Conceitos - Tipos de falhas


O sistema cai o contedo da memria interna perdido. Erro durante a execuo da transao algumas operaes da transao podem causar essa falha.
EX: overflow, diviso por zero, interrupo do usurio

Escalonamento X Recuperao
Escalonamento Recupervel Definio: Um escalonamento recupervel se nenhuma transao T em S obtm validao (commit) at que todas as transaes T que tenham escrito um item que T tenha lido, obtenham commit Exemplos:
No recupervel

A transao detecta condio de execuo ou erros locais que obrigam seu cancelamento.
EX: dados para a transao no so encontrados; transao no tem permisso de acesso ao dado

O controlador de concorrncia exige que a transao seja cancelada transao viola a seriabilidade Falhas no disco, problemas fsicos, catstrofes.
EX: defeito na cabea de leitura/ escrita do disco; queda de energia; etc.
3

S1: r1(X); w1(X); r2(X); r1(Y); w2(X); c2; a1;


Recupervel

S2: r1(X); w1(X); r2(X); r1(Y); w2(X); w1(y); c1; c2;


4

Escalonamento X Recuperao
Escalonamentos com reverso em cascata (cascading rollback)
Mesmo que um escalonamento seja recupervel, pode ser que seja necessrio desfazer diversas transaes para a recuperao de uma falha Transaes no efetivadas que lem um item de uma transao que falhou, devem ser revertidas

Escalonamento X Recuperao
Escalonamento Estrito
Definio:
Um escalonamento dito estrito se uma transao no pode ler nem escrever um item X at que a ltima transao que escreveu X tenha sido validada ou abortada.
Todo escalonamento estrito recupervel e evita reverso em cascata

Definio:
Um escalonamento evita reverso em cascada se todas as transaes no escalonamento s lem itens que tenham sido escritos por transaes validadas (com commit).

Exemplos:
No estrito mas evita retorno em cascata S1: w1(X); w2(X); c1; c2; T2 no l X !! Escalonamento estrito:

Exemplos:
Recupervel, mas no evita reverso em cascata S2: r1(X); w1(X); r2(X); r1(Y); w2(X); w1(y); c1; c2; Evita reverso em cascata:
a1 desfazer T1 e T2

S1: r1(X); r2(Y); w1(X); w2(Y); c1; w2(X); c2;

S1: r1(X); r2(Y); w1(X); w2(Y); c1; r2(X); w2(X); c2;


5 6

09-Nov-09

EXERCCIO
1. Considere as transaes abaixo e represente:
T1: r(A); r(D); w(D) T2: r(B); w(B); r(D); w(D) a) Um escalonamento intercalado e recupervel e outro no recupervel. b) Um escalonamento que evita reverso em cascata e outro que no evita. c) Um escalonamento estrito e um escalonamento no estrito.

Tcnicas de Recuperao de Falhas


Utilizando LOG Utilizando Shadow paging

Sistema de Log
Log
Registra informaes de todas as operaes de transaes que afetam os valores de itens do BD Registra informaes necessrias para recuperao mantido em disco minimiza falhas Supe-se que toda transao possui um identificador nico

Sistema de Log
Registros mantidos no LOG (seja T o identificador)
[start,T]: registra que a transao T comeou a executar [write,T,X,valor_antigo,valor_novo]: registra que a transao T trocou o valor_antigo de X pelo valor_novo [write,T,X, valor_novo]: registra que a transao T alterou X para o valor_novo [read,T,X]: registra que a transao T leu o valor do item X [commit,T]: registra que a transao T completou com sucesso e seus efeitos podem ser registrados no BD [abort,T]: registro que a transao T foi abortada [checkpoint]: o sistema escreve no BD os efeitos das operaes de escrita de transaes efetivadas
9 10

Exemplo de Log
T1 read(A)
read(D) write(D)

Recuperao a Falhas Operaes do sistema LOG


Quando o sistema falha para cada T com [start,T] no LOG realizado uma das seguintes operaes: Undo (desfazer)
Aplicadas s transaes T do LOG que no possuem a entrada [commit, T] ou [abort, T] T deve ser resubmetida

T2 read(C)

write(B) read(A) write(A)

Escalonamento S T1 R1(A) W 2(B) R1(D) W 1(D) C1 R2(A) W 2(A) C2 T2 R2(C)


.

Entradas n LOG [start T2] [read, T2, C] [start T1] [read, T1, A] [write T2,B,15,12] [read, T1, D] [write T1,D,20,25] [commit T1] [read, T2, A] [write T2,A,10,19] [commit T2]

Redo (refazer)
Aplicadas s transaes T do LOG que possuem a entrada [commit, T] As operaes de T devem ser mantidas no LOG para que as operaes de T possam ser efetivadas no BD

OBS: Os valores de A, B, e D escritos no banco de dados foram escolhidos aleatriamente.

11

12

09-Nov-09

Recuperao a Falhas Sistema LOG controle de buffers


Force_write
um processo que obriga a gravao do LOG em disco toda vez que uma transao alcana o commit Isso necessrio na recuperao, pois toda vez que o sistema cai, as entradas do LOG que esto no buffer de memria so perdidos.

Tipos de Log
Para fins de recuperao de falhas, operaes read no precisam ser gravadas teis apenas para outros fins (auditoria, estatsticas) Log de UNDO Mantm apenas o valor antigo do dado (before image) Log de REDO Mantm apenas o valor atualizado do dado (after image) Log de UNDO/REDO (mais comum) Mantm os valores antigo e atualizado do dado

Check_point
um processo que marca o ponto que o sistema grava no BD o efeito de todos os writes de transaes validadas O check_point um outro tipo de entrada que pode ser includo periodicamente no LOG Todas as transaes que possuem [commit, T] antes de um [check_point ] no precisam ter as suas operaes refeitas no caso de falha aps um check_point. O SGDB decide o intervalo de tempo para o check_point Pode ser em minutos, em n. de transaes validadas.
13

[write Tx,X,beforeImage,afterImage]
No necessrio em log REDO No necessrio em log UNDO
14

Gerenciamento de Buffer
SGBD responsvel por gerenciar alguns buffers
Buffers para dados; Buffers para processamento de transaes; Buffers para o Log
Controle do SGBD

Gerenciamento de Buffer
Proc. de transaes

read / write

BD

O SGBD requisita apenas servios de leitura/escrita de blocos ao SO Tcnicas de recuperao devem sincronizar os buffers de Log e de dados
Princpio bsico: Um bloco atualizado (buffer de dados) s pode ser gravado no BD aps o histrico dos dados atualizados neste bloco ter sido gravado no Log em disco

dados (cache)

archive read (UNDO/REDO) write ... buffers de memria archive

backup(s) do BD

Log

Log

backup(s) do Log

15

16

Exerccios
2. Escreva o LOG referentes ao escalonamento S das transaes T1, T2, T3, e T4 , dado abaixo. S: r1(A); r1(D); r2(B); w1(D); C1; w2(B); r4(B); w4(B); w3(A); r2(D); w2(D); C2; r4(A); w4(A); C3; C4 Considere que: o valor de D gravado por T1 9; o valor de B gravado por T2 12; o valor de B gravado por T4 15; o valor de A gravado por T3 30; o valor de A gravado por T4 20; e o valor de D gravado por T2 25.

17

Anda mungkin juga menyukai