Você está na página 1de 30

Sistema de recuperao

Banco de Dados cliente-servidor UTFPR Profa. Ligia Flvia A. Batista

Introduo
Falhas

podem ocorrer:

Quebra de disco; Falha de energia; Erro de software; Incndio; Sabotagem;

Esquema de recuperao

Responsvel pela restaurao do banco de dados para um estado consistente que havia antes da ocorrncia da falha As falhas mais simples de tratar so aquelas que no resultam em perda de informao no sistema Como? Garantindo que toda informao que o BD contm possa ser reconstruda a partir de alguma outra informao armazenada de modo redundante em algum outro lugar do sistema

Classificao (Silberschatz)

Falha de transao:

Erro lgico: relacionada a uma condio interna, como um dado no encontrado, overflow, etc. Erro de sistema:relacionada a um estado inadequado do sistema, por exemplo, um deadlock.

Queda do sistema: mal funcionamento de hardware ou bug no software de BD (ou SO). Perda de armazenamento voltil Falha de disco: perda do contedo em funo de um defeito fsico. A recuperao tem que ser feita com backup.

Classificao (Date)
Falha

local: s afeta a transao em que a falha ocorreu Falha global: afetam todas as transaes em andamento. Enquadram-se em duas categorias:

Falhas do sistema: tal como queda de energia, no danificam fisicamente o BD (soft crash) Falhas da mdia: so os defeitos fsicos (hard crash) recuperadas com backup

Estrutura de armazenamento
Voltil:

no sobrevive a quedas do sistema. Ex.: memria principal e cache No-voltil: sobrevive a quedas do sistema. Ex.: disco e fitas magnticas Estvel: A informao residente neste tipo de armazenamento nunca perdida! (Manter mltiplas cpias em mdias vrias novolteis)

Recuperao baseada em Log

Usa-se uma estrutura para gravar modificaes no banco de dados, o log Log: seqncia de registros que mantm um arquivo atualizado das atividades no banco de dados. Um registro de log tem os seguintes campos:
Identificador da transao Identificador de item de dado Valor antigo Valor novo

Exemplos de Log
<Ti

start>: a transao comeou

<Ti,

Xj, V1, V2>: a transao realizou uma escrita no item de dado Xj que tinha o valor V1 e ter o valor V2 aps a escrita. commit>: a transao Ti foi efetivada abort>: a transao Ti foi abortada

<Ti <Ti

Como?
Em

certos intervalos predeterminados, quando um nmero x de entradas gravado no log, o sistema marca um checkpoint. Marcar checkpoint:

gravar fisicamente o contedo dos buffers do banco de dados Gravar um registro de checkpoint especial no log fsico (transaes em andamento)

Categorias de transaes
Tempo tc tf

tc: checkpoint tf: falha Quando o sistema reinicializado, as transaes do tipo T3 e T5 devem ser desfeitas e as transaes do tipo T2 e T4 devem ser refeitas.

t r a n s a e s

T1 T2 T3 T4 T5

Reinicializao

Procedimentos:
1.

2. 3. 4. 5.

Lista UNDO e lista REDO. Lista UNDO: todas as transaes dadas no registro de checkpoint mais recente. Lista REDO: vazia Pesquisar o log para a frente, a partir do registro do checkpoint Quando encontra BEGIN TRANSACTION para uma transao T, vai para a lista UNDO Quando encontra COMMIT, sai da UNDO e vai para a REDO Ao chegar ao fim do LOG, as listas UNDO e REDO identificaro respectivamente transaes do tipo T3 e T5, e tipos T2 e T4.

Paginao Shadow

Melhoria da tcnica cpia shadow Exige menos acesso a disco que os mtodos de log Difcil de aplicar em transaes concorrentes O banco de dados particionado em um nmero de blocos de comprimento fixo chamados pginas (SO) Idia bsica: manter duas tabelas de pgina durante o processamento da transao.

