capítulo i componentes arquitetônicos de um banco de dados oracle

34
Capítulo I Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Upload: internet

Post on 17-Apr-2015

114 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Capítulo ICapítulo I

Componentes Arquitetônicos de um Banco de Dados Oracle

Page 2: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 2

Arquivo deSenha

Instância

SGA

Redo LogBuffer

Shared Pool

Data DictionaryCache

LibraryCache

DBWRSMONPMON CKPTLGWR Others

ProcessoUsuário

ProcessoServidor

PGA

Arquivos de

Controle

Arquivos de Dados

Database

DatabaseBuffer Cache

Arquivos de Redo

Java Pool Large Pool

Arquivo de Parâmetros

Log Arquivados

Arquitetura de um Banco Arquitetura de um Banco OracleOracle

Page 3: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 3

Servidor OracleServidor Oracle

• Um Servidor Oracle:– É um SGBD– Consiste de uma

Instância Oracle e de um Banco de Dados Oracle

Servidor Oracle

Page 4: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 4

Instância OracleInstância Oracle

• Meio de acessar o Banco de Dados Oracle• Está associada a um e apenas um Banco• Formada por memória e processos de background

Background process structures

Memory structures

Instância

SGA

Redo LogBuffer

Shared Pool

Data DictionaryCache

LibraryCache

DBWRSMONPMON CKPTLGWR Others

DatabaseBuffer Cache

Java Pool Large Pool

Page 5: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 5

Estabelecendo uma Sessão e Estabelecendo uma Sessão e Criando uma ConexãoCriando uma Conexão

• Conectando-se a uma Instância Oracle:– Estabelecendo uma conexão usuária– Criando uma sessão

Sessão Criada

Usuário do Banco

ProcessoUsuário

ProcessoServidorConexão

Estabelecida

Servidor Oracle

Page 6: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 6

Banco de Dados OracleBanco de Dados Oracle

• Coleção de dados• Consiste de três tipos de arquivo

Arquivo deSenha

Arquivo deParâmetros

LogArquivado

Control files

Data

files

Redo Log files

Banco Oracle

Page 7: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 7

Estrutura FísicaEstrutura Física

• A estrutura física inclui três tipos de arquivo:– Arquivos de Controle– Arquivos de Dados– Arquivos de Redo Log Online

Arquivos deControleArquivos

de Dados

Header

Arquivos deRedo Log

Page 8: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 8

Estruturas de MemóriaEstruturas de Memória

• A estrutura de memória do Oracle é formada por duas áreas:– Área de Sistema Global (System Global Area

- SGA): alocada quando a instância é inicializada. É um componente fundamental de uma instância Oracle

– Área de Programa Global (Program Global Area - PGA): alocada quando um processo servidor é inicializado

Page 9: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 9

Área de Sistema Global - SGAÁrea de Sistema Global - SGA

• A SGA consiste de várias estruturas de memória:– Pool Compartilhado (Shared Pool)– Cache de Buffer de Dados (Database Buffer Cache)– Buffer de Redo Log (Redo Log Buffer)– Outras estruturas (por exemplo, gerenciamento de

bloqueios e latches, dados estatísticos, entre outros)

• Outras duas estruturas de memória adicionais podem ser configuradas na SGA:– Pool Grande (Large Pool)– Pool Java (Java Pool)

Page 10: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 10

System Global Area - SGASystem Global Area - SGA

• Dinâmica• Dimensionada pelo parâmetro de

inicialização SGA_MAX_SIZE• Alocada e gerenciada em grãos

pelos componentes da SGA– Alocação de memória virtual contínua– Tamanho do grão é baseado em SGA_MAX_SIZE

Page 11: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 11

Pool CompartilhadoPool Compartilhado

• É utilizado para armazenar:– Comandos SQL mais recentemente executados– Definições de dados mais recentemente utilizadas

• Consiste de duas estruturas de memória muito importantes na questão de performance:– Cache de Biblioteca (Library Cache)– Cache de Dicionário de Dados (Data Dictionary

Cache)• Dimensionado pelo parâmetro SHARED_POOL_SIZE

