A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Recuperação de falha Msc, Marcelo Bezerra de Alcântara

Apresentações semelhantes


Apresentação em tema: "© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Recuperação de falha Msc, Marcelo Bezerra de Alcântara"— Transcrição da apresentação:

1 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Recuperação de falha Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br

2 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 2 Objetivos 1.Compreender os tipos de falhas; 1.Compreender a necessidade do uso do subsistema de reabilitação; 1.Definir as técnicas utilizadas para a reabilitação.

3 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 3 Bibliografia 1.ELMASRI, Ramez; NAVATHE, Shamkant B, Sistemas de banco de dados. 4. ed. Pearson Brasil, 2005. 1.Capítulo 19 2.KORTH, Henry F.; SILBERSCHATZ, Abraham Sistemas de banco de dados. 3. ed, São Paulo: Makron Books, 1999. 1.Capítulo 13

4 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 4 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

5 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 5 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

6 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 6 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

7 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 7 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

8 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 8 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

9 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 9 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

10 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 10 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

11 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 11 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

12 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 12 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

13 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 13 Estruturas de armazenamento Armazenamento volátil –Seu conteúdo não sobrevive a uma falha do sistema –Memória, buffer em memória Armazenamento não volátil –Seu conteúdo sobrevive a uma falha do sistema. –Discos, fitas, memória flash.

14 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 14 Estruturas de armazenamento Armazenamento estável –Forma mítica de armazenamento que sobrevive a qualquer situação –Pode-se obter aproximações, mantendo múltiplas cópias em mídias não voláteis, armazenadas em diferentes locais.

15 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 15 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

16 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 16 Acesso a dados Blocos físicos são aqueles blocos existentes no disco Blocos de buffer são blocos alocados temporariamente em memória –O buffer do sistema operacional é controlado pelo SGBD, através de chamadas de baixo nível. –Ou, é desativado, sendo implementado pelo SGBD.

17 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 17 Acesso a dados Movimentos de blocos entre discos e memória são iniciados a partir de duas operações: –input(B) transfere um bloco físico B para memória. –output(B) transfere um bloco de buffer B para o disco, substituindo o bloco físico apropriado.

18 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 18 Acesso a dados Cada transação possui sua área de memória Transações transferem itens de dados entre sua área de memória e o buffer utilizando as seguintes operações: –Read(X) atribui o valor do dado X para uma variável local x. –Write(X) atribui o valor de uma variável local x para um dado X, localizado em um bloco de buffer –Ambas operações podem necessitar a realização de um input(B X ) antes da atribuição, se o bloco B onde X está localizado não estiver no buffer.

19 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 19 Acesso a dados Transações –Realizam read(X) quando acessam X pela primeira vez –Todos acessos subsequentes são realizados a sua cópia local. –Após o último acesso, transações podem executar write(X). output(B X ) não é realizado necessariamente após write(X). O SGBD pode realizar o output no momento que julgar mais adequado.

20 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 20 Acesso a dados x Y A B x1x1 y1y1 Buffer Buffer Block A Buffer Block B input(A) output(B) read(X) write(Y) Disco Memória de T 1 Memória de T 2 Memória x2x2

21 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 21 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

22 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 22 Técnicas de recuperação Técnicas de recuperação são técnicas que garantem a consistência, atomicidade e durabilidade de transações, mesmo com a ocorrência de falhas.

23 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 23 Possuem duas partes: 1. 1. Ações realizadas durante o funcionamento normal do SGBD para coletar informações suficientes que permitam recuperar falhas 1. 1. Ações realizadas após a falha para recuperar a base de dados a um estado consistente, garantindo o isolamento e durabilidade das transações. Técnicas de recuperação

24 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 24 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

25 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 25 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

26 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 26 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: –commit de transação: –atualização: não é necessário em log REDO não é necessário em log UNDO

27 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 27 Exemplo de Log read(A) read(D) write(D) T1T1 read(B) write(B) read(D) write(D) T2T2 read(C) write(B) read(A) write(A) T3T3... Log

28 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 28 Tipos de Registro no Log Forma alternativa de representar atualizações –considera a operação DML feita no BD insert: update: delete: A indicação do tipo de operação facilita o entendimento do que deve ser UNDO ou REDO no BD

29 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 29 Gerenciamento de Buffer Buffer –conjunto de blocos da memória principal considera-se bloco e página conceitos sinônimos O SGBD é responsável pela gerência de alguns buffers –buffers para dados, para processamento de transações e para o Log –ele assume o controle desses buffers, ao invés do SO, requisitando apenas serviços de leitura/escrita de blocos ao SO

30 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 30 Gerenciamento de Buffer buffers de memória... controle do SGBD proc. de transações dados (cache) Log backup(s) do BD backup(s) do Log Log BD read / write archive write read (UNDO / REDO) archive

