Вы находитесь на странице: 1из 57

Systmes de Gestion de Bases

de donnes

Section: 2me anne informatique

Prpar par :

Mme Ines BOUZOUITA


Ines.bouzouita@yahoo.fr

1
Cours
Public cible : 2A informatique
Pr-requis
SQL
Volume Horaire: 22h30

Objectifs du module
Vous apprendrez mettre en oeuvre et administrer le SGBD Oracle.
Parmi les principaux points abords figurent l'architecture du SGBD,
l'installation, ainsi que la gestion de l'instance, des bases, des espaces de disques,
des objets, des donnes d'annulation, des utilisateurs et des droits d'accs.

I.BOUZOUITA, ENIT, 2016-2017


Plan du module
Chapitre 1. Architecture interne doracle

Chapitre 2. Structures physiques et logique dune bases de donnes


oracle

Chapitre 3. Le dictionnaire de donnes

Chapitre 4. Objets avancs dans les bases de donnes

Chapitre 5. Gestion des utilisateurs

Chapitre 6. Gestion des transactions


Architecture interne d

Section: 2me anne informatique

Prpar par :

Mme Ines BOUZOUITA


Ines.bouzouita@yahoo.fr

4
SGBD: Systme de Gestion de Bases de Donnes
Dfinition1:
Un SGBD (ou DBMS : Data Base Management System) est
un ensemble de logiciels permettant de stocker et
dinterroger un ensemble de fichiers interdpendants.

Dfinition2:
un outil permettant de modliser et de grer les donnes
dune entreprise.
SGBD: Systme de Gestion de Bases de Donnes

Un SGBD (System de Gestion de Base de Donnes):


Un ensemble de logiciels permettant aux utilisateurs dune BD de:

la crer (LDD : Langage de Dfinition de Donnes).


la manipuler (LMD : Langage de Manipulation de donnes) .
la contrler (LCD : Langage de Contrle de Donnes).
Tches de ladministrateur de BD

valuer le matriel pour le serveur de BD.


Installer le SGBD.
Crer et planifier la base de donnes.
Crer des utilisateurs et affecter les privilges et rles.
Grer et contrler les ressources de la BD.
Transposer, exporter et importer des donnes.
Assurer la scurit et la surveillance de la BD.
Archiver et rcuprer la base en cas de panne.

7
Le choix d'ORACLE

SGBD Relationnel, puissant et de plus en plus choisi par les


grandes socits.

depuis l'introduction du support du modle objet dans sa


version 8 peut tre aussi qualifi de SGBD relationnel-objet
(SGBDRO).

supporte un grand volume dinformations dans sa BD (tra


octet).

prsente une grande puissance et ouverture de la couche


dadministration des BD et une multitude dutilitaires
dadministration.
8
ORACLE
Utilisation du SGBD travers diffrents outils :
interface conversationnelle (SQL*Plus)
interface de programmation vers dautres langages (Pro*C, Pro*Cobol,
Pro*JAVA...)
gnrateurs dtats (SQL*Report)
utilitaire de chargement de donnes (SQL*Loader)

gnrateurs dapplications Oracle


Forms (SQL*Forms, SQL*Menu)
utilitaire de gestion dune
architecture client/serveur
(SQL*Net)
utilitaire de gestion de bases de
donnes rparties (SQL*Star)

9
Histoire dOracle

1977 : Cration de Software Development Laboratories (SDL).

1979 : SDL change de nom en devenant Relational Software, Inc.


(RSI) et introduit son produit Oracle V2 comme base de donnes
relationnelle.
La version 2 ne supportait pas les transactions mais implmentait les
fonctionnalits SQL basiques de requte et jointure. Il n'y a jamais eu de
version 1, pour des raisons de marketing, la premire version a t la version
2. Celle-ci fonctionnait sur les systmes Digital VAX/VMS

1983 : RSI devient Oracle Corporation pour tre plus reprsentative


de son produit phare.
La version 3 d'Oracle, entirement rcrite en langage de programmation C.
Supporte les transactions grce aux fonctionnalits de commit et rollback.
Unix est supporte partir de cette version.

