ποΈ
Arquitetura Completa do Oracle Database
VisΓ£o Geral: InstΓ’ncia + Database
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ORACLE INSTANCE β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SGA (System Global Area) β β
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β β
β β β Shared Pool β β Database β β Redo Log β β β
β β β β β Buffer Cache β β Buffer β β β
β β β - Library β β β β β β β
β β β Cache β β (Data Blocks)β β (Redo β β β
β β β - Data Dict β β β β Entries) β β β
β β β Cache β β β β β β β
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β β
β β ββββββββββββββββ ββββββββββββββββ β β
β β β Java Pool β β Large Pool β β β
β β ββββββββββββββββ ββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β BACKGROUND PROCESSES β β
β β PMON SMON DBWn LGWR CKPT ARCn RECO ... β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β USER PROCESSES β β
β β Server Process 1 β PGA (Program Global Area) β β
β β Server Process 2 β PGA β β
β β Server Process n β PGA β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ORACLE DATABASE β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PHYSICAL STRUCTURES β β
β β β β
β β Data Files Control Files Redo Log Files β β
β β ββββββββββββ ββββββββββββ ββββββββββββ β β
β β β system01 β β control1 β β redo01 β β β
β β β sysaux01 β β control2 β β redo02 β β β
β β β users01 β β control3 β β redo03 β β β
β β β undotbs1 β ββββββββββββ ββββββββββββ β β
β β β temp01 β β β
β β ββββββββββββ Archive Log Files β β
β β ββββββββββββ β β
β β Parameter File β arch0001 β β β
β β ββββββββββββ β arch0002 β β β
β β β spfile β β arch... β β β
β β ββββββββββββ ββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
InstΓ’ncia
Estruturas em memΓ³ria (SGA, PGA) e processos que gerenciam o acesso aos dados. Existe apenas enquanto o banco estΓ‘ rodando.
Database
Arquivos fΓsicos no disco que armazenam os dados, metadados e logs. Persistem mesmo quando o banco estΓ‘ desligado.
πΎ
SGA - System Global Area
Componentes da SGA
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β SGA (Shared Memory) β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β DATABASE BUFFER CACHE β β β β β’ Armazena cΓ³pias de blocos de dados lidos do disco β β β β β’ Reduz I/O fΓsico mantendo dados em memΓ³ria β β β β β’ Gerenciado por algoritmo LRU (Least Recently Used)β β β β β’ Tamanho: configurΓ‘vel via DB_CACHE_SIZE β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β SHARED POOL β β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Library Cache β β β β β β β’ SQL statements parsed β β β β β β β’ Execution plans β β β β β β β’ PL/SQL code β β β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Data Dictionary Cache β β β β β β β’ Metadados de tabelas, Γndices, usuΓ‘rios β β β β β β β’ InformaΓ§Γ΅es de privilΓ©gios β β β β β βββββββββββββββββββββββββββββββββββββββββββββββ β β β β Tamanho: SHARED_POOL_SIZE β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β REDO LOG BUFFER β β β β β’ Armazena alteraΓ§Γ΅es (redo entries) antes de gravarβ β β β β’ LGWR escreve para redo log files β β β β β’ Tamanho: LOG_BUFFER β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β LARGE POOL (Opcional) β β β β β’ Usado por RMAN, Shared Server, Parallel Queries β β β β β’ Reduz fragmentaΓ§Γ£o do Shared Pool β β β β β’ Tamanho: LARGE_POOL_SIZE β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β JAVA POOL (Opcional) β β β β β’ Usado por Java Virtual Machine dentro do Oracle β β β β β’ Tamanho: JAVA_POOL_SIZE β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β Gerenciamento AutomΓ‘tico: SGA_TARGET (ASMM) β β Gerenciamento Completo: MEMORY_TARGET (AMM) β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βοΈ
Processos de Background
π
PMON - Process Monitor
- Detecta processos falhos
- Libera recursos de sessΓ΅es mortas
- Faz rollback de transaΓ§Γ΅es incompletas
- Registra instΓ’ncia no listener
π οΈ
SMON - System Monitor
- Recovery na inicializaΓ§Γ£o (instance recovery)
- Limpa segmentos temporΓ‘rios
- Coalece espaΓ§os livres em tablespaces
- Recupera transaΓ§Γ΅es mortas
πΏ
DBWn - Database Writer
- Escreve blocos sujos (dirty blocks) para disco
- Escreve em checkpoints
- Quando buffer cache estΓ‘ cheio
- MΓΊltiplos processos: DBW0..DBW9, DBWa..DBWj
π
LGWR - Log Writer
- Escreve redo log buffer para redo log files
- Escreve em COMMIT
- A cada 3 segundos
- Quando buffer estΓ‘ 1/3 cheio
β
CKPT - Checkpoint
- Atualiza headers dos datafiles
- Atualiza control files
- Sinaliza DBWn para escrever dirty blocks
- Reduz tempo de recovery
π¦
ARCn - Archiver
- Copia redo logs para archive logs
- Apenas em ARCHIVELOG mode
- Essencial para backups completos
- MΓΊltiplos processos: ARC0..ARC9, ARCa..ARCt
π
Estruturas FΓsicas do Database
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β PHYSICAL DATABASE FILES β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β DATA FILES (.dbf) β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Tablespace: SYSTEM β β β β β β File: /u01/oradata/ORCL/system01.dbf β β β β β β β’ Data dictionary β β β β β β β’ System tables β β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Tablespace: SYSAUX β β β β β β File: /u01/oradata/ORCL/sysaux01.dbf β β β β β β β’ Auxiliary system data β β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Tablespace: USERS β β β β β β File: /u01/oradata/ORCL/users01.dbf β β β β β β β’ User data and objects β β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Tablespace: UNDOTBS1 β β β β β β File: /u01/oradata/ORCL/undotbs01.dbf β β β β β β β’ Undo data (rollback segments) β β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β β β Tablespace: TEMP β β β β β β File: /u01/oradata/ORCL/temp01.dbf β β β β β β β’ Sort operations, temporary data β β β β β ββββββββββββββββββββββββββββββββββββββββββββββββ β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β CONTROL FILES (.ctl) β β β β β’ /u01/oradata/ORCL/control01.ctl β β β β β’ /u01/fast_recovery_area/ORCL/control02.ctl β β β β β’ Database structure metadata β β β β β’ Datafile locations and names β β β β β’ Checkpoint information β β β β β’ CRITICAL: Multiplexed for redundancy β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β REDO LOG FILES (.log) β β β β Group 1: β β β β β’ /u01/oradata/ORCL/redo01a.log β β β β β’ /u01/oradata/ORCL/redo01b.log β β β β Group 2: β β β β β’ /u01/oradata/ORCL/redo02a.log β β β β β’ /u01/oradata/ORCL/redo02b.log β β β β Group 3: β β β β β’ /u01/oradata/ORCL/redo03a.log β β β β β’ /u01/oradata/ORCL/redo03b.log β β β β β’ Record all changes (DML, DDL) β β β β β’ Circular usage (log switch) β β β β β’ Multiplexed members in each group β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β ARCHIVE LOG FILES (when in ARCHIVELOG mode) β β β β β’ /u01/fast_recovery_area/ORCL/archivelog/ β β β β - arch_1_12345.arc β β β β - arch_1_12346.arc β β β β - ... β β β β β’ Copies of filled redo logs β β β β β’ Required for point-in-time recovery β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β β PARAMETER FILE β β β β SPFILE: /u01/oracle/dbs/spfileORCL.ora β β β β (Binary, managed by Oracle) β β β β OR β β β β PFILE: /u01/oracle/dbs/initORCL.ora β β β β (Text, manually editable) β β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π
Fluxo de OperaΓ§Γ΅es
Fluxo de uma TransaΓ§Γ£o (UPDATE)
1. User Process executa: UPDATE employees SET salary = 5000 WHERE id = 123;
2. Server Process:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Verifica se bloco estΓ‘ no DB Buffer Cache β
β β’ Se SIM β lΓͺ da memΓ³ria (logical read) β
β β’ Se NΓO β lΓͺ do datafile (physical read) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β‘ Gera UNDO entry (valor antigo) no Undo Segment β
β β’ Permite ROLLBACK β
β β’ Read consistency para outras sessΓ΅es β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β’ Gera REDO entry no Redo Log Buffer β
β β’ Registra a mudanΓ§a (change vector) β
β β’ Protege contra falhas β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β£ Atualiza bloco no DB Buffer Cache β
β β’ Bloco agora Γ© "dirty" (modificado) β
β β’ Ainda NΓO estΓ‘ no disco β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
3. User executa: COMMIT;
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β€ LGWR escreve Redo Log Buffer β Redo Log Files β
β β’ SYNC write (aguarda confirmaΓ§Γ£o do OS) β
β β’ TransaΓ§Γ£o Γ© DURΓVEL apΓ³s este ponto β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β₯ Server Process confirma COMMIT ao usuΓ‘rio β
β β’ "Commit complete" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
4. Em background (assΓncrono):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β¦ DBWn escreve dirty blocks β Data Files β
β β’ Acontece em checkpoints β
β β’ Ou quando buffer cache estΓ‘ cheio β
β β’ NΓO bloqueia o COMMIT β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
IMPORTANTE:
- COMMIT forΓ§a LGWR a escrever (redo logs SEMPRE antes de retornar)
- COMMIT NΓO forΓ§a DBWn (datafiles escritos depois, de forma lazy)
- Recovery usa redo logs para replicar mudanΓ§as nΓ£o escritas em datafiles
π‘
Como Usar Estes Diagramas
β
ReferΓͺncia RΓ‘pida
Imprima e mantenha prΓ³ximo durante troubleshooting.
β
Treinamento
Use para explicar arquitetura para novos membros da equipe.
β
DiagnΓ³stico
Identifique qual componente estΓ‘ envolvido em um problema de performance.
β
Planejamento
Use para decidir alocaΓ§Γ£o de memΓ³ria, quantidade de processos, etc.