31 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 31 Gerenciamento de Buffer Técnicas de recovery devem sincronizar os buffers de log e de dados –princípio básico um bloco atualizado na cache só pode ser gravado no BD após o histórico dos dados atualizados neste bloco ter sido gravado no Log em disco –Write-Ahead-Log (WAL) –uma transação T x só pode passar para o estado efetivada (committed) após todas as suas atualizações terem sido gravadas no BD segundo o princípio WAL O SGBD aplica técnicas de gerenciamento de buffer –estas técnicas influenciam as técnicas de recovery

32 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 32 Técnicas de Gerência de Buffer NOT-STEAL –um bloco na cache utilizado por uma transação T x não pode ser gravado antes do commit de T x bloco possui um bit de status indicando se foi (1) ou não (0) modificado vantagem: processo de recovery mais simples - evita dados de transações inacabadas sendo gravadas no BD STEAL –um bloco na cache utilizado por uma transação T x pode ser gravado antes do commit de T x necessário se algum dado é requisitado do BD por outra transação e não há blocos disponíveis na cache o bloco vítima é escolhido através de alguma técnica de SO –LRU, FIFO,... vantagem: não há necessidade de manter blocos bloqueados por transações

33 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 33 Técnicas de Gerência de Buffer FORCE –os blocos que mantêm dados atualizados por uma transação T x são imediatamente gravados no BD quando T x alcança o commit deve-se saber quais os blocos que T x atualizou dados –vantagem: garante a durabilidade de T x o mais cedo possível - permite o REDO de T x em caso de falha NOT-FORCE –os blocos que mantêm dados atualizados por T x não são imediatamente gravados no BD quando T x alcança o commit –vantagem: blocos atualizados podem permanecer na cache e serem utilizados por outras transações, após o commit de T x (reduz custo de acesso a disco)

34 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 34 Modificação postergada No algoritmo de modificação postergada, os registros de log são imediatamente gravados, mas as operações de write na base de dados são postergadas para o final da transação. Não é necessário armazenar os valores antigos quando houver atualização de dados. Quando a última operação é executada, a transação passa a Efetivada –Grava-se no log –Os registros de alterações são lidos no log e executados na base de dados

35 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 35 Modificação postergada Durante uma recuperação, uma transação deve ser refeita se, e somente se, estiver gravado no log e. –Refazer a transação grava os novos valores na base de dados Nunca é necessário desfazer uma transação na base de dados. Falhas podem ocorrer durante –Enquanto as modificações da transação são executadas –Durante uma recuperação

36 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 36 Modificação postergada Duas transações T 0 : read (A)T 1 : read (C) A: - A - 50 C:-C- 100 write (A) write (C) read (B) B:- B + 50 write (B)

37 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 37 Modificação postergada (a): nenhum redo é necessário (b): redo(T 0 ), pois existe um (c): redo(T 0 ) seguido de redo(T 1 ), pois existe e

38 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 38 Modificação imediata No algoritmo de modificação imediata, é possível que transações não encerradas tenham suas alterações realizadas na base de dados. –Registros de log devem ser gravados antes de alterar a base de dados, não necessariamente de forma imediata. –Os registros de log devem armazenar os valores antigos.

39 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 39 Modificação imediata –A gravação dos blocos atualizados pode ocorrer a qualquer momento, antes ou depois do final da transação. –A ordem em que os blocos são gravados pelo SGBD pode ser diferente da ordem realizada pela aplicação.

40 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 40 Modificação imediata A recuperação baseia-se em duas operações: –Undo(T), que retorna aos valores anteriores ao início da transação e Redo(T), que grava os valores ao final da transação. As operações devem ser idempotentes –Mesmo que uma operação seja realizada diversas vezes, o resultado final permanece idêntico. Necessário para o caso de falhas durante a recuperação

41 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 41 Modificação imediata Recuperação –Uma transação é desfeita (undo) se o log contém um registro de start e não contem registro de commit. –Uma transação é refeita se o log contem contém registro de start e commit.

42 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 42 Modificação imediata (a): desfazer a transação T 0. (b): refazer T 0 e desfazer T 1. (c): refazer T 0 e T 1.

43 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 43 Exercício Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de modificação postergada. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

44 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 44 Resposta Realizar a operação de REDO de T1

45 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 45 Exercício Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de modificação imediata. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

46 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 46 Resposta Realizar a operação de REDO de T1 e UNDO de T0

47 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 47 Exercício Considere as transações abaixa e responda que valores devem estar no banco de dados (A, B e C), tendo como base a técnica de modificação imediata. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

48 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 48 Resposta A = Não pode saber B = Não pode saber C = Não pode saber