10
Histoire dOracle

1984: la version 4 d'Oracle apparat, supportant la cohrence en


lecture (read consistency).
.
1997: la version 8 introduit le dveloppement orient objet et les
applications multimdia.

2001: Oracle 9i ajoute 400 nouvelles fonctionnalits et permet de
lire et d'crire des documents XML.
intgration du moteur OLAP
Les donnes multidimensionnelles sont accessibles partir du langage SQL.
2003: la version 10g est publie, version qui supporte les
expressions rationnelles. Le g signifie grid ; un des atouts
marketing de la 10g est en effet qu'elle supporte le grid
computing .
11
Histoire dOracle

2005 : vers la fin novembre, une version compltement gratuite est


publie, la Oracle Database 10g Express Edition .

2007 : sortie de la version 11 : Oracle Database 11g, pour Linux et


Windows.

2009 : sortie de Oracle 11g Release 2.

2013 : sortie de Oracle Database 12c.

12
Identification du produit Oracle

Pour identifier un des produits logiciels, Oracle utilise jusqu 5 chiffres :

Numro de version
8.0.4.0 Numro de release
du patch spcifique

Numro de release Numro de release


(version) du patch
de maintenance

Patch Section de code que l'on ajoute un logiciel, pour y apporter des modifications :
correction d'un bug.

13
Identification du produit Oracle

Les diffrentes versions dOracle 10g proposes sont :


Oracle Database Personal Edition;
Oracle Database Standard Edition One ;
Oracle Database Standard Edition ;
Oracle Database Enterprise Edition ;
Oracle Database Express Edition, la version gratuite (depuis 2005)

14
Connexion un serveur Oracle
Une connexion est un chemin de communication entre un processus
utilisateur et un processus serveur. Il existe trois types de connexions
grce auxquelles un utilisateur peut accder un Serveur Oracle :
Connexion locale : Selon cette mthode, un utilisateur est directement
connect sur la machine faisant office de Serveur Oracle.
Connexion Deux Tiers : Ce type de connexion est couramment nomm
"Connexion Client Serveur", un utilisateur se connecte partir d'une
machine directement connecte un Serveur Oracle.
Connexion Multi Tiers : Dans une architecture multi tiers, la machine de
l'utilisateur se connecte un Serveur applicatif (Par exemple un Serveur
Web) qui lui mme va se connecter au serveur Oracle pour rcuprer les
donnes issues de la BD.

Session: une connexion spcifique dun utilisateur un serveur oracle.


La session dmarre lorsque lutilisateur est authentifi par le serveur
oracle et se termine lorsque lutilisateur se dconnecte ou en cas de
dconnexion anormale. 15
mode de fonctionnement
Oracle supporte deux modes de fonctionnement:
1. Serveur ddi : chaque fois quun utilisateur se connecte, il est pris
en charge par un processus serveur.
Si 100 utilisateurs se connectent, 100 processus serveurs sont cres de mme
Avantage: une commande SQL est tout de
suite et directement prise en compte par
un processus serveur
Inconvnient: chaque processus serveur
occupe une zone mmoire et utilise la CPU
Meilleure configuration (recommande et
utilise par beaucoup de DBA), si les
ressources matrielles le permettent.

16
mode de fonctionnement
:
2. Serveur Partag : cest un groupe de processus serveurs qui
soccupent dun grand nombre de processus utilisateurs.
Les processus utilisateurs sont allous un processus DISPATCHER, celui-ci
met les requtes utilisateurs dans une fille dattente, et le processus serveur
excute toutes les requtes, une par une
Avantage: Rduire la charge de la CPU et utilise moins de mmoire

Inconvnient: Lors de forte utilisations


de la BDD, il risque dy avoir des
temps dattente ( performance)

17
Architecture interne dOracle

Instance
BD

Larchitecture interne dOracle est compose:


1. de fichiers (niveau physique)
2. de processus background
3. de structures mmoire.
Architecture d'une BD ORACLE

Chaque BD qui sexcute est associ une instance oracle


Une instance oracle est la combinaison des structures mmoire (SGA, PGA)
et de processus oracle en arrire plan
19
Structure mmoire:

