SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Mohamed HARRANE Page 1
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Décrire l'architecture Oracle et ses principaux
composants ;
Répertorier les structures utilisées dans la
connexion d'un utilisateur à une instance
Oracle.
Mohamed HARRANE Page 2
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Instance
Processus
utilisateur Zone de mémoire Mémoire SGA
partagée
Cache Cache de
tampons de Tampon de
"library" journalisation
la base
Cache du de données
Processus
serveur dictionnaire Zone de mémoire
Zone de
de données mémoire Java LARGE POOL
PGA
PMON SMON DBWR LGWR CKPT Autres
Fichiers de Fichiers de Fichiers de
données contrôle journali- Fichiers de
Fichier de
sation Journalisation
paramètres
archivés
Fichier
de mots
de passe
Base de données
Mohamed HARRANE Page 3
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Un serveur Oracle : Serveur Oracle
est un système de gestion de
base de données qui offre une
méthode de gestion des
informations ouverte, complète
et intégrée,
est constitué d'une instance et
d'une base de données Oracle.
Mohamed HARRANE Page 4
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Une instance Oracle :
permet d'accéder à une base de données Oracle,
n'ouvre qu'une seule base de données,
est constituée de structures de processus d'arrière-plan
et de structures mémoire.
Instance
Zone de mémoire Mémoire SGA
partagée
Structures
Cache
Cache Tampon de mémoire
de tampons
"library" journalisation
de la base
Cache du de données
dictionnaire Zone de mémoire
Zone de
de données mémoire Java LARGE POOL
Structures
PMON SMON DBWR LGWR CKPT Autres de processus
d'arrière-plan
Mohamed HARRANE Page 5
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Se connecter à une instance Oracle :
Établir une connexion utilisateur
Créer une session
Processus
Connexion serveur
établie Session crée
Processus Serveur Oracle
utilisateur
Utilisateur de la base de données
Mohamed HARRANE Page 6
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Une base de données Oracle :
est un ensemble de données traitées comme une seule
et même entité,
est constituée de trois types de fichier.
Base de données Oracle
Fichier de Fichiers Fichiers Fichiers Fichiers de
de de de
paramètres données contrôle journa- Journalisation
Fichier lisation archivés
de mots
de passe
Mohamed HARRANE Page 7
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
La structure physique comprend trois types de fichier :
Fichiers de contrôle
Fichiers de données
Fichiers de journalisation
En-tête
Fichiers
Fichiers de
de
Données
contrôle
Fichiers de (incluent le
journali- dictionnaire
sation de données)
en ligne
Mohamed HARRANE Page 8
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
La structure mémoire d'Oracle est constituée des deux
zones de mémoire suivantes :
la mémoire SGA, qui est allouée au démarrage de
l'instance et qui est une composante fondamentale d'une
instance Oracle
la mémoire PGA, qui est allouée au démarrage du
processus serveur
Mohamed HARRANE Page 9
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
La mémoire SGA (Shared Global Area) est constituée de
plusieurs structures mémoire :
• la zone de mémoire partagée,
• le cache de tampons de la base de données,
• le tampon de journalisation,
• d'autres structures (gestion des verrous externes (lock) et
des verrous internes (latch), données statistiques, par
exemple).
Deux structures mémoire supplémentaires peuvent
également être configurées dans la mémoire SGA :
• la zone de mémoire LARGE POOL,
• la zone de mémoire Java.
Mohamed HARRANE Page 10
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Dynamique
Taille définie à l'aide du paramètre SGA_MAX_SIZE
Allocation et suivi sous forme de granules par les
composants de la mémoire SGA
• Allocation de mémoire virtuelle contiguë
• Taille des granules définie en fonction de la valeur
totale estimée de SGA_MAX_SIZE
Mohamed HARRANE Page 11
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Elle permet de stocker :
• les dernières instructions SQL exécutées,
• les dernières définitions de données utilisées.
Elle est constituée de deux structures mémoire clés liées
aux performances :
• Cache "library"
• Cache du dictionnaire de données
Sa taille est définie par le paramètre SHARED_POOL_SIZE.
Zone de mémoire
partagée
Cache
"library"
ALTER SYSTEM SET
SHARED_POOL_SIZE = 64M; Cache du
dictionnaire
de données
Mohamed HARRANE Page 12
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Le cache "library" conserve des informations sur les
dernières instructions SQL et PL/SQL utilisées.
Il permet le partage des instructions fréquemment
utilisées.
Il est géré par un algorithme LRU.
Il est composé de deux structures :
• la zone SQL partagée,
• la zone PL/SQL partagée.
Sa taille dépend du dimensionnement de la zone de
mémoire partagée.
Mohamed HARRANE Page 13
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Le cache du dictionnaire de données contient les
dernières définitions utilisées dans la base.
Il contient des informations sur les fichiers, les tables, les
index, les colonnes, les utilisateurs, les privilèges et
d'autres objets de la base de données.
Au cours de l'analyse, le processus serveur recherche les
informations dans le cache du dictionnaire pour résoudre
les noms d'objet et valider l'accès.
La mise en mémoire cache des informations du
dictionnaire de données réduit le temps de réponse aux
interrogations et aux instructions LMD.
La taille du cache dépend du dimensionnement de la
zone de mémoire partagée.
Mohamed HARRANE Page 14
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Ce cache conserve des copies des blocs de données
extraits des fichiers de données.
Il permet des gains de performances considérables lors de
l'obtention et de la mise à jour de données.
Il est géré par un algorithme LRU.
Le paramètre DB_BLOCK_SIZE détermine la taille du bloc
principal.
Cache
de tampons
de la base
de données
Mohamed HARRANE Page 15
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Ce cache est composé de sous-caches indépendants :
• DB_CACHE_SIZE
• DB_KEEP_CACHE_SIZE
• DB_RECYCLE_CACHE_SIZE
Il peut être redimensionné dynamiquement :
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;
Le paramètre DB_CACHE_ADVICE peut être défini
pour collecter des statistiques permettant de prévoir le
comportement du serveur en fonction de différentes
tailles de cache.
La vue V$DB_CACHE_ADVICE affiche les statistiques
collectées.
Mohamed HARRANE Page 16
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Il enregistre toutes les modifications apportées aux blocs de
données de la base.
Sa principale fonction est la récupération de données.
Les modifications enregistrées constituent des entrées de
journalisation.
Les entrées de journalisation contiennent des informations
permettant de reconstruire des modifications.
La taille du tampon est définie par le paramètre
LOG_BUFFER.
Tampon de
journalisation
Mohamed HARRANE Page 17
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Zone facultative de la mémoire SGA
Elle réduit la charge de la zone de mémoire partagée.
• la mémoire allouée par session (UGA) au serveur
partagé
• les processus serveur d'E/S
• les opérations de sauvegarde et de restauration ou
RMAN
• les mémoires tampon des messages d'exécution en
parallèle
– PARALLEL_AUTOMATIC_TUNING = TRUE
Elle n'utilise pas de liste LRU.
Sa taille est définie par le paramètre LARGE_POOL_SIZE.
Mohamed HARRANE Page 18
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
La zone de mémoire Java répond aux besoins
d'analyse des commandes Java.
Elle est nécessaire si Java est installé et utilisé.
Sa taille est définie par le paramètre
JAVA_POOL_SIZE.
Mohamed HARRANE Page 19
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
La mémoire PGA (Program Global Area ou Process Global
Area) est une mémoire qui contient les données et les
informations de contrôle d'un seul processus serveur ou
d'un seul processus d'arrière-plan.
Mémoire réservée à chaque processus
utilisateur qui se connecte à une base PGA
Processus
de données Oracle. serveur
Elle est allouée lorsqu'un processus
est créé.
Processus
Elle est libérée à la fin du processus. utilisateur
Elle n'est utilisée que par un
processus.
Mohamed HARRANE Page 20
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Oracle utilise différents types de processus :
le processus utilisateur, qui est démarré au moment où
un utilisateur de la base de données tente de se connecter
au serveur Oracle,
le processus serveur, qui établit la connexion à l'instance
Oracle et démarre lorsqu'un utilisateur ouvre une session,
les processus d'arrière-plan, lancés au démarrage d'une
instance Oracle.
Mohamed HARRANE Page 21
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Programme qui demande une interaction avec le serveur
Oracle.
Ce processus doit d'abord établir une connexion.
Il n'entre pas directement en interaction avec le serveur
Oracle.
Processus
serveur
Processus
utilisateur
Connexion
établie
Utilisateur de la base de données
Mohamed HARRANE Page 22
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Programme qui entre directement en interaction avec le
serveur Oracle.
Il répond aux appels générés et renvoie les résultats.
Il peut s'agir d'un serveur dédié ou d'un serveur partagé.
Processus
Connexion serveur
établie Session crée
Processus Serveur Oracle
utilisateur
Utilisateur de la base de données
Mohamed HARRANE Page 23
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Gèrent et appliquent les relations entre les structures
physiques et les structures mémoire.
Processus d'arrière-plan obligatoires
• DBWn PMON CKPT
• LGWR SMON
Processus d'arrière-plan facultatifs
• ARCn LMDn RECO
• CJQ0 LMON Snnn
• Dnnn Pnnn
• LCKn QMNn
Mohamed HARRANE Page 24
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
DBWn écrit dans les cas suivants :
Instance
point de reprise
Mémoire SGA
Cache
seuil des tampons "dirty"
de tampons atteint
de la base
de données aucune mémoire tampon
disponible
DBWn temps imparti dépassé
demande de ping RAC
tablespace hors ligne
tablespace en lecture seule
Fichiers Fichiers Fichiers
de de de DROP ou TRUNCATE sur une
données contrôle journa-
lisation table
BEGIN BACKUP sur un
Base de données
tablespace
Mohamed HARRANE Page 25
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
LGWR écrit dans les
Instance
Mémoire SGA cas suivants :
Tampon de
journali-
validation
sation un tiers du cache est
occupé
DBWn LGWR la journalisation
atteint 1 Mo
toutes les trois
Fichiers Fichiers Fichiers secondes
de de de
données contrôle journa-
lisation
avant que le
processus DBWn ne
Base de données procède à une
opération d'écriture
Mohamed HARRANE Page 26
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Responsabilités :
Instance
Mémoire SGA Récupération de l'instance :
• Ré-implémente des
modifications dans les
fichiers de
journalisation,
• ouvre la base de
SMON
données pour permettre
l'accès aux utilisateurs,
• annule les transactions
Fichiers Fichiers Fichiers
de de de non validées.
données contrôle journa-
lisation Fusion de l'espace libre
Base de données Libération des segments
temporaires segments
Mohamed HARRANE Page 27
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Instance
Mémoire SGA
Suite à l'échec de processus,
PMON
exécute des opérations
de nettoyage :
PMON
annule la transaction
libère des verrous
libère d'autres ressources
Mémoire PGA
redémarre les
répartiteurs interrompus
Mohamed HARRANE Page 28
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Instance
Mémoire SGA
Ce processus est chargé :
de signaler DBWn aux
points de reprise,
de mettre à jour les
en-têtes de fichiers
de données avec les
DBWn LGWR CKPT
informations sur le point de
reprise,
de mettre à jour les fichiers
Fichiers Fichiers Fichiers de contrôle avec les
de de
de
données contrôle journa-
informations sur le point de
lisation reprise.
Base de données
Mohamed HARRANE Page 29
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Processus d'arrière-plan facultatif
En mode ARCHIVELOG, il archive automatiquement les
fichiers de journalisation en ligne
Il enregistre toutes les modifications apportées à la base
de données
ARCn Fichiers
Fichiers Fichiers Fichiers de
de de de
données contrôle journa- journali-
lisation sation
archivés
Mohamed HARRANE Page 30
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
La structure logique définit le mode d'utilisation de
l'espace physique d'une base de données.
Cette structure possède une hiérarchie composée de
tablespaces, de segments, d'extents et de blocs.
Tablespace
Fichier de données
Segment Segment
Extent Blocs
Mohamed HARRANE Page 31
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Connexion à une instance via :
• le processus utilisateur,
• le processus serveur.
Les composants du serveur Oracle utilisés dépendent du
type d'instruction SQL :
• Les interrogations renvoient des lignes.
• Les instructions LMD consignent les modifications.
• La validation garantit la récupération de la transaction.
Certains composants du serveur Oracle n'interviennent
pas dans le traitement des instructions SQL.
Mohamed HARRANE Page 32
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Ce chapitre vous a présenté :
les fichiers de base de données : fichiers de données,
fichiers de contrôle, fichiers de journalisation en ligne
les structures mémoire SGA : cache de tampons de la
base de données, zone de mémoire partagée et tampon
de journalisation
les principaux processus d'arrière-plan :
DBWn, LGWR, CKPT, PMON et SMON
l'utilisation du processus d'arrière-plan ARCn
les processus d'arrière-plan facultatifs et conditionnels
la hiérarchie logique
Mohamed HARRANE Page 33
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Cet exercice porte sur :
les composants de l'architecture
les structures utilisées dans la connexion
d'un utilisateur à une instance Oracle
Mohamed HARRANE Page 34
SGBD - Oracle Chapitre 1 : Architecture d’Oracle
Exercice 1 : composants de l'architecture Oracle (suite)
1. Affectez à chaque processus la tâche correspondante.
a Database Writer E permet l'écriture dans les en-têtes des fichiers de données.
b Log Writer C se charge de la récupération de l'instance.
c System Monitor D exécute des opérations de nettoyage suite à l'échec de processus.
d Process Monitor B enregistre les modifications de la BD pour permettre la récupération.
e Checkpoint A écrit les tampons "dirty" dans les fichiers de données.
2 - La structure physique d'une base Oracle est composée de fichiers de contrôle, de fichiers de données et de
fichiers de journalisation.
a Vrai b Faux
3 - Rétablissez la hiérarchie des structures suivantes, en commençant par la base de données.
a Tablespaces
b Extent
c Segment
d Base de donnée
e Bloc
4 - Indiquez les composants d'un serveur Oracle.
5 - Indiquez les composants d'une instance Oracle.
6 - Indiquez trois types de fichier composant une base de données Oracle.
Mohamed HARRANE Page 35