Le fonctionnement de la base Oracle est régi par un
certain nombre de processus chargés en mémoire permettant
d'assurer la gestion de la base de données.
On distingue généralement deux types de processus
:
· les processus utilisateurs (appelés aussi
user process ou noyau
oracle)
On distingue deux types de processus utilisateurs :
o Oracle Server Code, aussi appelé
noyau d'Oracle, est chargé
d'interpréter et d'exécuter les requêtes SQL, ainsi que de
gérer la mémoire et les fichiers de données
o Code spécifique de l'outil,
l'implémentation qui exécute réellement les commandes
SQL.
· Les processus systèmes (oracle
process).
Les processus Oracle (processus système) se classent en
deux catégories :
o Les processus serveurs (process server)
gérant les requêtes des utilisateurs provenant des connections
à la base de données générées par des outils
tels que SQL*Plus. Le processus serveur est chargé de la communication
entre la SGA5 et le processus utilisateur. Il permet ainsi
d'analyser et d'exécuter les requêtes SQL des utilisateurs, de
lire les fichiers de données et de placer les blocs de données
correspondants dans la SGA.
o Les processus d'arrière-plan
(background process) chargés d'assurer le fonctionnement interne du SGBD
Oracle (gestion de la mémoire, écriture dans les fichiers,
...).
Un processus utilisateur est créé pour chaque
programme exécuté par un utilisateur (par exemple Oracle Forms ou
Server Manager) afin de fournir l'environnement nécessaire à
l'exécution de celui-ci. Le processus utilisateur ainsi
créé communique avec les processus systèmes à
travers le programme interface.
5 System Global Area
Chaque processus a pour nom
ora_nomduprocessus_SID où SID
représente le nom de l'instance à laquelle le processus est
associé.
Les 4 principaux processus systèmes sont :
· DBWR (DataBase
Writer ou Dirty Buffer Writer), le
processus chargé d'écrire le contenu des buffers dans les
fichiers de données
· LGWR (Log
Writer), le processus chargé d'écrire le contenu
des buffers dans les fichiers Redo Log
· PMON (Process
Monitor), le processus chargé de nettoyer les ressources,
les verrous et les processus utilisateurs non utilisés
· SMON (System
Monitor), le processus chargé de vérifier la
cohérence de la base de données et éventuellement sa
restauration lors du démarrage si besoin
Il existe également d'autres processus d'importance
secondaire :
· CKPT
(CheckPoint), le processus chargé
d'écrire le contenu des buffers dans les fichiers de données
· RECO
(Recoverer), il s'agit d'un processus optionnel
permettant de résoudre les transactions interrompues brutalement dans un
système de bases de données distribuées (par exemple un
système de réplication de bases de données)
· ARCH
(Archiver). Ce processus est optionnel et n'existe
qu'en mode ARCHIVELOG. Il permet de dupliquer les
fichiers Redo-Log dans un espace d'archivage.
· Dnnnn
(Dispatcher, nnnn
représente une suite de nombre entiers) : Ce processus est optionnel et
n'est présent que dans les configurations MTS (multi-threaded server).
Il permet de router les requêtes des postes clients-serveurs distants
vers les autres serveurs. Il existe au moins un processus Dnnnn pour chaque
protocole de communication
· Snnnn
(Server, nnnn
représente une suite de nombre entiers) : Ce processus est n'est
également présent que dans les configurations MTS. Il permet de
recevoir les demandes de connexions distantes envoyées par le processus
Dnnnn d'un serveur distant.
·
LCKn (Lock) est un
processus de verrouillage utilisé lorsque Oracle Parallel Server est
installé.
6.2.3. Dictionnaires de données
d'Oracle
Le dictionnaire de données Oracle représente le
coeur de la base de données. Il s'agit d'un ensemble de tables
systèmes contenant les informations relatives à la structure de
la base de données :
· Utilisateurs de la base (ainsi que leurs
privilèges et leur rôle)
· Noms et caractéristiques des objets contenus dans
la base (tables, vues, index, clusters, triggers, packages, ...)
· Contraintes d'intégrité
· Ressources physiques allouées à la base
· ...
Le dictionnaire est créé au moment de la
création de la base et est mis à jour.
Il appartient à l'utilisateur
SYS, mais l'utilisateur
SYSTEM, c'est-à-dire l'administrateur de la
base, possède des droits de lecture sur des vues du dictionnaire. Enfin
le dictionnaire de données est conservé dans le tablespace
SYSTEM.
Le dictionnaire de données sert principalement dans deux
situations :
· afin de vérifier la syntaxe et les
privilèges sur une requête SQL (pour le DDL, Data
Definition Language)
· Afin d'obtenir des informations sur la structure de la
base de données