Architecture Fonctionnelle D'oracle
Architecture Fonctionnelle D'oracle
Architecture Fonctionnelle D'oracle
Chapitre :
Objectifs
Description des structures quimplique la connexion dun user un serveur Oracle
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
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)
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
En tablissant une connexion, une session est ouverte Tant de session que de connexion
SO
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)
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-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
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-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
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
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;
SP
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