Anda di halaman 1dari 7

Chapitre 4 Gestion des tablespaces

Une base de donnes est constitue dune ou de plusieurs units logiques de stockage appeles
tablespaces. Un tablespace est constitu logiquement de segments. Le segment est son tour
compos logiquement dun ensemble dextensions. Tandis quune extension est un ensemble
contigu de blocs de donnes (revoir la section 2.1.2 pour plus de dtails).
Un tablespace correspond physiquement un ou plusieurs fichiers de donnes (voir Figure 3).
Un fichier de donnes ne peut correspondre qu un seul et unique tablespace.
4.1 Tablespaces : types et conseils dutilisation
Il existe deux tablespaces systmes crs par dfaut lors de la cration dune base de donnes
Oracle 10g ; SYSTEM et SYSAUX. Le tablespace SYSTEM contient en particulier les tables systmes
du dictionnaire de donnes, il ne peut pas tre mis OFFLINE. Dun autre ct, le tablespace
SYSAUX (pour SYSTEM AUXILIARY) inclut les donnes utilises par certains composants de la
base de donnes.
Il est vivement conseill de :
1. Ne pas stocker les donnes applicatives dans les tablespaces SYSTEM et SYSAUX.
2. Crer au moins :
a. Un tablespace dannulation (UNDO TABLESPACE).
b. Un tablespace temporaire (TEMPORARY TABLESPACE).
c. Un tablespace de tables (PERMANENT TABLESPACE).
d. Un tablespace dindexes (PERMANENT TABLESPACE).
3. Crer pour chaque application un tablespace de donnes et un tablespace dindexes.
4. Rpartir les fichiers de donnes relatives aux tablespaces sur des disques diffrents
autres que ceux des fichiers journaux.
Il existe certaines tches administratives dont le tablespace est lunit de base (comme par
exemple la sauvegarde/restauration, la mise des donnes en OFFLINE/ONLINE, rendre les
donnes en mode READ ONLY/READ WRITE etc). Il en dcoule que la rpartition des donnes sur
plusieurs tablespaces permet une plus grande flexibilit dadministration. A noter aussi que la
rpartition des fichiers de donnes sur plusieurs disques amliore la performance dOracle
puisquil vite les contentions sur les oprations dentre/sortie.
Il existe donc trois types de tablespaces, savoir :
1. UNDO TABLESPACE : cest un tablespace utilis uniquement pour stocker les
informations dannulations, et donc uniquement des segments dannulation. Ce type
de tablespace a t introduit depuis la version 9i dOracle, et permet dautomatiser
ladministration les informations dannulation. Avant la version 9i, les administrateurs
Gestion des tablespaces
Administration dOracle Database Document 1.0
Feedbacks anis.bach@isg.rnu.tn
29
utilisaient des segments dannulation implants dans nimporte quel tablespace
permanent (voir point 3). Cette gestion manuelle est toujours possible, elle est
dprcie, mais non abandonne.
2. TEMPORARY TABLESPACE : cest un tablespace qui inclut les segments temporaires
permettant le stockage de donnes volumineuses rsultantes doprations lourdes.
Avant la version 9i dOracle, les segments temporaires taient placs dans des
tablespaces permanents. Oracle 9i (et les versions ultrieures) ont gard ce mode de
gestion manuel tout en introduisant un mode de gestion automatique avec ce nouveau
type de tablespaces.
3. PERMANENT TABLESPACE : appel aussi tablespace standard. Tout tablespace diffrent
des tablespaces techniques cits ci-dessus sont des tablespaces permanents. Ils incluent
gnralement les segments de donnes et les segments dindexes.
4.2 Les tablespaces permanents
Une gestion propre des tablespaces prconise le stockage exclusif des indexes et des tables
(donnes utilisateur) dans les tablespaces permanents.
4.2.1 Cration des tablespaces permanents
Pour crer un tablespace, il faut que la base qui va le contenir soit dj cre. Le tablespace
primaire dans nimporte quelle base de donnes Oracle est le tablespace SYSTEM. Il contient des
informations basiques pour le fonctionnement dOracle tel que le dictionnaire de donnes. La
requte suivante permet de crer le tablespace fact contenant toutes les tables en relation avec
lapplication facturation . Il contient pour le moment un seul fichier de donnes dont la taille
est de 150M. La taille du fichier de donnes (et donc du tablespace) peut stendre en cas de
saturation par des incrments de 30M. Jusqu une taille maximale de 450M :
REQ 17
CREATE TABLESPACE fact
DATAFILE G:\oradata\facturation\fact1.dbf
SIZE 150M
AUTOEXTEND ON NEXT 30M MAXSIZE 450M;
La clause AUTOEXTEND indique si le fichier peut stendre une fois la taille initiale est
totalement utilise (ON) ou non (OFF). La clause NEXT indique la taille de lextension incrmente,
pendant que la clause MAXSIZE dtermine la taille maximale que le fichier peut atteindre par les
incrments. MAXSIZE peut avoir la valeur UNLIMITED, ainsi le fichier peut stendre jusqu la
limite du disque dur bien sr.
4.2.2 Extension des tablespaces permanents
Une fois le tablespace atteint son seuil maximum despace disque, il faut ltendre. En effet, la
taille dun tablespace est la somme des tailles de ses fichiers. Si tous ses fichiers atteignent la taille
MAXSIZE, ou mme SIZE (sils ne sont pas auto-extensibles), alors il faudrait tendre le
Gestion des tablespaces
Administration dOracle Database Document 1.0
Feedbacks anis.bach@isg.rnu.tn
30
tablespace. Pour ce, il existe deux solutions :
1. Redimensionner un des fichiers du tablespace. Par exemple ici, nous allons tendre le
fichier fact1.dbf qui a dj atteint les 450M en le redimensionnant. Attention, il faut
utiliser la requte ALTER DATABASE :
REQ 18
ALTER DATABASE
DATAFILE G:\oradata\facturation\fact1.dbf
RESIZE 700M;
2. Ajouter un nouveau fichier de donnes au tablespace :
REQ 19
ALTER TABLESPACE fact
ADD DATAFILE H:\oradata\facturation\fact2.dbf
SIZE 100M AUTOEXTEND OFF;
4.2.3 Basculer entre les modes OFFLINE/ONLINE
Pour effectuer certaines tches administratives (tel que le dplacement dun fichier de
donnes), il suffit que ladministrateur mette le tablespace en question en mode OFFLINE. Ceci
rend le tablespace inaccessible :
REQ 20
ALTER TABLESPACE fact OFFLINE;
Pour ractiver le tablespace, il suffit dun :
REQ 21
ALTER TABLESPACE fact ONLINE;
Il est noter que ltat du tablespace (ONLINE/OFFLINE) est conserv aprs le redmarrage de
la base. Il faut savoir aussi que le tablespace SYSTEM ne peut pas tre mis en OFFLINE.
4.2.4 Basculer entre les modes READ ONLY/READ WRITE
Dans un mode READ ONLY, les donnes du tablespace ne sont plus modifiables (vs.
inaccessibles pour le mode OFFLINE). Pour les rendre modifiables, il suffit de les remettre en
mode READ WRITE :
REQ 22
ALTER TABLESPACE fact READ ONLY
REQ 23
ALTER TABLESPACE fact READ WRITE
4.2.5 Suppression dun tablespace
Un tablespace est supprim via la requte DROP. Le mot cl INCLUDING CONTENTS est
obligatoire si le tablespace contient des tables/indexes. Ce mot cl force la suppression de ses
segments. Le mot cl AND DATAFILES sert supprimer les fichiers physiques aussi. Finalement,
Gestion des tablespaces
Administration dOracle Database Document 1.0
Feedbacks anis.bach@isg.rnu.tn
31
le mot cl CASCADE CONSTRAINTS permet de supprimer les contraintes dintgrit qui dfinissent
des relations entre les tables du tablespace en question, et dautres tables appartenant dautres
tablespaces :
REQ 24
DROP TABLESPACE nom_tblspc [INCLUDING CONTENTS [AND DATAFILES] CASCADE
CONSTRAINTS]
4.3 Gestion de lespace lintrieur des tablespaces
A lintrieur dun tablespace, les donnes sont stockes logiquement dans des segments. Avant
de continuer, rappelons quuniquement deux types dobjets -parmi tous ceux qui existent dans
une base de donnes- ont besoin despace disque important, savoir les tables et les index. Les
autres types dobjets (squence, synonymes, vues etc.) sont reprsents uniquement sous forme
de dfinitions dans le dictionnaire de donnes.
Une fois cr, un segment prend du volume lintrieur des fichiers de donnes de son
tablespace, grce ses extensions. En effet, lorsquil est cr, Oracle lui alloue une extension
initiale (ou plusieurs extensions comme espace initiale) dont la taille est prdfinie ou bien par
ladministrateur de la base, par lutilisateur ou par dfaut (une taille standard dfinie par Oracle).
Ensuite, une fois la premire extension utilise dans sa totalit, oracle lui alloue une deuxime
extension... ainsi de suite. Les extensions ne sont pas obligatoirement contigus, ils peuvent mme
appartenir diffrents fichiers (mais tous relatifs au tablespace du segment).
Le contenu du tablespace peut tre gr par le dictionnaire de donnes ou gr localement. Dans cette
version du document, nous allons nous contenter de prsenter le premier mode de gestion
malgr lefficience de la gestion dite locale, apparue dans la version 8i dOracle. Dans un
tablespace gr par le dictionnaire, les informations concernant les extensions alloues sont
stockes et gres dans le dictionnaire de donnes, ce qui nest pas le cas pour les tablespaces
grs localement, o ces mme informations sont stockes et gres dans les enttes des fichiers
de donnes contenant les extensions en questions.
Lorsquun segment est cr par un utilisateur, ce dernier peut (1) choisir le tablespace dans
lequel il veut stocker son segment et (2) dfinir la manire avec laquelle Oracle va allouer
dynamiquement les extensions une une chaque fois o lextension prcdente est pleine. Les
clauses utiliser sont TABLESPACE et STORAGE dans la requte de cration de la table ou de
lindex (du segment plus gnralement).
REQ 25
CREATE TABLE nom_tab
(<definition_des_colonnes_et_des_contraintes_de_la_table>)
TABLESPACE nom_ts
STORAGE ([INITIAL val [K|M]]
[NEXT val [K|M]]
[PCTINCREASE val)
[MINEXTENTS val]
[MAXEXTENTS val|UNLIMITED])
Gestion des tablespaces
Administration dOracle Database Document 1.0
Feedbacks anis.bach@isg.rnu.tn
32
La clause INITIAL dtermine la taille de la premire extension allouer ds que le segment est
cr. La clause NEXT dtermine la taille de la deuxime extension allouer si lextension initiale a
t totalement utilise. La clause PCTINCREASE dtermine le pourcentage avec lequel la troisime
extension, ainsi que celles qui la suivent, augmentent de taille par rapport lextension
prcdente. La clause MINEXTENTS dtermine le nombre dextensions allouer ds la cration du
segment. Finalement, la clause MAXEXTENTS dtermine le nombre total dextensions allouer
pour le segment, incluant la premire extension.
Par exemple, supposons que la requte suivante cre la table EMP :
REQ 26
CREATE TABLE EMP
(EMPNO NUMBER)
TABELSPACE data
STORAGE (INITIAL 100K NEXT 120K PCTINCREASE 50
MINEXTENTS 2 MAXEXTENTS 30);
Ici, Oracle allouera initialement les deux premires extensions la suite de la requte de
cration, c.--d., 220K despace contigu dans un des fichiers de donnes du tablespace data. Une
fois cet espace totalement utilis, oracle allouera une extension de 120*(100+50)/100=180K,
puis une extension de 270K, ainsi de suite.
Il faut savoir que si lutilisateur ne spcifie pas la clause TABLESPACE, alors son segment sera
cr dans le tablespace par dfaut que ladministrateur le lui a assign au moment de la cration
de son compte. Si la clause STORAGE nest pas spcifie, alors la stratgie dallocation dextension
que suivra Oracle est celle dfinie par dfaut (DEFAULT STORAGE) lors de la cration du
tablespace conteneur du segment. Voici un exemple de cration du tablespace data illustrant
lutilisation de la clause DEFAULT STORAGE :
REQ 27
CREATE TABLESPACE data
DATAFILE D:\oradata\db\data01.dbf
SIZE 300M AUTOEXTEND OFF
DEFAULT STORAGE (INITIAL 150K NEXT 200K PCTINCREASE 20) ;
Dans ce cas, si dans la requte REQ 26 nous avions omis la clause STORAGE, Oracle aurait pris
en considration la stratgie dallocation dcrite lors de la cration du tablespace conteneur du
segment en question (dans ce cas, le tablespace data). Si en plus de a, nous navions pas dfini
de stratgie par dfaut, oracle utilise la sienne (la vraie stratgie par dfaut) savoir INITIAL=5
blocs de donnes, NEXT=5 blocs de donnes, PCTINCREASE=50 et MINEXTENTS=1 pendant que
MAXEXTENTS prend une valeur calcule par Oracle dpendant de la taille du bloc de donnes.
4.4 Informations sur les tablespaces
Le dictionnaire de donnes inclut des vues qui fournissent des informations sur les structures
logiques et physiques de stockage tel que les tablespaces (DBA_TABLESPACES), les fichiers de
donnes (DBA_DATA_FILES), les segments et les extensions (DBA_SEGMENTS et DBA_EXTENTS).
Gestion des tablespaces
Administration dOracle Database Document 1.0
Feedbacks anis.bach@isg.rnu.tn
33
Par exemple, cette requte nous informe sur le tablespace data ainsi que ses fichiers de
donnes :
REQ 28
SELECT * FROM DBA_TABLESPACES T, DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME=D.TABLESPACE_NAME AND T.TABLESPACE_NAME=DATA;
La requte suivante nous informe plutt sur le segment EMP ainsi que ses extensions :
REQ 29
SELECT * FROM DBA_SEGMENTS S, DBA_EXTENTS E
WHERE S.SEGMENT_NAME=E.SEGMENT_NAME AND S.SEGMENT_NAME=EMP;









