Checkpoint. Checkpoint

Documentos relacionados
Técnica UNDO/REDO. Checkpoint

Sumário. Recuperação de Falhas

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

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

Recuperação de Falhas

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

Sumário. Recuperação de Falhas

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

Sumário. Controle de Concorrência

Processamento de Transações

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

Processamento de Transações

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

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

Contato. professorluisleite.wordpress.com

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

BANCO DE DADOS 2 TRANSAÇÃO

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

PROCESSAMENTO DE TRANSAÇÕES

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

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

Controle de Transação

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

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

Scheduler Baseado em Timestamp

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

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

A instância Oracle é composta de :

Sumário. Definição do Plano de Execução

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

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

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

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

Banco de Dados. SGBDs. Professor: Charles Leite

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

3 Plano de Execução de Consultas

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

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

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

Processamento de Transações

Aula 03. Evandro Deliberal

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ANÁLISE E PROJETO DE BANCO DE DADOS

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

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 11. Sistemas de Arquivos Jornalados (Journaling File Systems)

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

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Técnicas de Controle de Concorrência

Notas da Aula 8 - Fundamentos de Sistemas Operacionais

Técnicas de Controle de Concorrência

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

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

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

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Adriano Maranhão TRANSAÇÕES

TRANSAÇÕES MAPAS MENTAIS

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

Processamento de Transações

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

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

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sincronização e Comunicação entre Processos. Adão de Melo Neto

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

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

Gerenciamento de Transações

Backup e Restauração Banco de Dados. Evandro Deliberal

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

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

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

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

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

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

de Bases de Dados Exame 1

Banco de dados. Prof. Emiliano S. Monteiro

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

Banco de Dados e Aplicações em Negócios: Introdução.

Gerência de Memória. Endereçamento Virtual (1) Paginação. Endereçamento Virtual (2) Endereçamento Virtual (3)

Técnicas de Controle de Concorrência

Controle de Concorrência

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

Gerência de Memória. Paginação

Introdução à Informática

Administração de Redes em Software Livre Aula 02 Instalando o GNU/Linux (CENTOS Minimal)

BANCO DE DADOS Índices em BD Árvores B+

Administração de Sistemas Operacionais. Prof.: Marlon Marcon

Transcrição:

Checkpoint SGBD com alta demanda de transações Log de tamanho grande recovery demorado Checkpoint momento em que o SGBD grava no BD todas as atualizações feitas por transações disparo manual ou automático inclusão de um registro de checkpoint no Log <checkpoint T 1, T 2,..., T n > lista de transações ativas Checkpoint Procedimento de execução de checkpoint 1. suspensão de todas as transações 2. descarga do buffer de Log em disco FORCE do Log 3. gravação dos blocos atualizados da cache no BD 4. inserção de um registro checkpoint no Log e sua gravação em disco 5. 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 1

Técnica UNDO/REDO c/ Checkpoint tempo T 1 T 3 T 4 lista-undo: T 3, T 5 lista-redo: T 4 checkpoint T 5 falha (crash) T 1 e T 2 concluíram e estão garantidamente no BD não sofrem REDO T 4 concluiu, mas suas atualizações não necessariamente estão no BD (supondo NOT-FORCE) sofre REDO T 3 e T 5 não concluíram sofrem UNDO Técnica UNDO/REDO c/ Checkpoint Procedimento de recovery 1. percorre-se o Log backward até alcançar um registro Checkpoint se achou <commit T x >, insere T x na lista-redo se achou <start T x > e T x não está na lista- REDO, insere T x na lista-undo 2. analisa-se cada transação T x no registro checkpoint se T x não estiver na lista-redo, insere T x na lista- UNDO 2

