Vous êtes sur la page 1sur 38

ADMINISTRATION

ORACLE
Oracle
ARCHITECTURE INTERNE

FONCTIONNALITES
DE STRUCTURE
PHYSIQUE
BASE
STRUCTURE LOGIQUE
ORGANISATION DES COUCHES
ORACLE

PL/SQL

SQL

DICTIONNAIRE
DONNEES

NOYAU
FONCTIONNALITES DES
COUCHES

NOYAU
Intégrité des données,

Confidentialité des données,

Sauvegarde et restauration des données,

Gestion des accès concurrents,

Optimisation de l'exécution des requêtes (tuning),

Gestion des accélérateurs (index, cluster),

Stockage physique des données.


FONCTIONNALITES DES
COUCHES

DICTIONNAIRE
DONNEES

Une méta-base qui permet de stocker les éléments


suivants :

• Objets de la base : tables, views, index, synonymes,


clusters, séquences, …

• Utilisateurs accédant à la base avec leurs privilèges


et les droits qu'ils ont sur les objets.

• Informations relatives à l'activité de la base


(connexions, ressources utilisées, verrouillages, …).
FONCTIONNALITES DES
COUCHES

SQL

Interface unique entre le noyau RDBMS et les outils.


Cette couche assure :

• Vérification sémantique et syntaxique.

• Décomposition en opération élémentaires.

• Envoi au noyau pour traitement.

• Récupération des résultats et communication aux


outils.
FONCTIONNALITES DES
COUCHES

PL/SQL

Extension procédurale de la couche SQL, intégrée au


noyau depuis la version 7.1, elle permet :

• Réaliser les traitements procéduraux.

• Écrire des traitements stockés dans le dictionnaire


(Procédures, fonctions, packages, triggers)
Un serveur Oracle est composé de 3 éléments

Mémoire System Global Area ou SGA

Données, fichiers Redo, fichiers de


Disque contrôle, fichiers de paramètres,
fichiers de mot de passe,
etc.

Processus Services d'arrière plan ou demons


SGA System Global Area ou SGA

❑ Permet de contenir les structures d'une


instance Oracle
❑ Contient les données et les informations de
contrôle pour le serveur Oracle
❑ Est allouée de la mémoire virtuelle de
l'ordinateur où réside le serveur Oracle
SGA LES COMPOSANTS
SGA (SYSTEM GLOBAL
AREA)

DATABASE BUFFER

Ensemble de buffers permettant en mémoire les blocs de données lus


dans le fichiers de la base.

Un bloc contenu dans le buffer est accessible à tous les utilisateurs.

Le nombre de buffers a un grand impact sur le performances.

Plus Le nombre de buffers est grand, moins sont les entrées.

Découpée en 3 sous zones logiques différentes :

KEEP : données permanentes (référentiel).


RECYCLE : données temporaires.
DEFAULT : algorithme LRU (Least Recently Used).
SGA LES COMPOSANTS

✓ Buffer de données

❑ Est utilisé pour stocker les données en


mémoire afin d'accélérer l'interrogation et/ou
la modification
❑ Aucune modification n’est faite directement
sur les données du disque
SGA LES COMPOSANTS
✓ Buffer de données (suite)
❑ Oracle lit les données suite à la demande d'un
processus utilisateur et ensuite valide les
modifications sur le disque
❑ Il utilise un algorithme nommé LRU (Least-
Recently Used) pour déterminer les données
à libérer du cache
❑ La taille de chacun des buffers
(DB_BLOCK_BUFFERS) est égale à la taille d'un
bloc de données (DB_BLOCK_SIZE)
SGA (SYSTEM GLOBAL
AREA)

DATABASE BUFFER

Vues système utilisées

V$SGA ;
V$PARAMETER ;

Paramètres dans le PFILE :

DB_BLOCK_SIZE ; DB_BLOCK_BUFFERS

Taille globale = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS


SGA (SYSTEM GLOBAL
AREA)

REDO LOG BUFFER

Zone associée aux fichiers de journalisation.


Lors d'une mise à jour de la base, l'image avant la mise à jour et après
sont écrites dans le buffer.
Un ordre COMMIT, ordonne à LGRW de consigner les transactions
dans les fichiers de journalisation.
L'augmentation de la taille de cette zone, croît la performance du
système (réduction des E/S).
SGA LES COMPOSANTS
✓ Buffer Redo Log

Il stocke une information spéciale nommé Redo


permettant à Oracle de reconstruire les modifications
des données en cas de panne:
❖ Bloc de données modifié
❖ Emplacement
❖ Nouvelle valeur

L'information Redo est stockée dans le buffer Redo log


à chaque modification de données effectuée par un
utilisateur
SGA LES COMPOSANTS
✓ Buffer Redo Log (suite)

L'information Redo reste dans le buffer Redo log jusqu'à


ce qu'Oracle la stocke sur le disque

Sa taille est définie par LOG_BUFFER


SGA (SYSTEM GLOBAL
AREA)

REDO LOG BUFFER

Vues système utilisées

V$SGA ;
V$PARAMETER ;

Paramètres dans le PFILE :

LOG_BUFFER
SGA (SYSTEM GLOBAL
AREA)

SHARED POOL
SQL AREA
Une zone mémoire partagée, utilisée pour réduire
au maximum les entrées/sorties disque.

La répartition entre les sous-zones est logique et


LIBRARY CACHE
est gérée par le noyau.

D'autres zones ont été rajoutées, en fonction des


versions d'Oracle.
DICTIONARY CACHE
PFILE

SHARED_POOL_SIZE
POOL JAVA
Vidage du pool

ALTER SYSTEM FLUSH SHARED POOL


SGA LES COMPOSANTS
✓ Shared Pool

Permet de stocker plusieurs éléments cruciaux pour la


