Vous êtes sur la page 1sur 55

Architecture dOracle

Richard CHBEIR Email :richard.chbeir@u-bourgogne.fr

Plan
Architecture
Structure Physique
Composants Processus Traitement de requtes

Structure Logique

richard.chbeir@iut-dijon.u-bourgogne.fr

Architecture
Un serveur Oracle est compos de 3 lments
Mmoire
System Global Area ou SGA

Disque
Donnes, fichiers Redo, fichiers de contrle, fichiers de paramtres, fichiers de mot de passe, etc.

Processus
Services d'arrire plan ou demons

richard.chbeir@iut-dijon.u-bourgogne.fr

Architecture
SGA (System Global Area)
Permet de contenir les structures d'une instance Oracle Contient les donnes et les informations de contrle pour le serveur Oracle Est alloue de la mmoire virtuelle de l'ordinateur o rside le serveur Oracle

richard.chbeir@iut-dijon.u-bourgogne.fr

SGA (System Global Area)


Buffer de donnes
Zone mmoire rserve aux buffers de donnes, dindex et de rollback segments. Espace paramtrable

Shared Pool Area


SQL area (parsing des requtes)

Buffer Redo log


Zone mmoire qui enregistre l activit transactionnelle des utilisateurs.

Large Pool (Optionnel)


Utilis pour la gestion des bases de donnes parallles

Library cache (excutable PL/SQL)

Dictionary cache (infos sur les mta-donnes)

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants de SGA
Buffer de donnes
Est utilis pour stocker les donnes en mmoire afin d'acclrer l'interrogation et/ou la modification Aucune modification est faite directement sur les donnes du disque Oracle lit les donnes 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 dterminer les donnes librer du cache La taille de chacun des buffers (DB_BLOCK_BUFFERS) est gale la taille d'un bloc de donnes (DB_BLOCK_SIZE)
richard.chbeir@iut-dijon.u-bourgogne.fr

Composants de SGA
Buffer de donnes Buffer Redo Log
Il stocke une information spciale nomm Redo permettant Oracle de reconstruire les modifications des donnes en cas de panne
Bloc de donnes modifi Emplacement Nouvelle valeur

L'information Redo est stocke dans le buffer Redo log chaque modification de donnes effectue par un utilisateur L'information Redo reste dans le buffer Redo log jusqu' ce qu'Oracle la stocke sur le disque Sa taille est dfinie par LOG_BUFFER

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants de SGA
Buffer de donnes Buffer Redo Log Shared Pool
Permet de stocker plusieurs lments cruciaux pour la gestion des donnes :
Library cache : permet d'analyse l'ordre d'excution d'une requte SQL et de dfinir un plan d'excution. Si la mme requte est r-excute, le serveur n'analyse pas son ordre. Cela permet d'amliorer la performance des applications Dictionary (ou row) cache : utilis pour le stockage des mtadata dans la mmoire afin d'acclrer l'accs au dictionnaire et les mcanismes de contrle (nom d'utilisateurs, privilges, etc.).

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants
Disque

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants
Disque
Les fichiers de donnes (DataFiles)
Ils sont utiliss pour stocker le dictionnaire de donnes et les objets de la base de donnes. Ces fichiers sont souvent trs volumineux. Les donnes dans le buffer de donnes et le dictionnaire cache sont rcupres de ces fichiers Une base de donnes contient au moins un fichier de donnes

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants
Disque
Les fichiers Redo Logs
Ils sont utiliss pour stocker les informations Redo sur le disque afin de garantir la reconstruction des donnes en cas de panne Une BDD Oracle requiert au moins 2 fichiers redo log 2 familles de redo log : 1- ONLINE pour la restauration face une dfaillance de linstance 2- OFFLINE pour une restauration dans le cas d une dfaillance dun support de stockage.
richard.chbeir@iut-dijon.u-bourgogne.fr

