You are on page 1of 47

Administration des bases de donnes

Chapitre :

Architecture fonctionnelle dOracle

Objectifs
Description des structures quimplique la connexion dun user un serveur Oracle

Description des tapes du traitement dune requte


Description des tapes du traitement dun ordre de LMD

Description des tapes du traitement des oprations COMMIT

Introduction aux SGBDs (1)


La gestion de la BD se fait grce un systme appel SGBD ou DBMS. Le SGBD est un logiciel de haut niveau qui offre les possibilits suivantes :
Permettre l'accs aux donnes de faon simple et transparente Consulter et manipuler les datas prsentes dans la BD Dfinir des contraintes dintgrit sur les datas

Dfinir des protections d'accs (password, privilges, rles ...)


Grer les problmes lis aux accs multiples aux informations par diffrents users

Introduction aux SGBDs (2)


Le SGBD est un logiciel de haut niveau qui offre les possibilits suivantes :
Prvoir des procdures de reprise en cas d'incident (sauvegardes, journaux,...)

Rapidit des accs : le systme doit pouvoir fournir les rponses


aux requtes le plus rapidement possible, cela implique des

algorithmes de recherche rapides

Limitation de la redondance : le SGBD doit pouvoir viter dans la mesure du possible des informations redondantes, afin d'viter d'une part un gaspillage d'espace mmoire mais aussi une non cohrence de linformation

Avantages de lutilisation dun SGBD


Avantage Consquence
Centralisation des donnes Intgrit des donnes

Contrle centralis de l'accs aux donnes Instructions de traitement trs puissantes Indpendance vis--vis de la structure physique et logique des donnes

Scurit accrue
Grande rapidit de dveloppement Maintenance facilite

SGBD Oracle
1re version du SGBDR ORACLE a t commercialise en 1979 Une version PC voit le jour en 1984. Les versions Unix se succdent Actuellement Oracle est un vritable environnement de travail avec des outils pouvant tre classs en:
Outils d'administration (SQL*loader, Oracle Entreprise Manager, Oracle Manager(SQL*DBA), Import/Export) Outils de dveloppement (Oracle Developer, SQL*Plus) Outils de communication (SQL*Net) Outils de gnie logiciel (Designer,) Outils d'aide la dcision ( Discover)

Serveur Oracle 9i (SO)


Le SO est un SGBD relationnelles-objets qui permet dassurer:
La dfinition et la manipulation des donnes La cohrence des donnes La confidentialit des donnes L'intgrit des donnes (non violation des contraintes dintgrits) La sauvegarde et la restauration des donnes La gestion des accs concurrents

Mthodes daccs au (SO)


Un user de BD peut se connecter au SO de lune des manires suivantes:
Connexion directe lhte Connexion deux tiers (client-serveur) : la machine de luser est directement connecte la machine qui excute le SO
User dmarre une application Developer et accde une BD situe sur un serveur NT

Connexion trois tiers : tablissement de la communication par le biais dune application ou un serveur rseau
Application sur un serveur NT et BD sur un hte UNIX

Mais cest quoi une connexion?


Une connexion est une voie daccs de communication entre user process et SO:
Connexion directe lhte : la voie est tablie laide de mcanismes de communication interprocessus Connexion 2 tiers ou 3 tiers : la voie est tablie laide de logiciel rseau

En tablissant une connexion, une session est ouverte Tant de session que de connexion

Connexion une BD C/S


Pour tablir une connexion avec BD, il faut raliser les tapes :
User dmarre SQL*Plus ou application, dmarrage donc dun user process Lors de lidentification de luser (login, password et chane hte), un processus se cre sur la machine qui excute le SO : Server process Client
Server process
User process

SO

User Process (UP)


Fonctionne sur la machine du client Dmarre lors de lappel dun outil (SQL*Plus, SQL*Loader, Developer..) ou dune application LUPI (interface du programme utilisateur) est incluse dans le UP

chaque requte, UP appelle le SO par le biais de lUPI

Server Process (SP)


Fonctionne sur la machine serveur (hte)

Cr lors de la connexion de luser et se termine lors de sa dconnexion


Utilise lOPI (Oracle Program Interface) pour communiquer avec le SO suite une demande de lUP Envoie les rsultats lUP Utilise une zone mmoire nomme PGA (zone mmoire du programme) qui stocke des informations concernant les variables utilises, la session utilisateur et ltat des transactions en cours

Server Process (SP)