Structure mmoire: System Global Area

1. Shared Pool : Shared SQL Area + Dictionnaire des donnes


2. Buffer Cache : Cache des blocs de donnes
3. Redo Log Buffer : Tampon de journalisation circulaire
contenant les modifications effectues sur la base
Architecture globale d'ORACLE

LCKn RECO PMON SMON

System Global Area


Shared Pool Database Buffer Cache Redo log Buffer

Support
User Shared server Dedicated server CKPT ARCn archive
process process

DBWn LGWR
User
Control
File
Redo
Database
Log
files

21
La mmoire

22
La mmoire

Oracle utilise les structures suivantes au niveau de la


mmoire centrale :
les informations relatives une session ouverte
les donnes ncessaires pendant lexcution dun programme.
les informations partages par diffrents processus Oracle
(relatives au verrouillage par exemple).
les donnes changes avec les mmoires auxiliaires (Bloc de
donnes par exemple).

Administration Oracle 23
Structures mmoire Oracle
Dans tout systme informatique, lutilisation de mmoire est synonyme
de performance. Les structures mmoire de base associes une instance
Oracle sont :
zones rserves au code de lapplicatif.
Mmoire SGA (System Global Area) : partage par tous les processus
serveur et processus en arrire-plan
Mmoire PGA (Program Global Area) : propre chaque processus serveur
et processus en arrire-plan (une mmoire PGA pour chaque processus)

24
System Global Area (SGA)

La SGA (appele aussi mmoire rserve) est une zone mmoire qui
est utilise par la BD pour partager les informations entre les diffrents
processus Oracle.

Zone de mmoire contenant les donnes et les informations de contrle


de l'instance

A chaque dmarrage d'une instance, l'espace mmoire ncessaire son


bon fonctionnement lui est allou, et est restitu lors de sa fermeture.

Oracle utilise la mmoire SGA comme buffer intermdiaire (plus


rapide que le disque) pour lchange de donnes entres processus

Le dimensionnement de cette zone peut tre important pour les


performances de la base. Augmenter la taille de certaines zones du
SGA permet de diminuer les entres sorties du disque, par exemple.
25
System Global Area (SGA)
La SGA Elle est divise trois composants obligatoires :
1. Database buffer cache (Le cache de donnes)
2. Redo log buffer (Le cache de reprise)
3. Shared pool

Et de trois composants optionnels


Java pool
Large pool
Streams pool

26
1. SGA - Database Buffer cache
Database Buffer cache (Cache de tampons )
ensemble de zones buffer contenant des copies de donnes lues partir
des fichiers de donnes afin d'acclrer l'interrogation et/ou la
modification.
aucune modification nest 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
taille dtermine par : DB_BLOCK_BUFFERS
Organisation du Database Buffer cache
Le buffer cache est organis en 2 listes :
La dirty list contient les buffers qui ont t modifis mais ne sont pas encore

crits sur le disque


La liste LRU (Least Recently Used) contient les buffers les moins rcemment

utiliss qui contient :


Les buffers libres pouvant tre utiliss
les buffers actuellement utiliss (pinned buffers) par certains processus
les buffers modifis non encore dplacs dans la dirty list
27
SGA - Algorithme LRU

Algorithme LRU
utilise un algorithme nomm LRU moins rcemment utiliss (Least-
Recently Used) pour dterminer les donnes librer du cache.
recherche dun buffer libre dans la liste LRU en commenant par le dbut arrt
ds quon trouve un buffer libre ou quon ait parcouru un certain nombre de
buffers (DB_BLOCK_SCAN_CNT)
pendant cette recherche, transfert des buffers modifis vers la dirty list
ds quon trouve un buffer libre, on crit le bloc dans le buffer et on le transfre
vers la fin de la zone MRU (Most Recently Used)
si DB_BLOCK_SCAN_CNT buffers sont parcourus et on ne trouve aucun
buffer libre, DBWR est activ pour crire les buffers modifis sur disque pour
librer leur espace.

Dirty list

LRU list
MRU
28
Vues systme utilises : V$SGA ; V$PARAMETER ;
SGA- Redo Log buffer