49 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 49 Exercício Considere as transações abaixa e responda que valores devem estar no banco de dados (A, B e C), tendo como base na técnica de modificação postergada. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

50 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 50 Resposta A = 50 B = 50 C = Não pode saber

51 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 51 Checkpoints Problemas na recuperação –Arquivos grandes de log tornam a recuperação muito lenta. –Transações que já tenham gravado seus valores na base de dados são desnecessariamente refeitas

52 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 52 Checkpoints Checkpoints –Grava todos os registros de log em um meio de armazenamento. –Grava todos os blocos de dados presentes em memória para o disco –Grava um registro no arquivo de log.

53 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 53 Checkpoints Durante a recuperação, apenas as transações mais recentes são consideradas 1. Procurar de trás para frente o último checkpoint. 2. Procurar para trás o último registro de, de qualquer transação. 3. Considerar apenas os registros existentes a frente.

54 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 54 Checkpoints 4. Para todas as transações que não possuam um registro, realizar undo(T) Necessário apenas no esquema de modificações imediatas. 5. Para todas as transações com no log, realizar redo(T).

55 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 55 Checkpoints Desconsiderar T 1 Refazer T 2 e T 3. Desfazer T 4. TcTc TfTf T1T1 T2T2 T3T3 T4T4 checkpoint system failure

56 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 56 Exercício Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de modificação postergada. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

57 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 57 Resposta Não faz nada

58 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 58 Exercício Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de modificação imediata. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

59 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 59 Resposta Realizar o UNDO de T0

60 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 60 Técnica ARCHIVE/DUMP/REDO Técnica baseada em Log para recuperação de falha de meio de armazenamento Operação ARCHIVE –ocorre durante o funcionamento normal do SGBD –gravação de uma ou mais cópias backup do BD em dispositivos diferentes de memória secundária –disparo manual ou automático (periódico) –deve-se suspender o início de novas transações –nenhuma transação pode estar ativa se existem transações nesse estado, deve-se aguardar até elas encerrarem com sucesso –o Log corrente é descartado (excluído ou mantido associado ao backup anterior do BD) e um novo Log (zerado) é iniciado

61 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 61 Técnica ARCHIVE/DUMP/REDO Operações DUMP + REDO –realizam o recovery de uma falha no BD –procedimento restaura o BD a partir do último backup (DUMP) realiza uma varredura forward do Log, realizando REDO das transações committed as transações ativas no momento da falha podem ser re- submetidas à execução pelo SGBD –já que não houve perda de dados na memória principal Técnicas baseadas em Log requerem um Log seguro –archive do Log também deve ser realizado com freqüência igual ou superior ao archive do BD

62 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 62 ARCHIVE/DUMP/REDO - Exemplo ARCHIVE/DUMP/REDO - Exemplo T1T1 T2T2 T3T3 T4T4 T5T5 tempo falha no BDintenção de archive ARCHIVE T6T6 DUMP backup BD REDO T 4 e T 6

63 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 63 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

64 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 64 Página sombra / Shadow Página sombra é um mecanismo não baseado em log, útil para transações serializadas. Para cada página de dado manipulada por uma transação, duas cópias em disco são mantidas. –Corrente: onde os novos valores são gravados –Sombra: que não sofre alterações, mantém os dados no estado inicial. Ao final da transação, uma delas é mantida e a outra descartada.

65 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 65 Técnica Baseada em Shadow Pages Supõe a existência de uma tabela de blocos (páginas) de disco que mantém dados do BD –Tabela de Páginas Corrente (TPC) A TPC é copiada para uma Tabela de Páginas Shadow (TPS) a cada nova transação T x –páginas atualizadas por T x são copiadas para novas páginas de disco e TPC é atualizada –TPS não é atualizada enquanto T x está ativa Em caso de falha de T x, TPC é descartada e TPS torna-se a TPC –não é preciso acessar o BD para realizar restaurações Técnica –NO-UNDO/NO-REDO (com FORCE)

66 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 66 Técnica Shadow Pages disco Tabela de Páginas Corrente (TPC) Tabela de Páginas Shadow (TPS) (não é atualizada) 5 4 3 2 1 5 4 3 2 1 x=5 y=10 z=20 x=5 y=15 z=25 a=1 b=2 c=3 a=5 b=2 c=15 cópias das páginas 2 e 5 com dados atualizados por T x

67 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 67 Shadow Pages - Procedimento 1)Quando uma transação T x inicia –TPS TPC –FORCE TPS 2)Quando T x atualiza dados de uma página P –se é a primeira atualização de T x em P se P não está na cache então busca P no disco busca-se uma página livre P na Tabela de Páginas Livres (TPL) P P (grava nessa página livre em disco) apontador de P na TPC agora aponta para P –atualiza-se os dados em P