Chaque SP prend en charge 1 seul UP (configuration la plus simplifie : serveur ddi).
Dans le cas o on a plusieurs utilisateurs qui accdent la base ceci impliquera une multiplication des UP et des SP(par consquent des PGAs) qui conduira une surcharge du systme Solution ( partir de 100 150 utilisateurs simultans): Utilisation de loption MTS (Multi-Threaded Server) peut conomiser des ressources en transfrant une partie des oprations effectues dans la PGA vers la SGA

Composants du SO
Le SO se compose: Dune instance Oracle
Zone mmoire globaledu systme (System Global Area (SGA) ) Processus en arrire-plan (background processes)

Dune BD Oracle
Structure logique reprsente les composantes quon cre dans une BD (table, index, etc) Structure physique reprsente la mthode de stockage des datas utilise par Oracle (physical files) Indpendance entre la structure logique et physique

Instance Oracle
Une instance Oracle (SGA + background processes) Est un moyen daccder une BD Oracle Ouvre toujours une seule et unique BD Est identifie en dfinissant ORACLE_SID au niveau de lOS

Instance Oracle-SGA
Alloue dans la mmoire virtuelle de lordinateur o rside le SO Reprsente la zone mmoire dterminante dune instance, tant par sa taille que par son rle
Assure le partage des datas entre les users (les datas lues et modifies transitent par le SGA)

Instance Oracle-SGA-structure
Comprend 5 structures de mmoire
Shared pool : stocke des informations comme les oprations SQL rcentes et les informations du dictionnaire de datas les plus rcemment utilises
Database buffer cache : utilis pour stocker les datas les plus rcemment utilises

Redo log buffer cache : utilis pour enregistrer les modifications apportes la BD

Instance Oracle-SGA-structure

Large Pool (new Oracle 9i) : zone mmoire optionnelle que le DBA configure afin de fournir une mmoire pour les oprations de BD comme les oprations de backup ou de restauration

JAVA Pool (new Oracle 9i) : zone mmoire optionnelle que le DBA configure afin de fournir une mmoire pour les oprations Java

SGA-Shared Pool
Sa taille est dfinie par le paramtre dinitialisation SHARED_POOL_SIZE qui se trouve dans le fichier des paramtres Compose de :
Library cache : Form de 3 zones:
shared SQL area (SSA) : contient le texte de lordre, le code analys et le plan dexcution qui dfinit les tapes suivre lors de lexcution de lordre (comme dtermin par loptimiseur) shared PL/SQL area (SPA) : idem que le SSA. Quand une procdure est excute alors le corps de cette dernire transitera dans le SPA Locks and others structures : des structures de contrle comme les verrous

Data dictionnary cache (Row cache) : stocke les informations du dictionnaire de datas les plus rcemment utilises (dfinitions de tables et de colonnes, les users names, les passwords et les privilges)

SGA-Database buffer cache


Taille de chacun des buffers dans le cache = Taille dun bloc de data. Dfinie par le paramtre DB_BLOCK_SIZE Pour augmenter la taille du Database buffer cache, il faut modifier DB_CACHE_SIZE (new Oracle 9i)

La valeur affecte est adapte pour tre multiple de DB_BLOCK_SIZE Algorithme Least Recently Used LRU (buffers les moins rcemment accds) afin dexclure ces derniers et de permettre lhbergement de nouveaux blocs dans le buffer cache
Partag entre tous les utilisateurs connects la BD

SGA-Redo log buffer cache


Cest le SP qui enregistre les modifications (suite lexcution dun ordre INSERT, UPDATE, DELETE, CREATE, ALTER ou DROP) apportes la BD dans le redo log buffer cache Ses caractristiques sont :
Taille en octets dfinie par le paramtre LOG_BUFFER (paramtre dynamique) Stocke des enregistrements redo qui conservent la trace des modifications ( bloc modifi, emplacement de la modification et la nouvelle valeur) Il est circulaire cest dire une fois qu il est rempli, les anciennes entres redo sont enregistres dans les fichiers redo log et les nouvelles entres redo prennent leurs places criture squentiel

SGA-Background processes
Les background processes effectuent les fonctions courantes ncessaires au traitement simultan de plusieurs requtes users, tout en prservant Lintgrit La performance du systme

Selon la configuration, chaque instance peut utiliser plusieurs background processes, mais elle contient par dfaut 5 processus principaux

