UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro

Documentos relacionados
BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.

Sumário. Recuperação de Falhas

Checkpoint. Checkpoint

Técnica UNDO/REDO. Checkpoint

Contato. professorluisleite.wordpress.com

Técnicas de Recuperação em Banco de Dados

Roteiro. Noções de Recuperação de Falhas. BCC321 - Banco de Dados I. Ementa. Posicionamento

Banco de Dados I. Aula 18 - Prof. Bruno Moreno 22/11/2011

Processamento de Transações

Processamento de Transações

PROCESSAMENTO DE TRANSAÇÕES

Banco de Dados I 6 Transações e Controle de Concorrência

BANCO DE DADOS 2 TRANSAÇÃO

erro lógico: a transacção não pode completar devido a condição de erro erro de sistema: o sistema entrou num estado que impede a transacção

Controle de Transação

Criando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Universidade Federal do Maranhão

Sumário. Introdução a Transações

Transacções concorrentes exemplo. B := B 50 write(b) read(a) A := A + 50 write(a)

e c d o o r B s s n i : l e F s

BD II (SI 587) Algoritmos de recuperação Avançado e ARIES. Josenildo Silva.

Sumário. Controle de Concorrência

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Bases de Dados 2013/2014 Gestão de Recuperação. Helena Galhardas. Sumário

Processamento de Transações II

Processamento de Transações

Aula 03. Evandro Deliberal

Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires

TRANSAÇÕES MAPAS MENTAIS

Banco de dados. Prof. Emiliano S. Monteiro

Sistemas Distribuídos

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

ANÁLISE E PROJETO DE BANCO DE DADOS

Recuperação de Falhas

Adriano Maranhão TRANSAÇÕES

TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Em resumo: Transações: clientes podem necessitar que um servidor execute uma sequência de requisições de forma a

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de fevereiro de 2014 INSTRUÇÕES

Sumário. Recuperação de Falhas

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações. Transação

Orientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK

Conceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!

Exercícios Módulo Banco de Dados I (08/07/2006)

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Técnica UNDO/REDO. detectar que X é atualizado mais de uma vez e realizar apenas a última atualização técnica UNDO/REDO com REDO único para cada dado

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

A instância Oracle é composta de :

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

23/05/12. Conteúdo. Introdução ao gerenciamento de transações. Motivação. Motivação. Motivação. Motivação

Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai

Introdução a Banco de Dados

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de julho de 2015 INSTRUÇÕES

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

Transações em 4 slides (sim, de novo)

de Bases de Dados Exame 1

SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

BD II (SI 587) Controle de Concorrência. Josenildo Silva.

de Bases de Dados Exame 1

Curso: Banco de Dados I. Conceitos Iniciais

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

TRANSAÇÕES: SISTEMA DE RECUPERAÇÃO E CONTROLE DE CONCORRÊNCIA

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

BD II (SI 587) Backup de Banco de Dados. Josenildo Silva.

SGBD. Definição. Funções básicas

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

MODELAGEM DE DADOS UNIDADE 1 Visão Geral. Luiz Leão

Scheduler Baseado em Timestamp

Formação de DBAs SQL Server 2008

SGBD. Funções Básicas de um SGBD

6.1 Resumo das Características do Modelo Proposto

Controle de Transações. Banco de Dados André Luiz do Vale Soares

Conceitos Básicos. Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI. Disciplina: Banco de Dados

Banco de Dados II. Administrador de Banco de Dados - DBA. Portela

Processamento de Transações

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 19 de fevereiro de 2013 INSTRUÇÕES

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

1. Conceitos de Bancos de Dados

Banco de Dados. SGBDs. Professor: Charles Leite

Controle de Concorrência em Banco de Dados

Contato. professorluisleite.wordpress.com

Sistemas da Informação. Banco de Dados I. Edson Thizon

Transcrição:

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Recuperação Carlos Eduardo Portela Serra de Castro *

Sumário 1 Conceitos 2 Atualização adiada 3 Atualização imediata 4 Paginação shadow 5 Aries 6 BDs múltiplos 7 Falhas catastróficas 2

Conceitos 1 Algoritmos de recuperação 2 Caching de blocos de disco 3 Registro adiantado em Log 4 Checkpoints 5 Rollback de uma transação 3

Algoritmos de recuperação A recuperação de falhas existe para garantir as propriedades de atomicidade e durabilidade de transações. O sistema de recuperação (restauração) de falhas é responsável pela restauração do banco de dados para um estado consistente que havia antes da ocorrência da falha. O Sistema deve manter informações sobre as atualizações do BD em separado (LOG). 4

