Vous êtes sur la page 1sur 29

Composants de l'architecture Oracle

Présentation des principaux composants


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


Fichier de données contrôle journali- Fichiers de
sation Journalisation
paramètres
archivés
Fichier
de mots
de passe
Base de données

3-2
Caractéristiques d’un
Serveur de Base de données Oracle
Un serveur de BD 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
• Se compose de 2 éléments :
- Une instance (Mémoire SGA + processus en arrière plan)
- La Base de données (3 types de fichiers)
Serveur Oracle
• L’instance est utilisée par Oracle pour gérer
une base de données

• Une instance gère uniquement une SEULE BD.

• Une BD peut être gérer par plusieurs instances

3-3
Instance Oracle
Une instance Oracle :
• permet d'accéder à une base de données Oracle, (sans elle
on ne pourra jamais accéder aux données dans les fichiers de données)
• 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.
• La mémoire de l’instance s’appelle SGA (System Global
Area )
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
3-4
Base de données 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:
– les fichiers de données: qui contiennent les données de la base,
– les fichiers de journalisation (fichiers redo log), qui contiennent
un enregistrement des modifications apportées à la base afin de permettre
la récupération des données en cas de panne,
– les fichiers de contrôle, qui contiennent les informations nécessaires
au maintien et à la vérification de l'intégrité de la base de données.
• Constitut la structure physique du serveur de BD
Base de données Oracle
Fichiers de Fichiers de Fichiers de
données contrôle journa-
lisation

3-5
Etablir une connexion et créer une session
Se connecter à une instance Oracle :
1. L'utilisateur démarre un outil, par exemple SQL*Plus, ou exécute une application capable de
se connecter à une instance. Cette application ou cet outil est exécuté en tant que processus
utilisateur.
2. Dans la configuration la plus simple, lorsqu'un utilisateur se connecte au serveur, un
processus appelé processus serveur est créé dynamiquement sur l'ordinateur qui exécute le
serveur Oracle.
On parle, alors, d’une session créée.

Processus
Connexion serveur
établie Session crée
Processus Serveur Oracle
utilisateur

Utilisateur
3-6 de la base de données
Structure mémoire

Oracle pocède deux types de structures mémoire :


• SGA (System Global Area):
- Est une composante fondamentale d'une instance Oracle
- allouée au démarrage de l'instance
• PGA (program Global Area):
- Propre à chaque processus serveur ou processus en arrière plan
- Allouée au démarrage du processus serveur suite au création de la
session

3-7
Mémoire SGA

• 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ë
– Unité d’allocation est le granule qui est définie en fonction de la
valeur totale estimée de SGA_MAX_SIZE :
4 Mo si la taille estimée de la mémoire SGA est inférieure à 128 Mo
16 Mo dans les autres cas

3-8
Mémoire SGA
• La mémoire SGA 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).
• D’autres structures mémoire supplémentaires peuvent également
être configurées dans la mémoire SGA en cas de besoin:
– la zone de mémoire LARGE POOL,
– la zone de mémoire Java.
– la zone de mémoire Stream
• L'instruction suivante permet d'afficher les allocations de la
mémoire SGA :
SQL> SHOW SGA
Total System Global Area 36437964
bytes
Fixed Size 6543794
bytes
Variable Size 19521536
3-9
bytes
Database Buffers 16777216 bytes
Zone de mémoire partagée (Shared Pool)
Mémoire partagée
Cache "library"

Cache « dictionnaire
de données »

• Pour des raison de performances elle permet de stocker :


– les dernières instructions SQL exécutées,
– les dernières définitions de données utilisées.
• Constituée de deux structures mémoire clés liées aux performances:
1. Cache "library"
2. Cache du dictionnaire de données
• Sa taille est définie par le paramètre SHARED_POOL_SIZE.

-- dynamiquement modifiable par :


ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

3-10
Shared Pool: Cache library

• Le cache "library" conserve des informations sur les dernières


instructions SQL et PL/SQL utilisées.
• Il permet le partage, par tous les utilisateurs, des instructions
fréquemment utilisées.
• Il est géré par un algorithme LRU (Least recently Used) :
en cas de saturation, c’est les instructions les moins recement
utilisées qui sont supprimées du cache
• 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.

3-11
Shared Pool: Cache du dictionnaire de données

• 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.

3-12
Cache de tampons de la base de données

• 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. (par défaut c’est 8K)
Cache
de tampons
de la base
de données

3-13
Cache de tampons de la base de données

• Ce cache peut être composé de sous-caches indépendants :


– DB_CACHE_SIZE (Obligatoire)
– DB_KEEP_CACHE_SIZE (Facultatif)
– DB_RECYCLE_CACHE_SIZE (Facultatif)
• Il peut être redimensionné dynamiquement :
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

3-14
Tampon de journalisation

