21
Recuperação após falhas hélder manoel lima e silva - hmls - CIN – UFPE Hélder Lima e Silva - hmls SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Recuperaçã o após falhas

CIN – UFPE Hélder Lima e Silva - hmls

  • Upload
    taurus

  • View
    35

  • Download
    1

Embed Size (px)

DESCRIPTION

Recuperação após falhas. SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS. CIN – UFPE Hélder Lima e Silva - hmls. system crash ▷ perda da memória principal falha de mídia ▷ perda da memória secundária erros em aplicativos ▷ erro lógico no aplicativo - PowerPoint PPT Presentation

Citation preview

Page 1: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

CIN – UFPE Hélder Lima e Silva - hmls

SISTEMAS DE GERENCIAMENTO DE

BANCO DE DADOS

Recuperação após falhas

Page 2: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

1. system crash ▷ perda da memória principal

2. falha de mídia ▷ perda da memória secundária

3. erros em aplicativos ▷ erro lógico no aplicativo

4. desastres naturais/físicos ▷ incêndios, terremotos, blecautes

5. descuido do operador ▷ destruição dos dados de forma não intencional

6. sabotagem ▷ destruição intencional dos dados

Page 3: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

1. Impossibilidade de recuperar os dados

2. BD inconsistente

BACKUP

Undo/Redo

Page 4: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Transações e Recuperação transação: unidade de recuperação de um BD

a gravação explícita do buffer no disco chama-se force writing

MEMÓRIASECUNDÁRIA

BUFFER

Page 5: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

UNDO/REDO

Page 6: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Gerenciamento de buffer estratégias de relocação: FIFO/LRUalternativa: utilizar 2 variáveis pincount e dirty inicializadas com 0

Quando uma requisição de página ocorre, o gerenciador de buffer verifica se a página já está em um buffer do SGBD. Se não estiver: 1. Usar a estratégia de relocação;

Incrementar o pincount (impede a escrita da página no discoA estratégia não pode escolher um buffer pinado

2. Se a variável dirty estiver TRUE então ele gravará o buffer no disco

3. Lê a página no discoColoca no buffer escolhido e

Faz dirty = FALSE

Page 7: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Gerenciamento de buffer terminologiassteal policy

Permite ao gerenciador de buffer escrever no disco antes do commit da transação. Alternativa: NO-STEAL

force policyGarante que todas as páginas atualizadas por uma transação são escritas no disco quando a transação

chega no commit . Alternativa: NO-FORCE

IMPLEMENTAÇÃO MAIS SIMPLES: NO-STEAL/FORCEundo desnecessário e redo desnecessário para transações consolidadas (commited)

IMPLEMENTAÇÃO MAIS USADA: STEAL/NO-FORCEsteal evita necessidade de buffer’s muito grandes e no-force evita reescrita de páginas que não foram utilizadas por uma transação mais nova e não consolidada

Page 8: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Recursos para recuperação

backupfaz cópias periodicamente do BD

loggingguarda caminho do estado atual das transações e modificações no BD

checkpointpermite que atualizações ao banco se tornem permanentes.

gerenciador de recuperaçãopermite ao sistema restaurar o BD para um estado consistente

Page 9: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Recursos para recuperaçãoBACKUP fita magnética

LOGGING não é usado apenas para recovery (monitoramento de performance)pode conter:1. entrada de transaçõesidentificadortipo de entrada (start, insert, delete, update, commit)identificador do item de dado afetadoimagem antiga do item de dade afetadoimagem novainformações de manutenção do log2. checkpoints (o ponto de sincronização entre o BD e o log)

Page 10: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Recursos para recuperaçãoCHECKPOINT

Envolve as seguintes operações:1. Escrever todas as entradas do log de memória principal

para a secundária

2. Escreve os blocos modificados no buffer do BD para a memória secundária

3. Escreve uma entrada do tipo checkpoint no arquivo de log

Page 11: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Recursos para recuperação

CHECKPOINT transações em série falha

Verificar o arquivo de log para encontrar a última transação iniciada antes do último checkpoint. Qualquer transação anterior já foi escrita no BD.

Aplicar REDO para as transações ativas e com entradas do tipo start e commit no log.

Page 12: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Recursos para recuperação

CHECKPOINT transações concorrentes falha

Refazer (REDO) as transações depois do checkpoint e desfazer todas as transações ativas no momento da falha.

Page 13: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

UNDO/REDO

Page 14: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

Técnicas de RecuperaçãoDependem da extensão do dano no BD

Dois casos:1. BD AMPLAMENTE DANIFICADO* restaurar o último backup* reaplicar as alterações das transações comitadas a

partir do arquivo de log

2. BD NÃO FOI FISICAMENTE DANIFICADO MAS TORNOU-SE INCONSISTENTE

* atualização adiada * atualização imediata* shadow

Page 15: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

adiada (BD atualizado depois do commit)o antes do commit: atualizações em memória

principalo depois do commit: log discoo undo desnecessário

Estratégias de recuperação

Page 16: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

protocolo:1. quando uma transação se inicia, escrever uma entrada transaction start no log;2. quando qualquer operação de escrita for executada, escrever uma entrada de log. Não atualizar buffer e BD;3. quando a transação está prestes a se consolidar, escrever uma entrada transaction commit no log. Escrever todas as entradas do log no disco. Depois consolidar a transação. Usar as entradas no log para executar as atualizações no BD4. qualquer transação com entradas no log do tipo transaction start e transaction commit deverão sofrer REDO. O procedimento de REDO executa as escritas no BD usando as entradas IMdepois no log das transações na mesma ordem que elas entraram no log;5. para qualquer transação com entradas no log do tipo transaction start e transaction abort no log, nada precisa ser desfeito, pois as atualizações não chegaram a ser escitas no BD

* Se uma segunda falha ocorre durante a recuperação, as entradas no log podem ser usadas novamente para recuperar o BD, não importa quantas vezes

recuperação adiada

Page 17: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

imediata (BD atualizado antes do commit)o gravação no log antes do BDo undo/redo ou undo/no-redo

Estratégias de recuperação

Page 18: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

protocolo:1. quando uma transaçào se inicia, escrever uma entrada transaction start no log;2. quando qualquer operação de escrita for executada, escrever uma entrada de log;3. uma vez que o log é escrito, atualizar o buffer;4. as atualizações no BD serão escritas automaticamente, quando os buffers são escritos no disco;5. quando a transação se consolidar, escreva uma entrada do tipo transaction commit no log;6. para qualquer transação do tipo transection start e transaction commit aplicar REDO para escrever a IMdepois dos campos atualizados;7. para as transações com entradas do tipo transaction start mas sem transaction commit, será necessário desfazer a transação (escrever as IMantes nos itens afetados.) A soperações de UNDO são realizadas na ordem inversa a que aparecem no log

* É essencial que as entradas no log sejam escritas antes da escrita correspondente no BD.

recuperação imediata

Page 19: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

protocolo:1. mantém duas páginas durante a vida da transação (página atual e página sombra)Quando a transação começa, as duas páginas são idênticas. Durante a transação, a página atual é utilizada para gravar todas as atualizações no BD. Quando uma atualização se completa a página atua se torna a página sombra

Vantagens1. Elimina OVERHEAD para manter o arquivo de log2. Recovery mais rápido3. Nem UNDO, nem REDO.

Desvantagens 1. fragmentação 2. Necessidade de garbage collection

Shadow paging

Page 20: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -

FIM

Page 21: CIN – UFPE  Hélder Lima e Silva - hmls

Recuperação após falhas

hélder manoel lima e silva

- hmls -