Estratégia típica Perda por falha catastrófica: reconstrução (REDO) Backup ------------> estado consistente mais próximo da falha LOG ------------> até o instante da falha O BD tornou-se inconsistente: reverter mudanças (UNDO) BD inconsistente -------> BD consistente 5

Técnicas para recuperação de falhas não catastróficas Atualização adiada Algoritmo NO-UNDO/REDO Atualização imediata Algoritmo UNDO/REDO 6

Atualização adiada Somente atualiza o banco de dados físico depois que a transação alcança o ponto de efetivação: 1 antes do commit os registros são atualizados nos buffers; 2 durante commit os registros são gravados primeiro nos LOGS e depois no banco de dados. 3 - não é necessário Undo e o Redo é necessário em alguns casos: No-Undo/Redo 7

Atualização imediata O banco de dados é atualizado antes do commit 1 gravação no log antes do BD. 2 se uma transação falhar antes do ponto de efetivação a transação deverão ser revertidas (usando os registros do log). 3 atualização imediata Undo e Redo necessários: Undo/Redo 4 variação: UNDO/NO-REDO 8

Caching de blocos de disco Cache de SGBD: buffer na memória principal sob controle do SGBD Catálogo da Cache: controla que itens do BD estão em qual buffer. Quando é requerido um item que não está na cache, provoca a paginação. Dirty Bit: indica se um item de dado na cache foi atualizado (1) ou não (0). In-place updting Shadowing Imagem anterior (BFIM): valor antigo do dado Imagem posterior (AFIM): valor novo do dado 9

Registro adiantado em log (Write-ahead log WAL) Quando as atualizações são realizadas no local, é necessário preservar os valores anteriores dos dados caso seja necessário reverter as operações. O mecanismo de recuperação deve garantir que a BFIM do item de dado seja registrada em uma entrada de log e que essa entrada seja trasnferida para o disco antes que a BFIM seja sobrescrita pela AFIM. 10

Técnicas de Gerência de Buffer NO-STEAL um bloco na cache utilizado por uma transação T x não pode ser gravado no BD antes do commit de T x vantagem processo de recovery mais simples (NO-UNDO) 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 no BD 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 vantagem evita a necessidade de um espaço grande em buffer para o armazenamento em memória principal de todas páginas atualizadas 11

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 vantagem garante a durabilidade de T x o mais cedo possível NO-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) 12

Checkpoints Momento em que o SGBD grava no BD todas as atualizações feitas por transações inclusão de um registro de checkpoint no Log Periodicidade: Em tempo Em número de transações 13

Procedimento de execução de checkpoint 1. Suspensão de todas as transações; 2. Gravação (forçada) dos blocos atualizados da cache no BD; 3. Inserção de um registro checkpoint no Log e sua gravação em disco; 4. Retomada da execução das transações. Vantagem da técnica de checkpoint Transações committed antes do checkpoint não precisam sofrer REDO em caso de falha Elas já estão garantidamente no BD 14

Rollback Rollback de Transações (Undo): É necessário se uma falha ocorrer depois do BD ter sido atualizado. Qualquer item de dado atualizado pela transação deve voltar a seu valor anterior. Rollback em Cascata: Se uma transação T é desfeita e uma transação S leu algum dado atualizado por T, S também tem que ser desfeita e assim por diante. 15

Ilustrando a reversão (rollback) em cascata (um processo que nunca ocorre em planos restritos ou livres de cascata cascadeless). (a) As operações read (ler) e write (gravar) das três transações. (b) Log (histórico) do sistema no ponto da queda (crash). (c) Operações antes da queda. 2005 by Pearson Education Sistemas de Banco de Dados 16

Recuperação com Atualização Adiada Protocolo Ambiente Monousuário Uma transação não pode modificar o BD até seu commit Uma transação não pode chegar ao commit até que todas as operações de atualização sejam gravadas no log e o log no disco Procedimento Usar duas listas de transações: as transações acabadas desde o último checkpoint e as transações ativas Aplicar a operação Redo para todas as operações write_item das transações acabadas no log, na ordem na qual elas foram gravadas Recomeçar as transações ativas 17

Recuperação com Atualização Adiada Protocolo Ambiente Multi-usuário Depende do protocolo usado no controle de concorrência Assumir protocolo de duas fases com bloqueios antes do início da execução, guardando-os até o commit Procedimento Usar duas listas de transações: as transações acabadas desde o último checkpoint e as transações ativas Aplicar a operação Redo para todas as operações write_item das transações acabadas no log, na ordem na qual elas foram gravadas As transações ativas e não acabadas são canceladas e devem ser re-submetidas 18

