Banco de Dados Oracle
AESO
Banco de Dados Oracle
Visão Geral dos Componentes Principais da
Arquitetura Oracle
Banco de Dados Oracle
Servidor Oracle

É o nome que a Oracle deu ao seu SGBD. Ele
consiste de uma Instância e um Banco de Dados
Oracle.
Banco de Dados Oracle
Instância Oracle



É uma forma de acessar um Banco de Dados
Oracle.
Sempre abre um único Banco de Dados.
Consiste em estruturas de memórias e processos de
segundo plano (background).
Estruturas de Memória
Estruturas de Processos
de Segundo Plano
Banco de Dados Oracle
Instância Oracle



É preciso iniciar a instância para acessar os dados
contidos no banco de dados.
Sempre que uma instância é iniciada, uma SGA
(System Global Area) é alocada e os processos de
segundo plano do Oracle também são iniciados.
Os processos de segundo plano executam funções
para o processo que faz a chamada. Ex: operações
de entrada/saída (E/S)
Banco de Dados Oracle
Banco de Dados Oracle


É um conjunto de dados tratados como uma
unidade.
Consiste em três tipos de arquivos
Banco de Dados Oracle
Arquivos do Banco de Dados:
 Os arquivos de dados
Contêm os dados reais do banco de dado
 Os arquivos de redo log on-line
Contêm um registro das alterações feitas no banco de
dados para permitir a recuperação dos dados em caso de
falha
 Os arquivos de controle
Contêm as informações necessárias para manter e
verificar integridade do banco de dados
Banco de Dados Oracle
Outras Estruturas Importantes de Arquivos:

O Servidor Oracle também usa outros arquivos que não fazem
parte do banco de dados:
 Os Arquivos de Parâmetros
Define as características de uma instância Oracle. Ex:
parâmetros que dimensionam algumas das estruturas da
memória na SGA.
 O Arquivo de Senhas
Autentica os usuários com privilégios para iniciar e
desativar uma instância Oracle.
 Os Arquivos de Redo Log Arquivados
São cópias off-line dos arquivos de redo log on-line que
podem ser necessários para a recuperação após falhas
de mídia.
Banco de Dados Oracle
Processos da Arquitetura Oracle:
 Processos do usuário e do servidor.
Os processos do usuário e do servidor são os
principais processos envolvidos na execução de
uma instrução SQL. No entanto, outros processos
(obrigatórios) podem ajudar o servidor a concluir o
processamento da instrução SQL.
 Outros processos:
Existem vários outros processos usados por outras
opções, como: Advanced Queuing, Real Application
Clusters, Shared Server, Advanced Replication, etc.
Banco de Dados Oracle
Estabelecendo uma Conexão e Criando uma
Sessão
Banco de Dados Oracle
Estabelecendo uma Conexão e Criando uma
Sessão



Antes de submeterem instruções SQL a um banco
de dados Oracle, os usuários devem se conectar a
uma instância.
O usuário inicia uma ferramenta, como o SQL*Plus,
ou executa uma aplicação. Essa ferramenta ou essa
aplicação é executada como um processo do
usuário.
Na maioria das configurações básicas, quando um
usuário efetua logon no servidor Oracle, é criado
um processo no computador que executa esse
servidor. Esse processo denomina-se processo do
servidor.
Banco de Dados Oracle
Estabelecendo uma Conexão e Criando uma
Sessão
Conexão


Uma conexão é um caminho de comunicação entre
um processo do usuário e um servidor Oracle.
Há três maneiras de conexão para o usuário:



Logon no SO onde está instalado o Servidor Oracle.
Conexão via rede (duas camadas)
Conexão via rede (três camadas)
Banco de Dados Oracle
Estabelecendo uma Conexão e Criando uma
Sessão
A conexão pode ser :


