Escolar Documentos
Profissional Documentos
Cultura Documentos
otaciliopereira-EC - BD - Unidade 9 - Recuperação de Falhas
otaciliopereira-EC - BD - Unidade 9 - Recuperação de Falhas
Recuperao de Falhas
Engenharia de Computao
Banco de Dados
Prof. Otaclio Jos Pereira
Contexto na Disciplina
1 Introduo 2 Modelo Relacional 3 SQL 4 Projeto de Banco de Dados 5 Armazenamento e Indexao 6 Processamento e Otimizao de Consultas 7 Gerenciamento de Transaes 8 Controle de Concorrncia 9 Recuperao de Falhas 10 Segurana de Banco de Dados 11 Tpicos Avanados
Reflexes Preliminares
Qual prejuzo causado por 1 hora de parada de um dos sites de comrcio eletrnico (submarino, lojas americanas e outros) ? Como se assegurar que falhas no causem perda de dados e danos materiais aos negcios?
Roteiro
Classificao de Falhas Recuperao baseada em Log Modificaes Adiadas e Imediatas no Banco de Dados Checkpoints
Classificao de Falhas
Que tipos de falhas podem ocorrer em um Sistema baseado em Banco de Dados?
Recuperao de Falhas
Para que se consiga estabelecer um mecanismo de recuperao de falhas, um ponto chave ter o suporte de algum dispositivo de armazenamento secundrio (persistente) Recuperao baseada em log
Com o dispositivo persistente, estabelece-se um protocolo para que o banco de dados possar ser devidamente recuperado
Antes de entender os registros do log, vale compreender seu funcionamento geral no contexto do servidor como um todo
Valor antigo
O valor do item de dado anterior gravao.
Valor novo
Valor que o item de dado ter depois da gravao.
Modificao adiada
Apenas ao final a modificao de fato confirmada no banco
Modificao Adiada
A tcnica de adiar a modificao do banco de dados assegura a atomicidade da transao gravando todas as modificaes do banco de dados no log, mas adiando a execuo de todas as operaes write de uma transao at que a transao seja parcialmente executada Depois de uma falha ter ocorrido, o subsistema de recuperao consulta o log para determinar que transaes precisam ser refeitas. A transao Ti precisa ser refeita se e somente si o log contiver o registro <Ti starts> e o registro <Ti commits>. Perceba que no preciso desfazer uma transao, uma vez que os dados so de fato efetivados no banco apenas ao final da transao
Modificao Adiada
Exemplo:
Digamos que T1 seja uma transao que transfere R$50 da conta A para a conta B. Esta transao pode ser definida como: T1: read (A,a1) a1 = a1 - 50 write (A,a1) read (B,b1) b1 = b1 + 50 write (B, b1)
Modificao Adiada
Exemplo
Considere que A e B tenham R$1.000,00 e R$2.000,00 respectivamente, antes das transaes serem executadas.
A=950 B=2050
Modificao Imediata
A tcnica de atualizao imediata permite modificaes do banco de dados enquanto a transao est ainda no estado ativo. Estas modificaes denominam-se modificaes no confirmadas. Em caso de falha,o valor antigo dos registros log pode ser usado para restaurar os itens de dados modificados aos valores que tinham antes do incio da transao. Undo(Ti), restaura o valor de todos os itens de dados atualizados pela transao Ti aos valores antigos. Redo(Ti), ajusta o valor de todos os itens de dados atualizados pela transao Ti aos novos valores.
Modificao Imediata
Exemplo:
Considere que A e B tenham R$1.000,00 e R$2.000,00 respectivamente, antes das transaes serem executadas.
A=950 B=2050
Modificao Imediata
Depois a ocorrncia de uma falha, o esquema de recuperao consulta o log para saber quais transaes precisam ser refeitas e quais precisam ser desfeitas. Esta classificao de transao feita assim: A transao Ti precisa ser desfeita se o log contiver o registro <Ti starts> e no contiver o registro <Ti commits>. A transao Ti precisa ser refeita se o log contiver os registros <Ti starts> e <Ti commits>.
Assim, quando houver algum erro, no momento da recuperao, no h necessidade de executar a operao redo para aquelas transaes que se encontram antes do registro <checkpoint>.
Reviso
Classificao de Falhas Recuperao baseada em Log Modificaes Adiadas e Imediatas no Banco de Dados Checkpoints
10