Académique Documents
Professionnel Documents
Culture Documents
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.
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
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
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.
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)
T2 read(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
11
12
09-Nov-09
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)
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