Dedicada - Para cada processo do usuário se
tem um processo de servidor.
Compartilhada - Um processo de servidor
atende a vários processos de usuário.
Sessões
Uma sessão é uma conexão específica de um
usuário com um servidor Oracle.
Banco de Dados Oracle
Estrutura Lógica e Física da Arquitetura Oracle
Banco de Dados Oracle
Estrutura Lógica e Física da Arquitetura Oracle

A arquitetura do banco de dados Oracle inclui
estruturas lógicas e físicas que formam o banco de
dados.
A estrutura física
Inclui os arquivos que formam o banco de dados
(3 tipos de arquivos).
A estrutura lógica
Inclui tablespaces, segmentos, extensões e blocos
Banco de Dados Oracle
Estrutura Lógica e Física da Arquitetura Oracle

Existe a seguinte hierarquia de estruturas lógicas:

Um banco de dados Oracle contém no mínimo
um tablespace.

Um tablespace contém um ou mais
segmentos.

Um segmento é composto de extensões.

Uma extensão é composta de blocos lógicos.

Um bloco é a menor unidade para operações
de leitura e gravação.
Banco de Dados Oracle
Estrutura Lógica e Física da Arquitetura Oracle
Banco de Dados Oracle
Estrutura Lógica
Banco de Dados Oracle
Estrutura Física

A estrutura física de um banco de dados Oracle
inclui três tipos de arquivos:
Banco de Dados Oracle
Estrutura da Memória
Banco de Dados Oracle
Estrutura da Memória

A estrutura da memória do Oracle consiste em duas
áreas denominadas:


SGA – System Global Area (alocada na inicialização da
instância)
PGA – Program Global Area (alocada quando um
processo de servidor é iniciado)
Banco de Dados Oracle
System Global Area


Ela é usada para armazenar informações do banco
de dados compartilhadas pelos processos do banco
de dados.
Consiste em várias estruturas de memória:




Shared Pool
Cache de Buffer do Banco de Dados
Buffer de Redo Log
etc
Banco de Dados Oracle
System Global Area

A partir do 9i a SGA é dinâmica sendo dimensionada
pelo parâmetro SGA_MAX_SIZE.
Banco de Dados Oracle
SGA - Shared Pool

Usado para armazenar:


As instruções SQL executadas mais recentemente.
As definições de dados usadas mais recentemente.
Banco de Dados Oracle
SGA - Shared Pool


Dimensionado pelo parâmetro SHARED_POOL_SIZE
Ele consiste em duas estruturas principais de
memórias relacionadas ao desempenho:


Cache de Biblioteca
Cache de Dicionário de Dados
Banco de Dados Oracle
SGA – Shared Pool - Cache de Biblioteca




Armazena as informações sobre as instruções SQL e
PL/SQL mais usadas recentemente.
Permite o compartilhamento de instruções usadas
normalmente.
É gerenciado por um algoritmo LRU (Least Recently
Used).
Consiste em duas estruturas de memória:



Área SQL compartilhada
Área PL/SQL compartilhada
Tamanho determinado pelo dimensionamento da
SHARED POOL.
Banco de Dados Oracle
SGA – Shared Pool - Cache de Dicionário de
Dados


As informações sobre o banco de dados (dados de
contas de usuários, nomes de arquivos de dados,
nomes de segmentos, locais de extensões,
descrições de tabelas e privilégios de usuários) são
armazenadas nas tabelas do dicionário de dados.
Quando o servidor necessita dessas informações, as
tabelas do dicionário de dados são lidas e os dados
retornados são armazenados no Cache de
Dicionário de Dados.
Banco de Dados Oracle
SGA - Cache de Buffer do Banco de Dados
Banco de Dados Oracle
SGA - Cache de Buffer do Banco de Dados

Quando uma consulta é processada, o processo do
servidor Oracle consulta os blocos necessários no
Cache de Buffer do Banco de Dados.