68 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 68 Shadow Pages – Procedimento (cont.) 3)Quando T x solicita commit –FORCE das páginas P 1,..., P n atualizadas por T x que ainda não foram para disco com FORCE da TPC atualizada primeiro lembre-se que P 1,..., P n estão sendo gravadas em páginas diferentes no disco Falha antes ou durante o passo 3 –não é preciso UNDO pois TPS mantém as páginas do BD consistentes antes de T x –faz-se TPC TPS Falha após o passo 3 –não é preciso REDO pois as atualizações de T x estão garantidamente no BD

69 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 69 Técnica Shadow Pages - Desvantagens Adequada a SGBD monousuário –uma transação executando por vez –SGBD multiusuário gerenciamento complexo! Não mantém dados do BD clusterizados Requer coleta de lixo –quando T x encerra, existem páginas obsoletas páginas obsoletas devem ser incluídas na TPL

70 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 70 Exercício Considere as transações abaixa e responda que operações devem ser tomadas pelo sistema de recuperação de falhas, tendo como base a técnica de Shadow Pages. Considere o log gerado! Duas transações T 0 : read (A)T 1 : read (C) A: - A * 50C:-C- 100 write (A) write (C) read (B) B:- B + 150 write (B) Log de execução

71 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 71 Resposta Não realiza nada

72 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 72 Sumário 1.Subsistema de reabilitação 2.Tipos de falhas 3.Estruturas de armazenamento 4.Acesso a dados 5.Técnicas de recuperação I.Técnica baseada em Log a)Log b)Gerenciamento de buffers c)Checkpoints d)Técnica de modificação postegada e)Técnica de modificação Imediata f)Técnica ARCHIVE / DUMP / REDO II.Técnica Baseada em Shadow Pages 6.Backup

73 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 73 Backup Procedimentos de backup são necessários em qualquer ambiente Deve-se considerar as hipóteses mais remotas –Esperar o inesperado –Considerar os custos para a empresa se não for possível recuperar a base de dados de forma consistente. Deve-se estabelecer uma política consistente e mantê-la persistemente Os DBAs devem treinar a ocorrência de falhas.

74 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 74 Tipos de Backup Backup total –É realizada uma cópia completa da base de dados –A base de dados deve estar indisponível para os demais usuários. –Em caso de falha, basta recarregar a última cópia da base de dados e aplicar todos os logs da última cópia em diante. –É mais cara em termos de armazenamento e tempo de indisponibilidade

75 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 75 Tipos de Backup Backup incremental –São gravadas apenas as atualizações sofridas na base de dados desde o último backup. –Também requer que a base de dados se torne indisponível para os demais usuários. –Para recuperar uma base de dados, é necessário retomar o último backup total e aplicar todos backups incrementais, na ordem cronológica adequada. –Necessita menos espaço de armazenamento e menos tempo de indisponibilidade para os usuários

76 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 76 Tipos de Backup Backup on-line –A cópia de segurança é gravada com a base de dados disponível para os usuários. –Ao iniciar a cópia, cria-se um arquivo de log específico. –Todas as alterações realizadas durante o backup são registradas neste arquivo de log. –Ao final, o arquivo de log é gravado no backup –A recuperação é realizada aplicando os dados no backup e, imediatamente, o arquivo de log correspondente.

77 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 77 Tipos de Backup Grupos de backup –Pode-se agrupar uma ou mais tabelas em um grupo de backup. –Tipicamente, as tabelas formam um núcleo fortemente relacionado entre si. –O processo de backup pode bloquear apenas as tabelas de um grupo por vez. –Garante a consistência do grupo

78 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 78 Backup Formas de backups –É possível fazer backup de três tipos de objetos: Usuários Tabelas Base de dados –Há dois tipos de backups: Nível físico: cópia dos arquivos de armazenamento em disco. Nível lógico: gravando comandos SQL que recriam a base de dados conforme o estado atual.

79 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 79 Recuperação e backup Em caso de falhas graves, deve-se utilizar o último backup disponível e aplicar o arquivo de log de transações, desde o backup até o momento da falha.

80 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 80 Fechamento 1.As falhas em um SGBD são categorizadas: –Falha de Transação, Falha de sistema, Falha de meio de armazenamento 2.Estruturas de armazenamentos: –Armazenamento volátil, Armazenamento não volátil e Armazenamento estável 3.Acesso aos dados –Input, output, write e read 4.Técnicas de recuperação –Baseadas em Log modificação imediata do BD modificação postergada do BD recuperação de meio de armazenamento –Baseadas em Shadow Pages


Carregar ppt "© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Recuperação de falha Msc, Marcelo Bezerra de Alcântara"

Apresentações semelhantes


Anúncios Google