ORACLE
ARQUITETURA FÍSICA
ARQUITETURA FÍSICA
INSTÂNCIA
BANCO DE DADOS
MEMÓRIA
ARQUIVOS
PROCESSOS
O servidor Oracle consiste em:
uma INSTÂNCIA e um BANCO DE DADOS
INSTÂNCIA
É a combinação dos processos de segundo plano (background) e das estruturas de
memória SGA (System Global Area).
Quando uma instância é iniciada, uma SGA é alocada e processos de background são
iniciados.
Informações sobre a instância podem ser obtidas na visão V$INSTANCE.
SELECT INSTANCE_NAME FROM V$INSTANCE;
MEMÓRIAS
PGA (Program Glogal Area)
Região privativa de cada sessão na qual são armazenados dados temporários
(exemplo: variáveis).
Cada conexão provoca a criação de uma
pequena área na PGA.
MEMÓRIAS
SGA (System Glogal Area)
Armazena informações que são compartilhadas pelos processos do banco de dados.
Consiste em diversas estruturas de memória:
SHARED POOL
LIBRARY CACHE
DATA DICTIONARY CACHE
DATA BUFFER CACHE
REDO LOG BUFFER
Informações sobre a SGA podem ser obtidas na visão V$SGA.
SELECT * FROM V$SGA;
MEMÓRIAS
SGA (System Glogal Area)
SHARED POOL
LIBRARY CACHE
Armazena instruções SQL mais executadas recentemente.
DATA DICTIONARY CACHE
Armazena dados do DICIONÁRIO DE DADOS mais usados.
A ocupação da memória ocorre segundo um algoritmo LRU
(Least Recently Used): os mais acessados ficam mais tempo.
MEMÓRIAS
SGA (System Glogal Area)
DATA BUFFER CACHE
Armazena em blocos (DATA BLOCK BUFFERS) os dados mais usados recentemente.
Os dados são lidos e gravados nos DATA FILES.
Cada bloco pode estar em quatro estados:
LIVRE: Não preenchido com dados provenientes de disco.
OCUPADO: Preenchido (conforme algoritmo LRU).
SUJO: Preenchido e alterado, deve ser gravado em disco.
ROLLBACK: Possui dados que poderão ser reaproveitados caso a transação que o alterou seja encerrada sem
gravação.
MEMÓRIAS
SGA (System Glogal Area)
REDO LOG BUFFER
Controla as alterações efetuadas no banco de dados.
Registra todas as transações ‘comitadas’.
Trata-se de uma lista circular cujo conteúdo é gravado periodicamente nos REDO LOG FILES.
As transações não ‘comitadas’ residem em áreas de
rollback (memória ou disco).
ARQUIVOS
Três conjuntos de arquivos armazenam os dados fisicamente e controlam as diversas funções do Oracle:
DATA FILES
CONTROL FILES
REDO LOG FILES
Estes arquivos devem estar presentes, abertos e
disponíveis antes que quaisquer dados possam ser
acessados.
ARQUIVOS
DATA FILES
Armazenam os dados: tabelas, índices e áreas temporárias e de rollback.
Estão sempre ligados a um TABLESPACE.
Informações sobre os DATAFILES podem ser obtidas nas visões V$DATAFILE (mais completa) e
V$DBFILE (apenas dois campos).
SELECT NAME FROM V$DBFILE;
ARQUIVOS
CONTROL FILES
Armazenam a estrutura do banco de dados e seu sincronismo por meio do SCN (System Change Number).
Quando ocorre um CHECKPOINT ou quando há
alterações na estrutura do banco de dados, o arquivo de controle é atualizado.
Informações sobre os CONTROL FILES podem ser obtidas na visão V$CONTROLFILE.
SELECT NAME FROM V$CONTROLFILE;
ARQUIVOS
REDO LOG FILES
Mantêm um histórico das transações efetuadas,
permitindo refazer as operações no caso de perda de dados.
É exigido no mínimo dois destes arquivos que são gravados de forma cíclica: conforme o espaço de um se esgota, procede - se à gravação de outro.
Informações sobre os REDO LOG FILES podem ser obtidas nas visões V$LOG e V$LOGFILE.
SELECT * FROM V$LOGFILE;
ARQUIVOS
REDO LOG FILES
Se o banco de dados estiver em modo archiving, quando um REDO LOG FILE enche, antes de se passar para o próximo é realizada uma cópia dele:
ARCHIVED LOG FILES (.ARC).
Em ambiente de produção, o banco de dados sempre
deve estar em archiving mode.
ARQUIVOS
O Oracle utiliza outros arquivos que não fazem parte do banco de dados:
PARAMETER FILE: Definem os parâmetros que dimensionam algumas estruturas de memória na SGA (ver parâmetros).
PASSWORD FILE: Autentica os usuários que têm permissão para inicializar ou desativar uma instância Oracle.
ARCHIVED LOG FILE: São cópias off- line dos REDO LOG FILES que podem ser necessários para
recuperação depois de falhas de mídia.
PROCESSOS DE SEGUNDO PLANO
Finalidade principal: integrar as estruturas de memória aos arquivos em disco.
Cinco processos de background são fundamentais:
DBW0 – Database Writer (DBW0 a DBW9)
LGWR – Log Writer
SMON – System Monitor
PMON – Process Monitor
CKPT – Checkpoint Process
Informações sobre os processos podem ser obtidas na visão V$BGPROCESS.
SELECT NAME FROM V$BGPROCESS;
PROCESSOS DE SEGUNDO PLANO
DBW0: Grava dados alterados do DATA BUFFER CACHE nos DATA FILES.
LGWR: Grava os dados registrados no REDO LOG BUFFER nos REDO LOG FILES.
SMON: Verifica a consistência no banco de dados e, se
necessário, inicia a recuperação do banco de dados quando ele é aberto.
PMON: Disponibiliza recursos se um processo falhar.
Exemplo: limpa os processos de usuário que falharam e libera recursos que o usuário estava usando.
CKPT: Atualiza as informações de status do banco de dados nos CONTROL FILES e nos DATA FILES, sempre que
alterações no DATA BUFFER CACHE ficam registradas no
banco de dados de forma permanente.
PROCESSOS DE SEGUNDO PLANO
O processo seguinte não é imprescindível, mas é recomendável:
ARCH – Archiver
Copia o conteúdo dos REDO LOG FILES para os ARCHIVED LOG FILES localizados em HDs ou fitas.
Como a gravação nos REDO LOG FILES é cíclica, o
processo impede que algum registro de transação se
perca.
PARÂMETROS
O funcionamento de uma instância é determinado por PARÂMETROS que constam no arquivo INITsid.ORA.
Os mais importantes são:
DB_BLOCK_SIZE: Tamanho do bloco, menor unidade manípulável pelo Oracle.
DB_BLOCK_BUFFERS: Tamanho do DATA BUFFER CACHE.
SHARED_POOL_SIZE: Tamanho da SHARED POOL AREA.
LOG_BUFFER: Tamanho do REDO LOG BUFFER.
ABRIR O BANCO DE DADOS
Conectar-se no SQL*Plus:
connect system/manager as sysdba
Etapas:
SHUTDOWN
Fecha a Instância e o Banco STARTUP NOMOUNT
Instância aberta
Banco fechado
ALTER DATABASE MOUNT
Instância aberta
Banco parcialmente aberto ALTER DATABASE OPEN
Instância aberta
Banco aberto
SHUTDOWN: OPÇÕES
SHUTDOWN NORMAL
Espera os usuários fazerem logout antes de fechar a Instância e o Banco de Dados.
Não permite que novos usuários acessem o Banco de Dados.
Não força os usuários atuais a fazer logout.
Não requer nenhuma recuperação da Instância.
SHUTDOWN TRANSACTIONAL
Nenhum cliente poderá iniciar uma nova transação na Instância.
O cliente é desconectado quando termina a transação que está em andamento.
Um SHUTDOWN IMMEDIATE ocorre quando todas as transações terminam.
Não requer nenhuma recuperação da Instância.
SHUTDOWN IMMEDIATE
Não espera os usuários fazerem logout: termina as conexões imediatamente e retorna as transações não concluídas.
Não requer nenhuma recuperação da Instância.
SHUTDOWN ABORT
O Banco de Dados é fechado imediatamente.
Todos os usuários são imediatamente desconectados.
Nenhuma transação é retornada.