Tabela shadow: no alterada durante a transao ( mantida em armazenamento no-voltil) Tabela atual: alterada pelas operaes de escrita

Recuperao - Shadow
Mais

eficiente que a baseada em Log As pginas shadow apontam para as pginas do BD que correspondem ao estado do BD anterior a qualquer transao ativa no momento da queda Aborto de transaes automtico Nenhuma operao undo precisa ser chamada

Desvantagens - Shadow
Overhead

de efetivao: enviar vrias pginas para a sada em disco Fragmentao dos dados (maior lentido), overhead para gerenciamento do armazenamento fsico Coleta de lixo: verses antigas de pginas se tornam lixo. Deve-se executar um processo de coleta de lixo. Causa overhead e torna o sistema mais complexo

Postgresql - Log

Write-Ahead Logging (WAL) Mudanas no BD s so realizadas aps a escrita do log. Listas REDO e UNDO Benefcios: Reduz nmeros de escrita Diretrio pg_xlog Checkpoint salvo no arquivo pg_control

Recuperao WAL
Se

o sistema falhar, pode-se recuperar a consistncia do banco reexecutando as entradas de log desde o ltimo checkpoint Especificado por checkpoint_segments ou checkpoint_timeout Tambm possvel forar o checkpoint por meio de um comando sql CHECKPOINT Description: force a transaction log checkpoint

BACKUP

Ferramentas bsicas
Pg_dump:

gera o backup

Formato plano (script SQL) Formato comprimido (compress, tar) Para os formatos comprimidos

Pg_restore

formato plano recuperado com psql ou outra ferramenta para executar scripts

18

pgAgent
um daemon no Linux e um servio no Windows Instalao

Instalar a linguagem plpgsql (comando CREATE LANGUAGE plpgsql) Executar o script pgAgent.sql no banco postgres (vai criar um esquema, algumas tabelas, funes e triggers) Criar o servio pgAgent (Windows) Iniciar o servio Agendar os jobs

19

Criando e inicializando o servio

case sensitive

C:\Program Files\PostgreSQL\8.2\bin>pgAgent INSTALL pgAgent -l 1 -u postgres -p postgres hostaddr=127.0.0.1 dbname=postgres user=postgres C:\Program Files\PostgreSQL\8.2\bin>net start pgAgent The PostgreSQL Scheduling Agent - pgAgent service is starting. The PostgreSQL Scheduling Agent - pgAgent service was started successfully.

20

Senha do banco?
Criar

um arquivo texto pgpass.conf em C:\Documents and Settings\postgres\Application Data\postgresql Exemplos: localhost:5432:banco:postgres:senha localhost:5432:*:postgres:senha

21

Parmetro -l
Refere-se

ao log <logging verbosity (ERROR=0, WARNING=1, DEBUG=2, default 0)> Se for especificado 2, cada ao do servio gera um log que pode ser analisado em: Control Panel -> Administrative Tools -> Event Viewer Boa opo quando se est com problemas de configurao
22

Event Viewer

23

Criao dos jobs


Conexo

do pgAdmin deve ser feita especificando-se Maintenance BD com o banco em que os esquemas do pgAgent foram criados Normalmente o BD postgres Visualizao do n Jobs

24

N Jobs

25

Estatsticas de execuo

26

Criao do Job

27

Step

Definio processa o backup:


"C:\Program Files\PostgreSQL\8.2\bin\pg_dump" -a -h localhost -U postgres -f "C:\Documents and Settings\postgres\Application Data\postgresql\backup\bak_postgres.bak" -F c postgres

28

Gerar backup em uma pasta com permisso


O

comando runas /user:postgres cmd abre um prompt em que o usurio o postgres Outra opo: setar as permisses dos arquivos pelo prprio Windows

29

Schedules
Nome,

enabled, data inicial e final, comentrio Especifica-se: dias (da semana, do ms, ms) Especifica-se hora Pode-se programar excees

30