Tampon de journalisation (Redo Log buffer) : buffer circulaire qui


met en mmoire cache les informations de journalisation relatives
aux modifications apportes la BD (insert, delete, update, create,
alter et drop). Ces informations (entres redo log) sont utilises en
cas de restauration.

Redo Log buffer permet oracle de reconstruire les modifications


des donnes en cas de panne.

L'information Redo reste dans le buffer Redo log jusqu' ce quoracle


la stocke sur le disque.

Sa taille est dfinie par LOG_BUFFER

29
SGA - Shared Pool
Zone de mmoire partage (Shared Pool) : met en mmoire cache
diverses structures pouvant tre partages par les utilisateurs,

utilise pendant la phase danalyse des ordres


SQL passs un processus Oracle, elle contient
principalement le cache du dictionnaire de
donnes (Dictionnary Cache) et le cache de
bibliothques (Library Cache)
gre laide de lalgorithme LRU
Sa taille est dtermine par SHARED_POOL_SIZE
Pour la modifier : Alter system set shared_pool_size=64M

Library cache : permet d'analyser l'ordre d'excution d'une requte SQL et de


dfinir un plan d'excution.
Dictionary cache : stocke les donnes en provenance du dictionnaire afin
d'acclrer l'accs au dictionnaire (nom d'utilisateurs, privilges, etc.).
N.B: Si la mme requte est r-excute, le serveur n'analyse pas son ordre.
Cela permet d'amliorer la performance des applications 31
System Global Area (SGA)

.
Zone de mmoire LARGE POOL : zone facultative fournissant
d'importantes allocations mmoire (lors de lexcution doprations
volumineuses) pour certains processus utilisant beaucoup de
mmoire, tels que :
les oprations de sauvegarde et de rcupration Oracle et

les processus serveur d'entre-sortie

Paramtre LARGE_POOL_SIZE

Zone de mmoire Java : zone utilise pour l'ensemble du code Java et


des donnes propres la session dans la JVM (Java Virtual Machine)
Paramtre JAVA_POOL_SIZE

Zone de mmoire Streams : zone utilise par Oracle Streams (pour la


rplication)
Paramtre STREAMS_POOL_SIZE
32
System Global Area (SGA)

Estimation de la taille de la SGA

Dtermine en fonctions des paramtres :


DB_BLOCK_SIZE
DB_BLOCK_BUFFERS
LOG_BUFFER
SHARED_POOL_SIZE

Formule :
Taille de la SGA =
( DB_BLOCK_SIZE * DB_BLOCK_BUFFERS)
+
LOG_BUFFER + SHARED_POOL_SIZE
33
La gestion automatique de la SGA

Les tailles des zones mmoire peuvent tre dfinies manuellement


ou automatiquement.

Gestion manuelle : donner une valeur spcifique chacun des


paramtres des tailles des zones mmoire. La somme ne doit pas
dpasser SGA_MAX_SIZE.

Gestion automatique : activ si SGA_TARGET est diffrente de zro.

Dans ce cas, le DB Buffer Cache, le Shared Pool, le Large Pool et le


Java Pool sont dimensionns automatiquement. La taille du Log
Buffer nest pas prise en charge par la gestion automatique, sa taille
est dduite du SGA_TARGET.
34
La gestion automatique de la SGA
La valeur du paramtre SGA_MAX_SIZE contient la taille maximale de la SGA.
La valeur du paramtre SGA_TARGET contient la taille souhaite de la SGA.
C:\>SET ORACLE_SID=DBTEST
C:\>SQLPLUS /NOLOG
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 12 22:23:45 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> CONNECT / AS SYSDBA
Connected.
SQL>ALTER SYSTEM SET sga_max_size=1800M SCOPE=SPFILE;
System altered.
SQL>ALTER SYSTEM SET sga_target=1800M SCOPE=SPFILE;
System altered.
SQL>SHUTDOWN IMMEDIATE
........
SQL>STARTUP
........
SQL> SHOW PARAMETER sga;
NAME TYPE VALUE
------------------------------------ ----------- -----------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 1800M
sga_target big integer 1800M
SQL>
35
Program Global Area (PGA)

