Vous êtes sur la page 1sur 25

FACULTE DES SCIENCES ET TECHNIQUES-SETTAT

Administration Oracle
11g
Partie I
Noreddine GHERABI

FILIERE

DES INGENIEURS-GI

I-

PRESENTATION

La version oracle database 11g release 2 est disponible depuis septembre 2010.
La version 11.2 pour Windows est disponible depuis avril 2010.
Cette nouvelle release contient loutil de dveloppement rapide APEX (Oracle
Application Expresse).
Un serveur http est galement intgr dans la base de donnes. Il utilise la
technologie WebDAV et est implment sous le nom de XML DB. Il est nomm par
Oracle Embedded PL/SQL Gateway .
Oracle Database 11g reprsente la nouvelle gnration de la gestion des informations
en entreprise, qui permet de faire face aux exigences quimposent la croissance
rapide des volumes de donnes, lvolution constante de lenvironnement et la
ncessit de fournir une qualit de service maximale tout en rduisant et en
contrlant les cots informatiques. Oracle 11g offre une performance amliore du
stockage sur fichiers, des fonctionnalits renforces pour la scurit, dimportantes
amliorations de performances pour Oracle XML DB, et des fonctions nouvelles pour
lOLAP et le datawarehouse.
Oracle Database 11g reste centr sur le grid computing : il permet de constituer des
matrices de serveurs et de systmes de stockage conomiques, capables de traiter les
donnes de faon rapide, fiable et volutive, en supportant les environnements les
plus exigeants, quil sagisse de datawarehouse, de transactionnel ou de gestion de
contenus.

II-

SERVEUR ORACLE

Un serveur Oracle, systme de gestion de base de donnes, se compose d'une


instance Oracle et d'une base de donnes Oracle .
L'instance et la base de donnes constituent ensemble un serveur Oracle.
L'architecture d'Oracle Server peut tre dcrite en quatre phases:
1.
2.
3.
4.

Connexion utilisateur la base de donnes


Structures mmoire qui font partie de linstance Oracle
Processus darrire plan qui font partie de linstance Oracle
Structures physiques de fichiers formant la base de donnes Oracle

Connexion utilisateur la base de donnes


Dans une configuration de serveur ddi, le Listener lance pour chaque client un
nouveau processus serveur et lui cde le contrle de la session du client. Chaque
connexion client est servie par son propre processus serveur.

Noreddine GHERABI

Le schma ci-dessus correspond une configuration serveur ddi et pour une


application client/serveur.
Le processus de connexion passe par les tapes suivantes :
1. Le client contacte le listener Oracle en choisissant linstance laquelle il
souhaite se connecter (demande dun nom de service).
2. Le listener dmarre un processus ddi appel processus serveur
3. Le listener envoie un accus de rception au client avec l'adresse du processus
serveur ddi
4. Le client tablit une connexion avec le processus serveur ddi
5. Le processus serveur se connecte l'instance Oracle pour le compte du
processus utilisateur (cration dune session utilisateur)
Cest le processus serveur qui se connecte l'instance Oracle pour servir le processus
utilisateur durant toute la session du client.
Le processus utilisateur n'entre pas directement en interaction avec le serveur Oracle.
C'est plutt, le processus serveur qui interagit avec le serveur Oracle, rpond aux
demandes de lutilisateur et lui renvoie les rsultats.

III-

ARCHITECTURE ORACLE

Larchitecture oracle est constitue dune instance et dune base de donnes appele
database.

Une instance est constitue :


-

Dune zone de mmoire partage appele System Global Area (SGA)


Dun ensemble de processus darrire plan ayant chacun un rle bien prcis
Dun ensemble de processus serveur chargs de traiter les requtes des utilisateurs
3

Noreddine GHERABI

La base de donnes est lensemble des fichiers qui permettent de grer les donnes de
la base.
Une base de donnes est constitue de :
- Un fichier de contrle, contenant les informations sur tous les autres fichiers de la
base (nom, emplacement, taille).
- Fichiers de Redo Log, contenant lactivit des sessions connectes la base. Ce
sont des journaux de transactions de la base. Ils sont organiss en groupe
possdant le mme nombre de membres.
- Et ventuellement, de fichiers de Redo Log archivs contenant les archives
danciens fichiers de Redo Log.
- Dun ou plusieurs fichiers de donnes qui contiennent les donnes des tables de la
base.
Le schma suivant prsente les principaux composants dun serveur Oracle :