gestion des données :

❑ Library cache : permet d'analyse l'ordre d'exécution d'une


requête SQL et de définir un plan d'exécution. Si la même
requête est ré-exécutée, le serveur n'analyse pas son ordre.
Cela permet d'améliorer la performance des applications

❑ Dictionary (ou row) cache : utilisé pour le stockage des


métadata dans la mémoire afin d'accélérer l'accès au
dictionnaire et les mécanismes de contrôle (nom d'utilisateurs,
privilèges, etc.).
SGA (SYSTEM GLOBAL
AREA)

SQL AREA

Stockage des informations du parsing (analyse requête SQL).

Réutilisation du parsing déjà effectué pour une requête donnée.

Parsing pénalise la ressource CPU.

Vues du dictionnaire utilisées pour la zone SQL Area

V$SQLAREA V$SQL V$SQLTEXT

SQL> desc v$sqltext


Name Type Nullable Default Comments
------------ ------------ -------- ------- --------
ADDRESS RAW(4) Y
HASH_VALUE NUMBER Y
COMMAND_TYPE NUMBER Y
PIECE NUMBER Y
SQL_TEXT VARCHAR2(64) Y
SGA (SYSTEM GLOBAL
AREA)

DICTIONARY CACHE

Conservation dans le cache les données en provenance du dictionnaire.

Accès par les process serveurs.

Minimiser les accès sur le dictionnaire.

Vue du dictionnaire utilisées pour la zone SQL Area

V$ROWCACHE ;
SGA (SYSTEM GLOBAL
AREA)

LIBRARY CACHE

Permet de stocker les premiers traitements (fonctions, procédures, packages)


lancés, pour un accès ultérieur plus rapide.

Accessibilité à ces traitements par tous les utilisateurs.

Vue du dictionnaire utilisées pour la zone SQL Area

V$LIBRARYCACHE ;
SGA (SYSTEM GLOBAL
AREA)

LARGE POOL

Utilisé à partir de la version 8, pour une architecture en multithread.

Permet de stocker les informations de plusieurs sessions en multithreading.

Dans le PFILE

LARGE_POOL_SIZE
DISQUE LES COMPOSANTS
DISQUE LES COMPOSANTS
DISQUE LES COMPOSANTS
DISQUE LES COMPOSANTS
DISQUE LES COMPOSANTS
DISQUE LES COMPOSANTS
LES PROCESSUS ORACLE

❑ 2 types de processus:
o Processus utilisateur
o Processus sur le serveur oracle:
✓ Processus Serveur
✓ Processus Background (Oracle.exe)
Ces processus exploitent Program Global
Area ou PGA
ARCHITECTURE TECHNIQUE
LA MEMOIRE

INSTANCE

Ensemble de ressources permettant d'accéder à une base de données

SGA PROCESS
System Global Area Mémoire

LIST
Process Process
PMON
obligatoires optionnels
DBWR LGWR DISP
ARCH
SMON CKPT RECO
CKPT
LES PROCESSUS ORACLE

Un utilisateur peut se connecter à Oracle par:


❑Connexion directe au serveur
L'utilisateur se connectant à un serveur Unix exécutant
Oracle lance Server Manager
❑Connexion à deux tiers (Client-serveur)
L'utilisateur se connectant à une machine Windows
exécute JDevelopper
❑Connexion à trois tiers
L'utilisateur lançant un explorateur réseaux sous
Windows exécute une application sur un autre poste
qui extrait les données sur un serveur Oracle
Processus utilisateur ou client

❑ Il fonctionne sur la machine du client


❑ Il démarre lors de l'appel de l'outil ou de
l'application
SQL*Plus, Server Manager, JDevelopper,
Oracle Entreprise Manager, etc.)
❑ Il se termine lorsque l'utilisateur quitte ou
interrompre l'application
❑ Il appelle le serveur Oracle
Processus serveur

❑Il fonctionne sur la machine serveur (hôte)


❑Suite à la demande du processus utilisateur, le
processus serveur lit les données des fichiers à
l'intérieur du buffer de données
❑Dans une config de serveur dédié
1 processus utilisateur + 1 processus serveur
❑Dans une config MTS (multithreads)
Partage de processus
❑Il utilise une PGA (Program Global Area) exclusive
❑Il envoie les résultats au client
Zone mémoire du processus
(PGA)
❑ Est une zone mémoire contenant des données
relatives à un processus serveur unique ou à un
thread unique
✓ Elle n'est ni partagé ni accessible en écriture
✓ Elle est allouée lorsqu'un processus serveur est
créé
❑ Elle contient
✓ Une zone de tri utilisée avant le traitement ou le
renvoi du résultat à l'utilisateur
✓ Des informations sur la session
✓ L'état du curseur
Background Threads
DBWR (Data Base WRiter)
✓ Ecrire les blocs modifiés dans le cache de données
sur les disques. Compte tenu de la journalisation
(Redo log), les blocs ne sont pas forcément écrits à la
validation des transactions.
LOGWR (LoG WRiter)
✓ Ecrire dans les fichiers Redo Log le contenu du cache
Redo Log
SMON (System MONitor)
✓ Réalise le Recovery au moment du Startup
✓ Efface les segments temporaires
✓ Organise les blocks de données
Background Threads

PMON (Process MONitor)


✓ Vide le cache
✓ Libère les ressources bloquées
✓ Ré-active si nécessaire les dispatchers
ARCH (ARCHiver)
✓ Copie les redo log, quand ils sont pleins, dans les fichiers
d ’archive.
RECO
✓ Termine ou annule les transactions en suspend dans les BD
distribuées
LISTENER ou KMNLS
✓ Permet d’établir des connexions Client-Serveur avec la base de
données

Vous aimerez peut-être aussi