Contrairement aux autres zones mmoire celle-ci n'est pas partage.


Elle est seulement utilise par des processus serveur ou d'arrire plan.
Elle stocke des informations de contrle spcifiques la session de
lutilisateur telles que les zones prives pour le traitement des
curseurs, les variables attaches (bind), des informations sur la session,
une zone de trie.
Chaque processus serveur dispose de sa propre mmoire PGA prive
qui lui est exclusivement rserve.
Elle est alloue lors du dmarrage du processus et libre lors de
l'arrt du processus.
la taille de la PGA est dtermine par :
OPEN_LINKS
DB_FILES
LOG_FILES 36
Les processus

37
Les processus autour d'Oracle

Les processus

Processus Processus Oracle


utilisateurs
Processus interaction entre processus
pour excuter SERVEUR utilisateur et linstance
(mmoire de la SGA).
une application
SQL*Plus,
Pro*C, etc.
Processus en effectue des tches bien
arrire plan dfinies pour lensemble
des utilisateurs

38
Les processus utilisateurs

Processus client excutant le code d'une application (PRO*C,


FORMS, ...) ou dun Outil Oracle (SQL*PLUS, ENTREPRISE
MANAGER, ...)

Processus souvent excut sur une machine diffrente de celle ou


rside le serveur Oracle

processus qui tablit une communication avec Oracle via un protocole


de communication et SQLNET

La communication est gre via le User Programme Interface (UPI)

39
Le processus Serveur (Server)

Un processus serveur peut tre ddi ou non


Il est aussi appel shadow process
Son rle consiste :
assurer la communication directe ou indirecte avec les processus utilisateurs
analyser et excuter les requtes soumises par les applications (utilisateurs)
transfrer les blocs de donnes ncessaires du disque vers la zone SGA.
restituer directement ou indirectement le rsultat au processus utilisateur
dplacer les blocs modifis dans la DIRTY LIST

Exemple de serveur en mode ddi

40
Les processus en arrire-plan (BACKGROUND)
Ils grent et appliquent les relations entre les structures physiques et les
structures mmoires.
Ils effectuent des tches bien dfinies pour lensemble des utilisateurs
Ils sont lancs au dmarrage de l'instance et arrts lors de l'arrt de l'instance.

41
Les processus Oracle DBWn (Database Writer )
DBWn gre le buffer de la BD : crit, transfre sur disque le contenu des
tampons modifis (Dirty Block) dans les fichiers de donnes.
DBWn se dclenchera lors des vnements suivants :
Lorsque le nombre de bloc dirty atteint une certaine limite
Lorsqu'un processus sera la recherche de blocs libres dans le Database
Buffer Cache, et qu'il ne sera pas en mesure d'en trouver.
Lors de timeouts (environ toutes les 3 secondes par dfaut)
Lors d'un checkpoint.

Le comportement de DBWR est contrl par


le paramtre dinitialisation DB_WRITERS. Le
paramtre DB_WRITER_PROCESSES initialise
le nombre de Processus DBWn.
Oracle 10g 1 20 processus Database Writer.
Oracle 11g 1 36 processus Database Writer

Ceci permet de dmarrer plusieurs processus DBWn, afin daugmenter


le taux dcriture sur disque dans les systmes fortement sollicits. 42
Les processus Oracle LGWR (LogWriter)
LogWriter crit les buffers Redo Log dans les fichiers de reprise.
Le processus LGWR transcrit les informations contenues dans le REDO
LOG Buffer vers les fichiers REDOLOG FILE quand :
une transaction s'est termine avec un COMMIT
le REDO LOG Buffer est au 1/3 plein
Avant que DBWn n'crive le contenu du Database Buffer Cache dans les
fichiers du disque dur
toutes les 3 secondes.

Lorsqu'un utilisateur valide une transaction, elle reoit un numro SCN (System Change Number).
Ces Numros sont enregistrs dans le fichier de journalisation (pas seulement ) afin de permettre une
synchronisation dans le cas d'une reprise ou rcupration de donnes suite une dfaillance. 43
Les processus Oracle CKPT (Check Point)