1- Instance
Une instance est lensemble des processus darrire-plan (background process) et de
zones mmoire qui sont alloues au dmarrage de la base de donnes, pour
permettre lexploitation des donnes.
Une instance Oracle est compose dune zone mmoire appele System Global Area
(SGA), associe cela un certain nombre des processus qui interagissent entre le SGA
et les fichiers de la base de donnes qui se trouvent sur disque. Elle est identifie par
4

Noreddine GHERABI

un identifiant
entifiant appel SID. Gnralement, le SID porte le mme nom que la base et
linstance.
Une instance ne peut ouvrir quune seule base de donnes la fois et dans la grande
majorit des cas, une base de donnes est ouverte par une seule instance.
En dehors des processus de linstance, il existe des processus utilisateurs
correspondant lapplication utilise par lutilisateur pour se connecter la base de
donnes (SQL*Plus, un progiciel, un logiciel spcifique, ).
Dans une architecture client/serveur, ces
ces processus utilisateurs sont situs sur le
poste de lutilisateur et communiquent avec le serveur travers le rseau grce la
couche Oracle Net.
Le PGA
Afin doptimiser ses performances, le serveur Oracle dispose de plusieurs zones
mmoires diffrentess ayant chacune une tche claire dans le fonctionnement du
serveur.
Comme on a pu le voir prcdemment, le processus utilisateur est un processus qui
tablie une connexion, ouvre une session avec une base de donnes Oracle. Par
exemple, un utilisateur qui se connecte linstance de la base de donnes et ouvre
ainsi une session pendant laquelle il pourra envoyer au moteur dOracle des
commandes SQL. La session durera jusqu la fin de la connexion. Bref, La zone
mmoire alloue pour le fonctionnement de chaque
chaque processus utilisateur au niveau
du serveur sappelle la zone mmoire du programme (PGA, Program Global Area).

1.1

La SGA (System Global Area)

La mmoire SGA (System Global Area) est une mmoire partage par tous les processus
serveur et les processus en arrire
rrire-plan.

La SGA est compose de trois composants obligatoires et trois lments facultatifs.


Les composants obligatoires :
1. Zone de mmoire partage (Shared Pool)
2. Cache de tampons de la base de donnes (database buffer cache)
3. Tampon de journalisation (redo log buffer)
5

Noreddine GHERABI

Les lments facultatifs :


1. Zone de mmoire LARGE POOL
2. Zone de mmoire Java (Java Pool )
3. Zone de mmoire streams (streams pool)
La SGA doit reprsenter au moins 2% de la taille totale de la base donnes (physique). Elle
est rpartie comme suit :

50% Cache de donnes (database buffer cache)


40% Shared Pool
10% Redo log Buffers + le reste

Paramtrer la taille SGA avec SGA_TARGET et SGA_MAX_SIZE.


Comment modifier la taille de la SGA Oracle ?.
La SGA ou System Global Area reprsente une zone mmoire dune instance, cest elle qui
assure le partage des donnes entre les utilisateurs. Les donnes lues ou modifies transitent
par la SGA.
En 11G, nous avons la possibilit d'activer une fonctionnalit de rglage automatique de la
mmoire partage, c'est l'ASSM ou Automatic Shared Memory Management. Pour activer
l'ASSM, il suffit d'affecter au paramtre SGA_TARGET une valeur suprieur 0. Si
SGA_TARGET = 0 alors les paramtres ci-dessous doivent tre affects.
Si l'ASSM ( SGA_TARGET > 0 ) est active, alors les valeurs suivantes seront
dynamiquement gres par Oracle.

Database Buffer Cache - DB_CACHE_SIZE.


Large Pool - LARGE_POOL_SIZE.
Shared Pool - SHARED_POOL_SIZE.
Java Pool - JAVA_POOL_SIZE.

Si vous attribuez une valeur aux paramtres gres dynamiquement par Oracle, alors cette
valeur sera la valeur minimale.
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.
SGA_MAX_SIZE >= SGA_TARGET.

1.1.1

Zone de mmoire partage (Shared Pool)


6

