Datalbi  
Créé le 05/11/2015 par Laurent Bourcier

Architecture Process d'Oracle 12c

Introduction

Une instance Oracle est constituée de :

Une base de données est constituée de :

Le schema d'architecture interne d'Oracle est représenté ci-dessous.

Les Principaux Background Process

Selon que le parametre THREADED_EXECUTION est à TRUE ou FALSE, les process peuvent être dans des thread ou pas.
Par défaut, THREADED_EXECUTION = FALSE, ce qui correspond au comportement pré 12c.

Les principaux background process sont :
Code Nom Description
DBWn db writer process Ce(s) process écrit les blocs modifiés en mémoire vers les datafiles.
Il se déclenche à la demande (un process ne peut écrire dans le buffer cache)
Il se déclenche aussi périodiquement et fait avancer le checkpoint, qui est le plus ancien dirty bloc en mémoire.
Parametre : DB_WRITER_PROCESSES (default 1 ou CPU_COUNT/8)
LGWR Log Writer Ce(s) process écrit au file de l'eau les buffers de redologs dans le redolog actif.
Il doit écrire l'ensemble du buffer dans les cas suivants :
- Un utilisateur fait un commit
- Un switch de redolog
- Si le buffer est plein à un tiers
- Toutes les 3 secondes
DBW envoit un ordre à LGWR pour que les blocs écrits dans les datafiles soient dans les redologs en premier.
ARCn Archival Process Ce process copie les redologs vers la destination d'archive après chaque switch de redolog.
Parametre : LOG_ARCHIVE_MAX_PROCESSES (defaut 4)
CKPT Checkpoint Process Ce process met à jour le controlfile et le header des datafiles avec un numero SCN indiquant le checkpoint.
On distingue les thread checkpoint (equivalent à un database checkpoint sur une base standalone) qui ont lieu :
- Quand on a un switch de redolog
- Quand on arrete la base par shutdown consistant
- Quand on réalise un ALTER DATABASE BEGIN BACKUP
- Quand on réalise un ALTER SYSTEM CHECKPOINT
On distingue les tablespace checkpoint qui ont lieu :
- Quand on realise ALTER TABLESPACE READ ONLY
- Quand on realise ALTER TABLESPACE OFFLINE
- Quand on realise ALTER TABLESPACE BEGIN BACKUP
On distingue les checkpoint incrementaux, qui ne mettent a jour que le controlfile et pas les datafiles
- Toutes les 3 secondes, DBW met a jour des blocks et envoie un message à CKPT pour faire avancer le checkpoint.
RVWR Recovery Writer Ce process écrit dans les flashback logs.
CJQn Job Queue Coordinator Ce process est chargé d'executer des jobs du scheduler.
Parametres : JOB_QUEUE_PROCESSES (default 1000) = nombre max de process
LREG Listener Registration Ce process est chargé d'enregistrer la base aupres du listener.
Avant la version 12c, c'etait le process PMON qui realisait cette tache.
PSP0 Process Spawner Ce process est chargé de spwaner les autres background process
PMON Process Monitor Ce process est chargé de surveiller les process server (et aussi background).
Si un process a été tué, il libère les locks, libère les autres ressources et enlève la ligne dans la liste des sessions.
SMON System Monitor Ce process réalise :
- une instance recovery si necessaire au démarrage de la base
- un recover de transaction lorsqu'un tablespace ou fichier redevient online
- un nettoyage des extents libres dans le tablespace temporaire
- un coalesce des free extents dans les tablespace dictionary managed
RECO Distributed Recovery Ce process résoud les problèmes de transactions distribuées.
MMAN Memory Manager Ce process est chargé des opérations dynamiques d'allocation mémoire.
MMON Manageability Monitor Process Ce process est chargé d'alimenter AWR.
MMNL Manageability Monitor Process Light Ce process est chargé d'alimenter AWR en Active Session History (ASH)
DIA0 Diagnostic Process Ce process détecte et résout les hang et deadlocks.
DIAG Diagnostic Capture Process Ce process capture les informations de diagnostic lorsqu'il y a un problème.
VKTM Virtual Keeper of Time Process Ce process fournit l'heure à l'instance Oracle.

Les autres Process

Code Nom Description
Jnnn Job Process Execution de jobs
Dnnn Dispatcher Process Mode MTS
Snnn Shared Server Process Mode MTS
Pnnn Parallel Query Slave Execution parallele

Liste des Parametres d'Initialisation

Vues du dictionnaire de données

Les vues donnant des informations sur les process sont :

select NAME, DESCRIPTION
from V$BGPROCESS
where PADDR != '00'
order by NAME;

NAME  DESCRIPTION
----- ----------------------------------------------------------------
AQPC  AQ Process Coord
ARC0  Archival Process 0
ARC1  Archival Process 1
ARC2  Archival Process 2
ARC3  Archival Process 3
CJQ0  Job Queue Coordinator
CKPT  checkpoint
DBRM  DataBase Resource Manager
DBW0  db writer process 0
DIAG  diagnosibility process
DIA0  diagnosibility process 0
GEN0  generic0
LGWR  Redo etc.
LREG  Listener Registration
MMAN  Memory Manager
MMNL  Manageability Monitor Process 2
MMON  Manageability Monitor Process
PMON  process cleanup
PSP0  process spawner 0
PXMN  PX Monitor
RECO  distributed recovery
SMCO  Space Manager Process
SMON  System Monitor Process
TMON  Transport Monitor
VKRM  Virtual sKeduler for Resource Manager
VKTM  Virtual Keeper of TiMe process