• 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
Tampon de
définie par le paramètre journalisation
LOG_BUFFER.

3-15
Zone de mémoire LARGE POOL
• 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.
3-16
Zone de mémoire Java

• 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.

3-17
Mémoire PGA

• Mémoire réservée à chaque processus


utilisateur qui se connecte à une base
PGA
de données Oracle. Processus
• Elle est allouée lorsqu'un processus est serveur
créé.
• Elle est libérée à la fin du processus.
Processus
• Elle n'est utilisée que par un processus. utilisateur

UGA
Pile des Données
Etat du Zone de
variables session
curseur tri
SQL utilisat.

Structure de la PGA

3-18
Processus d'arrière-plan

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

3-19
Processus database writer (DBWn)
Instance DBWn écrit dans les cas
Mémoire SGA suivants :
Cache • point de reprise
de tampons
de la base • seuil des tampons "dirty"
de données atteint
• aucune mémoire tampon
DBWn disponible
• temps imparti dépassé
• demande de ping RAC
• tablespace hors ligne
Fichiers Fichiers Fichiers • tablespace en lecture seule
de de de
données contrôle journa- • DROP ou TRUNCATE sur une
lisation
table
Base de données • BEGIN BACKUP sur un
tablespace
3-20
Processus LGWR (Log Writer)
Instance LGWR écrit dans les cas
Mémoire SGA suivants :
Tampon de • validation
journali-
sation • un tiers du cache est
occupé
DBWn LGWR • la journalisation atteint
1 Mo
• toutes les trois
secondes
Fichiers Fichiers Fichiers
de de
contrôle
de • avant que le processus
données journa-
lisation DBWn ne procède à une
opération d'écriture
Base de données

3-21
Processus SMON (System Monitor)
Instance Responsabilités :
Mémoire SGA • Récupération de l'instance :
– réimplémente des
modifications dans les
fichiers de
journalisation,
SMON – ouvre la base de
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
• Libération des segments
Base de données
temporaires segments

3-22
Processus PMON (Process Monitor)
Instance Suite à l'échec de
Mémoire SGA processus, PMON
exécute des opérations
de nettoyage :
• annule la transaction
• libère des verrous
PMON
• libère d'autres
ressources
• redémarre les
Mémoire PGA répartiteurs
interrompus

3-23
Processus CKPT (Checkpoint)
Instance Ce processus est chargé :
Mémoire SGA • 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
de de de
données contrôle journa- avec les informations
lisation
sur le point de reprise.
Base de données

3-24
Processus d'arrière-plan (Facultatifs)

Processus d'arrière-plan facultatifs


– RECO : Processus de récupération
– QMNn : Advanced Queuing
– ARCn : Processus d'archivage
– LCKn : RAC Lock Manager–Verrous d'instance
– LMON : RAC DLM Monitor–Verrous globaux
– LMDn : RAC DLM Monitor–Verrous à distance
– CJQ0 : Processus d'arrière-plan Coordinator Job Queue
– Dnnn : Répartiteur (Dispatcher)
– Snnn : Serveur partagé
– Pnnn : Processus esclave "Parallel Query"

3-25
Processus ARCn (processus d'archivage)

• 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

3-26
Traiter les instructions SQL
Les phases d’exécution d’une interrogation (Select)
– Parse (phase d’Analyse) :
Recherche d'instructions identiques
Vérification de la syntaxe, des noms d'objet et des privilèges
Verrouillage des objets utilisés lors de l'analyse
Création et stockage d'un plan d'exécution
– Bind (affectation de valeurs) : obtention des valeurs des variables
– Execute (exécution) : traitement de l'instruction
– Fetch (extraction) : renvoi de lignes au processus utilisateur

3-27
Traiter les instructions SQL: Les LMD
Les phases d’exécution des opérations DML:

- Parse (analyse) : identique à celui d'une interrogation.


- Bind (affectation de valeurs) : identique à celui d'une interrogation.
- Execute (exécution) :
Si les blocs de données et les blocs d'annulation ne se trouvent pas déjà
dans le cache de tampons de la base de données, le processus serveur
les lit à partir des fichiers de données et les place dans le cache.
Le processus serveur place des verrous sur les lignes à modifier. Le bloc
d'annulation stocke l'image avant des données, ce qui permet d'annuler, si
nécessaire, les instructions LMD.
Les blocs de données enregistrent les nouvelles valeurs des données.
Le processus serveur enregistre l'image avant dans le bloc d'annulation et
met à jour le bloc de données. Ces deux modifications sont effectuées
dans le cache de tampons de la base de données. Les blocs modifiés
dans le cache de tampons sont identifiés comme tampons "dirty"
(mémoires tampon qui ne sont pas identiques aux blocs correspondants
sur le disque).

3-28
Structure logique

• 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

3-29

Vous aimerez peut-être aussi