Técnica UNDO/REDO c/ Checkpoint Procedimento de recovery (cont.) 3. percorre-se de novo o Log backward, até que todas as transações em lista-undo tenham sofrido UNDO marca-se na lista-redo as transações T x cujos registros <start T x > estão sendo encontrados nessa varredura 4. se existem transações não marcadas na lista-redo ao final da varredura backward continua-se a varredura backward até que todas as transações na lista-redo tenham sido marcadas 5. percorre-se o Log forward do ponto de parada, realizado REDO das transações na lista-redo Vantagem não é necessário varrer sempre todo o Log Exercício 3 Apresente um arquivo de Log (um arquivo para cada item abaixo) em que o uso de checkpoint: a) mesmo assim requer uma varredura completa do Log; b) indica que nenhuma operação de UNDO e REDO precisa ser realizada; c) não requer a realização de nenhuma operação de REDO 3

Técnica UNDO/NO-REDO Outra técnica de modificação imediata do BD Grava o commit de T x no Log depois de todas as atualizações de T x terem sido gravadas no Log, e depois delas terem sido gravadas no BD assim, se <commit T x > está no Log, T x está garantidamente efetivada no BD vantagem: não há necessidade de fazer REDO desvantagem: pode-se fazer UNDO de uma transação que foi gravada com sucesso no BD, porém não foi gravado a tempo o seu commit no Log Requer um Log de UNDO Procedimento faz uma varredura backward do Log, realizando UNDO das transações na lista-undo (transações ativas) Técnica UNDO/NO-REDO - Exemplo tempo T 1 T 3 T 4 T 5 lista-undo: T 3, T 4 e T 5 T 1 e T 2 concluíram e tem commit no Log não sofrem REDO T 4 concluiu, mas não tem commit no Log sofre UNDO T 3 e T 5 não concluíram sofrem UNDO falha (crash) 4

Modificação Postergada do BD Abordagem na qual dados atualizados por uma transação T x não podem ser gravados no BD antes do commit de T x Gerenciamento de buffer mais complexo utiliza técnica NOT-STEAL blocos atualizados por T x não podem ser roubados enquanto T x não realizar commit por outro lado, o recovery é mais simples transações inacabadas não precisam sofrer UNDO Técnica NO-UNDO/REDO Técnica NO-UNDO/REDO Quando T x conclui suas atualizações, força-se a gravação do Log em disco (com <commit T x > ) FORCE no Log Vantagem se T x falha antes de alcançar o commit, não é necessário realizar UNDO de T x nenhuma atualização de T x foi gravada no BD requer apenas um Log de REDO Desvantagem overhead no tempo de processamento (NOT-STEAL) um bloco da cache pode permanecer em memória por muito tempo dependente do commit de uma ou mais transações que atualizaram dados nele se a cache fica cheia, é possível que algumas transações requisitando dados do BD tenham que esperar pela liberação de blocos 5

Técnica NO-UNDO/REDO Procedimento clássico de recovery faz uma varredura forward do Log, realizando REDO das transações na lista-redo (transações committed) Transações ativas após o recovery seus registros podem ser excluídos do Log reduz o tamanho do Log pode-se realizar também essa exclusão em técnicas que fazem UNDO de transações após a conclusão do UNDO dessas transações A técnica NO-UNDO/REDO com REDO único para cada dado pode ser aplicada exige varredura backward no Log para definir inicialmente a lista-redo-dados Técnica NO-UNDO/REDO - Exemplo tempo T 1 T 3 T 4 lista-redo: T 1, T 2 e T 4 T 5 falha (crash) T 1 e T 2 concluíram e atualizaram o BD sofrem REDO T 4 concluiu, mas não chegou a atualizar o BD sofre REDO T 3 e T 5 não concluíram e portanto não atualizaram o BD não sofrem UNDO 6

