DBA - Partie I
DBA - Partie I
DBA - Partie I
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
Noreddine GHERABI
III-
ARCHITECTURE ORACLE
Larchitecture oracle est constitue dune instance et dune base de donnes appele
database.
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 mmoire SGA (System Global Area) est une mmoire partage par tous les processus
serveur et les processus en arrire
rrire-plan.
Noreddine GHERABI
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
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)
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
b)
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
Noreddine GHERABI
1.1.2
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 :
Physical read
R=
= 1 - ------------------------------------db block gets + consistent gets
10
Noreddine GHERABI
1.1.3
Noreddine GHERABI
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
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
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
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.
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
1.3.1
- 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 :
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.
- 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 :
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
- 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 :
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
18
Noreddine GHERABI
2- Base de donnes
2.1
2.1.1
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
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.
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 :
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)
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
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'
22
Noreddine GHERABI
23
Noreddine GHERABI
24
Noreddine GHERABI
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