Noreddine GHERABI

La zone de mmoire partage (Shared Pool) est constitue de deux structures mmoire lies
aux performances :
1. Cache du dictionnaire de donnes (row cache) examin ci-aprs.
2. Cache "library" examin dans le second.

a)

Cache du dictionnaire de donnes (row cache).

Lorsquun utilisateur soumet une requte SQL , le processus serveur extrait au cours
de lanalyse de la requte, des informations stockes dans les tables du dictionnaire
(donnes du compte utilisateur, noms des fichiers de donnes, noms des segments de
tables et index, emplacements d'extents, descriptions des tables et privilges
utilisateur ).
Ces informations sont places dans le cache du dictionnaire pour des besoins de
rutilisation. Au cours des prochaines analyses parse, le processus serveur recherche
les informations dans le cache du dictionnaire pour rsoudre les noms d'objet et
valider l'accs.

Noreddine GHERABI

La mise en mmoire cache des informations du dictionnaire


dictionnaire de donnes rduit le
temps de rponse aux instructions LMD (SELECT, INSERT, UPDATE, DELETE). Une
taille suffisante de ce cache contribue considrablement lamlioration des
performances.
Si le cache du dictionnaire est de taille limite, des appels rcursifs
rcursifs plus lents que les
interrogations effectues directement dans le cache, seront oprs par le processus
serveur sur le dictionnaire de la base de donnes (accs disque).

Optimisation du cache du dictionnaire


SELECT sum(gets) "DC Gets",
sum(getmisses) "DC get Misses",
sum(getmisses) / (sum(gets)+sum(getmisses))*100 "R"
FROM v$rowcache ;
R doit tre <= 10% ou 15% sinon accroitre SHARED_POOL_SIZE en utilisant la
requte suivante :
alter system set SHARED_POOL_SIZE=<taille
SHARED_POOL_SIZE
M>;

b)

Cache "library" (library cache)

Noreddine GHERABI

Le cache "library" conserve, des fin de partage, des informations sur les
commandes SQL et le code PL/SQL les plus rcemment utilises qui ont t soumis
par des utilisateurs de la base de donnes.
Le chargement d'une instruction SQL consomme beaucoup de ressources, cest
pourquoi le cache library partag est utilis pour optimiser et ne charger une
instruction SQL qu'une seule fois pour de multiples excutions.
C'est le processus serveur associ la session utilisateur qui excute l'ordre SQL
transmis par le processus utilisateur.
Pour le traitement de lordre SQL, un curseur est cr. Il pointe vers une zone
mmoire SQL prive alloue dans la mmoire PGA

Optimisation du cache de la librairie


SELECT sum(pins) "Executions",
sum(reloads) "Dfaut de cache",
sum(reloads) / (sum(pins) + sum(reloads))*100 "R"
FROM v$librarycache ;
reloads : dfaut de lecture dans le cache de librairie d'excutions
pins : nombre d'excutions sans dfaut de cache
si R >= 1% alors augmenter SHARED_POOL_SIZE en utilisant la requte suivante :
alter system set SHARED_POOL_SIZE=<taille M>;

Noreddine GHERABI

1.1.2

Le database buffer cache

Il contient les blocs de donnes les plus rcemment utiliss (blocs de tables, bloc
dindex, bloc de segments dannulation) avant de les inscrire dans la base de
donnes. Ayant une taille finie, Oracle utilise un algorithme LRU (Least Recently
Used) pour grer ce cache.
Les caractristiques de database buffer sont :

Zone de chargement et de mise jour en mmoire des


blocs de donnes (blocs les plus rcemment utiliss),
utiliss) Ces blocs proviennent
des fichiers de donnes.
donnes

En cas de manque de place, Oracle supprime


supprime du cache les donnes utilises le moins
rcemment. Gnralement, laugmentation de sa taille amliore les performances du
systme. La taille du Database Buffer Cache est dfinie par la valeur du paramtre
DB_BLOCK_BUFFERS.
Les
es performances sont bonnes si le ratio R est >= 60 ou 70%

Physical read
R=
= 1 - ------------------------------------db block gets + consistent gets
10

Noreddine GHERABI

Physical read : nombre de lecture sur disque


