Chapter I
# 🏛️ **Architecture d'une Base de Données Oracle : Voyage au Cœur du Système**
Une base de données Oracle est une véritable forteresse numérique, où les données sont
protégées, organisées et optimisées pour des performances maximales. Son architecture
repose sur deux piliers fondamentaux :
🔹 Le côté physique (les fichiers stockés sur le disque)
🔹 Le côté logique (l’organisation interne des données) (tablespaces)
🧱 1. L'Infrastructure Physique : Le Socle de la
Base de Données
Les fichiers physiques constituent l’épine dorsale d’Oracle, garantissant la persistance, la
sécurité et la récupération des données.
📜 a) Fichier de paramètres (Parameter File - SPFILE /
PFILE )
🔹 Ce fichier configure l'instance Oracle en définissant des paramètres essentiels :
✅ La taille de la SGA (System Global Area)
✅ Le chemin des fichiers de contrôle
✅ D’autres paramètres influençant les performances
💡 Deux types existent :
PFILE (modifiable manuellement - fichier texte)
SPFILE (modifiable dynamiquement via SQL*Plus)
🔍 b) Fichier(s) de contrôle (Control Files -
[Link] , [Link] ...) {MULTIPLIXAGE}
📌 Véritable carnet de bord de la base, il contient :
✔️ Le nom de la base de données
✔️ Les emplacements des fichiers de données et redo logs
✔️ L'historique des checkpoints et le statut de la BD
Sans ce fichier, impossible de monter la base ! 😱
🏛️ c) Fichiers de données (Data Files - .dbf )
🔸 Cœur de la base, ces fichiers stockent les données des tables, index, vues... Ils sont
rattachés à des tablespaces comme :
📂 SYSTEM - Contient le dictionnaire de données
📂 TEMP - Espace temporaire pour les tris
🔥 d) Fichiers de redo logs (Redo Log Files - .log )
{Cyclic Behavior}
🔁 Journal de transactions, ces fichiers enregistrent toutes les modifications effectuées.
👉 En cas de panne, Oracle les utilise pour rejouer les transactions et éviter toute perte de
données.
📜 e) Fichiers d'archives des redo logs (Archived Redo
Logs - .arc )
📌 Lorsqu'un redo log est plein, il peut être archivé (mode ARCHIVELOG ).
💾 Utile pour :
✔️ Restaurer la base à un point précis (Point-in-Time Recovery)
✔️ Assurer la continuité des opérations
🗂️ 2. Organisation Logique : La Structure
Intelligente
Les données ne sont pas simplement "posées" sur un disque, elles sont organisées
intelligemment !
📦 Tablespaces → Segments → Extents → Blocs
🎯 Chaque niveau optimise la gestion de l’espace et des performances.
⚙️ 3. L'Instance Oracle : Le Moteur du Système
🚀 Qu'est-ce qu'une instance Oracle ?
💡 Une instance Oracle = une mémoire active + processus de fond permettant l'accès aux
données.
💡 Une base peut avoir plusieurs instances en mode RAC (Real Application Clusters).
Elle repose sur deux piliers fondamentaux :
1️⃣ SGA (System Global Area) → Mémoire partagée 📦
2️⃣ PGA (Program Global Area) → Mémoire privée 💼
🧠 4. Les Composants de la Mémoire : SGA vs
PGA
🏗️ a) SGA (System Global Area) - Mémoire Partagée
🌍 La SGA est un espace mémoire alloué au démarrage de l'instance. Elle comprend :
🔹 Database Buffer Cache - Stocke les blocs de données récemment accédés
🔹 Shared Pool - Contient le dictionnaire de données et les requêtes SQL analysées
🔹 Redo Log Buffer - Mémorise les modifications à écrire dans les redo logs
🔹 Large Pool - Utilisé pour le parallélisme et les backups
🔹 Java Pool - Alloue de la mémoire pour l'exécution des procédures Java
🔹 Streams Pool - Gère la réplication des données
🏗️ b) PGA (Program Global Area) - Mémoire Privée
💼 La PGA est spécifique à chaque processus utilisateur et contient :
🔹 Sort Area - Utilisée pour les tris et jointures
🔹 Session Memory - Stocke les informations de session
🔹 Private SQL Area - Gère l’exécution des requêtes SQL
🔹 Cursors - Stocke les curseurs des requêtes en cours
🛠️ 5. Les Processus de Fond (Background
Processes) dans la PGA
👷♂️ Oracle fonctionne grâce à une armée de processus en arrière-plan. Les principaux sont :
Nom Rôle
PMON (Process Monitor) Nettoie les sessions et libère les ressources après une panne
SMON (System Monitor) Récupère la base en cas de crash et gère les extents fragmentés
DBWn (Database Writer) Écrit les blocs modifiés en mémoire vers les fichiers de données
LGWR (Log Writer) Écrit les transactions validées dans les redo logs
CKPT (Checkpoint) Met à jour les fichiers de contrôle et les fichiers de données
ARCH (Archiver) Archive les redo logs en mode ARCHIVELOG
🚦 6. Modes de la Base de Données : De l’Ombre
à la Lumière
🔄 Une base de données Oracle évolue entre plusieurs états en fonction de son niveau
d’activation.
Mode Description
🔴 Shutdown La base est arrêtée, les fichiers sont fermés et aucune instance
(Fermé) n’est active.
🟡 Nomount (Pré- L’instance est démarrée, la mémoire est allouée, mais la base reste
Monté) inaccessible.
🟠 Mount (Monté) Les fichiers de contrôle sont chargés, mais les données ne sont
pas encore accessibles.
🟢 Open (Ouvert) La base est complètement active, les utilisateurs peuvent
exécuter des requêtes.
📖 Le Dictionnaire de Données Oracle : Le
Cerveau Caché du Système
Le dictionnaire de données Oracle est un véritable registre centralisé qui stocke toutes les
informations essentielles sur la base de données. 📚
Il joue un rôle critique dans la gestion et l’optimisation du système en fournissant des
métadonnées sur :
✅ Les utilisateurs
✅ Les objets (tables, index, vues, séquences...)
✅ Les privilèges et rôles
✅ L’espace utilisé et disponible
✅ Les performances et statistiques du système
🔍 Sans le dictionnaire de données, la base Oracle serait incapable d'interpréter et de
gérer ses propres structures !
🧩 1. Structure et Organisation du Dictionnaire
de Données
Le dictionnaire de données est composé principalement de trois types de vues système qui
permettent d'exploiter ces informations :
Type Préfixe Description
Vues Statique ( USER_* , USER_ , ALL_ , Contiennent les métadonnées des
ALL_* , DBA_* ) DBA_ objets de la BD
Vues Dynamiques ( V$ , GV$ ) V$ , GV$ Données en temps réel sur l’état du
système
🔎 2. Les Vues Statique du Dictionnaire de
Données (DATAFILES)
Ces vues permettent d’accéder aux métadonnées des objets de la base.
Elles sont classées en trois catégories selon leur portée :
Préfixe Accessibilité Utilisation
USER_* L’utilisateur connecté uniquement Liste ses propres objets
ALL_* L’utilisateur + Objets accessibles Voir ses objets + ceux avec accès
DBA_* Réservé aux administrateurs Voir tout dans la base
📌 Exemples Importants :
📋 Tables et colonnes
🔹 USER_TABLES , ALL_TABLES , DBA_TABLES → Infos sur les tables
🔹 USER_TAB_COLUMNS → Infos sur les colonnes d’une table
📂 Indexes et Contraintes
🔹 USER_INDEXES , ALL_INDEXES , DBA_INDEXES → Infos sur les index
🔹 USER_CONSTRAINTS , DBA_CONSTRAINTS → Infos sur les contraintes
👤 Utilisateurs et Privilèges
🔹 DBA_USERS → Liste des utilisateurs
🔹 DBA_ROLES → Liste des rôles
🔹 DBA_SYS_PRIVS , DBA_TAB_PRIVS → Privilèges système et objets
📊 3. Les Vues Dynamiques de Performance ( V$
et GV$ ) (Control Files, SGA Pool, Redo Log Files)
Contrairement aux vues statiques, les vues V$ fournissent des informations dynamiques en
temps réel sur l'état du système.
Nom de la Vue Rôle
V$INSTANCE Infos sur l’instance en cours
V$DATABASE Infos générales sur la base
V$SESSION Sessions actives et connexions
V$LOG Infos sur les redo logs
V$SGA Infos sur la mémoire (SGA)
V$PGA Infos sur la mémoire privée
💡 Exemple : Voir toutes les sessions actives
SELECT sid, serial#, username, status, machine
FROM v$session;
💡 Exemple : Voir l’état des redo logs
SELECT group#, status, archived, thread# FROM v$log;
🚀 4. Pourquoi le Dictionnaire de Données est-il
si Important ?
🔍 Le dictionnaire de données permet à Oracle de :
✔ Gérer les objets de la BD (création, suppression, modification)
✔ Optimiser les requêtes SQL grâce aux statistiques ( DBMS_STATS )
✔ Assurer la sécurité en contrôlant les privilèges et rôles
✔ Surveiller les performances pour un réglage fin de la base
💡 Exemple : Voir l’espace libre dans les tablespaces
SELECT tablespace_name, file_id, bytes/1024/1024 AS free_space_mb
FROM dba_free_space;
💡 Exemple : Voir les requêtes les plus gourmandes en CPU
SELECT sql_id, sql_text, elapsed_time/1000000 AS seconds_elapsed
FROM v$sql ORDER BY elapsed_time DESC FETCH FIRST 10 ROWS ONLY;
🎯 Conclusion : Le Dictionnaire de Données, un
Outil Incontournable
📌 Le dictionnaire de données Oracle est le référentiel ultime de la base de données.
🎯 Il est utilisé par :
✅ Les administrateurs pour surveiller et sécuriser la BD
✅ Les développeurs pour comprendre la structure des objets
✅ L’optimiseur Oracle pour améliorer les performances
💡 Un bon DBA connaît son dictionnaire de données sur le bout des doigts ! 🏆