Banco de Dados II
Controle de Concorrência e
Recuperação em Oracle
Morgana Ribeiro Micaías ladgelson
Sumário
• Review
• Controle de Concorrência
• Estruturas Básicas para Recuperação
• Oracle Data Guard
Review
• Vimos que uma das propriedades fundamentais de uma transação é o isolamento. • Quando várias transações são executadas simultaneamente no banco de dados, a
propriedade de isolamento pode não ser mais preservada.
• O que vimos sobre o controle de concorrência?
• Para garantir que esteja, o sistema deve controlar a interação entre as transações simultâneas;
• Esse controle é obtido por meio de vários mecanismos chamados esquemas de controle de concorrência.
Review
• E sobre o Sistema de Recuperação?
• Um sistema de computador, como qualquer outro dispositivo, está sujeito a falhas de várias causas: falha de disco, falta de energia, erro de software, incêndio na sala de máquinas e até mesmo sabotagem.
• Portanto, o sistema de banco de dados deve executar ações com antecedência para garantir que as propriedades de atomicidade e durabilidade das transações, sejam preservadas.
• O controle de recuperação que pode restaurar o banco de dados ao estado
consistente que existia antes da falha e também deve fornecer alta disponibilidade.
• Entendi, então ele deve minimizar o tempo para o qual o banco de dados não é utilizável após uma falha.
Review
• Tudo bem, mas como funciona o Controle de Concorrência e
Recuperação em um sistema de banco de dados real? Ex: Oracle
• O Banco de Dados da Oracle suporta técnicas de controle e recuperação de concorrência que fornecem vários recursos úteis.
• A Oracle se tornou pioneira do mercado de Sistema Gerenciador de Banco de
Dados Relacional e ocupa uma posição de liderança nesse mercado desde então.
• Primeiramente, veremos como funciona o seu controle de concorrência, ok?
Controle de Concorrência
• Baseia-se no protocolo de isolamento de instantâneo. • Consultas somente de leitura recebem um instantâneo
Instantâneo
Dados….
.
Controle de Concorrência
• O Oracle suporta a consistência de leitura no nível da instrução e da transação • Determina o atual número de alteração do sistema (SCN - system change
number)
T1 T2 T3 T4
0021
Controle de Concorrência
• Se for encontrado um bloco de dados com um SCN mais alto do que aquele associado à consulta, é evidente que o bloco de dados foi modificado após o horário do SCN da consulta original.
D1 D2 D3 D4
0003
0021
0001
0002
0003
SCN = 0003Estruturas Básicas para Recuperação
● A tecnologia Flashback da Oracle, pode ser usada como um mecanismo de recuperação. Mas o que seria essa Tecnologia Flashback?
● No modelo de simultaneidade do Oracle, as operações de leitura não bloqueiam as operações de gravação e as operações de gravação não bloqueiam as operações de leitura,
● Uma propriedade que permite um alto grau de simultaneidade.
● O modelo de simultaneidade da Oracle é usado como base para o recurso Flashback.
● O recurso de Flashback inclui a capacidade de restaurar uma tabela ou um banco de dados inteiro para um ponto específico sem exigir a restauração do banco de dados a partir do backup.
Estruturas Básicas para Recuperação
• Estou entendendo, mas espera um pouco, como assim falhas? Você fala do banco em si ter falhas?
Como o sistema está muito propício a falhas deve-se utilizar os métodos e estruturas
básicas para entendermos efetivamente como os sistemas SGBDs conseguem fazer
isso!
• Existem três tipos de falhas: ○ Falha de transação ○ Falha de sistema ○ Falha do disco
Então, agora veremos como isso é feito, o passo a passo de cada método e suas vantagens e desvantagem, beleza parceiro?
Tipos de Recuperação
Em uma situação de falha, seja ela de sistema ou de disco que faça a instância do banco de dados abortar sua execução, há duas formas de recuperação:
● Media recovery: no processo de media recovery, existe a perda ou
corrompimento de algum arquivo pertencente ao banco de dados. Esta é uma forma de recuperação na qual exige a intervenção manual de uma pessoa
capacitada, geralmente o DBA.
• Cada estrutura física do SGBD Oracle possui sua peculiaridade de recuperação. Basicamente, dois passos principais são necessários:
restaurar/recriar os arquivos danificados e recuperar a base até um ponto no tempo consistente (roll-forward e rollback).
● Instance Recovery: A própria instância possui as informações necessárias para realizar a subida do banco de dados de modo consistente.
Estruturas Básicas para Recuperação
• Para entendermos melhor como é o funcionamento do sistema de recuperação Oracle, temos que entender a seguinte imagem!
IFCE
Estruturas Básicas para Recuperação
• Para entendermos melhor como é o funcionamento do sistema de recuperação Oracle, temos que entender a seguinte imagem!
• Beleza, entendi quase tudo, tem uns termos que não entendi bem!
• Que termos? • Coisas tipo Arquivo de inicialização, Arquivos de controle, Arquivos
Estruturas Básicas para Recuperação
• Sim sim, vou lhe explicar bem como funciona esses arquivos. Dentre eles temos: ○ Arquivos de inicialização
○ Arquivos de controle ○ Arquivos de log de redo ○ Arquivos de log arquivados ○ Arquivos de dados
○ Arquivos temporários
• Os ARQUIVOS DE INICIALIZAÇÃO são arquivos de texto importantes que informam a instância do Oracle ONDE estão os arquivos de controle e a DIMENSÃO dos mesmos.
• Os ARQUIVOS DE CONTROLE são arquivos PEQUENOS que listam ONDE se encontram os arquivos de log online.
○ Responsável também por saber: ■ Checkpoints
■ Nome do banco ■ TImestamp
Estruturas Básicas para Recuperação
● Então, pelo que entendi, o Arquivo de Inicialização indica onde os Arquivos de Controle estão localizados, e os Arquivos de Controle indicam à instância onde os Arquivos de Log Online se localizam. Estou certo?
• Isso mesmo!
● Já os ARQUIVOS DE LOG DO REDO geralmente são utilizados para propósitos de recuperação, mas podem ser utilizados também para:
○ Recuperação de instância após uma queda de sistema;
○ Recuperação de mídia após a recuperação de um arquivo de dados; ○ Replicação entre bancos de dados;
● Se o sistema do banco de dados abortar causando uma FALHA DE INSTÂNCIA, o Oracle irá usar os Arquivos de Log de Redo para RESTAURAR o sistema para o exato ponto que estava antes da queda de sistema.
Estruturas Básicas para Recuperação
• Boa pergunta, nesse caso, os arquivos de log do redo SÃO ESCRITOS ANTES que o dado seja colocado no banco de fato!
Continuando...
● ARQUIVOS DE LOG ARQUIVADOS é uma espécie de HISTÓRICO DE ARQUIVOS DE LOG DE REDO. Tais são responsáveis por guardar a informação contida em N arquivos de log de redo POR TEMPO
DETERMINADO.
○ Para que isso aconteça o SGBD de está no modo ARCHIVELOG.
● Ainda há alguma resistência sobre o uso desse modo, mas segundo afirma Kyte(2010):
○ “As pessoas frequentemente me dizem que não precisam de modo ARCHIVELOG para os seus
sistemas de produção. Eu ainda não encontrei ninguém que fosse correto nessa declaração. Eu acredito que um sistema não é um sistema de produção a menos que seja no modo
ARCHIVELOG. Um banco de dados que não está no modo ARCHIVELOG irá, algum dia, perder dados. É inevitável, você vai perder os dados (não pode, mas vai), se o seu banco de dados não
Estruturas Básicas para Recuperação
IFCE
Estruturas Básicas para Recuperação
• Aqui está uma imagem que fará você compreender melhor o fluxo de registro de LOGs no Oracle.
• Legal! Que tipos de arquivos preciso conhecer ainda ?
● Tenho que te falar ainda sobre: ■ Arquivo de Dados
Estruturas Básicas para Recuperação
• Os ARQUIVOS DE DADOS são as ESTRUTURAS QUE ARMAZENAM DADOS DE APLICAÇÕES, bem como os dados do dicionário de dados do SGBD Oracle. Estes dados estão organizados como
OBJETOS, COMO TABELAS, ÍNDICES, ETC.
● Segundo afirma Kyte:
■ Os arquivos de dados, juntamente com os arquivos de log redo, são os tipos MAIS
IMPORTANTES DE ARQUIVOS NUM BANCO DE DADOS. Este é o lugar onde todos os seus
dados serão finalmente armazenado. Cada base de dados tem, pelo menos, um arquivo de dados associado a isso e, normalmente, tem muito mais do que um (Kyte, 2010).
• Graças a você, meu amigo, estou entendendo muito bem o assunto, e os arquivos temporários o que são?
• Os ARQUIVOS TEMPORÁRIOS armazenam os RESULTADOS INTERMEDIÁRIOS de grandes operações de classificação e OPERAÇÕES DE HASH, bem como para armazenar dados de tabelas temporárias globais, ou de resultados de dados, QUANDO NÃO HÁ MEMÓRIA SUFICIENTE PARA ARMAZENAR
Oracle Data Guard
● O Oracle Data Guard é uma solução de alta disponibilidade (High Availability) para banco de dados Oracle, que provê um conjunto abrangente de serviços como criar, manter, gerenciar e monitorar um ou mais banco de dados standby permitindo que um bancos de dados Oracle de produção sobreviva a desastres e corrupção dados.
● O que é banco de dados standby (Standby Database)?
○ É uma cópia transacionalmente consistente do banco de dados de produção (primary database).
Referências
● SILBERSCHATZ , Abraham ; F. KORTH, Henry; SUDARSHAN , S. DATABASE SYSTEM
CONCEPTS. [S. l.]: McGraw-Hill Science/Engineering/Math; Edição: 6, 11/07/2016.
●
RADAELLI, Estevão. Guia de recuperação de uma base de dados Oracle. 2017.
Banco de Dados II
Controle de Concorrência e
Recuperação em Oracle
Morgana Ribeiro Micaías ladgelson