db block gets + consistent gets : nombre total de lecture sur disque ou en mmoire.
La table v$sysstat contient les statistiques utiles :
SELECT name, value
FROM v$sysstat
WHERE name IN ('db block gets', 'consistent gets', 'physical reads');

1.1.3

Le Buffer REDO LOG

Cette zone mmoire sert exclusivement enregistrer toutes les modifications


apportes sur les donnes de la base.
Lcriture dans le Redo Log Buffer est squentielle (les modifications de plusieurs
transactions se mlangent) et circulaire (quand le buffer
buffer est plein, il repart au dbut
aprs avoir t crit sur disque dans les fichiers de Redo Log).

Optimisation du buffer Redo log


la table des performances v$sysstat contient les information utiles
SELECT name, value FROM v$sysstat
WHERE name = 'redo log space requests' ;
name : nom de la statistique
value : valeur de la statistique
interprtation :
Si value est trs proche de 0 alors OK
11

Noreddine GHERABI

Si value croit souvent alors il y a attente : augmenter LOG_BUFFER par palier de 5%

1.1.4

Large Pool

Le DBA peut configurer une zone de la SGA appel Large Pool pour soulager le
Buffer de donnes ou la Zone des requtes partags pour certaines oprations
gourmandes en mmoire
Que peut fournir la Large pool ? :
L espace mmoire ncessaire pour les sessions grs par les serveurs partags
L espace mmoire pour les transactions XA (moniteur transactionnel)
L espace mmoire pour effectuer les Backup et Restauration
L espace mmoire pour le traitement des requtes parallles
Dimensionnement de la Large POOL
>Alter system set Large_pool_size=<valeurM> ;

1.1.5

Java POOL

Zone de mmoire ncessaire pour la machine virtuelle Java intgr dans Oracle
Cette zone permet d excuter le code Java stock dans le noyau Oracle
Dimensionnement de la Java POOL
>Alter system set java_pool_size =<valeurM> ;

1.1.6

Reserved Area

Cest zone rserve, destine lenregistrement dobjets SQL de grande taille.


Dimensionne par le paramtre SHARED_POOL_RESERVED_SIZE

Pour dimensionner la taille de cette zone nous utilisons linstruction alter system :
> sho parameter reserved
> alter system set shared_pool_reserved_size=10m scope=spfile;
12

Noreddine GHERABI

> Startup force

1.1.7

Streams Pool

Cette zone est rserve notamment lors de la rplication de donnes entre bases de
donnes distantes.
Cette zone est dimensionne par le paramtre STREAMS_POOL_SIZE.
alter system set STREAMS_POOL_SIZE =<tialleM>;

1.2

La PGA (Program Global Area)

En dehors de la SGA, chaque processus serveur possde une zone de mmoire prive
appele PGA (Program Global Area).
La zone mmoire alloue pour le fonctionnement de chaque processus utilisateur au
niveau du serveur
Lorsque le processus utilisateur se dconnecte (fin de session), le processus serveur
associ prend fin et la mmoire PGA est libre.
Pour un processus serveur, la PGA contient :
Des informations sur la session
Des informations sur le traitement des requtes de la session
Les variables de session
Les tables v$sesstat, v$statname, permettent de dterminer la taille de la PGA pour
une session
Select ss.sid, ss.value, sn.name FROM v$sesstat ss, v$statname sn, v$session se
WHERE ss.statistic#=sn.statistic# and sn.name in ('session pga memory')
and se.sid=ss.sid and type != 'BACKGROUND';

Paramtrage de PGA
PGA devient dynamique et est configure par le paramtre
PGA_AGGREGATE_TARGET.

Affichage de paramtres PGA

13

Noreddine GHERABI

Select
PARAMETER,OPER_TYPE,INITIAL_SIZE,TARGET_SIZE,FINAL_SIZE,STATUS
from V$MEMORY_RESIZE_OPS;
ou
Select
COMPONENT,CURRENT_SIZE
V$MEMORY_DYNAMIC_COMPONENTS;

from

ou
Show parameter pga

Configuration de PGA
alter system set pga_aggregate_target=100M;

1.3

Les processus autour dOracle

Deux classes de processus autour dOracle