Shared Pool

DataDictionary

Cache

LibraryCache

ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

Page 12: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 12

Cache de Dicionário de DadosCache de Dicionário de Dados

• É conjunto contendo as definições de dicionário de dados mais recentemente utilizadas

• Inclui informações sobre arquivos de dados, tabelas, índices, colunas, usuários, privilégios e outros objetos do banco de dados

Page 13: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 13

Cache de Dicionário de DadosCache de Dicionário de Dados

• Durante a fase de Análise de um comando, o processo servidor procura, na Cache de Dicionário de Dados, por informações para validação de acesso e mapeamento de nomes de objetos

• O armazenamento de informações de Dicionário de Dados em cache propicia uma melhora no tempo de resposta de consultas e execução de comandos DML

• O tamanho é determinado por SHARED_POOL_SIZE

Page 14: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 14

Cache de Buffer de DadosCache de Buffer de Dados

• Armazena cópias de blocos de dados recuperados a partir dos arquivos de dados

• Fornece um ganho de desempenho, quando se consulta ou atualiza os dados

• Gerenciado por um algoritmo LRU• DB_BLOCK_SIZE determina o tamanho do bloco

padrão

Cache de Bufferde Dados

Page 15: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 15

Cache de Buffer de DadosCache de Buffer de Dados

• Consiste de subcaches independentes:•DB_CACHE_SIZE•DB_KEEP_CACHE_SIZE•DB_RECYCLE_CACHE_SIZE

• Pode ser dimensionada dinamicamente

• DB_CACHE_ADVICE é utilizado para obter estatísticas sobre o tamanho das caches

• As estatísticas são exibidas em V$DB_CACHE_ADVICE

ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

Page 16: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 16

Cache de Buffer de DadosCache de Buffer de Dados

• Esses três parâmetros definem os tamanhos dos Buffer Caches:– DB_CACHE_SIZE: Determina o tamanho apenas

do default buffer cache– DB_KEEP_CACHE_SIZE: Determina o tamanho do

keep buffer cache, que é usado para reter blocos bastante reutilizados em memória

– DB_RECYCLE_CACHE_SIZE: Determina o tamanho do recycle buffer cache, que é usado para eliminar blocos que têm pouca chance de serem reutilizados da memória

Page 17: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 17

Buffer de Redo LogBuffer de Redo Log

• Armazena alterações realizadas em blocos de dados• Função principal é recuperação• As alterações armazenadas são chamadas de

entradas de redo• Entradas de redo contém informações para

reconstrução ou cancelamento de alterações• Tamanho definido por LOG_BUFFER

Buffer de RedoLog

Page 18: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 18

Pool GrandePool Grande

• Área opcional da SGA• Diminui o processamento no Pool Compartilhado• Utilizado para:

– Memória de Sessão (UGA) na arquitetura de Servidor Compartilhado (Shared Server)

– Processos Servidores de E/S– Operações de Backup e Recuperação (Recovery

Manager)– Execução em paralelo

• Não utiliza o algoritmo LRU• Dimensionado pelo parâmetro LARGE_POOL_SIZE• Pode ser dimensionado dinamicamente

Page 19: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 19

Área de Programa Global - Área de Programa Global - PGAPGA

• Região de memória reservada para cada Processo Usuário conectando ao Oracle

• Alocada quando um Processo Servidor é criado

• Desalocada quando o Processo Servidor é finalizado

• Utilizada por apenas um Processo Servidor

ProcessoUsuário

PGAProcessoServidor

Page 20: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 20

Estrutura de ProcessosEstrutura de Processos

• Processo Usuário: inicializado quando um usuário solicita uma conexão com o Servidor Oracle

• Processo Servidor: conecta-se a Instância Oracle e é inicializado quando um usuário estabelece uma sessão

• Processos de Background: inicializado quando uma Instância Oracle é inicializada

Page 21: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 21