Chapitre 5 Gestion des Utilisateurs
La gestion des utilisateurs est au cur de la scurit de la base de donnes, cest lune des
tches les plus basiques dun administrateur. Lorsquon cre un utilisateur, on lui donne un nom de
compte (login) et on lidentifie par un mot de passe. On lui affecte un tablespace par dfaut, qui
contiendra les segments quil crera au cas o il ne mentionne pas dautres tablespaces au
moment de la cration de ses segments, et un tablespace temporaire qui contiendra les segments
temporaires utiliss lors des oprations couteuses en termes despace mmoire. Ladministrateur
attribue aussi un profil lutilisateur, ce qui revient lui limiter certaines ressources systme et lui
imposer une politique de gestion de mots de passe. Finalement, on lui attribuera des privilges
que ce soit directement via un(des) rle(s) incluant lensemble des privilges quil lui faut.
Il est noter que ce chapitre est fortement inspir de louvrage [5].
5.1 Lobjet USER
5.1.1 La connexion
Lutilisateur se connecte son application via une interface graphique ou un diteur SQL via
la commande CONNECT. La syntaxe de la commande est illustre par cet exemple, o scott se
connecte en sidentifiant via son mot de passe tiger :
REQ 30
SQL> CONNECT scott/tiger;
5.1.2 Cration dun utilisateur
La requte de cration dun utilisateur est dfinie par la syntaxe suivante :
REQ 31
CREATE USER nom_ut IDENTIFIED BY mdp
[DEFAULT TABLESPACE nom_def_TS]
[TEMPORARY TABLESPACE nom_tmp_TS]
[QUOTA {val|UNLIMITED} ON nom_TS]
[PROFILE nom_prof]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK|UNLOCK}]
Le login avec lequel doit se connecter lutilisateur est nom_ut, son mot de passe est mdp.
Lutilisateur stocke ses segments par dfaut dans le tablespace nom_def_TS et utilise le tablespace
temporaire nom_tmp_TS pour la cration de segments temporaires.
La clause QUOTA permet, comme son nom lindique, de dfinir un quota despace disque ne
pas dpasser sur un certain tablespace nom_TS. La clause QUOTA peut tre rcrite plusieurs fois,
chaque fois mentionnant que lutilisateur a le droit de stocker dans la limite dun certain quota
spcifie dans un tablespace spcifi.
La clause PROFILE permet dattribuer lutilisateur un profil nom_prof. Un profil est un objet

Anda mungkin juga menyukai