Les processus utilisateurs (lis l'excution d'un outil, d'un programme
d'application, ...)
Les processus Oracle
Les processus darrire plan (SMON, PMON, LGWR, DBWR, CKPT, ARCH,
RECO, ...)
Les processus serveurs
Autres processus

1.3.1

Les processus darrire plan

- SMON
Le processus SMON (ou System Monitor) est un processus qui va servir corriger les
plantages de l'instance et vrifier la synchronisation des donnes. Si l'instance
plante, c'est SMON qui va se charger de rejouer le contenu des REDO LOG FILE afin
de pouvoir rejouer les transactions et de resynchroniser les donnes dans les fichiers
de donnes.
Voici les tapes de cette rcupration :

Etape 1 : SMON va automatiquement rejouer les transactions qui ont t


enregistres dans les fichiers REDO LOG FILE mais pas sur le disque dur. Le
14

Noreddine GHERABI

fait de rejouer les transactions contenues dans les fichiers REDO LOG FILE va
permettre de valider les transactions qui avaient t valides mais qui
n'avaient pas pu tre enregistre sur le disque.
Etape 2 : SMON va ouvrir la base
base de donnes pour les utilisateurs. Toutes les
informations qui ne sont pas utilises dans l'tape 1 et qui ont t valides sont
alors disponibles immdiatement. Les autres restent verrouilles pour l'tape
3.
Etape 3 : SMON se charge alors d'annuler toutes
toutes les transactions qui n'avaient
pas t valids. Ce qui permettra d'avoir un tat valide de la base de donnes.

SMON sert aussi nettoyer les segments temporaires aprs leur utilisation. Il sert
aussi dfragmenter les fichiers de donnes, tablespaces
tablespaces et autres.
En Oracle 8i, SMON afin de rejouer les transactions lisait de manire squentielle les
fichiers REDO LOG FILE et rejouait toutes les transactions. Cette mthode tait
fortement
pnalisante
lors
du
redmarrage
aprs
le
crash.
En Oracle 9i (et plus),, SMON va effectuer 2 lectures successive des fichiers REDO
LOG FILE. La premire lecture va servir identifier les blocs qui vont ncessiter une
restauration. La deuxime lecture servira ne rejouer que les blocs identifis. Cette
mthode estt videment moins coteuse car le temps de lecture des fichiers REDO
LOG FILE est ngligeable compare la rptition de toutes les transactions.

- PMON
Le processus PMON (ou Process Monitor) va tre surtout ddi aux processus des
utilisateurs. Il va servir
ir annuler les transactions d'une session (lors d'un plantage de
la session par exemple), mais aussi servir relcher tous les verrous poss par la
session, et relcher toutes les ressources dtenues par la session.

15

Noreddine GHERABI

Le processus Process Monitor PMON en action lors d'un chec d'un processus
utilisateur.

PMON annule la transaction (ROLL BACK)


PMON nettoie le cache de tampons de la base de donnes.
PMON libre les zones mmoire alloues, supprime les verrous poss par les
transactions et annule les ressources affectes aux threads de la transaction.

Le processus Process Monitor PMON en action lors d'un fonctionnement normal de


la base de donnes.

PMON scrute et dtecte les processus utilisateurs.


PMON vrifie le statut des processus Dispatcher et Serveur.
PMON redmarre les processus Dispatcher et Serveur si ils sont arrts.
PMON peut etre appel par d'autre Processus.

- DBWn
Le processus DBWn (ou Database Writer) va tre ddi l'criture du Database
Buffer Cache dans les fichiers de donnes de la base de donnes.
Le processus Database Writer (DBWn) a un rle important dans le bon
fonctionnement d'une Instance, laquelle a principalement un processus Database
Writer nomm DBW0 (possibilit d'avoir plusieurs processus DBWn sur des
systmes forte activit et Multi-processeurs)
Ce processus est aussi l pour vrifier en permanence le nombre de blocs libres dans
le Database Buffer Cache afin de laisser assez de place de disponible pour l'criture
des donnes dans le buffer.
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

LGWR

Le processus LGWR (ou Log Writer) est le processus qui va crire les informations
contenues dans le REDO LOG Buffer dans les fichiers REDOLOG FILE lors des
venements suivant :

16

Noreddine GHERABI

Quand une transaction est termine avec un COMMIT


