Vous êtes sur la page 1sur 33

Administration

Administration des
des Plan
Bases
Bases de
de Donn es
Donnes  Introduction ladministration de donnes
Structure dune base de donnes
Oracle
Oracle 

 Architecture interne dOracle


 Scurit des donnes
 Utilitaires

Administration Oracle 2

Introduction Architecture ANSI/SPARC


 Ladministration de donnes consiste :
sch
schma sch
schma sch
schma niveau
 crer la base de donnes externe externe externe externe
 dfinir les objets de la base
niveau
 veiller la bonne utilisation des donnes. sch
schma conceptuel
conceptuel
 Utilisation de larchitecture ANSI/SPARC
 niveau conceptuel niveau
sch
schma interne
 niveau externe interne

 niveau interne
Administration Oracle 3 Administration Oracle 4

Rle de l
ladministrateur Rle technique
 Ladministrateur peut avoir un double rle:  Installation du SGBD et des outils associs
 rle organisationnel  Cration de la base de donnes et assurer
son volution
 rle technique
 Gestion des privilges daccs
 ces deux rles peuvent tre assurs par une  Amlioration des performances
ou plusieurs personnes.  Scurit et cohrence des donnes
 Echange de donnes entre la base et le
monde extrieur
 Assistance aux utilisateurs
Administration Oracle 5 Administration Oracle 6
Identification du produit Oracle
Identification du produit Oracle
 Pour identifier un des produits logiciels,
Oracle utilise jusqu 5 chiffres :

Num
Numro de version 7.2.2.3 Num
Numro de release
du patch sp
spcifique
Num
Numro de release
de maintenance Num
Numro de release
du patch

Administration Oracle 7 Administration Oracle 8

Architecture d
dOracle N Architecture fonctionnelle
etw
or
kC
om
pu
te r
 Oracle Universal Server inaugure une

Te
onne l
Relati

xte
nouvelle gnration de systmes De
s ig

Spatial
dinformation pour grer tout type de

0
ne

00
r/2

r/2
00
donnes.

pe
0

lo
e
ev
Vid
W

D
 Architecture fonctionnelle eb

o
e
ffic
 Architecture Interne du noyau nt er O
eI W Orac P e
acl are le
OLA acl
Or ho Or ress
use p
Ex
Discovrer
Administration Oracle 9 Administration Oracle 10

Oracle Universal Server


Architecture fonctionnelle (suite)
 Caractristiques de loffre Oracle  Les options dOracle Universal Server sont
regroupes en deux types :
 Portabilit
Portabilit : critre dcisif pour les dcideurs  Options techniques : Oracle distributed, Oracle
Symmectric Replication, Oracle Parallel Server,
 Interop
Interoprabilit
rabilit : client/serveur, protocoles Advanced Networking Option, Entreprise Manager
rseaux, passerelles Performance Pack, Oracle VLM.
 Conformit
Conformit aux normes et standards :  Options fonctionnelles : Context Option,
ANSI, ISO, OSF, X/OPEN, OMG etc. TextServer Option, Video Option , Spatial Data
Option

Administration Oracle 11 Administration Oracle 12


Architecture globale
Architecture Interne d
dOracle
LCKn
LCKn RECO PMON SMON
CKPT
CKPT
 Larchitecture interne dOracle est compose:
System Global Area
Database Buffer Cache Redo log Buffer
Zone Mmoire

User
User Shared server Dedicated server CKPT ARCH
process process Support
Processus Processus Processus archive

DBWR LGWR
User
User
D000 Control
Redo File
fichiers Database
files
Log

Administration Oracle 13 Administration Oracle 14

Configuration en serveur ddi Configuration en Multi-


Multi-Threaded
Code Stations clientes
Application
 Pour chaque processus client excut est associ un
processus serveur.
Code Code 1 7
Serveur de bases
Application Application Stations clientes 6
Processus Dispatcher de donn
donnes
Code
Oracle
Code Code Server
Program Serveur de bases
Serveur Serveur
Interface 3
de donn
donnes 2 4 5
System
Request
System Global Area Queue
Global Pesponse
Area Queues

Administration Oracle 15 Administration Oracle 16

Les processus Les processus (suite)


 Deux types de processus :  PMON : Process Monitor est charg du nettoyage
 Processus utilisateurs : pour excuter une en cas de crash dun processus utilisateur.
application SQL*Plus, Pro*C, etc.  SMON : System Monitor permet de restaurer la
 Processus Oracle base au dmarrage de linstance.
 Processus SERVER : interaction entre processus  DBWR : Database Writer est charg de lcriture
utilisateur et linstance ( mmoire de la SGA). des buffers de donnes sur disque.
 Processus en arrire plan (BACKGROUND) :  LGWR : Log Writer est charg de la gestion du
effectue des tches bien dfinies pour lensemble des buffer redo log de la SGA.
utilisateurs.

Administration Oracle 17 Administration Oracle 18


Les processus (suite) PMON (Process
(Process Monitor)
 CKPT : Checkpoint est optionnel pour crire les  Assure le recouvrement des processus
donnes les plus frquemment modifies.
utilisateurs en cas de problme en librant
 ARCH : Archiver est charg de copier le fichier
Redo Log courant ds quil est plein sur la
les ressources qui taient utilises par ces
destination des fichiers darchives. processus.
 RECO : Recover est charg de rsoudre les  Assure la libration des segments
anomalies de transactions distribues. temporaires qui ne sont pas utiliss.
 LCKn : Lock prend en charge la gestion de verrous
dans une architecture Parallel Server.  rveill rgulirement pour effectuer ce
recouvrement.
Administration Oracle 19 Administration Oracle 20

SMON (System Monitor) DBWR (Database


(Database Writer)
Writer)
 Assure le recouvrement dinstance lors du  gre le buffer de base de donnes
dmarrage dinstance.  crit les modifications apportes au buffer
 Assure la libration des segments dans les fichiers de donnes
temporaires qui ne sont pas utiliss.  maintient ce buffer propre avec un
 rveill rgulirement pour effectuer cette minimum de tampons modifis
opration  Utilisation de lalgorithme LRU (Least
 peut tre dclench par un autre processus. Recently Used) qui permet de minimiser les
oprations dentre/sortie.
Administration Oracle 21 Administration Oracle 22

LGWR (Log Writer)


Writer) CKPT (Checkpoint
(Checkpoint)
Checkpoint)
 Ecrit les buffers Redo Log dans les fichiers de  le processus DBWR effectue rgulirement une
reprise. criture sur les fichiers de donnes de toutes les
 En cas dexistence de groupe de fichiers de reprise, modifications dans le buffer de donnes.
LGWR effectue une criture synchrone sur tous  Cette opration est dite (checkpoint).
les fichiers activs.  Utilit :
 Ce processus est activ de la faon suivante :  permet lcriture des donnes qui sont dans le buffer
 toutes les 3 secondes de base de donnes et qui sont modifies
 lorsque le tiers du buffer Redo Log est plein frquemment (lalgorithme LRU nentrane pas leur
criture).
 lorsque le DBWR effectue une criture des buffers
modifis sur disque.  Cette opration de checkpoint est normalement
effectue par le processus LGWR.
Administration Oracle 23 Administration Oracle 24
RECO (Recover
(Recover)
Recover) ARCH (Archiver)
 Utilis uniquement en cas de base de  Effectue la copie des fichiers de reprise ayant
donnes rpartie. atteint leur taille maximale sur un support
 permet deffectuer le recouvrement en cas darchive.
dchec dune transaction rpartie.  Actif uniquement si la base est en mode
 il effectue une connexion avec toutes les bases ARCHIVELOG et larchivage automatique
distantes concernes par la transaction et active la est activ.
transaction.
 activ au moment du dmarrage dune
instance si loption est installe.
Administration Oracle 25 Administration Oracle 26

LCKn (LOCKn) Dnnn (Dispatcher)


 Nexiste quavec loption Parallel Server  Permet le partage dun nombre limit de processus
serveurs par les processus utilisateurs.
 Permet de grer le verrouillage inter-
 Utilis avec la configuration Multi-Threaded
instance.
Server.
 On peut avoir jusqu 10 processus de type  Permet de minimiser le nombre des processus
(LCK0,LCK1,....,LCK9). serveurs lorsque le nombre dutilisateurs est
important.
 Le nombre de processus dispatchers est fix par
ladministrateur dans init.ora.
Administration Oracle 27 Administration Oracle 28

Processus serveur La m
mmoire
 Utilise larchitecture client/serveur  Oracle utilise les structures suivantes au
 Fonctions des processus serveurs : niveau de la mmoire centrale :
 le code de lapplicatif
 analyser et excuter les commandes SQL  les informations relatives une session ouverte
soumises par les applications (utilisateurs).  les donnes ncessaires pendant lexcution dun programme.
les informations partages par diffrents processus Oracle (relatives au
 transfrer les blocs de donnes ncessaires du 

verrouillage par exemple).


disque vers la zone SGA.  les donnes changes avec les mmoires auxiliaires (Bloc de donnes
par exemple).
 communiquer les rsultats de requtes aux
applications (utilisateurs).

Administration Oracle 29 Administration Oracle 30


La m
mmoire (suite) Zone du code de l
lapplicatif
 La structure de la mmoire est compose de  Permet de stocker le code des programmes en
