recuperaÇÃo apÓs falha. material baseado nas aulas da prof. renata vilas boas motivação...
TRANSCRIPT
RECUPERAÇÃO APÓS FALHA
Material baseado nas aulas da prof. Renata Vilas Boas
Motivação Conceitos Básicos Meios de Armazenamento Tipos de Falha e sua Recuperação LOG Checkpoint
Propriedades de uma transação Atomicidade: Todas as ações na
transação acontecem, ou nenhuma acontece.
Consistência: Se toda a transação é consistente, e o BD inicia consistente, então o BD termina consistente.
Isolamento: A execução de uma transação é isolada de outras transações.
Durabilidade: Se uma transação é finalizada, seu efeito persiste.
Motivação
Sistema de computador está sujeito a falhas Existem diversos tipos de falhas, as quais
podem acarretar perda dos dados O sistema deve garantir que as
propriedades de atomicidade e durabilidade das transações sejam preservadas
Motivação
BD Consistente
BD Inconsisten
te
Tran
saçõ
es
Falha
Técnicas de Recuperação
Conceitos Básicos
Transação Unidade de trabalho; Unidade de recuperação As propriedades devem ser preservadas
Recuperação O SGBD é acionado automaticamente para resolver
os tipos de falhas esperados Condição básica
Armazenamento de informação redundante durante o funcionamento normal (log, backup)
Estado do BD deve ser recuperado Ao mais recente estado consistente antes da falha
(satisfaz todas as restrições de integridade)
Observe
O planejamento e o processo de Back Up geralmente envolve a seguinte questão:
Isto porque é preciso conhecer o funcionamento do gerenciador de recuperação, determinar a frequência com que será feito o Backup e onde ele ficará armazenado
No pior caso, se o backup estiver guardado próximo a máquina com os dados e a sala que eles estiverem pegar fogo....
Quanto você está disposto a perder?
Meios de Armazenamento Volátil
Buffer Os dados estão armazenados na memória principal do
computador Acesso mais rápido A informação residente neste meio usualmente, não
sobrevive a quedas no sistema Não-volátil
Os dados estão armazenados em discos e/ou fitas A informação residente neste meio sobrevive a quedas no
sistema mas pode não sobreviver a falhas neste meio Estável
A informação residente neste meio “nunca” é perdida Meio mais seguro do que a não-volátil
Tipos Falhas
Falha de transação Erro lógico. A transação não pode continuar sua
execução normal devido a alguma condição não satisfeita
Erro de sistema. O sistema entrou em um estado inadequado (deadlock)
Falha do sistema Queda de energia. Não danifica fisicamente o BD,
mas as informações em memória volátil são perdidas. Afeta todas as transações em curso no momento
Falha de Mídia Bloco de disco perdeu conteúdo em função da
quebra do cabeçote ou falha durante a transferência de dados. Danifica fisicamente o BD
Como recuperar o BD?
Falha de transação Desfazer as operações já realizadas pela
transação até o início da transação ou até um determinado ponto dentro da transação
Falha do sistema Recuperar o mais recente estado
consistente do BD que existia antes da falha Refazer ou desfazer transações
Falha de disco Refazer o BD utilizando um BD espelho ou
uma cópia de segurança
Arquitetura do Gerenciador de Recuperação
Log recuperação de curta duração Falha de transação
Recuperação de média e longa duração Falha de sistema (BD + Log) Falha de disco (Cópia de segurança + Log)
Escalonamento
BD
Gerenciador deRecuperação
Transações
Cópia de segurança
Log
Recuperação usando Log
Arquivo onde ficam armazenadas todas as operações realizadas no BD Cada vez que é executada uma operação
sobre uma linha de uma tabela é criado uma entrada (ou registro) no Log
Exemplos de registros no Log:1. [begin_Transaction, T]2. [write, T, X, old, new]3. [read, T, X]4. [commit, T]5. [abort, T]
Log
Armazenado na memória principal, em meio não-volátil e em meio estável
É um arquivo serial que guarda todas as modificações que foram realizadas no BD e quais transações realizaram quais modificações
Este arquivo é lido durante o processo de recuperação pois pode levar um BD ao seu último estado consistente antes da falha
Uma transação só é considerada executada quando todos os registros do Log desta transação estiverem armazenadas no banco de dados físico
Registros do Log devem ser armazenados no arquivo na ordem em que eles foram criados (exemplo: antes que o registro <commit, Ti> seja armazenado no arquivo, todos os outros registros desta transação já devem estar)
Recuperação de Falha de Transação Deve ser executada pelo SGBD quando
uma transação que estava sendo executada é cancelada (explícita/implícitamente)
Recuperação Os efeitos da transação em questão devem
ser desfeitos Para isso, deve-se varrer o arquivo de Log
para identificar as operações já realizadas pela transação
Recuperação de Falha do Sistema
O SGBD parou de executar Operações que estavam na memória volátil
não foram armazenadas na memória física Consequentemente
Todas as transações que estavam em execução no momento da falha devem ser desfeitas
Questão: Como o SGBD sabe as transações que estavam
em execução? Deverá varrer todo o Log?
Checkpoint
Ponto de controle De tempos em tempos, o SGBD escreve no
Log um registro especial chamado checkpoint, que serve para registrar as transações em execução
A execução de um checkpoint envolve: Gravar fisicamente o conteúdo do BD da memória
volátil no BD físico Gravar fisicamente (meio estável) o conteúdo do Log Gravar um registro de checkpoint no Log
Se não existe este registro, teríamos que investigar todo o arquivo de Log para recuperar o BD
Checkpoint
Quando ocorre uma falha de sistema Todas as transações cujos registros
<commit, Ti> estejam depois do checkpoint mais recente gravado no Log Devem ser refeitas (REDO)
Todas as transações cujos registros <begin transaction, Ti> estejam no Log mas os registros <commit, Ti> ou <rollback, Ti> não estejam Devem ser desfeitas (UNDO)
T1
T2
T3
T4
T5
Checkpoint Falha do sistemaTempo
Quando ocorre uma falha, o SGBD verifica o último checkpoint
A recuperação de cada uma das transações ocorre das seguintes maneiras T1 não é afetada T2 e T4 já estão completadas mas não conseguiram ter
suas atualizações gravadas no BD físico Refazê-las T3 e T5 ainda não tinham sido encerradas Desfazê-las
Recuperação de Falha de Disco O BD está danificado! Uma falha deste tipo ocorre raramente,
mas deve ser prevista Necessita de uma cópia de segurança
(backup) atualizada periodicamente O BD deve ser restaurado
pela carga da cópia de segurança e pelo uso do Log para refazer todas as
operações feitas após a cópia
Tipos de Backup
Completo Banco de Dados
Realiza o backup de todo o banco de dados Arquivo de Log
Realiza o backup apenas do Log Diferencial
Realiza o backup apenas da parte que foi modificada após o último backup
Exercícios
Discuta os tipos de falhas que podem ocorrer a um BD.
O que é checkpoint? Qual a importância de gravar um registro de checkpoint no Log?
Explique o procedimento que deve ser feito para restaurar o BD no caso de uma falha do sistema.
Exercícios Responda: (1) O que acontece depois da falha
com cada transação e por quê? (2) Qual o valor dos dados após o processo de recuperação?
[write, T3, B, 10, 8] [commit, T3] [início, T4] [read, T4, A] [write, T2, D, 0, 25] [início, T5] [write, T4, A, 20, 15] [read, T5, A] [commit, T4] [write, T5, A, 15, 65] [read, T2, B] FALHA!
[início, T1][read, T1, A][read, T1, B][início, T2][read, T2, C][write, T1, A, 3, 20][commit, T1][write, T2, C, 2, 40][início, T3][read, T3, B][checkpoint]