SGA-Background processes
Les 5 background processes sont :
DBWR (DataBase Writer ) charg d'crire les datas modifies dans la BD ( plus spcifiquement dans les datas files) LGWR (Log Writer) : sauvegarde les modifications enregistres au niveau du buffer redo log dans la BD ( plus spcifiquement dans les Redo Log files) PMON (Process Monitor) charg de nettoyer les ressources et les verrous SMON (System Monitor) charg de vrifier la cohrence de la BD et ventuellement sa restauration lors du dmarrage si besoin CKPT (CheckPoint) met jour les informations concernant ltat de la BD chaque enregistrement dfinitif des modifications effectues dans le database buffer cache

SGA-DBWR
Par dfaut, Oracle dmarre un DBWR (DBW0) au moment de dmarrage de l instance Lorsquon a plusieurs utilisateurs ou lorsque le systme est charg, Oracle peut dmarrer 9 autres DBWR (DBW1 jusqu DBW9) pour amliorer la performance Le paramtre DB_WRITER_PROCESSES dtermine le nombre de processus additionnels que nous pouvons dmarrer

SGA-LGWR
Lorsque LGWR crit les redo log buffers sur le disque, SP peut alors crire de nouvelles entres dans le redo log buffer

LGWR crit les buffers sur le disque dans les cas suivants :
Suite un COMMIT Quand le redo log buffer est rempli au 1/3 Chaque 3 secondes

SGA-Background processes
Il existe galement d'autres processus d'importance secondaire :
RECO (Recoverer) : processus optionnel permettant de rsoudre les transactions interrompues brutalement dans un systme de BD distribues ARCH (Archiver) : processus optionnel. Il permet de dupliquer les fichiers Redo-Log dans un espace d'archivage. Dnnnn (Dispatcher, nnnn reprsente une suite de nombre entiers) : processus optionnel
n'est prsent que dans les configurations MTS Il permet de router les requtes vers dautres serveurs

SGA-Background processes
Il existe galement d'autres processus d'importance secondaire :
Snnnn (Server, nnnn reprsente une suite de nombre entiers): Ce processus n'est galement prsent que dans les configurations MTS Il permet de recevoir les demandes de connexions distantes envoyes par le processus Dnnnn d'un serveur distant

LCKn(Lock) est un processus de verrouillage utilis lorsque Oracle Parallel Server est install

BD Oracle-Structure physique
Dsign par son nom (DB_NAME) Oracle conseille dutiliser le mme nom pour la BD et linstance Les files composants une BD contiennent les datas utilisateur et les informations ncessaires au fonctionnement correct des oprations lies la BD Les fichiers physiques d'une base Oracle permettent de stocker de manire persistante les datas manipules par Oracle Les fichiers d'une BD Oracle sont : Data files Redo Log files Control files

BD Oracle-Data files
Les datas files stockent :
Le dictionnaire de donnes (les tables, les vues, les procdures stockes, ...) Les objets utilisateurs Les images avant de donnes modifies par les transactions en cours

L'extension est .dbf dans le cas de serveur Unix

Est associ une et une seule BD

BD Oracle-Data files
criture est assure par le processus DBWR Lorsque le fichier est plein, il peut augmenter automatiquement de taille Le DBA doit prciser un incrment et fixer une dimension maximale
vite la saturation du systme vite la cration de fichiers de taille suprieur celle pose par Linux (2GO)

BD Oracle-Redo log file


L'extension est .rdo ou .log dans le cas de serveur Unix Ces files contiennent l'historique des modifications effectues (image avant et aprs) sur la BD pour garantir la restauration de la base en cas de panne et donc garantir un tat cohrent de la base Une BD requiert au moins 2 fichiers redo log Les Redo-log files sont dans un format propritaire Oracle et l'criture dans ces fichiers est assure par le processus LGWR

BD Oracle-Redo log file


Lanalyse des Redo-log files se fait grce lditeur Log Miner Oracle propose galement un mode archivage (copie offline) permettant la sauvegarde du fichier Redo-log avant sa rutilisation pour restaurer la base (Cache redo-log ou fichiers redo log archivs) en cas de panne dun disque