trois types de zones : cours dexcution
 code du noyau
 zones rserves au code de lapplicatif.  outils Oracle (SQL*Forms, SQL*Plus...)
 zone globale systme (System Global Area ou  programmes dapplication en Pro*langage
SGA).
SGA  le code du noyau est stock dans une zone spare
 zone globale programme (Program Global Area des autres zones.
ou PGA).
PGA  les zones rserves au code de lapplicatif sont
accessibles uniquement en lecture.
Administration Oracle 31 Administration Oracle 32

System Global Area (SGA) Estimation de la taille de la SGA


 Dtermine en fonction des paramtres :
DB_BLOCK_SIZE
Shared Pool SGA Redo
Log


 DB_BLOCK_BUFFERS
Buffer
Database
 LOG_BUFFER
Shared buffer  SHARED_POOL_SIZE
SQL cache
Area  Formule :
Taille de la SGA =
( DB_BLOCK_SIZE * DB_BLOCK_BUFFERS)
+
LOG_BUFFER + SHARED_POOL_SIZE

Administration Oracle 33 Administration Oracle 34

Database buffer cache Database buffer cache (suite)


 ensemble de zones buffer contenant des copies de  La liste LRU contient :
donnes lues partir des fichiers de donnes.  les buffers libres pouvant tre utiliss
 taille dtermine par : DB_BLOCK_BUFFERS  les buffers utiliss actuellement par certains processus
 Oracle gre lespace de ce cache laide de deux  les buffers modifis mais non encore transfrs dans la
listes : premire liste (dirty list).
 une liste des buffers modifis mais non encore crits Dirty list
sur disque (DIRTY LIST) LRU list
 une liste des buffers les moins utiliss rcemment MRU
(LEAST RECENTLY USED LIST) LRU list.

Administration Oracle 35 Administration Oracle 36


Algorithme LRU Redo Log buffer
 utilis pour transfrer un bloc de donnes du
disque vers le cache de la base de donnes
 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
 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.

Administration Oracle 37 Administration Oracle 38

Redo Log buffer Shared Pool


 buffer circulaire qui contient des informations relatives
aux modifications apportes la base de donnes. Ces
informations (entres redo log) sont utilises en cas de
restauration.
 le contenu de ce buffer est crit dans le fichier Redo Log
par le processus LGWR.
 sa taille est dtermine par LOG_BUFFER

Administration Oracle 39 Administration Oracle 40

Shared Pool (Suite) Program Global Area (PGA)


 la shared pool contient :  zone mmoire contenant des donnes et des
 des zones SQL partages ou prives : une zone SQL informations de contrle relatives un processus
partage contient le plan dexcution dun ordre SQL. (processus serveur ou processus darrire plan).
Cette zone est partage par toutes les commandes  une zone PGA est alloue lorsquun processus
SQL identiques. utilisateur se connecte Oracle (ouverture dune
 un cache du dictionnaire contenant des informations session).
relatives au dictionnaire.
 la taille de la PGA est dtermine par :
 sa taille est dtermin par SHARED_POOL_SIZE  OPEN_LINKS
 DB_FILES
 gre laide de lalgorithme LRU
 LOG_FILES
Administration Oracle 41 Administration Oracle 42
Sort Area Les fichiers
 zone de mmoire alloue par le processus  Fichiers de donnes
utilisateur en cas de besoin de tri  Fichiers Redo Logs
 taille dtermine par SORT_AREA_SIZE  Fichier de contrle
 pour un nombre important doccurrences et  Fichier de configuration
en cas o la zone de tri est petite, Oracle
effectue ses oprations de tri sur disque
(tablespace spcifique).

Administration Oracle 43 Administration Oracle 44

Structure d
dune base de donn
donnes
Structure  Toute base de donnes Oracle possde :
dune base de donnes Oracle  une structure logique
 une structure physique
 un ensemble de vues donnant des visions
partielles aux utilisateurs
 La description de ces trois niveaux et la
correspondance entre eux est faite travers
le dictionnaire de donnes.
Administration Oracle 46

Structure physique Fichiers de donn


donnes (Data Files)
 La structure physique est compose dun ensemble
de fichiers qui constituent le support physique de  Les fichiers de donnes assurent le stockage
stockage de donnes.  des objets crs par les utilisateurs : tables, index,
 Trois types de fichiers : clusters etc.
 fichiers de donnes (Data Files)  des structures ncessaires au fonctionnement dOracle
 fichiers de reprise (Redo Log Files) : Dictionnaire de donnes.
 fichiers de contrle (Control Files)  Lors de la cration dune de base donnes, il doit y
 La spcification des Data files et Redo Log se fait avoir au moins un fichier de donnes pour stocker
lors de la cration ou la modification de la base de le dictionnaire de donnes.
donnes.  Un fichier de donnes est associ une et une
seule base de donnes
Administration Oracle 47 Administration Oracle 48
Taille d
dun Data File Nom d
dun Data File
 Exprime en Kilo ou en Mga octets  Dpend du systme dexploitation
 Attribue au moment de la cration du  Peut tre modifi, sauf pour le premier
fichier, peut tre modifie. fichier.
 Son choix dpend de la taille de la base de  La modification se fait en deux tapes :
donnes et de son volution.  modification du nom du fichier en utilisant les
 Le premier fichier de donnes cr doit commandes OS
avoir une taille suprieure ou gale 2Mo.  rpercussion de cette modification dans les
fichiers de contrle.
Administration Oracle 49 Administration Oracle 50

Cr
Cration d
dun Data File Modification d
dun Data File
 Se fait dans quatre configurations :  Deux cas de modifications :
CREATE DATABASE base
DATAFILE spcification_fichier  modification du nom et de localisation
 modification de la taille
CREATE TABLESPACE tbs
DATAFILE spcification_fichier  Modification du nom : TBS en Offline
ALTER DATABASE base ALTER TABLESPACE tbs
CREATE DATAFILE fichier AS spcification RENAME DATAFILE fich1, fich2 TO fich11, fich22

ALTER TABLESPACE tbs ALTER DATABASE base


ADD DATAFILE spcification_fichier RENAME FILE fich1, fich2 TO fich11,fich22

Administration Oracle 51 Administration Oracle 52

Modification dun Data File largir une BD en ajoutant un Datafile au TableSpace

 Modification de la taille :