Se o bloco não é encontrado nesse cache, o processo do
servidor lê o bloco no arquivo de dados e coloca uma
cópia no Cache de Buffer do Banco de Dados.
Como as solicitações subseqüentes do mesmo bloco
podem encontrar esse bloco na memória, talvez
elas não precisem de leituras físicas.
O servidor Oracle usa um algoritmo LRU.
Banco de Dados Oracle
SGA - Buffer de Redo Log
Banco de Dados Oracle
SGA - Buffer de Redo Log

O Buffer de Redo Log é um buffer circular que
contém alterações feitas em blocos de arquivos de
dados.


As entradas de redo contêm as informações necessárias
para recriar os dados anteriores às alterações feitas
pelas operações INSERT, UPDATE, DELETE, CREATE,
ALTER ou DROP.
O objetivo principal é a recuperação.
Banco de Dados Oracle
SGA - Large Pool
Banco de Dados Oracle
SGA - Large Pool

Área de memória opcional da SGA. Usado para:




Memória de sessão para o servidor compartilhado.
Processos do servidor de E/S.
Operações de backup e restauração ou RMAN.
Pode ser dimensionado dinamicamente com
LARGE_POOL_SIZE.
Banco de Dados Oracle
SGA - Program Global Area
Banco de Dados Oracle
SGA - Program Global Area


A PGA (Program Global Area ou Process Global
Area) é uma região da memória que contém os
dados e as informações de controle de um único
processo do servidor ou de um único processo de
segundo plano.
Alocada quando um processo é criado.
Banco de Dados Oracle
SGA - Program Global Area


Desalocada quando o processo é encerrado.
Usada somente por um processo ao contrário da
SGA.
Banco de Dados Oracle
SGA - Processos de Segundo Plano
Banco de Dados Oracle
SGA - Processos de Segundo Plano


A arquitetura Oracle tem cinco processos de
segundo plano obrigatórios: DBWn, PMON, CKPT,
LGWR, SMON.
Além da lista obrigatória, o Oracle tem vários
processos de segundo plano opcionais iniciados
quando sua respectiva opção é usada.
Ex:Advanced Queuing, Real Application Clusters,
Shared Server, Advanced Replication, etc.
Banco de Dados Oracle
SGA - DBWn (Database Writer)
Banco de Dados Oracle
SGA - DBWn (Database Writer)


Grava as alterações feitas no Cache de Buffer do
Banco de Dados nos arquivos de Dados.
Isto ocorre quando:




Não há buffers livres.
Os buffers sujos atingem um limite.
Ocorre um checkpoint.
Etc.
Banco de Dados Oracle
SGA - LGWR (Log Writer)
Banco de Dados Oracle
SGA - LGWR (Log Writer)

O LGWR grava:

No commit

Quando 1/3 está cheio

Quando há 1 MB de redo

A cada 3 segundos

Antes que o DBWn grave
Banco de Dados Oracle
SGA - SMON (System Monitor)
Banco de Dados Oracle
SGA - SMON (System Monitor)

Responsabilidades:

Recuperação de instância

Aglutina o espaço livre (arquivos de dados)

Desaloca segmentos temporários (arquivos de
dados)
Banco de Dados Oracle
SGA - PMON (Processor Monitor)
Banco de Dados Oracle
SGA - PMON (Processor Monitor)

Realiza uma limpeza após falhas de processos por
meio de:




Faz rollback da transação atual do usuário
Libera todos os bloqueios de tabela ou linha mantidos
no momento
Libera outros recursos reservados pelo usuário no
momento
Etc.
Banco de Dados Oracle
SGA - CKPT (Checkpoint)
Banco de Dados Oracle
SGA - CKPT (Checkpoint)

Responsável por:



Sinalizar o DBWn em checkpoints
Atualizar as informações de ckeckpoint nos cabeçalhos
dos arquivos de dados.
Atualizar as informações de ckepoints nos arquivos de
controle.
Download

Banco de Dados Oracle