Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Oracle
Um sistema gerenciador de banco de dados relacional Oracle
consiste de dois componentes-chave: A Instancia e o Banco de Dados.
Uma instancia consiste da Estrutura de Memria e os Processos de
Background. Quando voc inicia um banco de dados, o Oracle inicia a
instancia, e ento a instancia "monta" e conecta (ou abre) o banco de dados.
Enquanto a instancia transitria na memria do computador, o banco de
dados consiste de arquivos em discos permanentes.
Quando um usurio se conecta ao Oracle, o sistema cliente
executa um 'user process' (processo de usurio). Este user process no
computador cliente se conecta atravs da rede ou internet a um processo de
servidor (server process) rodando no banco de dados servidor. Este server
process, ento, executa as instrues SQL no servidor e retorna os resultados
atravs da rede ao seu user process parceiro no computador cliente. Em uma
arquitetura de trs nveis, o processo de usurio pode, na verdade, ser
programas em execuo em um servidor de aplicao tal como o Oracle
Application Server.
Independentemente, cada processo de servidor tem sua prpria
rea de memria NO compartilhada chamada de PGA (Program Global Area).
Um simples processo de servidor pode suportar: Um processo de usurio
(chamada Sigle-Server architecture) ou mais do que um processo de usurio
simultaneamente (chamada Shared Server architecture).
Estrutura de Memria
A Instancia consiste de dois componentes: A Estrutura de Memria
e os Processos de Background. A principal alocao de memria para a
instancia chamada de SGA (System Global Area). Ela pode ser decomposta
em mais detalhes, mas no mais alto nvel ela consiste de trs componentes
obrigatrios e trs componentes opcionais. Os trs componentes obrigatrios
so: Database Buffer Cache, Shared Pool e RedoLog Buffer. Os trs
componentes opcionais so: Large Pool, Java Pool e Streams Pool.
A SGA, o Database Buffer Cache, Shared Pool, Large Pool, Java
Pool e Streams Pool so dinmicos no tamanho e podem ser automaticamente
gerenciados pelo Oracle. O RedoLog Buffer pool esttico e tem um tamanho
fixo desde a inicializao. Ele no pode ser automaticamente gerenciado.
Essa memria em cache mostra que o Oracle mantm um
subconjunto de dados na memria para acessar mais rpido do que seria se
fosse acessar os dados armazenados em disco. O Oracle usa um algoritmo
LRU (Last-Recently Used) para determinar quais informaes sero mantidas
em reas da memria como o Database Buffer Cache e a Shared Pool. Para o
Database Buffer Cache, isso minimiza o acesso aos dados do disco. Para a
Shared Pool, reduz a redundncia na execuo de instrues SQL e o acesso
ao disco.
O Oracle pode gerenciar automaticamente o tamanho da SGA pra
voc (recomendado) ou voc mesmo pode fazer manualmente. O Oracle aloca
e realoca unidades de espaos na SGA chamadas granules. Granules podem
ter 4M, 8M, ou 16M, dependendo do seu sistema.
PROCESSOS DE BACKGROUND
Cada processo de background responsvel por uma ou mais
funes para o sistema de banco de dados Oracle. Cinco deles so
obrigatrios, enquanto muitos outros so opcionais e podem ou no estar
presentes dependendo de quais recursos do Oracle voc utiliza.
Os cinco processos obrigatrios so: SMON, PMON, LGWR, DBWn e
CKPT. Para cada processo de background h uma ou mais letras N, para que
sejam trocadas por nmeros, pois h mais do que um processo para que seja
nomeado. Por exemplo, voc pode ter muitos Database Writers, logo, DBW0,
DBW1, e assim por diante.
Os outros processos de background (opcionais) so: MMAN,
MMON, MMNL, RVWR, CTWR, Snnn, Dnnn, ARCn, RECO, CJQn, Jnnn, QMNn e
DBRM.
Os cinco processos de background principais tem as seguintes
funes:
SMON: Realiza o crash recovery (recuperao de falhas). A
recuperao de instancia do Oracle pode ser realizada automaticamente na
inicializao, se necessrio. Ele monta e abre o banco de dados.
PMON: Realiza a limpeza depois de conexes de usurios ao
banco de dados falharem. Ele realiza o Rollback.
LGWR: Grava redo records do Log Buffer na SGA para o Online
Redo Logs no disco.
DBWn: Grava modificaes ou blocos de dados 'sujos' do
Database Buffer Cache na SGA para os Datafiles no disco.
CKPT: Gerencia os Checkpoints por atualizaes nos arquivos do
banco de dados.
Arquitetura
Arquitetura
Banco
de
Banco de
Dados
Dados
Instancia
Instancia
Estrutura
de
Estrutura de
Memria
Memria
Estrutura
de
Estrutura de
Armazename
Armazename
nto
nto
Estrutura
de
Estrutura de
Processos
Processos
SGA
SGA
Shared
Pool
Shared Pool
Database
Database
Buffer
Cache
Buffer Cache
RedoLog
RedoLog
Buffer
Buffer
Large
Pool
Large Pool
Java
Java Pool
Pool
PGA
PGA
Streams
Streams Pool
Pool
Keep
Keep Buffer
Buffer
Pool
Pool
Recycle
Recycle
Buffer
Pool
Buffer Pool
NK
Buffer
NK Buffer
Cache
Cache
Stack
Space
Stack Space
Datafiles
Datafiles
UGA
UGA (User
(User
Global
Area)
Global Area)
Data
Data
Dicionary
Dicionary
Cache
Cache
Cursor
State
Cursor State
Fixed
Area
Fixed Area
User
User Session
Session
Data
Data
Sort
Sort Area
Area
Hash
Hash Area
Area
Create
Create
Bitmap
Area
Bitmap Area
Bitmap
Bitmap
Merge Area
Area
Merge
Control
Files
Control Files
Redo
Redo Log
Log
Files
Files