Processo UsuárioProcesso Usuário

• Um programa que solicita interação com o Servidor Oracle

• Deve primeiramente estabeler uma conexão• Não interage diretamente com o Servidor

Oracle

Database user

ProcessoServidor

ProcessoUsuário

Conexão Estabelecida

Page 22: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 22

Processo ServidorProcesso Servidor

• Um programa que interage diretamente com o Servidor Oracle

• Responde solicitações geradas e retorna resultados• Pode ser dedicado ou compartilhado

Conexão Estabelecida Sessão Criada

Database user

ProcessoUsuário

ProcessoServidor

Servidor Oracle

Page 23: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 23

Processos de BackgroundProcessos de Background

• Responsáveis pela interação entre estruturas de memória e físicas– Obrigatórios

DBWn PMON CKPTLGWR SMON

– Opcionais:ARCn LMDn QMNnCJQ0 LMON RECODnnn LMS SnnnLCKn Pnnn

Page 24: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 24

Database Writer (DBWn)Database Writer (DBWn)

• DBWn escreve quando:– Acontece um checkpoint– A quantidade buffers

“sujos” atinge um determinado percentual

– Não existem buffers livres– Ocorre um timeout– Tablespace OFFLINE– Tablespace READ ONLY– Tabela DROP or TRUNCATE– Tablespace BEGIN BACKUP

Instance

SGA

Control files

Data files

Redo Log files

Database

DBWn

DatabaseBufferCache

Page 25: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 25

Log Writer (LGWR)Log Writer (LGWR)

• LGWR escreve:– Em um commit– Quando 1/3 cheio– Quando há mais de

1 MB de informações de redo

– A cada 3 segundos– Antes que DBWn

escreva

Instance

SGA

Control files

Data files

Redo Log files

Database

Redo Log

Buffer

DBWn LGWR

Page 26: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 26

System Monitor (SMON)System Monitor (SMON)

• Funções:– Recuperação de Instância

•Validação das alterações confirmadas no Arquivos de Redo Log

•Abre o banco de dados para acesso pelos usuários

•Desfaz transações não confirmadas– Juntar espaços livres– Desalocar segmentos temporários

Page 27: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 27

Process Monitor (PMON)Process Monitor (PMON)

• Limpa processos falhos:– Realizando

rollback de transações

– Liberando bloqueios e recursos

PGA area

Instance

SGA

PMON

Page 28: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 28

CheckpointCheckpoint

• Funções:– Sinalizar DBWn de

checkpoints– Atualizar o header

dos Arquivos de Dados e o Arquivo de Controle com informações de checkpointControl

filesData files

Redo Log files

Database

Instance

SGA

DBWn LGWR CKPT

Page 29: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 29

Archiver (ARCn)Archiver (ARCn)

• Processo de Background Opcional• Arquiva automaticamente os Arquivos de

Redo Log quando o banco de dados está no modo ARCHIVELOG

• Mantém um registro de todas as modificações realizadas no banco de dados

ARCn Archived redo log

files

Control files

Data

files

Redo log files

Page 30: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 30

Estrutura Lógica de Estrutura Lógica de ArmazenamentoArmazenamento

• Diz como o espaço físico do banco de dados é utilizado

• Hierarquia consistindo de tablespaces, segmentos, extensões e blocos

Tablespace

DatafileSegment

BlocksExtent

Segment

Page 31: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 31

Processando Comandos SQLProcessando Comandos SQL

• Conecte-se a uma Instância através de:– Processo Usuário– Processo Servidor

• Os componentes do Servidor Oracle utilizados dependem do tipo de comando SQL executado:– Consultas retornam linha– Comandos DML são registrados– Um “commit” garante recuperação da

transação

Page 32: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 32

ExercíciosExercícios

Page 33: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 33

ExercíciosExercícios

Page 34: Capítulo I Componentes Arquitetônicos de um Banco de Dados Oracle

Administração de Bancos de Dados - Prof. Umberto Marrone 34

ExercíciosExercícios