CKPT a un rle important dans le bon fonctionnement d'une Instance.


CKPT inscrit les informations de point de reprise dans les fichiers de
contrles et dans l'entte de chaque fichier de donnes. Ce point de
reprise (SCN) permet de rendre cohrent les fichiers de contrles et les
fichiers de donnes, indispensable pour un processus de rcupration.

CKPT n'crit pas les blocs sur le disque, c'est le rle du processus DBWn.
Provoque l'activation du DBWR pour crire les blocs modifis depuis le dernier
point de contrle,
44
Les processus Oracle CKPT (Check Point)

Les numros SCN enregistrs dans les fichiers garantissent que toutes les
modifications apportes aux blocs de BD avant un numro SCN ont t
crites sur le disque.
En cas d'arrt anormal de l'instance, ce SCN marque le dbut des donnes utiliser
pour la rcupration de l'instance.*

Le processus LGWR ncrit pas dans le fichier de journalisation (REDO


LOG) tant que le processus CKPT n'a pas synchronis, car tant que cette
synchronisation n'est pas faite, le fichier de journalisation contient des
donnes ncessaires une ventuelle rcupration aprs dfaillance de
l'instance.

A savoir qu'une synchronisation se dclenche aussi chaque basculement


de REDO LOG, lors de larrt de la BD, lors de la mise hors ligne d'un
Tablespace.
45
Les processus Oracle SMON (System Monitor)

surveille la BD lors de son dmarrage.


assure la rcupration de linstance lors du dmarrage dinstance.
assure la libration des segments temporaires qui ne sont pas utiliss.
compacter l'espace contigu dans les Tablespaces
vrifie, lors du dmarrage de l'instance, si le dernier arrt a t
correctement effectu.

46
Les processus Oracle SMON (System Monitor)

Lors d'un arrt brutal de la BD (par exemple plantage du systme), le


processus SMON en action :
lit les informations contenues dans les segments UNDO (donnes en attente de
validation) puis les annule. (ROLL BACK)
rcupre dans les fichiers REDO LOG les enregistrements valids mais pas encore
crit dans les fichiers de donnes et les insre. (ROLL FORWARD).
libre toute les ressources de la BD (vrrous, segments temporaires).

Lors d'un fonctionnement normal de la BD, le processus SMON en action :


surveille l'activit de la base de donnes.
recycle les segments temporaires et assure les espaces de tri.
libre toute les ressources de la BD (vrrous, segments temporaires).
vrifie que les bases de donnes composant un Cluster sont actives.
peut tre appel par d'autre Processus pour librer de l'espace.

Si le processus System Monitor SMON sarrte, l'instance Oracle doit tre redmarre.
47
Processus Oracle PMON (Process Monitor)

effectue un nettoyage de processus lorsqu'un processus utilisateur choue


(par exemple plantage).
surveille aussi les sessions pour dtecter les dpassements des dlais
d'inactivits, il enregistre aussi dynamiquement les services de BD dans les
processus d'coute.

48
Processus Oracle PMON (Process Monitor)

Lors d'un chec d'un processus utilisateur, le processus PMON en action :


annule la transaction (ROLL BACK)
nettoie le cache de tampons de la BD.
libre les zones mmoire alloues, supprime les verrous poss par les
transactions et annule les ressources affectes aux threads de la transaction.

Lors d'un fonctionnement normal de la BD, le PMON en action :


scrute et dtecte les processus utilisateurs.
vrifie le statut des processus Dispatcher et Serveur.
redmarre les processus Dispatcher et Serveur si ils sont arrts.
peut tre appel par d'autre Processus.

Si le processus Process Monitor PMON sarrte, l'instance Oracle doit tre redmarre.
49
Processus Oracle - optionnels

Processus d'archivage (ARCn) :


