25
Falhas

Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Embed Size (px)

Citation preview

Page 1: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Falhas

Page 2: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Falhas

Podem ocorrer falhas em um ambiente computacional:

a) Erros lógicos: ex. overflowb) Erros do sistema: ex. deadlockc) Queda do sistema: ex. falta de

energiad) Falhas nos meios: ex. falha de disco

Page 3: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Falhas Tipos de erros numa base de dados

Corrupções Corrupção lógica Corrupção física

Erro humano Erros acidentais ao configurar tabelas

Desastres Terramotos, incêndios, tornados Falta de energia eléctrica por um período

muito longo

Page 4: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Recuperação Consiste em:

Restaurar a copia dos datafiles através de um backup

Reaplicar todas as alterações ao arquivo a partir do backup

Tipos de recuperação Media recovery (datafile media recovery) Crash recovery Instance recovery Incomplete recovery Flashback database

Page 5: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Backup Backup Físico

Consiste em copiar os arquivos da base de dados para outro sítio

Podem ser criados usando o RMAN (Recovery Manager) ou através do sistema operativo

Backup Lógico Utiliza SQL para ler a base de dados e

exportar para um arquivo binário.

Page 6: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta
Page 7: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Recuperação de Falhas Garantia de atomicidade e durabilidade de

Transações requer um SGBD tolerante a falhas

Tolerância a falhas em BDs capacidade de conduzir o BD a um estado

passado consistente, após a ocorrência de uma falha que o deixou em um estado inconsistente

baseia-se em redundância de dados não é um mecanismo 100% seguro responsabilidade do subsistema de recovery do

SGBD

Page 8: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Subsistema de Recovery Controles

durante o funcionamento normal do SGBD manter informações sobre o que foi atualizado no BD pelas

transações realizar cópias periódicas do BD

após a ocorrência de uma falha executar ações para retornar o BD a um estado consistente ações básicas

UNDO: desfazer uma atualização no BD REDO: refazer uma atualização no BD

Considerações sobre o seu projeto tipos de falhas a tratar técnica de recovery a aplicar

Page 9: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Ações Básicas de Recovery Transaction UNDO

uma transação não concluiu suas operações as modificações realizadas por esta transação no BD são desfeitas

Global UNDO uma ou mais transações não concluíram as suas operações as modificações realizadas por todas estas transações no BD são

desfeitas Partial REDO

na ocorrência de uma falha, algumas transações podem ter concluído suas operações (committed), mas suas ações podem não ter se refletido no BD

as modificações realizadas por estas transações são refeitas no BD Global REDO

no caso de um comprometimento do BD, todas as transações committed no BD são perdidas

as modificações realizadas por todas estas transações no BD são refeitas

Page 10: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Tipos de Falhas

Falha de Transação uma transação ativa termina de forma anormal causas

violação de RI, lógica da transação mal definida, deadlock, cancelamento pelo usuário, ...

não compromete a memória principal e a memória secundária (disco, em geral)

falha com maior probabilidade de ocorrência seu tempo de recuperação é pequeno

ação: Transaction UNDO

Page 11: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Tipos de Falhas Falha de sistema

o SGBD encerra a sua execução de forma anormal

causas interrupção de energia, falha no SO, erro interno no

SW do SGBD, falha de HW, ... compromete a memória principal e não

compromete o disco falha com probabilidade média de ocorrência seu tempo de recuperação é médio

ações: Global UNDO e Partial REDO

Page 12: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Tipos de Falhas Falha de meio de armazenamento

o BD torna-se total ou parcialmente inacessível causas

setores corrompidos no disco, falha no cabeçote de leitura/gravação, ...

não compromete a memória principal e compromete o disco

falha com menor probabilidade de ocorrência seu tempo de recuperação é grande

ação: Global REDO

Page 13: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Técnicas de Recovery Baseadas em Log

modificação imediata do BD técnica UNDO/REDO técnica UNDO/NO-REDO

modificação postergada do BD técnica NO-UNDO/REDO

recuperação de meio de armazenamento técnica ARCHIVE/DUMP/REDO

Baseadas em Shadow Pages técnica NO-UNDO/NO-REDO