Quand le REDO LOG Buffer est
est au 1/3 plein (peut dpendre de vos propres
paramtres)
Quand il y a plus de 1Mo d'informations de log contenues dans le buffer
Avant que DBWn n'crive le contenu du Database Buffer Cache dans les
fichiers du disque dur

- CKPT
Ce processus va servir mettre
met jour les en-ttes
ttes des fichiers de donnes, et mettre
jour les fichiers CONTROL FILE afin de spcifier que l'action de CHECKPOINT s'est
bien droule (par exemple lors d'un changement de groupe de REDO LOG FILES).
Le CHECKPOINT est un vnement qui
qu se dclencher lors :

D'un changement de groupe de REDO LOG FILE.


D'un arrt normal de la base de donnes (c'est dire sans l'option ABORT)
D'une demande explicite de l'administrateur
D'une limite dfinie par les paramtres d'initialisation
LOG_CHECKPOINT_INTERVAL,
NT_INTERVAL, LOG_CHECKPOINT_TIMEOUT, et
FAST_START_IO_TARGET

Checkpoint inscrit les informations de point de reprise dans les fichiers de Controles
et dans l'entte de chaque fichier de donnes. C'est ce point de reprise (SCN)
(
qui
permet de rendre cohrent les fichiers de controles et les fichiers de donnes,
indispensable pour un processus de rcupration.
Les numros SCN enregistrs dans les fichiers garantissent que toutes les
modifications apportes aux blocs de base de donnes avant un numro SCN ont t
crites sur le disque.
L'vnement CHECKPOINT va ensuite dclencher l'criture d'un certain nombre de
blocs du Database Buffer Cache dans les fichiers de donnes par DBWn aprs que
LGWR ait fini de vider le REDO LOG Buffer. Le nombre de blocs cris par DBWn est
dfini avec le paramtre
ramtre FAST_START_IO_TARGET si celui-ci
celui ci a t dfini.

17

Noreddine GHERABI

1.4

Comment arrter et dmarrer l'instance

Que ce soit sous Windows ou Linux/Unix la mthode est identique. La premire


tape sera de dfinir la variable d'environnement ORACLE_SID.
Ensuite il va falloir se connecter sqlplus en mode SYSDBA afin d'tre en mesure de
lancer et dmarrer l'instance.
sqlplus /nolog
connect / AS sysdba
Une fois connect il ne restera plus qu' dmarrer l'instance avec la commande
startup.
'une base de donnes complte se droulera en plusieurs tapes
Le dmarrage d'une
telles que NOMOUNT, MOUNT, OPEN.
Ces trois tapes sont obligatoires et devront tre executes dans cet ordre.
Cependant la commande STARTUP permettra d'effectuer automatiquement ces 3
actions.

NOUMOUNT : Cette tape va consister lire le fichier init.ora, dmarrer


l'instance, allouer la mmoire, et dmarrer les processus d'arrire plan.
MOUNT : Cette tape va consister ouvrir le ou les fichiers CONTROLEFILE
afin de mettre en mmoire les informations contenues par les fichiers
CONTROLEFILE. Durant cette tape les fichiers de donnes ne sont pas
accessible car ils n'ont pas encore t ouverts.
OPEN : Cette tape va consister ouvrir tous les fichiers de donnes
enregistrs dans les fichiers
fichiers CONTROLEFILE. Puis une fois tous les fichiers
ouverts et disponible, ouvrir compltement la base de donnes aux
utilisateurs.

Voici des exemples d'utilisation :


-- Dmarrage de l'instance
STARTUP NOMOUNT PFILE="<emplacement
"<emplacement du init.ora>"
-- Lecture des controles files
ALTER DATABASE MOUNT;
-- Ouverture de la base de donnes
ALTER DATABASE OPEN;

18

Noreddine GHERABI

-- NOMOUNT et MOUNT automatique


ALTER DATABASE MOUNT PFILE="<emplacement du init.ora>"
-- Ouverture de la base de donnes
ALTER DATABASE OPEN;
-- --- Ouverture directe de la base de donnes sans spcifier les 3 tapes
STARTUP PFILE="<emplacement du init.ora>"

2- Base de donnes
2.1

Structure dune Base de Donnes Oracle

2.1.1

Structure physiques d'une base Oracle

Les fichiers physiques d'une base Oracle permettent de stocker de manire


persistante les donnes manipules par Oracle, tandis que la mmoire sert
optimiser la vitesse de fonctionnement de la base de donnes.
On distingue gnralement deux types de fichiers :

Les fichiers servant stocker les informations de la base. Tous ces fichiers sont des
fichiers binaires, ce qui signifie qu'ils sont inexploitables avec un diteur de texte.
Les fichiers destins la configuration et au fonctionnement de la base Oracle

Oracle a dfini une architecture permettant de dfinir une mthode d'organisation


standard des fichiers de la base Oracle. Cette architecture est nomme OFA (Optimal
Flexible Architecture).
Les fichiers d'une base de donnes Oracle sont les suivants :

Les fichiers de donnes (dont l'extension est .dbf). Ces fichiers contiennent
l'ensemble des donnes de la base (les tables, les vues, les procdures stockes, ...).
Les fichiers Redo Log (dont l'extension est .rdo ou .log). Ces fichiers contiennent
l'historique des modifications effectues sur la base de donnes
Les fichiers de contrle (dont l'extension est .ctl). Ces fichiers permettent de stocker
les informations sur l'tat de la base de donnes (emplacement des fichiers, dates de
cration, ...)

Une base de donnes Oracle ncessite au minimum un fichier de donnes, deux fichiers redo
Log et un fichier de contrle.

a) Les fichiers de donnes


Les fichiers de donnes sont les fichiers occupant la majeure partie de la base de
donnes, leur taille peut osciller entre quelques Mgaoctets et plusieurs gigaoctets.
Ceux-ci contiennent en effet toutes les donnes relatives la base Oracle dans un
19

Noreddine GHERABI

format propritaire. Ainsi pour modifier les informations contenues dans la base de
donnes il est impossible d'intervenir directement sur ces fichiers; la bonne
procdure adopter consiste modifier le contenu de la base de donnes par
l'intermdiaire d'ordres SQL.
Les fichiers de donnes contiennent des informations de deux types :

Le dictionnaire de donnes et de travail


Les donnes des utilisateurs

La lecture de ces fichiers de donnes est faite l'aide des processus utilisateurs tandis que
l'criture est assur par le processus DBWR (Database Writer)

b) Les fichiers Redo-log


Les fichiers Redo-log contiennent l'historique des modifications apportes la base
de donnes Oracle. Ces fichiers de journalisation enregistrent les modifications
successives de la base de donnes afin de pouvoir restaurer la base de donnes en cas
de dfaillance d'un disque dur. Ainsi le cas chant, la base de donnes Oracle est
mme de simuler l'ensemble des commandes n'ayant pas t sauvegardes pour
rtablir le contenu de la base de donnes.
Au mme titre que les fichiers de donnes, les fichiers Redo-log sont dans un format
propritaire Oracle et l'criture dans ces fichiers est assure par le processus LGWR
(Log Writer).
Oracle propose galement un mode archivage permettant la sauvegarde du fichier
Redo-log avant sa rutilisation pour restaurer la base. Si ce mode n'a pas t activ, le
contenu du fichier Redo Log est supprim aprs utilisation.
Enfin ces fichiers peuvent tre multiplexs (comprenez dupliqus dans des rpertoires de
groupe) afin de fournir un maximum de scurit.
Configuration minimale

Utilisation en mode multiplexs (au moins deux groupes)


Un groupe au moins 2 fichiers qui sont identiques et mis jour simultanment
20

Noreddine GHERABI

il est conseill de stocker chaque fichier d'un mme groupe sur des disques
diffrents
il est conseill d'avoir un mme nombre de membres par groupe

Ajout de fichiers REDO


Ajout d'un groupe de fichiers
ALTER DATABASE [database ]
ADD LOGFILE
[ GROUP integer ] filespec
[, [ GROUP integer ] filespec...
Ajout d'un membre dans un groupe connaissant son Numro ou le nom d'un
fichier
ALTER DATABASE [database ]
| ADD LOGFILE MEMBER
'filename' [ REUSE ]
TO { GROUP integer
| ( 'filename'[REUSE] [,'filename']... )

21

Noreddine GHERABI

Exemples
ALTER DATABASE Fst
ADD LOGFILE GROUP 4 (' /oracle/oradata/fst/disk1/log4adbcours.dbf')
size 500K;
ALTER DATABASE Fst
ADD LOGFILE MEMBER /oracle/oradata/fst/disk2/log4bdbcours.dbf'
TO GROUP 4;
ALTER DATABASE Fst
ADD LOGFILE MEMBER
/oracle/oradata/fst/disk1/log4adbcours.dbf'
TO
/oracle/oradata/fst/disk3/log4cdbcours.dbf'

Suppression de fichiers REDO


Le groupe concern doit avoir au moins 2 membres pour pouvoir en supprimer un (il
doit en rester au moins un).
Un membre du groupe courant (celui dans lequel LGWR est en train dcrire) ne peut
pas tre supprim.
En mode ARCHIVELOG, un membre dun groupe pas encore archiv ne peut pas
tre supprim.
Les fichiers concerns ne sont pas physiquement supprims par Oracle.
Pour supprimer tous les membres dun groupe il faut supprimer le groupe.
ALTER DATABASE [database ]
DROP LOGFILE
{ GROUP integer
| ('filename'[,'filename']...)
| 'filename'}

22

Noreddine GHERABI

DROP LOGFILE MEMBER


'filename'[,'filename']...

Forcer le basculement du groupe courant


Le basculement dun groupe courant peut tre utilis lorsque lon a besoin
deffectuer une suppression de groupe ou lorsque lon veut gnrer une archive
avant deffectuer une sauvegarde (la base de donnes doit alors tre en
ARCHIVELOG).
Utiliser lordre SQL ALTER SYSTEM :
ALTER SYSTEM SWITCH LOGFILE ;
Si les SWITCH sont trop frquents, ce nest pas bon pour les performances.
La vue V$LOG_HISTORY peut tre utilise pour analyser la frquence de SWITCH
des fichiers de Redo Log (colonne FIRST_TIME).
Le basculement manuel provoque les mmes vnements quun basculement
automatique
- Checkpoint : point de reprise
-

Archivage (si larchivage est activ)

Trouver des informations sur les fichiers Redo Log


Plusieurs vues du dictionnaire permettent dobtenir des informations sur les fichiers
de redo log :
_ V$LOG : informations sur les groupes
_ V$LOGFILE : informations sur les membres
_ V$LOG_HISTORY : informations sur lhistorique des fichiers de redo log
_ V$INSTANCE__RECOVERY : informations sur les temps estims de restauration
dinstance.

23

Noreddine GHERABI

24

Noreddine GHERABI

c) Les fichiers de contrle


Les fichiers de contrle permettent de stocker l'tat de la base de donnes. Ils sont
crs lors de la cration de la base.
Ces fichiers permettent, lors de l'initialisation de la base, de savoir si la base de
donnes a t arrte correctement, ainsi que de connatre l'emplacement des fichiers
de donnes et des fichiers Redo Log. Les fichiers de contrle sont eux-mme reprs
par le fichier d'initialisation.
Le fichier de contrle contient les informations suivantes :

Nom de la base de donnes


Date et heure de cration de la base
L'emplacement des fichiers journaux (Redo-Log)
Des informations de synchronisation

Ajout de copies supplmentaires de fichiers de contrles


1. Arrter la base et sortir du logiciel d'Administration (Sqlplus)
2. Dupliquer sous l'OS le fichier de contrle
3. Relancer le logiciel d'administration et redmarrer la base.

Backup d'un fichier de contrle


Sauvegarde en dupliquant un fichier de contrle
ALTER DATABASE BACKUP CONTROLFILE TO chemin/ file.dbf;
Sauvegarde sous forme de requte SQL dans le fichier de trace (ora_xxx.trc)
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

d) Le fichier d'initialisation
Ce fichier est un fichier au format texte contenant l'ensemble des paramtres de
dmarrage de la base (il est gnralement nomm initSID.ora, o SID reprsente le
nom donn l'instance). Son existence n'est toutefois pas majeure car il peut tre
facilement reconstruit.
Un fichier d'initialisation par dfaut est cr lors de la cration d'une base. Celui-ci
est largement document et des exemples de valeurs sont donns pour chaque
paramtre. Toutefois parmi ces paramtres, seul un nombre limit d'entre-eux est
rellement utile.

25

Noreddine GHERABI

Vous aimerez peut-être aussi