BD Oracle-Control file
L'extension est .ctl dans le cas de serveur Unix Ces fichiers contiennent linformation ncessaire la mise jour et la vrification de lintgrit des BDs. Ces informations sont: Nom de la BD, Date et heure de cration de la base, L'emplacement des Redo-Log files, etc Une BD requiert au moins un control file Ils sont crs lors de la cration de la base Ils sont reprs par le fichier des paramtres (nomm aussi fichier d'initialisation) Indispensable au dmarrage de la base

BD Oracle-Autres structures physiques


Outre les files de BD, un SO utilise dautres files : Les logiciels Oracle
Des fichiers dont linstallation est ncessaire au bon fonctionnement dune base
Leur nombre est impressionnant Lajout dun nouveau logiciel ou la modification dun composant Oracle nous oblige intervenir sur ces fichiers En jargon Oracle, lensemble de ces fichiers sappelle distribution

BD Oracle-Autres structures physiques


Init File ou fichier de paramtre
Dfinit les caractristiques dune instance Oracle Format texte contenant l'ensemble des paramtres de dmarrage de la base nomm initSID.ora (PFILE) , o SID reprsente le nom donn l'instance Ou format dinitialisation persistant et le fichier sera nomme spfileSID.ora (SPFILE), o SID reprsente le nom donn l'instance (new Oracle 9i) Cr par dfaut lors de la cration d'une base

BD Oracle-Autres structures physiques


Fichiers redo log archivs
copie offline des redo-log files pouvant tre ncessaire la restauration des datas suite une panne dun disque

Password File ou fichier mot de passe


Utilis pour tablir lauthenticit des utilisateurs de BD

Alert File
En cas de problmes, Oracle enregistre des messages explicites Si le fichier nexiste pas lors du dmarrage de la BD, Oracle cre un automatiquement

Traitement dune requte


1. Lanalyse
a) b) UP envoie la query au SP pour lanalyser et 2 la compiler SP vrifie la validit de la commande et utilise la zone shared pool pour compiler lordre (Library cache) , vrifier les privilges daccs et rsoudre les noms dobjets spcifis dans lordre SQL (Row cache) SP renvoie ltat au UP (russite ou chec de lanalyse)
1.b

SP
PGA

c)

2. Lexcution SP se prpare extraire les datas 3. La rcupration SP renvoie user les lignes extraites par la query. Selon la mmoire de transfert, une ou plusieurs rcuprations sont requises pour transfrer les rsultats de la query

1.c 1.a
UP
Select * From emp Order by ename;

Traitement dun ordre LMD


Requiert juste 2 phases Lanalyse Similaire celle du traitement dune requte Lexcution 1. SP lit les blocs de datas partir des files datas si ces derniers ne sont pas dans le database buffer cache 2. Les copies des blocs lus sont places dans le database buffer cache 3. SP met les verrous sur les datas
4 3

SP

Update emp Set sal=sal*1.1 Where empno=15

Traitement dun ordre LMD


4. SP enregistre les modifications apporter au bloc rollback image avant et aux blocs de datas (new value) dans le buffer redo log 5. Dans le database buffer cache, SP enregistre limage avant dans le bloc rollback et met jour le bloc de datas
SP 4 3

Update emp Set sal=sal*1.1 Where empno=15

Traitement dun ordre LMD


Le traitement de lordre DELETE et INSERT est similaire celui de lUPDATE une exception prs :
Limage avant dune suppression contient les valeurs de colonnes de la ligne supprime Alors que les insertions requirent seulement les informations sur lemplacement de la ligne pour tre stockes dans le rollback

Traitement du COMMIT
1. SP place un enregistrement de validation dans le buffer redo log 2. LGWR effectue une criture contigu de toutes les entres du buffer redo log dans les redo log files 3. SP informe UP de lachvement du COMMIT 4. SP enregistre les informations indiquant que la transaction est complte et que les verrous mis sur les ressources peuvent tre supprims
1 1

4 SP

UP 2

Rsum
Aprs ce cours, vous devez tre capable :
Dexpliquer les fichiers de BD : data files, control files, online redo logs Dexpliquer la structure de la mmoire SGA : DB buffer cache, shared SQL pool, Java Pool, Large Pool and redo log buffer Dexpliquer lutilit des background processes : DBWR, LGWR, CKPT, PMON, SMON et ARC Dexpliquer les diffrentes tapes dexcutions des ordres SQL : parse, execute, fetch

Questions ?

Questions :
1. Quels sont les diffrents composants dun serveur
Oracle ? Pour chaque composant numr, donnez son rle. 2. Quels sont les trois architectures de connexion un

serveur Oracle ?
Pour chaque architecture, prcisez ses avantages et ses inconvnients. 3. Lorsquun utilisateur excute un commit , dans quel fichier sont enregistres les modifications, avant que le serveur Oracle ne renvoie le message

validation complte lutilisateur ?