recuperação de falhas de transação e de sistema

recuperação de falhas de transação e de sistema

Page 14: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Técnicas Baseadas em Log Técnicas mais comuns de recovery Utilizam um arquivo de Log (ou Journal)

registra seqüencialmente as atualizações feitas por transações no BD

é consultado em caso de falhas para a realização de UNDO e/ou REDO de transações

mantido em uma ou mais cópias em memória secundária (disco, fita, ...)

tipos de log log de UNDO

mantém apenas o valor antigo do dado (before image) log de REDO

mantém apenas o valor atualizado do dado (after image) log de UNDO/REDO (mais comum)

mantém os valores antigo e atualizado do dado

Page 15: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Tipos de Registro no Log Supõe-se que toda transação possui um

identificador único gerado pelo SGBD Para fins de recuperação de falhas,

operações read não precisam ser gravadas úteis apenas para outros fins (auditoria, estatísticas, ...)

Principais tipos de registro início de transação: <start Tx>

commit de transação: <commit Tx>

atualização: <write Tx,X,beforeImage,afterImage>não é necessário em log REDO

não é necessário em log UNDO

Page 16: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Exemplo de Log

read(A)read(D)write(D)

T1

read(B)write(B)read(D)write(D)

T2

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

T3

<start T3><write T3,B,15,12><start T2><write T2,B,12,18><start T1><write T1,D,20,25><commit T1><write T2,D,25,26><write T3,A,10,19><commit T3><commit T2>...

Log

Page 17: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Fases de Recuperação (1) Todas as recuperações têm de passar

por duas fases: Roll Foward

Aplica sequencialmente as alterações de blocos (redo records) contidas nos redo log files

Le os redo records e e obtém os blocos originais A tabela interna undo$ contem a informação das

transacções pendentes, até que o sejam encontrados os redo recornd com info de commit

Nessa altura essa informação é retirada da tabela

Page 18: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Fases de Recuperação (2) Roll Backward

Depois do roll foward todas as transacções que não fizeram commit têm de ser desfeitas

É feito o rollback a todas as alterações que não fizeram commit.

Page 19: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Media Recovery É usado para recuperar datafiles,

controlfiles ou spfiles danificados ou perdidos.

Tem de ser o administrador A base de dados tem de estar fechada O datafile tem de estar offline A recuperação começa sempre no

arquivo com menor SCN (Sistem Change Number)

Page 20: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Crash Recovery (1) É usado quando uma instância é

iniciada depois de um shutdown abort ou de um crash

Feito automaticamente Cabe ao administrador tentar apenas

perceber as causas que da falha Utiliza online redo logs para realizar a

recuperação dos datafiles envolvidos no crash

Page 21: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Crash Recovery (2) São repetidas as transacções no

online redo log a partir da posição do checkpoit

O checkpoint encontra-se na posição onde a última alteração foi guardada

São aplicadas as committed tansaction e as uncommitted transactions

Page 22: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Instance Recovery Acontece quando uma instância

detecta a falha de outra instância Mecanismo idêntico ao do Crash

Recovery Não é restaurada a instância em falha

nem nenhuma aplicação que estava a correr nessa instância

Page 23: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Incomplete Recovery Acontece quando uma parte dos

dados é perdida mesmo após a recuperação

Acontece quando não se possui todos os items necessários à recuperação

Por vezes é utilizada apenas para recuperar a base de dados até um certo ponto através de um backup

Page 24: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Flashback Database (1) Utilizada em alternativa ao point-in-

time recovery Usa um tipo de log diferente –

Flashback Database log O servidor da base de dados escreve

periodicamente nos logs as imagens dos blocos de dados

Essas imagens são utilizadas para recuperar rapidamente as alterações na base de dados

Page 25: Falhas. Podem ocorrer falhas em um ambiente computacional: a) Erros lógicos: ex. overflow b) Erros do sistema: ex. deadlock c) Queda do sistema: ex. falta

Flashback Database (2) Método mais rápido que o point-in-

time recovery Reduz o tempo necessário à

recuperação porque não utiliza backups

O tempo da recuperação é proporcional ao número de alterações e não ao tamanho da base de dados