Composants
Disque
Les fichiers de contrle
Ils sont utiliss pour dfinir la localisation des composants disque sur le serveur. La localisation de fichiers de donnes et les redo logs y apparaissent. Pour cette raison, ils sont modifis chaque ajout ou suppression des fichiers redo logs ou fichiers de donnes. Oracle lit les fichiers de contrle au dmarrage de la BDD. Une BDD requiert au moins un fichier de contrle

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants
Disque
Le fichier de paramtres
Utilis pour dfinir les caractristiques d'une instance Oracle (taille SGA, Bloc Oracle, etc). C'est le fichier init.ora

richard.chbeir@iut-dijon.u-bourgogne.fr

Composants
Disque

Le fichier de mot de passe


Il est utilis pour tablir l'authenticit des utilisateurs privilgis de BDD Oracle. Sans ce fichier, la BDD est administrable avec n'importe quel outil de gestion (ex : SQL*Plus)

richard.chbeir@iut-dijon.u-bourgogne.fr

Les processus ORACLE


Effectuent les fonctions ncessaires au traitement simultan de plusieurs requtes utilisateurs, sans compromettre
L'intgrit La performance du systme

richard.chbeir@iut-dijon.u-bourgogne.fr

Les processus ORACLE


2 types de processus
Processus utilisateur Processus sur le serveur oracle
Processus Serveur Processus Background (Oracle.exe)

Ces processus exploitent Program Global Area ou PGA

richard.chbeir@iut-dijon.u-bourgogne.fr

Les processus ORACLE


Un utilisateur peut se connecter Oracle
Connexion directe au serveur
L'utilisateur se connectant un serveur Unix excutant Oracle lance Server Manager

Connexion deux tiers (Client-serveur)


L'utilisateur se connectant une machine Windows XP excute Developper/2000

Connexion trois tiers


L'utilisateur lanant un explorateur rseaux sous Windows excute une application sur un autre poste qui extrait les donnes sur un serveur Oracle
richard.chbeir@iut-dijon.u-bourgogne.fr

Les processus ORACLE


Processus utilisateur (ou client)
Il fonctionne sur la machine du client Il dmarre lors de l'appel de l'outil ou de l'application
SQL*Plus, Server Manager, Developper/2000, Oracle Entreprise Manager, etc.)

Il se termine lorsque l'utilisateur quitte ou interrompre l'application Il appelle le serveur Oracle


richard.chbeir@iut-dijon.u-bourgogne.fr

Les processus ORACLE


Processus serveur
Il fonctionne sur la machine serveur (hte) Suite la demande du processus utilisateur, le processus serveur lit les donnes des fichiers l'intrieur du buffer de donnes Dans une config de serveur ddi
1 processus utilisateur + 1 processus serveur

Dans une config MTS (mutlithreads)


Partage de processus

Il utilise une PGA (Program Global Area) exclusive Il envoie les rsultats au client

richard.chbeir@iut-dijon.u-bourgogne.fr

Zone mmoire du processus (PGA)


Est une zone mmoire contenant des donnes relatives un processus serveur unique ou un thread unique
Elle n'est ni partag ni accessible en criture Elle est alloue lorsqu'un processus serveur est cr

Elle contient
Une zone de tri utilise avant le traitement ou le renvoi du rsultat l'utilisateur Processus Des informations sur la session Serveur L'tat du curseur PGA
richard.chbeir@iut-dijon.u-bourgogne.fr

Background Threads
DBWR (Data Base WRiter)
Ecrire les blocs modifis dans le cache de donnes sur les disques. Compte tenu de la journalisation (Redo log), les blocs ne sont pas forcment crits la validation des transactions.

LOGWR (LoG WRiter)


Ecrire dans les fichiers Redo Log le contenu du cache Redo Log

SMON (System MONitor)


Ralise le Recovery au moment du Startup Efface les segments temporaires Organise les blocks de donnes
richard.chbeir@iut-dijon.u-bourgogne.fr

Background Threads
PMON (Process MONitor)
Vide le cache Libre les ressources bloques R-active si ncessaire 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 distribues

LISTENER ou KMNLS
Permet dtablir des connexions Client-Serveur avec la base de donnes

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une requte (ici)


Il y a 3 tapes
Analyse Excution Rcupration

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une requte


Analyse Syntaxique Analyse Smantique Plan ou ordre d'excution Envoie tat

Select * From emp;

