Servidor Oracle

Download Report

Transcript Servidor Oracle

Capítulo I

Componentes Arquitetônicos de um Banco de Dados Oracle

Arquitetura de um Banco Oracle

Processo Usuário Instância SGA Processo Servidor PGA Shared Pool Library Cache Data Dictionary Cache Database Buffer Cache Java Pool Redo Log Buffer Large Pool PMON SMON DBWR LGWR CKPT Others Arquivo de Parâmetros Arquivos de Dados Arquivos de Controle Arquivos de Redo Arquivo de Senha Database

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

Log Arquivados

2

Servidor 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 3

Instâ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

Instância Shared Pool SGA Library Cache Database Buffer Cache Redo Log Buffer Memory structures Data Dictionary Cache Java Pool Large Pool PMON SMON DBWR LGWR CKPT Others Background process structures

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

Estabelecendo uma Sessão e Criando uma Conexão

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

Conexão Estabelecida Processo Servidor Sessão Criada Processo Usuário Servidor Oracle Usuário do Banco

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

Banco de Dados Oracle

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

Arquivo de Parâmetros Arquivo de Senha Data files Banco Oracle Control files Redo Log files Log Arquivado

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

Estrutura Física

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

Header Arquivos de Dados Arquivos de Controle Arquivos de Redo Log

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

Estruturas 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 8

Á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 9

System 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 10

Pool 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

ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; Shared Pool Library Cache Data Dictionary Cache

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

Cache 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 12

Cache 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 13

Cache 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 padrão determina o tamanho do bloco

Cache de Buffer de Dados

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

Cache de Buffer de Dados

• Consiste de subcaches independentes: • DB_CACHE_SIZE • DB_KEEP_CACHE_SIZE • DB_RECYCLE_CACHE_SIZE • Pode ser dimensionada dinamicamente

ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

• DB_CACHE_ADVICE é utilizado para obter estatísticas sobre o tamanho das caches • As estatísticas são exibidas em V$DB_CACHE_ADVICE Administração de Bancos de Dados - Prof. Umberto Marrone 15

Cache 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 reutilizados da memória : Determina o tamanho do recycle buffer cache, que é usado para eliminar blocos que têm pouca chance de serem Administração de Bancos de Dados - Prof. Umberto Marrone 16

Buffer 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 Redo Log

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

Pool 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 18

Área de Programa Global PGA

• 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

Processo Servidor PGA Processo Usuário

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

Estrutura 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 20

Processo 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

Processo Usuário Processo Servidor Conexão Estabelecida Database user

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

Processo 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 Processo Usuário Processo Servidor Sessão Criada Servidor Oracle Database user

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

Processos de Background

• Responsáveis pela interação entre estruturas de memória e físicas – Obrigatórios DBWn LGWR – Opcionais: ARCn CJQ0 Dnnn LCKn PMON SMON LMDn LMON LMS Pnnn CKPT QMNn RECO Snnn Administração de Bancos de Dados - Prof. Umberto Marrone 23

Database Writer (DBWn)

Instance SGA Database Buffer Cache DBWn Data files Control files Redo Log files

• 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

Database

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

Log Writer (LGWR)

Instance SGA Redo Log Buffer DBWn LGWR Data files Control files Redo Log files

• 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

Database

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

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 26

Process Monitor (PMON)

PMON Instance SGA

• Limpa processos falhos: – Realizando rollback de transações – Liberando bloqueios e recursos

PGA area

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

Checkpoint

Instance SGA DBWn LGWR CKPT Data files Control files Redo Log files

• Funções: – Sinalizar DBWn de checkpoints – Atualizar o header dos Arquivos de Dados e o Arquivo de Controle com informações de checkpoint

Database

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

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

Data files Control files Redo log files ARCn Archived redo log files

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

Estrutura Lógica de Armazenamento

• Diz como o espaço físico do banco de dados é utilizado • Hierarquia consistindo de tablespaces, segmentos, extensões e blocos

Segment Tablespace Datafile Segment Extent Blocks

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

Processando 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 31

Exercícios

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

Exercícios

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

Exercícios

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