NO-UNDO/REDO c/ Checkpoint No exemplo anterior, T 1 e T 2 não precisavam sofrer REDO... técnica de checkpoint poderia ser utilizada para minimizar a quantidade de REDOs Técnica de checkpoint em uma abordagem de modificação postergada do BD procedimento mais complexo somente blocos de transações committed (na lista- REDO) devem ser descarregados no BD e se não for possível descarregar todos esses blocos? uma solução pode ser postergar a aplicação do checkpoint para um momento no qual todos os blocos de transações committed possam ser descarregados (não haja interferência de outras transações ativas) NO-UNDO/REDO c/ Checkpoint tempo T 1 T 3 T 4 lista-redo: T 4 T 5 Checkpoint (supondo que T3 não atualizou os blocos atualizados por ) falha (crash) T 1 e T 2 concluíram antes do checkpoint não sofrem REDO T 4 concluiu depois do checkpoint sofre REDO T 3 e T 5 não concluíram e portanto não atualizaram o BD não sofrem UNDO 7

Exercício 4 Suponha que o SGBD é monousuário, ou seja, uma nova transação só é executada após uma transação anterior ter concluído. Qual o impacto desta restrição sobre as 3 técnicas de recovery apresentadas anteriormente (UNDO/REDO, UNDO/NO-REDO e NO-UNDO/REDO), sem considerar checkpoints? 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 8

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 resubmetidas à 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 ARCHIVE/DUMP/REDO - Exemplo tempo T 1 T 3 T 4 T 5 T 6 intenção de archive ARCHIVE falha no BD DUMP backup BD REDO T 4 e T 6 9

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) Técnica Shadow Pages 1 2 3 4 5 Tabela de Páginas Corrente (TPC) x=5 y=10 z=20 a=1 b=2 c=3 x=5 y=15 z=25 a=5 b=2 c=15 1 2 3 4 5 Tabela de Páginas Shadow (TPS) (não é atualizada) disco cópias das páginas 2 e 5 com dados atualizados por T x 10

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 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 11

Técnica Shadow Pages - Desvantagens Adequada a SGBD monousuário uma transação executando por vez SGBD multiusuário gerenciamento complexo! requer um Log para que se saiba se mais de uma transação atualizou dados na mesma página abortos em cascata podem ocorrer se alguma das transações atualizando na mesma página falhou! 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 Escalonamentos X Recovery Considere o seguinte exemplo de escalonamento registrado em um Log: LOG <start T1> <write T1, A, 1, 2> <start > <write, A, 2, 5> <start T3> <write T1, B, 10, 2> <write T3, B, 2, 4> <commit > <commit T3> crash! T1 A = A + 1 B = B / A A = A + B A = A + 3 T3 B = B * B w(b) 12

Escalonamentos X Recovery Exemplo LOG <start T1> <write T1, A, 1, 2> <start > <write, A, 2, 5> <start T3> <write T1, B, 10, 2> <write T3, B, 2, 4> <commit > <commit T3> crash! T1 A = A + 1 B = B / A A = A + B Estados iniciais: A = 1 B = 10 A = A + 3 T3 B = B * B w(b) Deseja-se efetivar apenas os Resultados de e T3! Logo: A = 1 A = 4 B = 10 B = 100 Escalonamentos X Recovery Exemplo LOG <start T1> <write T1, A, 1, 2> <start > <write, A, 2, 5> <start T3> <write T1, B, 10, 2> <write T3, B, 2, 4> <commit > <commit T3> crash! T1 A = A + 1 B = B / A A = A + B A = A + 3 T3 B = B * B w(b) Estados iniciais: A = 1 B = 10 Entretanto, após o recovery UNDO/REDO, temos: A = 1 A = 5 B = 10 B = 4 13

Escalonamentos X Recovery Exemplo LOG <start T1> <write T1, A, 1, 2> <start > <write, A, 2, 5> <start T3> <write T1, B, 10, 2> <write T3, B, 2, 4> <commit > <commit T3> crash! T1 A = A + 1 B = B / A A = A + B Estados iniciais: A = 1 B = 10 Entretanto, após o recovery UNDO/REDO, temos: A = A + 3 T3 B = B * B w(b) A = 1 A = 5 B = 10 B = 4 Conclusão: nem todo escalonamento é recuperável! Scheduler deve estar em sintonia com recovery, gerando escalonamentos válidos para recuperação de falhas! 14