Envoie requte Processus Utilisateur Processus Serveur

1- Analyse
richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une requte

Select * From emp;

Prparation l'extraction

Processus Utilisateur

Processus Serveur

2- Excution
richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une requte

Select * From emp; Envoie Donnes Envoie Donnes . Processus Utilisateur Processus Serveur

3- Rcupration
richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une MAJ


INSTANCE Update emp; SET sal = sal*1.5
Buffer de donnes Buffer Redo log

Shared Pool

Processus Serveur Fichiers de contrles

Fichiers de donnes

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une MAJ


INSTANCE Update emp; SET sal = sal*1.5
Buffer de donnes Buffer Redo log

Shared Pool

Processus Serveur Fichiers de contrles

Fichiers de donnes

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une MAJ


INSTANCE Update emp; SET sal = sal*1.5
Shared Pool Buffer de donnes Buffer Redo log Library Cache Cache du dictionnaire

Processus Serveur Fichiers de contrles

Fichiers de donnes

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une MAJ


INSTANCE Update emp; SET sal = sal*1.5
Shared Pool Buffer de donnes Buffer Redo log Library Cache Cache du dictionnaire

Processus Serveur Fichiers de contrles

Fichiers de donnes

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement d'une MAJ


INSTANCE Update emp; SET sal = sal*1.5
Shared Pool Buffer de donnes Buffer Redo log Library Cache Cache du dictionnaire

Processus Serveur Fichiers de contrles

Fichiers de donnes

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Rollback Segment
Ancienne Image

Table

Nouvelle Image

Rollback Segment

Ordre MAJ
richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement des COMMIT


Enregistrement de validation
Buffer de donnes

INSTANCE
Shared Pool Buffer Redo log Library Cache Cache du dictionnaire

Processus Serveur Fichiers de contrles

Fichiers de donnes Processus Utilisateur

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement des COMMIT


INSTANCE
Shared Pool Buffer de donnes Buffer Redo log Library Cache Cache du dictionnaire

LGWR Processus Serveur Fichiers de contrles 2

Fichiers de donnes Processus Utilisateur

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement des COMMIT


INSTANCE
Shared Pool Buffer de donnes Buffer Redo log Library Cache Cache du dictionnaire

LGWR Processus Serveur 3 Fichiers de donnes Processus Utilisateur


richard.chbeir@iut-dijon.u-bourgogne.fr

Fichiers de contrles

Fichiers Redo

Traitement des COMMIT


INSTANCE
Shared Pool Buffer de donnes Buffer Redo log

Library Cache Cache du dictionnaire

LGWR Processus Serveur Fichiers de contrles

Fichiers de donnes Processus Utilisateur

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Traitement des COMMIT


INSTANCE
Shared Pool Buffer de donnes Buffer Redo log Library Cache Cache du dictionnaire

LGWR Processus Serveur Fichiers de contrles

Fichiers de donnes Processus Utilisateur

Fichiers Redo

richard.chbeir@iut-dijon.u-bourgogne.fr

Architecture
Une BDD Oracle
Reprsente les structures physiques et logiques et se compose des fichiers du OS Est identife par DB_Name au niveau du OS

Une instance
Est un moyen d'accder une base de donnes Oracle Ouvre toujours une seule et unique base de donnes Identifi par Oracle_SID au niveau du OS

richard.chbeir@iut-dijon.u-bourgogne.fr

Une BDD Oracle


La structure physique
Fichiers de contrles Fichiers redo log Fichiers de donnes

La structure logique
Tablespaces Segments Extents Blocs de donnes
richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Oracle
BDD Oracle TableSpace Segment Extent Fichier de donnes

Systme d'exploitation

Bloc Oracle

Bloc OS

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
TableSpace
Une BDD Oracle est divise en plus petites zones logiques nommes tablespaces Un Tablespace ne peut appartenir qu une seule BDD Chaque Tablespace est constitu dun ou plusieurs fichiers de donnes stocks sur disque
Un fichier ne peut appartenir qu un seul Tablespace la fois Une fois un fichier ajout un Tablespace, on ne peut plus le retirer ou lassocier un autre Tablespace

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Table Table Table

