Download - Capítulo I
Capítulo ICapí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
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
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
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
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
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
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
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)
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
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;
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
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
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
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;
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Administração de Bancos de Dados - Prof. Umberto Marrone 32
ExercíciosExercícios
Administração de Bancos de Dados - Prof. Umberto Marrone 33
ExercíciosExercícios
Administração de Bancos de Dados - Prof. Umberto Marrone 34
ExercíciosExercícios