Recuperação com Atualização Adiada Desvantagem Limita a execução concorrente das transações porque itens ficam bloqueados até o commit das transações. Vantagens Uma transação não grava as modificações no BD até o commit. Logo, uma transação nunca é desfeita por causa de falha Uma transação nunca vai ler o valor de um item gravado por outra não acabada, porque os itens estão bloqueados. Logo, não ocorrerá rollback em cascata 19

Recuperação com Atualização Imediata Dois tipos de Algoritmos Undo/No-Redo: Se a técnica de recuperação garante que todas as atualizações são gravadas no BD (disco) antes do commit da transação, não é necessário Redo Undo/Redo: Se as modificações são gravada no BD (disco) depois do commit da transação Caso mais geral e mais complexo 20

Recuperação com Atualização Imediata Procedimento Ambiente Monousuário Usar duas listas de transações: as transações acabadas desde o último checkpoint e a transação ativa (máximo 1) Aplicar o procedimento Undo: para desfazer todas as operações write_item da transação ativa no log Aplicar a operação Redo: para todas as operações write_item das transações acabadas na ordem na qual elas foram gravadas no log 21

Recuperação com Atualização Imediata Undo Ambiente Monousuário Desfazer uma operação write_item consiste em examinar sua entrada no log: [write_item, T, X, valor_ant, valor_novo] e colocar o valor do item X no BD como valor_ant (ImAn) Para desfazer as operações write_item de uma ou mais transações do log, deve-se proceder na ordem inversa de gravação no log 22

Recuperação com Atualização Imediata Protocolo Ambiente Multiusuário Assume-se que o log inclui checkpoints e o protocolo de concorrência como o de duas fases Procedimento Usar duas listas de transações: as transações acabadas desde o último checkpoint e as transações ativas Aplicar a operação Undo para todas as operações write_item das transações ativas, na ordem inversa de suas gravações no log Aplicar a operação Redo para todas as operações write_item das transações acabadas, na ordem na qual elas foram gravadas no log 23

Paginação Shadow Ambiente Mono-usuário: não é necessário o log Ambiente Multi-usuário: pode-se usar o log se o método de controle de concorrência usar. Pressupõe-se que o BD seja composto por n páginas de tamanho fixo. Uma tabela de páginas com n entradas é construída onde pag_tabi = pag_bdi Begin_Transaction =>tab_pag_corrente -->tab_pag_imagem (Nunca é modificada durante a transação) 24

Vantagem Paginação Shadow Não há necessidade de Undo ou Redo de operações Desvantagens Páginas atualizadas mudam de localização no disco, impedindo de manter juntas páginas relacionadas Se a tabela de páginas é grande, o tempo para gravar as tabelas de páginas imagem no commit é significativo Garbage Collection (liberação de páginas antigas) é necessário após o commit 25

ARIES Algorithms for Recovery and Isolation Exploiting Semantics, ou ARIES, é um algoritmo de recuperação projetada para funcionar com uma abordagem no-force, steal; Ele é usado pelo IBM DB2 e pelo Microsoft SQL Server entre outros sistemas de banco de dados. Três grande princípios norteiam o ARIES: Write ahead logging: Qualquer alteração em um objeto é o primeiro registrada no log, e o log deve ser escrito no armazenamento persistente antes que as alterações no objeto sejam gravados no disco.. Repeating history during Redo: No restart depois de um acidente, o ARIES reconstitui as ações de um banco de dados antes do acidente e traz o sistema volta ao estado exato em que estava antes do acidente. Em seguida, ele desfaz as operações ainda ativas no momento do acidente. Logging changes during Undo: As alterações feitas no banco de dados durante operações undo são registrados no log para garantir tal ação não seja repetido em caso de reinicializações repetidas. 26

BDs Múltiplos Gerenciador de recuperação global. Protocolo de efetivação em duas fases. 27

Backup e Recuperação após Falhas Catastróficas Exemplo: pane no disco Principal Técnica: backup do BD Cópia periódica do BD e do log em outro meio de armazenamento (fitas) É necessário backup do log para não perder as transações efetuadas desde o último checkpoint Um log é inicializado após cada operação de backup. Logo, para recuperar após uma falha no disco: O BD é recriado a partir do último backup Os efeitos de todas as transações committed, cujas operações foram gravadas no log, são reconstruídos 28

2005 by Pearson Education Sistemas de Banco de Dados 29

Elmasri - Navathe Atenção: Leitura do Capítulo 19: 2005 by Pearson Education Técnicas de Recuperação de Banco de Dados Sistemas de Banco de Dados 30