ALTER TABLESPACE tbs
ADD DATAFILE spcification
AUTOEXTEND [OFF | ON [NEXT entier [K|M]]
[MAXSIZE UNLIMITED | entier [K|M]]

ALTER DATABASE base


DATAFILE fich1 RESIZE entier [K|M]
AUTOEXTEND [OFF | ON [NEXT entier [K|M]]
[MAXSIZE UNLIMITED | entier [K|M]]

Administration Oracle 53 Administration Oracle 54


largir une BD en modifiant d
dune mani
manire dynamique
la taille des Datafiles
largir une BD en ajoutant une nouvelle Tablespace

Administration Oracle 55 Administration Oracle 56

Suppression d
dun Data File Fichiers Redo Log
 Deux tapes :  contiennent les modifications les plus rcentes des
 Suppression du tablespace associ au Data file donnes de la base.
DROP TABLESPACE tbs  utiliss par Oracle pour remettre la base dans un
INCLUDING CONTENTS tat cohrent aprs une panne sans perdre les maj
 Suppression des fichiers physiques qui nont pas t enregistres dans les data files.
manuellement par commande OS.  lors du redmarrage de linstance, Oracle applique
les maj des Red Log sur les Data file (reprise
chaud).

Administration Oracle 57 Administration Oracle 58

Fichier Redo Log (suite) Fichiers Redo Log (Suite)


 Au moins deux fichiers par instance. Utiliss
dune faon circulaire.

Administration Oracle 59 Administration Oracle 60


Redo Log Cr
Cration d
dun Redo Log
 Redo Log multiple : duplication des fichiers Redo  Il est possible de crer ou dajouter des Redo Logs
Log sur diffrents disques. Lorsquun des fichiers dans une base existante :
est perdu ou endommag, son image sur lautre CREATE DATABASE base
disque peut tre utilis. LOGFILE [GROUP entier] (fich, fich,...) SIZE entier [K|M]....

 Lensemble des Redo Logs actifs simultanment ALTER DATABASE base


ADD LOGFILE [THREAD entier] [GROUP entier] (fich, fich,...) SIZE
constitue un groupe. Chaque fichier de ce groupe entier [K|M]....
est dit membre. ADD LOGFILE MEMBER fich [REUSE] TO {GROUP entier | fich}

 Avant de rutiliser un Redo Log plein, Oracle peut


larchiver si la base est en mode ARCHIVELOG.
Administration Oracle 61 Administration Oracle 62

Suppression d
dun Redo Log Control File
 La suppression dun Redo Log, dun groupe  Contient les informations relatives la
ou dun membre se fait par : structure physique de la base de donnes:
ALTER DATABASE base
 nom de la base de donnes
DROP LOGFILE {GROUP entier | (fich, fich,...) } ....
DROP LOGFILE MEMBER {fich | (fich, fich,...)}  noms et localisations des Datafile et Redo Logs
 Un Redo Log peut tre initialis par :  timestamp de cration de la base
ALTER DATABASE base  le nombre de squence log courant
CLEAR [UNARCHIVED] LOGFILE {GROUP entier |
(fich, fich,...) } .... [UNRECOVERABLE DATAFILE]
 informations sur le checkpoint
 Cr au moment de la cration de la base
Administration Oracle 63 Administration Oracle 64

Control File (Suite) Structure logique


 Utilis lors de louverture dune base pour  La structure logique dune base est compose
 des tablespaces
identifier les Datafiles et les Redo Logs.
 des segments
 Au moins un fichier de contrle
 des extensions (extents)
(recommandation : dupliquer ce fichier
 des blocs
plusieurs fois)
 Un ensemble dobjets logiques constitu dobjets
 Mise jour automatique chaque de schma (schema objects).
modification de structure de la base.  Les objets de schma constituent la structure
relationnelle de la base.
 Noms spcifis dans init.ora
Administration Oracle 65 Administration Oracle 66
Tablespace Tablespace (Suite)
 Une base de donnes est compose dun  Chaque objet logique doit tre associ un
ensemble dunits logiques dites tablespaces et un seul tablespace.
 Un tablespace permet de regrouper un  Chaque tablespace est identifi par un nom.
ensemble dobjets logiques (tables, index...)  Un tablespace peut tre supprim mme sil
 il peut tre utilis pour regrouper des objets contient des donnes.
logiques dune application pour que les  Une base de donnes doit avoir au moins un
oprations de sauvegarde et de restauration tablespace appel SYSTEM qui contient le
soient efficaces. dictionnaire de donnes.
Administration Oracle 67 Administration Oracle 68

Tablespace (Suite) Cr
Cration de tablespace
 Un tablespace peut tre activ ou dsactiv CREATE TABLESPACE tbs
DATAFILE spec [AUTOEXEND {OFF|ON
 OnLine [NEXT entier {M|K}]
 OffLine [MAXSIZE {UNLIMITED | entier {M|K}]}...
[DEFAULT STORAGE clause_stockage]
 Le tablespace SYSTEM ne peut jamais tre [ONLINE | OFFLINE]
dsactiv. [PERMENENT | TEMPORARY]

 Il est recommand de crer dautres


tablespaces pour les objets de la base.
 Un tablespace peut tre cr, modifi et
supprim
Administration Oracle 69 Administration Oracle 70

Modification d
dun tablespace Suppression d
dun tablespace
ALTER TABLESPACE tbs DROP TABLESPACE tbs
[INCLUDING CONTENTS]
ADD DATAFILE spec [AUTOEXEND [CASCADE CONSTRAINTS]
{OFF|ON
[NEXT entier {M|K}]  INCLUDING CONTENTS supprime le contenu de
[MAXSIZE {UNLIMITED | entier {M|K}]}... tablespace
[RENAME fich, ... TO fich, ...]
[ONLINE | OFFLINE]  CASCADE CONSTRAINTS supprime les
[READ {ONLY | WRITE}] contraintes dintgrit des tables dautres tablespaces qui
se rfrent aux cls primaires des tables du tablespace
[PERMENENT | TEMPORARY] spcifi.

Administration Oracle 71 Administration Oracle 72


Utilisation des tablespaces SEGMENT, EXTENSION, BLOC
 Un tablespace peut tre attribu par dfaut  Lors de la cration dun fichier, Oracle rserve tout
lespace qui lui est associ. A lintrieur de ce
un utilisateur. fichier, lespace disque est gr dynamiquement au
 Les objets de cet utilisateur seront stocks fur et mesure de lutilisation de la base de
dans ce tablespace sauf contre indication. donnes.
 Cette gestion se fait selon trois niveaux de
CREATE | ALTER user IDENTIFIED BY mdp granularit :
[DEFAULT TABLESPACE tbs]  segment
[TEMPORARY TABLESPACE tbs]  extension
[QUOTA {entier {M | K} | UNLIMITED} ON tbs ]  bloc

Administration Oracle 73 Administration Oracle 74

SEGMENT, EXTENSION, BLOC


BLOC de donn
donnes
Segment  Un bloc de donnes est la plus petite unit
112 K logique dentre/sortie utilise par Oracle.
Extent  Appel galement Bloc logique ou Page
Extent 84 K
2K 2K 2K 2K
28K 2K 2K 2K 2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
2K
 Taille dun bloc de donnes
2K 2K 2K 2K
2K
2K
2K
2K
2K
2K
2K
2K
 attribue par dfaut selon OS (2 ou 4Ko)
2K 2K 2K 2K
Blocs 2K
2K
2K
2K
2K
2K
2K
2K
 modifiable par DB_BLOCK_SIZE = n
2K 2K 2K 2K
2K 2K 2K 2K
2K 2K 2K 2K

Administration Oracle 75 Administration Oracle 76

Format dun bloc de donnes


Format d
dun bloc de donn
donnes
 Les blocs de donnes sont organiss de la  Lentte : contient des informations gnrales
(adresse du bloc, type du segment, etc)
mme faon quelque soit leur contenu.
 Liste des tables : Contient des informations
relatives aux tables groupes ayant des donnes
dans ce bloc.
 Liste des lignes : contient des informations relatives
aux lignes situes dans ce bloc (adresse).
 Espace libre : utilis pour linsertion de nouvelles
lignes ou la maj des lignes ncessitant de lespace.
 le reste du bloc est rserv aux donnes.
Administration Oracle 77 Administration Oracle 78
Extention (Extent)
Extent) Attribution d
dune nouvelle extension
 Unit logique dallocation despace compose dun  recherche dans le tablespace contenant le segment le
ensemble contigu de blocs de donnes allous premier ensemble contigu de blocs libres de taille au
simultanment un segment. moins gale celle de lextension supplmentaire.
 Tout segment est initialement cr avec au moins  si la recherche naboutit pas, Oracle fusionne les blocs
une extension appele extension initial (INITIAL libres pour constituer des ensembles de blocs libres de
taille suprieure, puis reprend la recherche. Si de
EXTENT).
nouveau la procdure de recherche naboutit pas,
 lorsque lespace dun segment est compltement message derreur signal.
utilis, Oracle lui attribue une nouvelle extension  modification de lentte du segment et du dictionnaire
dite extension supplmentaire (INCREMENTAL de donnes pour tenir compte de la nouvelle
EXTENT). extension.
Administration Oracle 79 Administration Oracle 80

Lib
Libration des extensions Taille des extensions
 les extensions dun segment ne sont libres  La taille des extents est dfinie par les paramtres
que lorsque le segment est supprim suite de la clause STORAGE :
STORAGE ( INITIAL n1 NEXT n2
la suppression dune table, dun cluster, etc MINEXTENTS m1 MAXEXTENTS m2
 lorsque des extensions sont libres, Oracle PCTINCREASE p)
n1 : taille du premier extent allou lorsque un segment est cr
met jour le dictionnaire de donnes. n2 : taille du second extent allou au segment
m1 : nombre dextents allous la cration du segment
m2 : nombre total dextents pouvant tre allous segment
p : pourcentage daccroissement de la taille du segment I+1 par rapport celle
du segment I (I >2).
La taille du segment I+1 = (taille du segment I) * (1+P/100).
Administration Oracle 81 Administration Oracle 82

Exemple SEGMENT
STORAGE ( INITIAL 50K NEXT 50K
MINEXTENTS 1 MAXEXTENTS 5
 Un segment est compos dun ou de
PCTINCREASE 50) plusieurs extents contenant les donnes
 Si la taille dun bloc = 2K, la taille des diffrents dune structure logique dans un tablespace.
extents sera :
 1er EXTENT : 50K  Quatre types de segments :
 2me EXTENT : 50K  segments de donnes
 3me EXTENT : ARRONDI(50*1,5) = 76K  segments dindex
 4me EXTENT : ARRONDI (76 *1,5) = 114K  segments de rollback
 5me EXTENT : ARRONDI (114*1,5) = 172K
 segments temporaires
Administration Oracle 83 Administration Oracle 84
Segments de donn
donnes Segments d
dindex
 servent stocker les donnes des tables  servent stocker les donnes dindex sparment
utilisateurs et systme. des donnes.

Administration Oracle 85 Administration Oracle 86

Segments temporaires Segments rollback


 utiliss pour le traitement des commandes SQL  enregistrent les actions effectues par les
ncessitant un espace disque temporaire (order by,
group by, distinct, union, instersect ou minus).
transactions. Ils contiennent les donnes
avant modification par les transactions, et
permettent dannuler leur effet en cas de
besoin.

Administration Oracle 87 Administration Oracle 88

Exemple : Traitement d
dun ordre DML
4
Ex
Excution
3 Instance
SGA Shared Pool
1- Le Processus serveur lit les blocs de donnes et de
rollback partir des fichiers de donnes si ces derniers ne
Library
Cache
sont pas dj dans le buffer cache.
5
Buffer Buffer 2- Les copies des blocs lus sont places dans le buffer
2 Cache Redo Cache cache
Processus serveur Log Du Dic D
Donnes
3- Le processus serveur met des verrous sur les donnes
4- Le processus serveur enregistre les modifications
apporter au rollback ( image avant ) et aux donnes (
nouvelle valeur) dans le buffer redo log
Base de Donnes 5- Dans le buffer cache de donnes, le processus serveur
1 enregistre limage avant dans le rollback et met jour le
UDATE emp SET
bloc de donnes. Ces 2 blocs modifis dans le buffer cache
Sal=sal*1.1 where empno=7895
donnes Contrle Redo Log
sont identifis comme buffers modifies , car il diffrent des
Administration Oracle 89 blocs correspondants surAdministration
le disque.Oracle 90
Exemple : Traitements des op
oprations Commit tapes de commit
1
Instance
SGA 1- Le processus serveur place un enregistrement de validation
Shared Pool
avec le SCN dans le buffer redo log
Library
Cache 2- Le LGWR effectue une ecriture contigue de toutes les entres
Buffer Buffer du buffer redolog dans les fichiers redo log allant jusqu
Cache
Processus serveur
4 Cache Redo
Du Dic D
lenregistrement de validation. Le serveur oracle peut garantir que
Donnes Log
les modifications ne seront pas perdues mme en cas de panne.
LGWR 3- Lutilisateur est inform de lachhevement de lopration
3 commit
2
4- Le processus serveur enregistre les informations indiquant que
Base de Donnes la transaction est complte et que les verrous mis sur les
Processus utilisateur ressources peuvent tre supprims
donnes Contrle Redo Log

Administration Oracle 91 Administration Oracle 92

System Change Number (SCN)


Que doit retourner une requte de consultation longue (dans la Cr
Cration, d
dmarrage et arrt
dure) durant laquelle d'autres utilisateurs ont effectu des
modifications de courte dure ? dune base de donn
donnes
Toujours dans le but de garantir la consistance des informations
fournies, une requte de consultation revoit toujours les
informations telles qu'elles taient lors du dbut d'excution de
la requte. Pour ce faire plusieurs valeurs, pour une mme
information, sont stockes dans la base. Ce qui les diffrencie
(outre la valeur), c'est la connaissance du SCN (moment auquel
l'ajout dans la base a lieu, mme si c'tait une modification). A
partir de l une requte select ne pourra jamais renvoyer une
valeur dont le SCN est suprieur celui de la transaction en
cours (un SCN est associ Administration
une transaction).
Oracle 93

Structure d
dune base de donn
donnes Cr
Cration d
dune base de donn
donnes
 Pr
Prcautions prendre avant de cr
crer une base de
Base de donn
donnes
donn
donnes :
 tre administrateur de base de donnes et disposer du
TABLESPACE
SYSTEM
TABLESPACE DATA plus haut niveau de privilge.
table table table table table cluster  valuer l'espace disque ncessaire et s'assurer que cet
table
index
table
index
table
index espace est disponible.
index index index
index
table
index
table
index
table
 prvoir les moyens assurant la scurit de la base de
index index index
index index index donnes (fichiers de reprise, archivage, sauvegarde et
restauration de donnes, ...).

Administration Oracle 95 Administration Oracle 96


Proc
Procdure de cr
cration de BD Sauvegarde des bases existantes
 Sauvegarde des bases existantes  Il est conseill d'effectuer une sauvegarde des bases
 Cration d'un nouveau fichier d'initialisation de donnes existantes avant de commencer la
 Edition du nouveau fichier d'initialisation cration d'une nouvelle base. Pour chaque base, il
faut sauvegarder :
 Edition de tous les fichiers d'initialisation
existants  les fichiers d'initialisation (ou de paramtres),
 Arrt et redmarrage d'Oracle  les fichiers de donnes,
 Cration de la nouvelle base de donnes  les fichiers de reprise (redo log),
 les fichiers de contrle

Administration Oracle 97 Administration Oracle 98

Cr
Cration du fichier init Edition du nouveau fichier init
 Cr
Cration d
dun nouveau fichier init  Il s'agit d'adapter le nouveau fichier d'initialisation la
base de donnes crer.
 Chaque base de donnes doit avoir son fichier  On doit utiliser un nom de base de donnes et un
d'initialisation utilis lors du dmarrage d'une instance. nom de fichier de contrle diffrents de ceux de la
base existante.
 Cette tape consiste crer un nouveau fichier  On doit donc modifier les paramtres suivants dans le
d'initialisation contenant les paramtres de la base fichier de paramtres :
crer.  DB_NAME = nouveau_nom_de_bd
 DB_DOMAIN = nom_domaine
 Se fait en copiant l'un des fichiers d'initialisation  CONTROL_FILES = (fichier_control_1, fichier_control_2, ...)
existants (INIT.ORA par exemple) puis on l'dite  INIT_SQL_FILES = (SQL.BSQ, CATALOG.ORA, fichier_1,
fichier_2, ...)
pour l'adapter la nouvelle base de donnes.

Administration Oracle 99 Administration Oracle 100

Edition des fichiers init existants Arrt et d


dmarrage d
dOracle
 S'il existe d'autres bases de donnes, mettre jour  Si une base de donnes est ouverte, l'arrter
leurs fichiers d'initialisation en spcifiant les (SHUTDOWN).
paramtres DB_NAME, DB_DOMAIN et
 Se connecter ensuite avec le privilge
CONTROL_FILES.
INTERNAL et dmarrer une nouvelle instance
 Vrifier aussi que l'identificateur de l'instance Oracle
sans ouverture de base de donnes.
est conforme au nom de la base de donnes
(paramtre DB_NAME).
 Vrifier que les valeurs de ces paramtres sont STARTUP NOMOUNT PFILE=fichier_init;
diffrentes de celles de la base crer

Administration Oracle 101 Administration Oracle 102


Cr
Cration de la base Cr
Cration de la base
CREATE DATABASE [nom_base]
[CONTROLFILE REUSE]
 La commande CREATE DATABASE entrane la
[LOGFILE [GROUP entier] spcif_fichier] [, ...] cration des lments suivants :
[MAXLOGFILES entier]
[MAXLOGMEMBERS entier]  des fichiers de donnes,
[MAXLOGHISTORY entier]  des fichiers de reprise (redo log),
[DATAFILE spcif_fichier [, spcif_fichier]...]
[MAXDATAFILES entier]  des fichiers de contrle,
[MAXINSTANCES entier]  un tablespace SYSTEM et un rollback segment
[ARCHIVELOG | NOARCHIVELOG]
[EXCLUSIVE] SYSTEM,
[CHARACTER SET code];  un dictionnaire de donnes (tables, vues et
synonymes),
 deux utilisateurs identifis par SYS et SYSTEM.
Administration Oracle 103 Administration Oracle 104

Modification d
dune base Dmarrage d
dune base
ALTER DATABASE [nom_base]
[ADD LOGFILE [THREAD entier] [GROUP entier] spcif_fichier...  Le dmarrage d'une base de donnes se fait en
[ADD LOGFILE MEMBER 'fichier' [REUSE] [, 'fichier' [REUSE]]...
TO {GROUP entier | ( 'fichier' [, 'fichier']...) | 'fichier' }...
trois tapes :
[DROP LOGFILE { GROUP entier | ( 'fichier' [, 'fichier']...) | 'fichier' }]...  dmarrage d'une instance,
[DROP LOGFILE MEMBER 'fichier' [, 'fichier']...]
[RENAME FILE 'fichier' [, 'fichier']... TO 'fichier' [, 'fichier']...]  chargement de la base,
[ARCHIVELOG | NOARCHIVELOG] [MOUNT [EXCLUSIVE |
PARALLEL]]  ouverture de la base.
[OPEN [RESETLOGS | NORESETLOGS]]
[ENABLE [PUBLIC] THREAD entier] [DISABLE THREAD entier]
[BACKUP CONTROLFILE TO 'fichier' [REUSE]]  Il se fait suite une connexion avec le privilge
[DATAFILE 'fichier' {ONLINE | OFFLINE}]
[CREATE DATAFILE 'fichier' [, 'fichier']...AS spcif_fichier[, spcif_fichier]...] INTERNAL (CONNECT INTERNAL).
[RENAME GLOBAL_NAME TO nom_base[.domaine]...]
[RECOVER clause_recover];

Administration Oracle 105 Administration Oracle 106

Dmarrage d
dune instance Chargement d
dune base
 Le dmarrage d'une instance consiste prparer le  Le chargement d'une base de donnes consiste
contexte ncessaire pour l'utilisation d'une base de l'associer une instance dj dmarre.
donnes.  La base de donnes devient accessible uniquement
 Allocation de l'espace mmoire constituant la SGA et aux utilisateurs ayant le privilge DBA.
 Lancement des diffrents processus d'Oracle.  L'administrateur peut ainsi effectuer les oprations
 La zone mmoire alloue et les processus crs ne suivantes :
 Renommer les fichiers de donnes,
sont encore associs aucune base de donnes.  Ajouter, supprimer ou renommer des fichiers de reprise (Redo Log),
 Activer ou dsactiver l'option d'archivage des fichiers de reprise,
 Avant le dmarrage d'une instance, Oracle consulte  Effectuer un recouvrement total de la base de donnes.
le fichier init afin de dterminer les caractristiques
de l'instance crer.
Administration Oracle 107 Administration Oracle 108
Chargement d
dune base (suite) Chargement d
dune base (suite)
 Ces oprations peuvent tre effectues l'aide de la  Une base peut tre charge en :
commande ALTER DATABASE.  Mode exclusif : aucune autre instance ne peut charger
 Lorsque la base est charge, Oracle effectue les cette base.
oprations suivantes :  Mode partag
partag (dit aussi parallle) : d'autres instances
 ouverture du fichier de contrle peuvent charger la mme base en mode partag.
 vrification que les fichiers de donnes et de reprise
qui sont indiqus dans le fichier de contrle existent,
sans les ouvrir.
 S'il ne trouve pas l'un de ces fichiers, il signale un
message d'erreur.
Administration Oracle 109 Administration Oracle 110

Ouverture d
dune base Commande de d
dmarrage
 L'ouverture d'une base de donnes consiste la
STARTUP [FORCE] [RESTRICT] [PFILE=nom_fichier_param]
rendre accessible tous les utilisateurs. {[OPEN] [RECOVER] [nom_base] | [MOUNT]} [options]}|
 Les fichiers de donnes et de reprise sont ouverts. [NOMOUNT];

 Si l'un de ces fichiers ne peut pas tre ouvert, une


erreur est signale et la base n'est pas ouverte.
 Oracle vrifie qu'elle a t normalement ferme. Si
elle a t ferme en avortant une instance, ou suite
une panne, Il effectue automatiquement un
recouvrement (reprise).
Administration Oracle 111 Administration Oracle 112

Startup Fermeture d
dune base
startup open startup mount
startup nomount

lit Init.ora, identifie Control_file


 La fermeture d'une base de donnes se fait,
cre et initialise la SGA
lance Background-Process
comme l'ouverture, en trois tapes :
 fermeture de la base,
Ouvre Control File
 dchargement de la base,
monte la BD  arrt de l'instance.
(Dpose vrrou sur linstance)
 Elle se fait suite une connexion avec le privilge
- Ouvre et verrouille les fichiers de donnes INTERNAL (CONNECT INTERNAL).
- Si premire instance: Verrou du premier startup.
- Ouvre les online redo log files
- Si premire instance : Recouvrement dinstance (si besoin) SHUTDOWN [ABORT | IMMEDIATE | NORMAL];
Administration Oracle 113 Administration Oracle 114
Shutdown
Normal
Immediate
Arrter l accs la base Abort

Stoppe et annule
(rollabck) les
Attendre dconnexion des utilisateurs

recopie sur disque buffers data et redo log


Le dictionnaire de donnes
transactions actives
Lve les verrous sur les fichiers de la BD

Achve les transactions courantes

m--j les enttes des fichiers

fermeture du thread

libre le verrou de linstance sur la BD

synchronise Control File et Data Files

Administration Oracle 115

Pr
Prsentation g
gnrale Vues du dictionnaire
 Le dictionnaire de donnes dOracle est un ensemble de  Rpartition en quatre classes :
tables et de vues.  Vues relatives aux objets dun utilisateur (USER_vue)
 Table du dictionnaire :  Vues relatives aux objets accessibles un utilisateur (ALL_vue)
 enregistrement des informations relatives aux objets de la base  Vues relatives aux administrateurs (DBA_vue)
 accessibles et maintenues dynamiquement par le noyau  Vues relatives aux suivi des performances (V$vue)Vues relatives au
suivi des performances (V_$vue) et synonymes (V$vue).
 accs direct ces tables fortement dconseill aux utilisateurs
 contenu souvent crypt pour des raisons de scurit  La vue DICTIONARY permet davoir une liste
 Vues du dictionnaire : complte des tables, vues et synonymes du
 protgent le contenu des tables du dictionnaire tout en rendant dictionnaire.
accessibles les informations quelles contiennent.

Administration Oracle 117 Administration Oracle 118

Cration du dictionnaire Scripts sql.bsq et catalog.sql


 Lors de la cration dune base de donnes, le  Le script sql.bsq doit tre spcifi en premier :
paramtre INIT_SQL_FILES permet de spcifier  cre un tablespace SYSTEM et un rollback segment
les fichiers SQL qui seront excuts aprs pour SYSTEM
construire le dictionnaire de donnes et dautres  cre les tables du dictionnaire dans SYSTEM
fichiers initiaux :  charge quelques tables du dictionnaire.
INIT_SQL_FILES = (fichier1, fichier2,...)  Le script catalog.sql :
 Par dfaut, Oracle excute les deux fichiers :  cre les vues du dictionnaire
 sql.bsq  cre les synonymes publics associs ces vues
 catalog.sql  attribue un accs PUBLIC ces synonymes
Administration Oracle 119 Administration Oracle 120
Scripts suppl
supplmentaires Utilisation du dictionnaire
 audit.sql : cre les vues donnant la trace de lactivit du  Le dictionnaire de donnes est utilis par :
systme.
 blocking.sql : cre la vue BLOCKING_LOCKS qui  Oracle pour assurer les diffrentes oprations de
donne la liste des verrouillages bloquants. la base.
 catalog6.sql : cre des anciennes vues de la version 6.
 dba_synonyms.sql : cre des synonymes des vues de  Ladministrateur comme outil de base pour
ladministrateur. grer les objets de la base.
 dropcat6.sql : supprime les vues de la version 6.  Les utilisateurs travers des vues pour une
 expview.sql : cre des vues utilises lors de limport et vision globale des objets leur appartenant ou
lexport des donnes.
 monitor.sql : attribue PUBLIC les droits daccs aux pour lesquels ils ont acquis des droits.
vues relatives aux performances.
Administration Oracle 121 Administration Oracle 122

Acc
Accs au dictionnaire par Oracle Acc
Accs au dictionnaire par les utilisateurs

 Oracle accde au dictionnaire en lecture et en  Les utilisateurs accdent au dictionnaire


criture. uniquement travers les vues.
 Il est le seul pouvoir modifier son contenu  Le dictionnaire peut tre utilis pour deux aspects
 Accs en lecture pour lanalyse des commandes  aspect de documentation

LMD soumises par les utilisateurs.  aspect dadministration

 Accs en criture lors de lexcution des commandes  Les vues du dictionnaire sont accessibles travers
LDD. Les tables daudit sont mises jour en le langage SQL.
permanence.  Toutes les variantes de la commande SELECT
 Une bonne partie du dictionnaire est charg dans la peuvent tre utilises.
Administration Oracle 123 Administration Oracle 124
SGA.

Introduction
Assurer la scurit dune base de donnes consiste :
Scurit
curit BD * Empcher laccs,la modification et la destruction
des donnes par des accs non autoriss tel que la
malveillance ou les inconsistances accidentelles.
* Spcifier les autorisations ,cest dire les rgles qui
permettent de dfinir qui a le droit deffectuer un tel
type dopration sur telles donnes. Elle sont
gnralement rserves ladministrateur de le BD.

Administration Oracle 126


Scurit
curit et Int
Intgrit
grit Causes de la violation (Suite)
Scuriser une BD Pourquoi scurise-t-on - Erreurs logiques contradictoires avec l hypothse de
la base ? (Connatre les causes de violation de la conservation de la consistance de la base par des transactions
scurit) qui sy droulent lors de lchange des donnes entre
1-Causes de la violation de la s
scurit
curit: plusieurs utilisateurs. Cest dire la perte de consistance lors
- Crashes pendant le traitement des transactions de lchange des donnes entre diffrents utilisateurs ou
(les interruptions systme ou bien matriels).
transactions
- Anomalies dues la rpartition des donnes sur
plusieurs sites (ce problme apparat dans lapproche - La malveillance des utilisateurs cest dire la mauvaise
BD repartie). utilisation des donnes dune faon intentionnelle
(modification,destruction,).
Administration Oracle 127 Administration Oracle 128

Scurit
curit et int
intgrit
grit (Suite) Niveaux de s
scurit
curit (Suite)
Pour protger une BD, des mesures de scurit *Syst
*Systme: Quelle que soit la sret de la BD des
doivent tre prises sur plusieurs niveaux: faiblesses ventuelles dans la scurit de systmes de
2- Niveaux de s
scurit
curit: gestion de base de donnes peuvent tre mises profit
*Physique:
*Physique Les sites qui hbergent les donnes et les pour pntrer la base. Donc, la scurit du logiciel
SGBDs doivent tre physiquement arms contre les systme est aussi importante que la scurit physique
intrusions en force. de la base.
*Humain:
*Humain Les autorisations doivent tre accordes *Base de donn
donnes: Le systme doit sassurer que les
dune faon slective afin qun utilisateur ne cde ses restrictions des accs ne sont pas violes.
autorisations une personne malveillante.

Administration Oracle 129 Administration Oracle 130

Scurit
curit et int
intgrit
grit (Suite) Niveau SGBD(syst
SGBD(systme)

3- Contraintes ddint
intgrit
grit: 1- Niveaux de s
scurit
curit:
Les contraintes dintgrit sont des rgles par rapport Les systmes de gestion de bases de donnes assurent leur
elles se fait le contrle de validit sur les oprations scurit en deux niveaux:
effectues. *Niveau des relations:
Ils existent plusieurs types de contraintes dintgrit Un utilisateur peut tre autoris ou non une relation
(temporelles, rfrentielles ,etc.) donne.
Les contraintes dintgrit protgent la base contre une *Niveau des vues:
perte de consistance lors des modifications effectues Un utilisateur peut tre autoris ou non accder aux
par les utilisateurs autoriss. donnes qui font partie dune vue donne.
Administration Oracle 131 Administration Oracle 132
Niveau SGBD(syst
SGBD(systme) Niveau SGBD(syst
SGBD(systme)

Une vue cache les donnes quun utilisateur na pas 2-Autorisations pour les vues et les relations:
besoin de les voir, donc, elle facilite laccs la base et Un utilisateur peut bnficier de plusieurs habilitations lors
renforce sa scurit. de son accs la base. Parmis celles-ci notons:
Les raisons dutiliser la vue comme une approche de
protection sont les suivantes : - Lautorisation de lecture ,sans avoir le droit de
modifier des donnes (READ).
- Elle est mieux adapte pour restreindre
laccs la base de donne. - Lautorisation dinsertion (INSERT).
- Sa dfinition est statique mais les donnes - Lautorisation de mise jour, sans avoir le droit de
aux quelles on accde travers la vue sont dynamiques. modifier des donnes (UPDATE).
- Elle est adapte pour implmenter les -Lautorisation deffacement des donnes (DELETE).
niveaux dans une multibase de donnes. Ces autorisations font partie de langage de manipulation des
Administration Oracle 133 Administration Oracle 134
donnes.

Niveau SGBD(syst
SGBD(systme)
Niveau SGBD(syst
SGBD(systme)
Rsultat de la
requte ou refuser Requte
Il y a aussi celles qui font partie de langage de dfinition des lacc
accs utilisateur

donnes. Contrle effectu


Contrle effectu
effectu effectu avant
- Lautorisation daccs aux index (pour cration et apr
aprs l
lacc
accs aux lacc
accs aux donn
donnes
donnes :contrle
donn :contrle d
dun nom,du
effacement des index) dpendant du contenu contexte et de l
lhistorique

- Lautorisation daccs aux relations ,pour crer des


nouvelles relations (RESOURCE).
- Lautorisation daltration des relations ,par ajout ou Rcup
cupration des Autorisation
limination des attributs (ALTERATION). donnes demand
donn demand es par
la requte
accord
accorde
Base de
- Lautorisation dabandon, pour effacer des relations Donn
Donnes
(DROP).
Processus du contrle daccs
dacc
Administration Oracle 135 Administration Oracle 136

Scurit
curit et Confidentialit
Confidentialit Scurit
curit et Confidentialit
Confidentialit (Suite)
La scurit et la confidentialit consiste, surtout, dfinir
La liste des privilges quun utilisateur peut
les privilges daccs. accorder :
*Affectation de privil
privilge: Sur les tables, vues et snapshot quil possde:
- INSERT;
Quand un utilisateur cre une relation de base, il dispose - UPDATE (tout ou des colonnes spcifiques);
de tous les droits sur cette relation et de mme pour les - DELETE;
vues. - SELECT;
Les privilges INSERT, UPDATE et DELETE peuvent
Lutilisateur qui donne les privilges est appel donneur
tre accorder sur des snapshot uniquement sils sont
et celui qui les reoit est appel receveur.
Administration Oracle 137
actualisables. Administration Oracle 138
Scurit
curit et confidentialit
confidentialit (Suite) Scurit
curit de donn
donnes
Sur les tables qu il possde:  La scurit de donnes est une tche de
ladministrateur de la base qui est charg de
- ALTER (une table entire ou des colonnes
la mettre en place au niveau :
spcifiques ou une squence);  systme dexploitation
- REFERENCES;  objets de la base de donnes
- INDEX (colonnes d une table);  utilisateurs de la base

- ALL (tous les privilges prcits);

Administration Oracle 139 Administration Oracle 140

Niveau Syst
Systme d
dexploitation Niveau Syst
Systme d
dexploitation (Suite)
 Les programmes dOracle sont diviss en  ajouter un autre groupe oracle pour autoriser
deux ensembles de scurit : lutilisation de certains outils (SQL*Plus etc.)
 les programmes excuts par tous (others)  mettre ces outils avec lID du groupe cr et changer
 les programmes excuts par DBA la permission en 710.
 les autres programmes restent avec la permission 711
 Lapproche typique de scurit est la
et peuvent tre excuts par others.
suivante :  mettre les programmes $ORACLE_HOME/bin avec le propritaire
 crer un groupe dba avant linstallation oracle.
mettre les outils (sqlplus, imp, exp) la protection 711
 lui affecter root et le propritaire oracle (programmes 

mettre les outils DBA (Server Manager) la protection 700


excuts par dba auront la permission 710). 

Administration Oracle 141 Administration Oracle 142

Rles Oracle et Groupes Unix Utilisateurs Oracle


 Une autre mthode de scurit consiste faire une  Deux super-utilisateurs sont crs dans une base
correspondance rles Oracle avec les groupes Unix de donnes :
pour les bases locales en respectant le format
 sys/change_on_install
ora_sid_rle[_d
d|aa]  system/manager
sid : identifiant de la base
rle : nom du rle Oracle  Penser les changer sur une base de production :
ALTER USER SYS
d: rle par dfaut (optionnel)
IDENTIFIED BY nouveau_pwd;
a: rle avec option WITH ADMIN
Exemple de fichier /etc
/etc/group
etc/group :
ora_test_osoper_d:NONE:1:jean, mary,scott ALTER USER SYSTEM
ora_test_osdba_a:NONE:3:malek IDENTIFIED BY nouveau_pwd;
ora_test_role1:NONE:bob,marie
Administration Oracle 143 Administration Oracle 144
Gestion des utilisateurs Cr
Cration d
dun utilisateur
 Les utilisateurs sont grs dans Oracle  La commande de cration dutilisateur est :
comme tous les objets de la base : CREATE USER utilisateur
 action de cration IDENTIFIED { BY nouveau_pwd | EXTERNALLY}
[DEFAULT TABLESPACE tbs]
 action de modification [TEMPORARY TABLESPACE tbs]
 action de suppression [QUOTA {entier [K|M] | UNLIMITED} ON tbs
PROFILE profil;
 Chaque utilisateur peut avoir des rles,
 Cette commande possde un domaine de
profils, des tablespaces par dfaut etc.
privilges utilisateurs vide.

Administration Oracle 145 Administration Oracle 146

Modification dun utilisateur Suppression d


dun utilisateur
 La commande de suppression dun
 La modification dun utilisateur se fait par :
utilisateur est :
ALTER USER utilisateur DROP USER utilisateur [CASCADE];
IDENTIFIED { BY nouveau_pwd | EXTERNALLY}
[DEFAULT TABLESPACE tbs]  Loption CASCADE permet de supprimer lutilisateur
[TEMPORARY TABLESPACE tbs]
[QUOTA {entier [K|M] | UNLIMITED} ON tbs
et tous ses objets (tables, vues, contraintes etc.)
PROFILE profil  En l'absence de CASCADE, lutilisateur ne peut pas
[DEFAULT RLE {rle,... | [ALL][EXCEPT rle,...] |NONE}; tre supprim sil possde des objets.
 Cette option doit tre manipule avec prudence.

Administration Oracle 147 Administration Oracle 148

Notion de sch
schma Notion de sch
schma
 Un schma est une structure logique de stockage  Avantages :
de donnes qui est associ un utilisateur de la  Oracle gre la cration du schma comme une
base. transaction.
 Un schma contient des ordres de cration de :  Si un lment du schma choue, tous les lments
 tables sont annuls.
 index  Inconvnients
 vues  un seul schma par utilisateur
 clusters  le nom du schma est forcment celui de lutilisateur
 octroi de privilges  pas de commande de suppression ou de modification
de schma
Administration Oracle 149 Administration Oracle 150
Cr
Cration d
dun sch
schma Les profils
 La commande de cration dun schma est  Un profil est un ensemble de limites ressources
identifi par un nom.
la suivante :
 Utilis pour contrler la consommation des
CREATE SCHEMA AUTHORIZATION schma ressources.
{  Permet une gestion plus facile des ressources.
commande CREATE TABLE...  Existence dun profil DEFAULT assign
commande CREATE VIEW... automatiquement aux utilisateurs qui nont pas de
profil.
commande GRANT
}  Deux niveaux de profil : SESSION, APPEL
Administration Oracle 151 Administration Oracle 152

Profil au niveau session Profil au niveau appel


 Permet de contrler :  Permet de contrler :
 le nombre de sessions autorises pour chaque
utilisateur.  le nombre maximum de blocs lus par appel
 le temps CPU pour chaque session  le temps CPU maximum par appel
 le temps coul par session
 le temps coul sans occupation
 Un ordre SQL peut faire plusieurs appels
 le nombre maximum de blocs lus par session (FETCH).
 La session sarrte avec annulation des  Lordre SQL sarrte avec annulation si
transactions non valides si dpassement de dpassement des limites.
limites.
Administration Oracle 153 Administration Oracle 154

Cr
Cration de profil Cr
Cration d
dun profil
CREATE PROFILE nom_profil LIMIT
[SESSIONS_PER_USER {entier/UNLIMITED/DEFAULT]
 Les limites doivent tre diffrentes de 0.
[CPU_PER_SESSION {entier/UNLIMITED/DEFAULT]
[CPU_PER_CALL {entier/UNLIMITED/DEFAULT]
SESSIONS_PER_USER : nombre de sessions concurrentes par utilisateur
[CONNECT_TIME {entier/UNLIMITED/DEFAULT] CPU_PER_SESSION : temps max CPU autoris par session (en 1/100 s)
[IDLE_TIME {entier/UNLIMITED/DEFAULT] CPU_PER_CALL : temps max CPU autoris par appel (en 1/100 s)
[LOGICAL_READS_PER_CALL {entier/UNLIMITED/DEFAULT] CONNECT_TIME : temps max coul par session (en minutes)
[LOGICAL_READS_PER_SESSIONS {entier/UNLIMITED/DEFAULT] IDLE_TIME : temps max autoris sans activit (en minutes)
[PRIVATE_SGA {entier[K|M]/UNLIMITED/DEFAULT] LOGICAL_READS_PER_SESSION : nombre de blocs max autoris en
[COMOSITE_LIMIT {entier/UNLIMITED/DEFAULT] lecture par session.
LOGICAL_READS_PER_CALL : nombre de blocs max autoris en lecture
par appel.
PRIVATE_SGA : taille maximale prive dans la SGA.

Administration Oracle 155 Administration Oracle 156


COMPOSITE_LIMIT Calcul du composite_limit
 Dfinit un cot global qui est la somme des  La commande SQL suivante :
ALTER RESOURCE COST
poids de chacune des ressources suivantes : [CPU_PER_SESSION entier ]
 CPU_PER_SESSION [CONNECT_TIME entier ]
[LOGICAL_READS_PER_SESSION entier ]
 CONNECT_TIME
[PRIVATE_SGA. entier]
 LOGICAL_READS_PER_SESSION
 PRIVATE_SGA  Le poids dtermin est utilis par
COMPOSITE_LIMIT du profil.
 Il se calcule par la formule suivante :
 Le poids total est exprim en units de services.
T = somme (poids * ressource)
Administration Oracle 157 Administration Oracle 158

Exemple Modification dun profil


ALTER RESOURCE COST ALTER PROFILE nom_profil LIMIT
CPU_PER_SESSION 150 [SESSIONS_PER_USER {entier/UNLIMITED/DEFAULT]
CONNECT_TIME 2; [CPU_PER_SESSION {entier/UNLIMITED/DEFAULT]
[CPU_PER_CALL {entier/UNLIMITED/DEFAULT]
La formule de calcul de ce cot est la suivante : [CONNECT_TIME {entier/UNLIMITED/DEFAULT]
[IDLE_TIME {entier/UNLIMITED/DEFAULT]
[LOGICAL_READS_PER_CALL {entier/UNLIMITED/DEFAULT]
 T=150*CPU + 2*CON
[LOGICAL_READS_PER_SESSIONS {entier/UNLIMITED/DEFAULT]
 CPU est le temps CPU utilis par la session (en1/100 [PRIVATE_SGA {entier[K|M]/UNLIMITED/DEFAULT]
s) [COMOSITE_LIMIT {entier/UNLIMITED/DEFAULT]

 CON est le temps coul pour la session en minute.


 T est le total des ressources exprim en units de
services.
Administration Oracle 159 Administration Oracle 160

Suppression d
dun profil Activation des ressources limites
 La suppression dun profil se fait par :  Au dmarrage dune instance, Oracle active
ou dsactive les limites ressources utilises
DROP PROFILE profil [CASCADE];
par les profils.
 Loption CASCADE permet de :  Deux mthodes :
 supprimer ce profil pour tous les utilisateurs  dans le fichier init.ora, mettre le paramtre
auxquels il a t attach. RESSOURCE_LIMIT = TRUE ou FALSE
 leur affecter le profil DEFAULT  commande SQL :
ALTER SYSTEM
SET RESSOURCE_LIMIT = {TRUE|FALSE}

Administration Oracle 161 Administration Oracle 162


Privil
Privilges d
dacc
accs Privil
Privilges Syst
Systmes
 Oracle offre une multitude de privilges daccs  Un privilge systme permet dexcuter certaines
aux donnes pour : actions touchant la structure de la base de
 augmenter la scurit des donnes donnes (table, trigger, profil,...).
GRANT {privilge_systme | rle},...
 mieux grer les ressources
TO {utilisateur | rle | PUBLIC},...
 mieux grer les utilisateurs [WITH ADMIN OPTION]
 regrouper les privilges (rles)  Un rle regroupe plusieurs privilges pour :
 On distingue deux familles de privilges :  faciliter la formulation de requte
 privilges systmes  structurer les privilges des bases et des applications
 privilges objets
Administration Oracle 163 Administration Oracle 164

Privil
Privilges syst
systmes (Suite) Privil
Privilges syst
systmes (suite)
A C D A C D ANALYSE ANY AUDIT ANY
ANY CLUSTER X X X CLUSTER X AUDIT SYSTEM BECOME USER
ANY INDEX X X X PROCEDURE X
BACKUP ANY TABLE COMMENT ANY TABLE
ANY PROCEDURE X X X ROLE X
ANY ROLE X X SEQUENCE X EXECUTE ANY PROCEDURE FORCE ANY TRANSACTION
ANY SEQUENCE X X X SNAPSHOT X FORCE TRANSACTION GRANT ANY PRIVILEGE
ANY SNAPSHOT X X X TABLE X GRANT ANY ROLE INSERT ANY TABLE
ANY TABLE X X X TRIGGER X LOCK ANY TABLE MANAGE TABLESPACE
ANY TRIGGER X X X DATABASE X READUP RESTRICTED SESSION
PROFILE X X X RESOURCE COST X
ROLLBACK SEGMENT X X X SESSION X X
SELECT ANY SEQUENCE SELECT ANY TABLE
SYSTEM X TABLESPACE X X X UNIMILTED TABLESPACE UPDATE ANY TABLE
USER X X X VIEW X WRITE DOWN WRITEUP .
ANY VIEW X X ANY SYNONYM X X
SYNONYM X DATABASE LINK X X
PUBLIC DATABASE LINK X PUBLIC SYNONYM X X

Administration Oracle 165 Administration Oracle 166

Privil
Privilges Objets Commande GRANT
 Un privilge objet donne le droit dexcuter une  La commande doctroi de privilges objets
action particulire sur :
est la suivante :
 TABLE,
 VUE, GRANT privilge_objet [ (colonne ,...) ] ,...
 FONCTION, ON [schma.]objet
 PROCDURE, TO {utilisateur | rle |PUBLIC},...
 SQUENCE [WITH GRANT OPTION]
 PACKAGE.
 ces droits peuvent tre attribus un ou plusieurs
utilisateurs ou rles dans la mme commande.
Administration Oracle 167 Administration Oracle 168
Privil
Privilges Objets Suppression de privil
privilges
 Les privilges objets sont :  Privilges systmes
Table Vue Sequence Procedure Snapshot REVOKE {privilge_systme | rle} ,...
Fonction
Package FROM {utilisateur|rle|PUBLIC},...
ALTER
DELETE
X
X X
X  Privilges objets
REVOKE privilge_objet ,...
EXECUTE X
ON [schma.]objet
INDEX X
FROM {utilisateur|rle|PUBLIC} ,...
INSERT X X
[CASCADE CONSTRAINTS]
REFERENCES X
SELECT X X X X  Loption CASCADE CONSTRAINTS supprime toutes
UPDATE X X les contraintes dintgrit rfrentielles dfinies sur les
objets pour lesquels on retire les privilges.

Administration Oracle 169 Administration Oracle 170

Les Rles Les rles (Suite)


 Oracle cre automatiquement des rles quil
 Un rle est une agrgation de droits daccs aux
donnes et de privilges systme. attribue SYS et SYSTEM.
 Un rle renforce la scurit de donnes et rduit  Ces rles sont des privilges systme des anciennes
significativement la difficult et le cot de son versions :
administration.  CONNECT,
 RESOURCE
 Un rle peut tre :  DBA.
 cr  Limportation et lexportation de donnes ont t
 modifi
mises dans les rles respectifs :
 supprim
 IMP_FULL_DATABASE
 activ ou dsactiv  EXP_FULL_DATABASE
Administration Oracle 171 Administration Oracle 172

Les privil
privilges Syst
Systme Les rles (suite)
Les privil
privilges syst
systme attribu
attribus ces rles sont  Un rle peut servir deux aspects :
ALTER
ALTERSESSION,
SESSION,CREATE
CREATECLUSTER,
CLUSTER,CREATE
CREATE  APPLICATION
DATABASE
DATABASELINK,
LINK,CREATE
CREATE
CONNECT SEQUENCE, UTILISATEUR.
SEQUENCE, CREATE SESSION,CREATE
CREATE SESSION, 
CONNECT CREATE
SYNONYM,
SYNONYM,CREATE
CREATETABLE,
TABLE,CREATE
CREATEVIEW.
VIEW.  Un rle dapplication regroupe tous les privilges
CREATE
CREATECLUSTER,
CLUSTER,CREATE
CREATEPROCEDURE,
PROCEDURE, ncessaires lexcution dune application.
RESOURCE
RESOURCE CREATE
CREATESEQUENCE,
SEQUENCE,CREATE
CREATETABLE,
TABLE,
CREATE
CREATETRIGGER,
TRIGGER,UNLIMITED
UNLIMITEDTABLESPACE
TABLESPACE
 Il peut tre compos dautres rles, chacun deux
offre un ensemble de privilges daccs des
DBA
DBA Tous
Tousles
lesprivil
privilges
privilges
donnes diffrentes de lapplication.
EXP_FULL_DATABASE SELECT
SELECTANY
ANYTABLE,
TABLE,BACKUP
BACKUPANY
ANYTABLE.
EXP_FULL_DATABASE TABLE.  Un rle utilisateur gre des privilges communs
IMP_FULL_DATABASE
IMP_FULL_DATABASE BECOME_USER
BECOME_USER ncessaires aux utilisateurs de la base, comme la
cration de session.
Administration Oracle 173 Administration Oracle 174
Exemple de rles Cr
Cration de rle
util1 util2 util3 util4 util5 CREATE ROLE rle
[NOT IDENTIFIED
| IDENTIFIED {BY mot_de_passe | EXTERNALLY}
rles
rle vente rle admin rle paie utilisateur  Un rle est cr initialement sans aucune
caractristique.
rle stock rle personnel
rles  Il est aliment par des ordres SQL GRANT.
application
 Il peut tre protg par un mot de passe.
privilges application stock privilges application personnel
 Il peut tre activ et dsactiv.
Administration Oracle 175 Administration Oracle 176

Activation d
dun rle Activation d
dun rle
 Pour quun rle devient disponible lutilisateur de  Lutilisation des options ALL et ALL EXCEPT
la session, il faut quil soit activ. ncessitent que tous les rles ne possdent pas de
SET ROLE {rle [IDENTIFIED BY mot_de_passe]
mot de passe ou utilisent une authentification par
[, rle [IDENTIFIED BY mot_de_passe] ]...
| ALL [EXCEPT rle [, rle] ...]
OS.
| NONE }  Le rle qui ne figure pas dans la liste est considr
 Oracle tablit au moment de la connexion tous les comme dsactiv.
privilges dun utilisateur.
 Ces privilges ont t attribus soit :  Il nexiste pas de commande spcifique pour
 directement par des GRANT OBJETS, dsactiver explicitement un rle.
 indirectement par des GRANT RLES.
Administration Oracle 177 Administration Oracle 178

Modification d
dun rle
La commande de modification de rle est : Outils d

ALTER ROLE rle
dadministration
{ NOT IDENTIFIED
| IDENTIFIED {BY mot_de_passe | EXTERNALLY}}
Exemple :
ALTER ROLE rutil1 NOT IDENTIFIED;

 La commande de suppression de rle est :


DROP ROLE rle

Administration Oracle 179


Outils d
dadministration Import/Export
 Server Manager : administrer la base  Deux outils distincts pour change de donnes entre des
base Oracle.
 Import / Export : changer les donnes avec  Export cre une copie logique dune partie ou de la
lextrieur dans un format Oracle totalit de la base pour tre utilise comme :
 sauvegarde logique
 SQL*Loader : changer les donnes avec  copie vers dautres bases Oracle
lextrieur dans un format dfinir  Import intgre dans la base les donnes des fichiers
Importation de donnes
gnrs par Export.
 Outil de vrification de la base : db_verify
 Outil NLS BD Oracle BD Oracle
Exportation de donnes
 Oracle Entreprise Manager
Administration Oracle 181 Administration Oracle 182

Export Modes d
dExport
 Export permet de crer une copie logique d'une partie ou  Mode table : exportation explicite de tables avec droits,
de la totalit des objets d'une base de donnes. Ces objets index et contraintes dintgrit.
peuvent tre :
 Mode Utilisateur : exportation de tous les objets dun
 structure des tables,
 donnes des tables,
utilisateur explicite (tables, vues, synonymes, etc.).
 privilges attribus des utilisateurs,  Mode base de donnes : exportation de toute la base par
 vues, un utilisateur ayant les droits DBA. Subdivis en cinq
 clusters, modes :
 synonymes,
 squences,
 contraintes d'intgrits.

Administration Oracle 183 Administration Oracle 184

Modes dExport (suite) Exemple


 entiere : tous les objets de la base y compris ceux de SYS  Export en mode complete (T) une fois toutes les quatre
 full : tous les objets de la base sauf ceux de SYS semaines.
 cumulative : tous les objets qui ont t modifis depuis le dernier
Export cumulative ou complte  Export en mode cumulative (C) la fin de chaque
 incremental : tous les objets qui ont t modifis depuis le dernier semaine.
Export incrmental, cumulative ou complte.
 Export en mode incremental (I) an fin de chaque jour.
 complete : tous les objets de la base sans ceux de SYS avec remise
zro des tables systmes qui grent le mode incremental et cumulative 2me semaine
1re semaine 3me semaine 4me semaine
(SYS.INCVID et SYS.INCEXP).

1234567 1234567 1234567 1234567

TIIIIIC IIIIIIC IIIIIIC IIIIIIC

Administration Oracle 185 Administration Oracle 186


Lancement de Export
Import
exp help=y
Vous pouvez laisser l'Export vous demander les param en tapant EXP Commande suivie de votre nom  Charge dans une base la totalit ou une partie dun
d'utilisateur/mot de passe: fichier export.
Exemple: EXP SCOTT/TIGER
 Trois modes :
Ou pour contr_ler l'ex_cution de l'export, entrer la commande EXP suivie
de divers arguments. Pour sp_cifier les param, utiliser des mots-cl_s:
 mode table
 mode utilisateur
Format: EXP KEYWORD=valeur ou KEYWORD=(valeur1,valeur2,...,valeurN)
Exemple: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)  mode base de donnes : deux variantes
Mot-cl_ Description (D_faut) Mot-cl_ Description (D_faut)
 mode system : import seulement des modifications du
-------------------------------------------------------------------------- dictinnaire de donnes.
USERID nom util/mot de passe FULL exporter l'int_gralit_ du fich (N)  mode restore : import des objets ayant t modifis
BUFFER taille m_moire tampon donn_es OWNER liste noms util. propri_t.
FILE fich sortie (EXPDAT.DMP) TABLES liste de noms de tables
depuis la dernire exportation incrmentale, cumulative
COMPRESS importer dans une extent.(Y) RECORDLENGTH longueur enreg. ES ou complte.
GRANTS privil_ges d'export (N) INCTYPE type d'export incr_mentiel
INDEXES index d'export (Y) RECORD recherche export incr. (Y)
ROWS lignes donn_es export. (Y) PARFILE nom de fich param_tres
CONSTRAINTS contraintes export (Y) CONSISTENT Administrationcoh_rence
Oracle table r_f_rence 187 Administration Oracle 188
LOG fich. journal sortie _cran STATISTICS analyse des objets (ESTIMATE)

Lancement de Import SQL*Loader


Ou pour contrler l'excution de l'import, taper la commande IMP suivie de divers arguments. Pour spcifier
param, utiliser des mots-cl_s:  Permet de charger des donnes provenant de fichiers
Format: IMP KEYWORD=valeur ou KEYWORD=(valeur1,valeur2,...,valeurN) non Oracle.
Exemple: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
 Les donnes peuvent provenir dune ou de plusieurs
Mot-cl_ Description (D_faut) Mot-cl_ Description (D_faut)
--------------------------------------------------------------------------
fichiers de formats identiques ou diffrents et charges
USERID nom util/mot de passe FULL
BUFFER taille m_moire tamp. donn_es FROMUSER liste noms util propri_t
importer tout le fichier(N) dans une ou plusieurs tables.
FILE fich sortie (EXPDAT.DMP) TOUSER liste de noms util fichier
SHOW lister uniq contenu fich(N) TABLES liste de noms de tables de
IGNORE ignore erreurs de cr_at (Y) RECORDLENGTH long d'enregis ES contrle
GRANTS import des privil_ges (Y) INCTYPE type import incr_mental
INDEXES import d'index (Y) COMMIT valid. insert tableaux(N)
ROWS import des lignes de donn_es (Y) PARFILE nom fich. de param_tre SQL*Loader
LOG fichier journal de sortie _cran
DESTROY espace de stockage de remplacement du fichier de donn_es (N)
INDEXFILE _crit les info. table/index dans fichier sp_cifi_
CHARSET jeu de caract_res de fichier d'export (NLS_LANG)
donnes enreg. enreg. fichier
charges errons rejets journal
Administration Oracle 189 Administration Oracle 190

Fichier de contrle Fichier de donn


donnes
 dcrit les donnes charger ainsi que leur  contient les donnes charger dans la base de
destination dans la base de donnes : donnes.
 nom et structure des fichiers de donnes  peut tre de format binaire ou de format caractre
 liste de tables cibles et ventuellement les colonnes  les enregistrements peuvent tre de format fixe ou
utilises variable.
 correspondance entre les enregistrements des fichiers
de donnes et les colonnes.

Administration Oracle 191 Administration Oracle 192


Fichier journal Enregistrements rejet
rejets et erron
errons
 compte rendu de lexcution de chargement :  Fichier enregistrements errons :
 section en-tte  contient tous les enregistrements qui nont pas pu tre
 section informations globales interprts et chargs dans la base de donnes.
 section informations sur les tables  Fichier enregistrements rejets :
 section informations sur les fichiers de donnes  contient tous les enregistrements qui nont pas pu tre
 section informations sur les tables charges chargs (ne vrifient pas la condition de la clause
WHEN).
 section de statistiques
 cr uniquement la demande de lutilisateur

Administration Oracle 193 Administration Oracle 194

Lancement de SQL*Loader
SQLLOAD option=valeur [option=valeur ...]
 Liste des options
 USERID nom_utilisateur/mot_de_passe
 CONTROL fichier de contrle
 LOG fichier journal
 BAD fichier de donnes errones
 DATA fichier de donnes
 DISCARD fichier de rejet
 DISCARDMAX nombre max denregsitrements rejets
 SKIP nombre denregistrements ignorer
 LOAD nombre denregistrements charger
 ERRORS nombre derreurs autorises
 SILENT pas de messages pendant lexcution
 PARFILE fichier de paramtres

Administration Oracle 195