Tablespace System

Tablespace IQ2

Tablespace Users

Fichier de donnes

Fichier de donnes

Fichier de donnes

Fichier de donnes

Fichier de donnes

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
TableSpace
Chaque BDD possde au moins un Tablespace appel system
Contenant les tables du dictionnaire de donnes

On peut ajouter des Tablespaces supplmentaires pour grouper des utilisateurs ou des applications
Tablespace user contient les tables des utilisateurs TableSpace IQ2 contient les tables des tudiants en IQ2

Un Tablespace peut tre physiquement sur un autre disque

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Visibilit des tablespaces
Chaque utilisateur possde :
Un tablespace par dfaut :
Est celui dans lequel les tables de l'utilisateur seront cres de faon privilgie

Un tablespace temporaire
Utilis pour les tris et en cas dinsuffisance en mmoire centrale

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Intrts de plusieurs tablespaces spcialiss :
Distribuer les E/S en fonction des applications Grer les quotas utilisateurs Passer un tablespace OFFLINE sans perturber les autres tablespaces Mieux utiliser les supports de stockage Distribuer les index et les donnes sur des supports diffrents pour une meilleure fluidit
richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Extent
Ensemble contigu de blocs de donnes allous simultanment un segment

Segment
Tout segment est cr avec au moins un extent (Initialextent) Lorsquun segment est plein, attribution dun nouveau extent

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Les types de segments dans un tablespace :
Segments de donnes
Stockent les donnes. Chaque table a un et un seul segment qui contient toutes les donnes de la table. Cr automatiquement

Segments dindex
Stockent les infos sur les index sparment de donnes. Crs lors de la cration dun index

Segment damorage
Cr dans le Tablespace SYSTEM, contient les dfinitions du dictionnaire de donnes

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Les types de segments dans un tablespace :
Segments temporaires
Pour excution des requtes ncessitant de lespace disque temporaire Sont cres et dtruits automatiquement par des ordres SQL ayant besoin despace temporaire une requte qui contient les trois clauses DISTINCT, GROUP BY et ORDER sont gourmandes en espace temporaire

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Les types de segments dans un tablespace :
Segments dannulation (RollBack)
Enregistrent les actions, et les donnes avant modification Ne sont utilisables que pour les objets du Tablespace SYSTEM Seul un segment ROLLBACK qui nest pas en cours d'utilisation peut tre dtruit

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Blocs de donnes
Plus petite unit logique La taille dun bloc peut tre choisie au moment de linitialisation dune base. Elle correspond obligatoirement un multiple de la taille des blocs du systme dexploitation.
Exemple, un bloc dans un systme comme Linux occupe 1024 octets, et un bloc ORACLE occupe typiquement 4 096 ou 8 092 octets.

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
BLOCS , EXTENSIONS ET SEGMENTS SEGMENT (128 K)

EXTENT (32 K)

EXTENT (32 K)

Bloc de 4K

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Les objets d'une BDD Oracle
Table : contient les donnes dune BDD Index : structure contenant ladresse physique de chaque ligne dune table ou dun cluster. Accs direct linformation. Vue : reprsentation logique de donnes issues dune combinaison dune ou plusieurs tables ou vues Synonyme : Attribution de plusieurs noms un mme objet Squence : gnrateur dentiers uniques
richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Les objets d'une BDD Oracle
Les clusters : permettent d'tablir un groupement de tables qui ont des colonnes communes pour accs rapide aux lignes issues dune jointure Procdure : ensemble de commandes (crites en PL/SQL, SQL, C, Java, etc.) stockes dans la BDD Fonction : ensemble de commandes (crites en PL/SQL, SQL, C, Java, etc.) qui retourne une valeur Package : collection de fonctions et procdures (priv et public) Dclencheur (Trigger) : procdures associes un vnement sur une table
richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique
Les objets d'une BDD Oracle
Source et classe Java Tableaux (VARRAY) Schma XML

richard.chbeir@iut-dijon.u-bourgogne.fr

Structure logique

richard.chbeir@iut-dijon.u-bourgogne.fr

Vous aimerez peut-être aussi