copie les fichiers de journalisation (fichiers redo log) dans le lieu destin au
stockage des archives lorsqu'ils sont pleins.
LCKn (LOCKn) :
Nexiste quavec loption Parallel Server
Permet de grer le verrouillage inter-instance.
On peut avoir jusqu 10 processus de type (LCK0,LCK1,....,LCK9).
Dnnnn (Dispatcher et Server)
Permet le partage dun nombre limit de processus serveurs par les processus
utilisateurs (Utilis avec la configuration Multi-Threaded Server).
Permet de minimiser le nombre des processus serveurs lorsque le nombre
dutilisateurs est important.
Le nombre de processus dispatchers est fix par ladministrateur dans init.ora.
RECO ou Recover :
Utilis uniquement en cas de BD rpartie.
permet deffectuer le recouvrement en cas dchec dune transaction rpartie.
50
Processus Oracle optionnels- Listener ou listener Net

Le processus dcoute Oracle (listener) est le principal composant Oracle


cot serveur qui permet d'tablir la connexion entre les ordinateurs clients et
une BD Oracle (le port du listener Oracle par dfaut est le port TCP 1521).

Le listener peut tre considr comme une grande oreille qui coute les
demandes de connexion aux services Oracle.

Thoriquement, une machine serveur peut hberger plusieurs BD Oracle


et un listener et un seul pour permettre la connexion dun client
linstance Oracle de son choix.

51
Session, processus serveur et processus utilisateur
Une connexion spcifique entre un utilisateur et un serveur Oracle est
appele une Session.
La session dmarre lorsque la connexion de l'utilisateur est valide par
le serveur Oracle et se termine lorsqu'il se dconnecte ou lorsqu'une fin
de connexion prmature se produit.
De nombreuses sessions concurrentes d'un mme utilisateur ou de
plusieurs peuvent s'excuter sur le serveur Oracle.

Lorsque un utilisateur est connect une machine sur laquelle rside


un Serveur Oracle, deux processus supplmentaire sont invoqus : Le
processus utilisateur et le processus serveur.
Le processus utilisateur : demande une interaction avec la BD en
dmarrant une connexion. Il communique uniquement avec le
processus serveur correspondant.
Le processus serveur : reprsente le programme qui rentre directement
en interaction avec le serveur Oracle. Il rpond toutes les demandes et
renvoie les rsultats.
52
Gestion dune instance Oracle

53
Gestion dune instance Oracle

Lexemple illustre une configuration Oracle dans laquelle l'utilisateur


et les processus serveur associs utilisent des ordinateurs distincts
(connects entre eux via un rseau)

1 Une instance a t dmarre sur l'ordinateur excutant Oracle


(souvent appel hte ou serveur de base de donnes).

2
L'ordinateur excutant l'application (ordinateur local ou poste client)
utilise un processus utilisateur. L'application client tente d'tablir une
connexion avec l'instance en utilisant le pilote Oracle Net Services.

3 L'instance dtecte la demande de connexion manant de l'application


et se connecte un processus serveur pour le compte du processus
utilisateur.

54
Gestion dune instance Oracle

55
Gestion dune instance Oracle
traiter une instruction SQL
4 L'utilisateur met jour une ligne

5
Le processus serveur reoit l'instruction et vrifie si elle se trouve dj
dans la zone de mmoire partage de la mmoire SGA
Si une zone SQL partage est dtecte, le processus serveur vrifie
les privilges d'accs de l'utilisateur par rapport aux donnes
demandes et la zone SQL partage existante est utilise pour le
traitement de l'instruction.
Si l'instruction ne se trouve pas dans la zone de mmoire partage,
une nouvelle zone SQL partage est alloue pour celle-ci afin qu'elle
puisse tre analyse et traite.
6 Le processus serveur extrait les valeurs des donnes ncessaires du
fichier de donnes (table) ou des blocs de donnes stocks dans la
mmoire SGA
56
Gestion dune instance Oracle

traiter une instruction SQL

7 Le processus serveur modifie les donnes de la table dans la


mmoire SGA.

8 Lorsque la transaction est valide (commit), le processus LGWR


enregistre immdiatement la transaction dans le fichier de
journalisation (fichier redo log).

9 Le processus DBWn crit les blocs modifis sur le disque lorsque


cela s'avre utile.

10 Le processus serveur envoie un message de succs ou d'erreur


l'application via le rseau.

57

Вам также может понравиться