Vous êtes sur la page 1sur 498

Oracle DBA : Architecture

et administration
Volume 1 Manuel du stagiaire
.......................................................................................

30049FR10
Production 1.0
Janvier 2001
D31191

Auteurs
Bruce Ernst
Hanne Rue Rasmussen
Ulrike Schwinn
Vijay Venkatachalam
Collaborateurs
techniques et
rviseurs
David Austin
Ben van Balen
Gerry Batista
Doug Bridges
Sandra Cheevers
Ralf Durben
Ari Fyhr
Joel Goodman
Scott Gossett
Lex de Haan
Tony Holbrook
Heike Hundt
Christine Jeal
Dominique Jeunot
Thomas Kerepes
Steven King
Pierre Labrousse
Dean Margolese
Jean-Marie Misztela
Tigger Newman
Howard Ostrow
Hans Proetzl
Gary Purcell
Shankar Raman
Donalyn Selinsky
Roger Simon
James Spiller
Ramonito Te
Sabine Teuber
Jean-Francois Verrier
Norbert Wittje
Editeur
Sherry Polm

Copyright Oracle Corporation, 1999. Tous droits rservs.


Cette documentation contient des informations qui sont la proprit d'Oracle
Corporation. Fournie sous accord de licence, elle est soumise des restrictions
relatives l'utilisation et la publication et est protge par la loi relative aux
droits d'auteur. Il est interdit de rechercher le secret de fabrication du logiciel.
Restrictions applicables au gouvernement amricain : If this documentation is
delivered to a U.S. Government Agency of the Department of Defense, then it is
delivered with Restricted Rights and the following legend is applicable:

Restricted Rights Legend


Use, duplication or disclosure by the Government is subject to restrictions for
commercial computer software and shall be deemed to be Restricted Rights
software under Federal law, as set forth in subparagraph (c) (1) (ii) of DFARS
252.227-7013, Rights in Technical Data and Computer Software (October 1988).
If this documentation is delivered to a U.S. Government Agency not within the
Department of Defense, then it is delivered with "Restricted Rights", as defined in
FAR 52.227-14, Rights in Data-General, including Alternate III (June 1987).
Toute reproduction, mme partielle, sous quelque forme et par quelque procd
que ce soit, est interdite sans l'autorisation expresse d'Oracle Corporation. Toute
autre reproduction sera considre comme une violation de la loi sur les droits
d'auteur et pourra entraner des sanctions civiles et pnales.
Les informations fournies dans la documentation sont susceptibles de
modification sans pravis. Par ailleurs, Oracle Corporation ne garantit pas
qu'elles soient exemptes d'erreurs et vous invite, le cas chant, lui en faire part
par crit.
SQL*Loader, SQL*Net, SQL*Plus, Net8, Oracle Call Interface, Oracle7, Oracle8,
Oracle8i, Developer/2000, Developer/2000 Forms, Designer/2000, Oracle
Enterprise Manager, Oracle Parallel Server, PL/SQL, Pro*C, Pro*C/C++ et
Trusted Oracle sont des marques ou des marques dposes d'Oracle
Corporation.
Tout autre nom de produit ou de socit est utilis titre indicatif seulement et
peut tre une marque de son propritaire.

Sommaire
.....................................................................................................................................................

Sommaire
Prface
Profil xv
Informations complmentaires xvii
Conventions typographiques xviii
Introduction
Objectifs I-2
Oracle8i Enterprise Edition I-3
Tches de l'administrateur de base de donnes I-5
Agenda du cours I-6
Leon 1 : Composants de l'architecture Oracle
Objectifs 1-2
Prsentation 1-3
Fichiers de base de donnes Oracle 1-5
Autres fichiers importants 1-7
Instance de base de donnes Oracle 1-8
Traiter une instruction SQL 1-10
Se connecter une base de donnes 1-11
Traiter une interrogation 1-13
Zone de mmoire partage 1-15
Cache de tampons de la base de donnes 1-17
Zone PGA (Program Global Area) 1-18
Traiter une instruction LMD 1-19
Tampon de journalisation 1-21
Segment d'annulation 1-22
Validation : traitement de l'instruction COMMIT 1-23
Processus Log Writer 1-25
Autres processus d'instance de base de donnes 1-26
Processus Database Writer 1-27
Processus SMON : System Monitor 1-28
Processus PMON : Process Monitor 1-30
Archivage 1-31
Synthse 1-33

.....................................................................................................................................................
Oracle DBA : Architecture et administration
iii

Sommaire
.....................................................................................................................................................

Leon 2 : Initiation Oracle Server


Objectifs 2-2
Prsentation 2-3
Oracle Universal Installer 2-4
Valider les utilisateurs ayant des privilges 2-8
Oracle Enterprise Manager 2-15
Synthse 2-30
Leon 3 : Grer une instance de base de donnes Oracle
Objectifs 3-2
Prsentation 3-3
Etapes des procdures de dmarrage et d'arrt 3-10
Dmarrer l'instance 3-13
Modifier la disponibilit de la base de donnes 3-16
Ouvrir une base de donnes en mode lecture seule 3-17
Arrter 3-18
Extraire et dfinir les valeurs de paramtre 3-22
Grer les sessions 3-29
Synthse 3-36
Leon 4 : Crer une base de donnes
Objectifs 4-2
Prsentation 4-3
Prparer le systme d'exploitation 4-4
Crer une base de donnes 4-10
Utiliser Database Configuration Assistant 4-11
Crer manuellement une base de donnes 4-15
Synthse 4-30
Leon 5 : Crer des vues du dictionnaire de donnes et des
packages standard
Objectifs 5-2
Prsentation 5-3
Prsentation du dictionnaire de donnes 5-4
Contenu du dictionnaire de donnes 5-5
Tables de base et vues du dictionnaire de donnes 5-6
Utiliser le dictionnaire de donnes 5-7
Catgories de vues du dictionnaire de donnes 5-8
Exemples de dictionnaire de donnes 5-10
.....................................................................................................................................................
iv
Oracle DBA : Architecture et administration

Sommaire
.....................................................................................................................................................

Vues dynamiques des performances 5-11


Programmes stocks 5-12
Programmes PL/SQL stocks 5-14
Packages 5-16
Excuter un programme PL/SQL 5-17
Spcification et corps du package 5-18
Packages fournis par Oracle 5-19
Obtenir des informations 5-20
Dpannage 5-22
Construire le dictionnaire de donnes 5-23
Scripts d'administration 5-25
Exemple de package intgr 5-27
Dclencheurs 5-29
Composition d'un dclencheur 5-31
Exemple de dclencheur 5-33
Synthse 5-34
Leon 6 : Grer le fichier de contrle
Objectifs 6-2
Utiliser le fichier de contrle 6-3
Contenu du fichier de contrle 6-4
Multiplexer le fichier de contrle 6-6
Instructions relatives aux fichiers de contrle 6-8
Obtenir des informations sur les fichiers de contrle 6-10
Synthse 6-12
Leon 7 : Grer les fichiers de journalisation (redo log)
Objectifs 7-2
Prsentation 7-3
Utiliser des fichiers de journalisation en ligne 7-4
Processus LGWR, changements de fichier de journalisation
et points de reprise 7-6
Archiver les fichiers de journalisation 7-8
Obtenir des informations sur la journalisation et l'archivage 7-11
Grer les changements de fichier de journalisation et les points de reprise 7-18
Multiplexer et grer les membres et les groupes 7-21
Changer l'emplacement ou le nom des fichiers de journalisation
en ligne (online) 7-24
.....................................................................................................................................................
Oracle DBA : Architecture et administration
v

Sommaire
.....................................................................................................................................................

Supprimer des groupes de fichiers de journalisation en ligne


(online) et des membres 7-26
Planifier les fichiers de journalisation en ligne (online) 7-30
Dpannage 7-32
Utiliser LogMiner 7-33
Synthse 7-40
Leon 8 : Grer les tablespaces et les fichiers de donnes
Objectifs 8-2
Prsentation 8-3
Hirarchie de stockage de la base de donnes 8-4
Tablespaces SYSTEM et non SYSTEM 8-7
Crer des tablespaces 8-8
Gestion de l'espace dans les tablespaces 8-12
Tablespaces grs localement 8-13
Tablespace temporaire 8-15
Modifier les paramtres de stockage 8-18
Mettre des tablespaces "offline" ou "online" 8-20
Tablespaces accessibles en lecture seule 8-23
Supprimer des tablespaces 8-26
Redimensionner un tablespace 8-29
Activer le redimensionnement automatique des fichiers de donnes 8-30
Redimensionner manuellement des fichiers de donnes 8-33
Ajouter des fichiers de donnes un tablespace 8-34
Dplacer des fichiers de donnes 8-36
Informations du dictionnaire de donnes 8-39
Instructions 8-40
Synthse 8-42
Leon 9 : Structure de stockage et relations
Objectifs 9-2
Prsentation 9-3
Types de segment 9-4
Priorit des clauses de stockage 9-8
Allouer et librer des extents 9-9
Extents utiliss et libres 9-10
Utiliser les paramtres d'utilisation de l'espace de bloc 9-11
Obtenir des informations sur les structures de stockage 9-16
.....................................................................................................................................................
vi
Oracle DBA : Architecture et administration

Sommaire
.....................................................................................................................................................

Interroger la vue DBA_SEGMENTS 9-17


Interroger la vue DBA_EXTENTS 9-18
Interroger la vue DBA_FREE_SPACE 9-19
Planifier l'emplacement des segments 9-20
Synthse 9-22
Leon 10 : Grer les segments d'annulation
Objectifs 10-2
Prsentation 10-3
Segments d'annulation 10-4
Utiliser des segments d'annulation avec les transactions 10-8
Crer des segments d'annulation 10-12
Grer les segments d'annulation 10-18
Obtenir des informations sur les segments d'annulation 10-26
Planifier les segments d'annulation 10-32
Dpannage : problmes lis aux segments d'annulation 10-34
Synthse 10-40
Leon 11 : Grer les tables
Objectifs 11-2
Prsentation 11-3
Types de donnes Oracle 11-7
Crer une table 11-17
Contrler l'espace utilis par les tables 11-25
Extraire les informations relatives une table 11-41
Synthse 11-46
Leon 12 : Grer les index
Objectifs 12-2
Prsentation 12-3
Crer des index 12-12
Rorganiser les index 12-22
Supprimer des index 12-29
Obtenir des informations sur les index 12-31
Synthse 12-33

.....................................................................................................................................................
Oracle DBA : Architecture et administration
vii

Sommaire
.....................................................................................................................................................

Leon 13 : Grer l'intgrit des donnes


Objectifs 13-2
Prsentation 13-3
Contraintes d'intgrit 13-5
Mettre en uvre des contraintes 13-14
Grer les contraintes 13-19
Obtenir des informations sur les contraintes 13-26
Synthse 13-29
Leon 14 : Charger les donnes
Objectifs 14-2
Prsentation 14-3
Charger des donnes l'aide de la mthode d'insertion par
chargement direct 14-5
Charger les donnes l'aide de l'utilitaire SQL*Loader 14-8
Charger les donnes par chemin direct 14-29
Synthse 14-30
Leon 15 : Rorganiser les donnes
Objectifs 15-2
Prsentation 15-3
Tablespaces transportables 15-25
Transporter un tablespace 15-27
Exporter et importer des mtadonnes 15-28
Transporter un tablespace 15-30
Utilisation des tablespaces transportables 15-31
Tablespaces transportables et objets de schma 15-32
Vrifier le jeu de tablespaces transporter 15-33
Synthse 15-34
Leon 16 : Grer la scurit des mots de passe et les ressources
Objectifs 16-2
Prsentation 16-3
Grer les mots de passe 16-5
Modifier et supprimer un profil 16-19
Grer l'utilisation des ressources 16-23
Afficher des informations sur les limitations de mot de passe et
d'utilisation de ressources 16-30
Synthse 16-32
.....................................................................................................................................................
viii
Oracle DBA : Architecture et administration

Sommaire
.....................................................................................................................................................

Leon 17 : Grer les utilisateurs


Objectifs 17-2
Prsentation 17-3
Crer des utilisateurs de base de donnes 17-6
Modifier et supprimer des utilisateurs de la base de donnes 17-14
Supprimer des utilisateurs 17-17
Surveiller les informations sur les utilisateurs 17-18
Synthse 17-20
Leon 18 : Grer les privilges
Objectifs 18-2
Prsentation 18-3
Privilges systme 18-4
Accorder des privilges systme 18-6
Authentification par le fichier de mots de passe 18-9
Afficher les privilges systme 18-11
Rvoquer des privilges systme 18-14
Privilges objet 18-17
Accorder des privilges objet 18-18
Afficher les privilges objet 18-20
Rvoquer des privilges objet 18-21
Instructions relatives l'audit 18-25
Utiliser l'audit de base de donnes 18-29
Afficher les rsultats d'un audit 18-36
Synthse 18-37
Leon 19 : Grer les rles
Objectifs 19-2
Prsentation 19-3
Crer et modifier des rles 19-5
Accorder des rles 19-11
Grer la disponibilit des rles 19-13
Afficher les informations sur les rles 19-22
Utiliser le contrle d'accs de niveau fin 19-23
Synthse 19-25

.....................................................................................................................................................
Oracle DBA : Architecture et administration
ix

Sommaire
.....................................................................................................................................................

Leon 20 : Utiliser le support NLS (National Language Support)


Objectifs 20-2
Prsentation 20-3
Choisir une base de donnes et un jeu de caractres nationaux 20-5
Dfinir l'environnement dpendant de la langue 20-11
Paramtres NLS et fonctions SQL 20-19
Paramtres NLS dans des fonctions SQL 20-22
Support d'indexation linguistique 20-26
Importer et charger des donnes avec le support NLS 20-27
Obtenir des informations sur les paramtres NLS 20-28
Synthse 20-33
Annexe A : Exercices
Environnement A-2
Exercice 1 : composants de l'architecture Oracle A-3
Exercice 2 : Initiation Oracle Server A-5
Exercice 3 : grer une instance Oracle A-6
Exercice 4 : crer une base de donnes A-8
Exercice 5 : crer des vues du dictionnaire de donnes et
des packages standard A-9
Exercice 6 : grer le fichier de contrle A-10
Exercice 7 : grer les fichiers de journalisation A-11
Exercice 8 : grer les tablespaces et les fichiers de donnes A-12
Exercice 9 : structure de stockage et relations A-13
Exercice 10 : grer les segments d'annulation A-14
Exercice 11 : grer les tables A-15
Exercice 12 : grer les index A-17
Exercice 13 : grer l'intgrit des donnes A-19
Exercice 14 : charger des donnes A-20
Exercice 15 : rorganiser les donnes A-21
Exercice 16 : grer la scurit des mots de passe A-22
Exercice 17 : grer les utilisateurs A-23
Exercice 18 : grer les privilges A-24
Exercice 19 : grer les rles A-25
Exercice 20 : utiliser le support NLS (National Language Support) A-26

.....................................................................................................................................................
x
Oracle DBA : Architecture et administration

Sommaire
.....................................................................................................................................................

Annexe B : Conseils
Exercice 1 : composants de l'architecture Oracle B-2
Exercice 2 : initiation Oracle Server B-3
Exercice 3 : grer une instance Oracle B-4
Exercice 4 : crer une base de donnes B-7
Exercice 4 : crer une base de donnes (suite) B-8
Exercice 5 : crer des vues du dictionnaire de donnes et
des packages standard B-9
Exercice 6 : grer le fichier de contrle B-10
Exercice 7 : grer les fichiers de journalisation B-11
Exercice 8 : grer les tablespaces et les fichiers de donnes B-13
Exercice 9 : structure de stockage et relations B-15
Exercice 10 : grer les segments d'annulation B-17
Exercice 11 : grer les tables B-19
Exercice 12 : grer les index B-21
Exercice 13 : grer l'intgrit des donnes B-23
Exercice 14 : charger des donnes B-24
Exercice 15 : rorganiser les donnes B-25
Exercice 16 : grer la scurit des mots de passe B-26
Exercice 17 : grer les utilisateurs B-27
Exercice 18 : grer les privilges B-28
Exercice 19 : grer les rles B-29
Exercice 20 : utiliser le support NLS (National Language Support) B-30
Annexe C : Solutions des exercices pour SQL*Plus
Solutions de l'exercice 1 C-2
Solutions de l'exercice 2 C-4
Solutions de l'exercice 3 C-7
Solutions de l'exercice 4 C-16
Solutions de l'exercice 5 C-19
Solutions de l'exercice 6 C-23
Solutions de l'exercice 7 C-25
Solutions de l'exercice 8 C-31
Solutions de l'exercice 9 C-37
Solutions de l'exercice 10 C-43
Solutions de l'exercice 11 C-51
Solutions de l'exercice 12 C-56
Solutions de l'exercice 13 C-60
.....................................................................................................................................................
Oracle DBA : Architecture et administration
xi

Sommaire
.....................................................................................................................................................

Solutions de l'exercice 14 C-66


Solutions de l'exercice 15 C-71
Solutions de l'exercice 16 C-75
Solutions de l'exercice 17 C-79
Solutions de l'exercice 18 C-82
Solutions de l'exercice 19 C-87
Solutions de l'exercice 20 C-90
Annexe D : Solutions des exercices d'Oracle Enterprise Manager
Solutions de l'exercice 1 D-2
Solutions de l'exercice 2 D-3
Solutions de l'exercice 3 D-4
Solutions de l'exercice 4 D-8
Solutions de l'exercice 5 D-9
Solutions de l'exercice 6 D-10
Solutions de l'exercice 7 D-12
Solutions de l'exercice 8 D-19
Solutions de l'exercice 9 D-25
Solutions de l'exercice 10 D-26
Solutions de l'exercice 11 D-37
Solutions de l'exercice 12 D-42
Solutions de l'exercice 13 D-47
Solutions de l'exercice 14 D-49
Solutions de l'exercice 15 D-51
Solutions de l'exercice 16 D-57
Solutions de l'exercice 17 D-62
Solutions de l'exercice 18 D-69
Solutions de l'exercice 19 D-74
Solutions de l'exercice 20 D-78
Annexe E : Test de certification : Exemples de questions
Programme OCP (Oracle Certified Professional) : Section Oracle Certified
Database Administrator E-2
Administration de bases de donnes Oracle : exemple de test E-3
Sauvegarde et restauration Oracle : exemple de test E-5
Rponses E-8
Inscription aux tests de certification OCP E-9

.....................................................................................................................................................
xii
Oracle DBA : Architecture et administration

Prface
.................................

Profil
.....................................................................................................................................................

Profil
Le prsent cours est conu pour fournir l'administrateur de base de donnes (DBA)
Oracle des bases solides sur les tches d'administration de base. Le premier but de ce
cours est d'apporter au DBA les connaissances et les comptences ncessaires pour
configurer et dpanner une base de donnes Oracle, ou pour en assurer la maintenance.
Ce cours a t conu pour les administrateurs de base de donnes, les analystes de
support technique, les administrateurs systme, les dveloppeurs d'applications, les
responsables de systme d'information de gestion et les autres utilisateurs de produits
Oracle.
Cette prface contient les sections suivantes :
Avant de commencer ce cours
Connaissances pralables ncessaires
Organisation du cours
Organisation de ce manuel
Documentation
Conventions typographiques
Avant de commencer ce cours
En tant que participant, vous devez disposer d'un certain nombre de comptences pour
pouvoir tirer le meilleur parti de ce cours, notamment :
connatre les concepts des bases de donnes relationnelles,
avoir une trs bonne matrise des langages SQL, SQL*Plus et PL/SQL,
connatre le fonctionnement de base d'un systme d'exploitation,
avoir une exprience de l'environnement Oracle.
Connaissances pralables ncessaires
SQL 1,
bases de PL/SQL.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
xv

Prface
.....................................................................................................................................................

Organisation du cours
Oracle DBA : Architecture et administration est un cours en salle dispens sous forme
d'exposs thoriques et d'exercices pratiques. Des dmonstrations et des animations en
ligne ainsi que des sessions d'exercices crits permettent de consolider l'acquisition
des concepts et des comptences abords. Le cours est complt par des travaux
pratiques destins tester les connaissances et comportant des scnarios et de
nouveaux exercices pour les utilisateurs NT.
De plus, des bulletins techniques du support technique Oracle, qui traitent les
questions les plus frquemment poses, sont utiliss afin de prparer les participants
des problmes de dpannage concrets.
Ce cours affiche des objectifs clairement dfinis : aider la prparation de l'examen
Oracle Certified Professional.

.....................................................................................................................................................
xvi
Oracle DBA : Architecture et administration

Informations complmentaires
.....................................................................................................................................................

Informations complmentaires
Documentation Oracle
Titre

Rfrence

Oracle8i Generic Documentation Set, Release 8.1.5

A69148

Oracle8i Enterprise Edition : Getting Started Release 8.1.5


for Windows NT

A68694-02

Oracle8i : Administrator's Reference Release 8.1.5 for Sun


SPARC Solaris

A67456-01

Oracle Press : Oracle8 : DBA Handbook

A54760

Oracle Press : Oracle8 : A Beginner's Guide

A54756

Oracle Press : Oracle8 : The Complete Reference

A54759

Oracle Enterprise Manager Documentation Set

A67817

Sites Web
http://www.oracle.com
http://education.oracle.com
http://www.oramag.com

Oracle Education Student Union


Vous pouvez, au sein de l'association Student Union (communaut en ligne de
stagiaires Oracle), poursuivre votre apprentissage travers des groupes de discussion
en ligne avec des formateurs Oracle ou en suivant des petits modules de cours en ligne
via un systme vido en temps rel. Vous pouvez galement trouver des informations
didactiques utiles au niveau du centre de ressources.
Connectez-vous au site d'Oracle Education Student Union
http://education.oracle.com.
Consultez l'un des petits chapitres suivants :
Oracle8i-Managebility Enhancements
Overview of Oracle8i PL/SQL Features and Positioning
Autre documentation
System release bulletins (bulletins techniques)
Guides d'installation et de configuration
Articles du groupe IOUG (International Oracle User's Group)
Oracle Magazine

.....................................................................................................................................................
Oracle DBA : Architecture et administration
xvii

Prface
.....................................................................................................................................................

Conventions typographiques
Conventions typographiques appliques dans le texte du cours
Convention
Gras, italique
Majuscules et
minuscules

Courier new,
respect maj/min
(par dfaut :
minuscule)

Elment
Terme du glossaire
(le cas chant)
Boutons,
cases cocher,
dclencheurs,
fentres
Sortie de code,
noms de rpertoire,
noms de fichier,
mots de passe,
chemins d'accs,
URL,
entre utilisateur,
noms utilisateur

Exemple
L'algorithme insre la nouvelle cl.
Cliquez sur le bouton Executable.
Cochez la case Can't Delete Card.
Attribuez un dclencheur When-ValidateItem. . .
Ouvrez la fentre Master Schedule.
Sortie de code : debug.seti('I',300);
Rpertoire : bin (DOS), $FMHOME (UNIX)
Nom de fichier : Localisez le fichier
init.ora.
Mot de passe : Utilisez tiger comme mot de
passe.
Chemin d'accs : Ouvrez
c:\my_docs\projects
URL : Accdez au site
http://www.oracle.com

Majuscule initiale

Italiques

Guillemets

Libells de
graphique ( moins
que le terme ne soit
un nom propre)
Mise en vidence
de mots, de
phrases,
de titres d'ouvrage
et de cours, de
variables
Elments
d'interface avec des
noms longs et dont
seules les initiales
sont en majuscules,
ainsi que les titres
de chapitre dans
des rfrences
croises

Entre utilisateur : Entrez 300


Nom utilisateur : Connectez-vous sous l'ID
utilisateur scott
Adresse client (mais Oracle Payables)

N'enregistrez pas les modifications dans la


base de donnes.
Pour plus d'information, voir Oracle7 Server
SQL Language Reference Manual.
Entrez user_id@us.oracle.com, o
user_id est le nom de l'utilisateur.
Slectionnez "Include a reusable module
component", puis cliquez sur le bouton Finish.
Ce sujet est trait dans l'unit II, chapitre 3,
"Gestion des objets."

.....................................................................................................................................................
xviii
Oracle DBA : Architecture et administration

Conventions typographiques
.....................................................................................................................................................

Convention
Majuscules

Flche
Crochets
Virgules

Signes plus

Elment
Noms de colonne
SQL, commandes,
fonctions, schmas,
noms de table
Chemins de menu
Noms des touche
Squences de
touches
Combinaisons de
touches

Exemple
Utilisez la commande SELECT pour
visualiser les informations stockes dans la
colonne LAST_NAME de la table EMP.
Slectionnez File>Save.
Appuyez sur [Entre].
Appuyez successivement sur ces touches, puis
relchez-les :
[Alt], [F], [D]
Appuyez simultanment sur ces touches et
maintenez-les enfonces :
[Ctrl]+[Alt]+[Suppr]

Conventions typographiques appliques dans les exemples de code


Convention
Majuscules et
minuscules
Minuscules

Minuscules
italiques
Majuscules

Elment
Dclencheurs
Oracle Forms
Noms de
colonne, noms de
table
Mots de passe

Exemple
When-Validate-Item
SELECT last_name
FROM s_emp;
DROP USER scott

Objets PL/SQL

IDENTIFIED BY tiger;
OG_ACTIVATE_LAYER

Variables

(OG_GET_LAYER ('prod_pie_layer'))
CREATE ROLE role

Commandes et
fonctions SQL

SELECT userid
FROM emp;

Conventions typographiques appliques dans les chemins de navigation


Ce cours utilise des chemins de navigation simplifis pour vous diriger travers les
applications Oracle. Voir l'exemple suivant :
(N) Invoice>Entry>Invoice Batches Summary (M) Query>Find
(B) Approve
Ce chemin de navigation simplifi s'interprte comme suit :
1 (N) Depuis la fentre du Navigateur, slectionnez Invoice>Entry>Invoice
Batches Summary.
2 (M) Dans la barre de menus, slectionnez Query>Find.
3 (B) Cliquez sur le bouton Approve.
N = Navigateur, M = Menu, B = Bouton
.....................................................................................................................................................
Oracle DBA : Architecture et administration
xix

Prface
.....................................................................................................................................................

.....................................................................................................................................................
xx
Oracle DBA : Architecture et administration

I
................................

Introduction

Introduction
.....................................................................................................................................................

Objectifs
Objectifs du cours
A la fin de ce cours, vous pourrez :

dmarrer et arrter une instance et une base


de donnes Oracle,

crer une base de donnes oprationnelle,

grer des utilisateurs, des privilges et des


ressources,

utiliser les fonctions NLS (National Language


Support).

grer des fichiers de base de donnes Oracle,


grer des tablespaces, des segments, des extents
(ensembles de blocs contigus) et des blocs,

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
I-2
Oracle DBA : Architecture et administration

Oracle8i Enterprise Edition


.....................................................................................................................................................

Oracle8i Enterprise Edition


Oracle8i Enterprise Edition

Partitionnement

Oracle Enterprise
Manager Packs

Parallel Server

JServer

Copyright Oracle Corporation, 1999. Tous droits rservs.

Scurit
avance

Description d'Oracle8i Enterprise Edition


Oracle8i Enterprise Edition est une base de donnes relationnelle oriente objet,
volutive et facile grer. Le prsent cours porte sur l'administration de la version
Enterprise Edition de base. Toutefois, les options suivantes offrent des fonctionnalits
supplmentaires :
Partitionnement : fournit des fonctions permettant de mettre en uvre de grandes
applications volutives. L'option Partitionnement permet de grer les tables et les
index avec un niveau de finesse suprieur celui de la version de base Enterprise
Edition.
Oracle Parallel Server : amliore l'volutivit et la disponibilit d'une base de
donnes en permettant plusieurs instances du logiciel Oracle d'accder une
base de donnes.
Oracle Enterprise Manager Packs : reposent sur Oracle Enterprise Manager. Oracle
Enterprise Manager Diagnostics Pack, Tuning Pack et Change Management Pack
sont des extensions fournissant aux administrateurs de base de donnes (DBA) des
outils volus de diagnostic, de contrle, de rglage (tuning) et de modification
de la gestion des environnements Oracle. Oracle Enterprise Manager fournit
galement DBA Management Pack permettant d'effectuer des tches
d'administration gnrales, telles que crer des utilisateurs, dmarrer une instance,
accorder des privilges, etc.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
I-3

Introduction
.....................................................................................................................................................

Description d'Oracle8i Enterprise Edition (suite)


Oracle JServer : permet aux utilisateurs de dfinir une varit de modles
de programmation d'application, notamment des procdures stockes et des
dclencheurs Java, des mthodes Java de types d'objet relationnel, des objets
CORBA, Enterprise JavaBeans, des servlets Java et Java Server Pages. Il prend
galement en charge divers protocoles standard, tels que les protocoles IIOP
(Internet Inter-ORB Protocol) et HTTP (Hypertext Transfer Protocol), en plus
de Net8.
Scurit avance : fournit une scurit client-serveur et serveur-serveur avec
cryptage des donnes et vrification de l'intgrit des donnes, et prend en
charge des services volus d'authentification des utilisateurs l'aide de
services de scurit tiers.

.....................................................................................................................................................
I-4
Oracle DBA : Architecture et administration

Tches de l'administrateur de base de donnes


.....................................................................................................................................................

Tches de l'administrateur de base de donnes


Tches de l'administrateur
de base de donnes

Gestion de la disponibilit des bases de donnes


Planification et cration des bases de donnes
Gestion des structures physiques
Gestion du stockage en fonction des bases
Gestion de la scurit

Administration de rseau
Sauvegarde et restauration
Rglage des bases de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Description du cours
Ce cours est le premier d'une srie de quatre cours portant sur les principales tches
d'administration d'une base de donnes. Les tches abordes dans ce cours sont les
suivantes :
gestion de la disponibilit d'une base de donnes,
planification et cration d'une base de donnes,
gestion des structures physiques,
gestion du stockage en fonction de spcifications de conception,
gestion des utilisateurs de la base de donnes et contrle de leurs actions.
Tches d'administration de base de donnes traites dans
les autres cours
Les tches suivantes sont tudies dans d'autres cours :
Administration du rseau dans Oracle DBA : Administration du rseau
Sauvegarde et restauration dans Oracle DBA : Sauvegarde et restauration
Rglage de base de donnes dans Oracle DBA : Tuning
Oracle Enterprise Manager dans Oracle Enterprise Manager V2

.....................................................................................................................................................
Oracle DBA : Architecture et administration
I-5

Introduction
.....................................................................................................................................................

Agenda du cours
Programme suggr

Jour

Dbut

Fin

Chapitre 1

Chapitre 4

Chapitre 4 (exercice) Chapitre 7

Chapitre 8

Chapitre 11

Chapitre 12

Chapitre 15

Chapitre 16

Chapitre 20

Copyright Oracle Corporation, 1999. Tous droits rservs.

Agenda du cours
Voici l'agenda recommand de ce cours :
Premier jour
Chapitre 1 : Composants de l'architecture Oracle
Chapitre 2 : Initiation Oracle Server
Chapitre 3 : Grer une instance de base de donnes Oracle
Chapitre 4 : Crer une base de donnes (cours)
Deuxime jour
Chapitre 4 : Crer une base de donnes (exercice)
Chapitre 5 : Crer les vues du dictionnaire de donnes et les packages standard
Chapitre 6 : Grer le fichier de contrle
Chapitre 7 : Grer les fichiers de journalisation

.....................................................................................................................................................
I-6
Oracle DBA : Architecture et administration

Agenda du cours
.....................................................................................................................................................

Agenda du cours (suite)


Troisime jour
Chapitre 8 : Grer les tablespaces et les fichiers de donnes
Chapitre 9 : Structure de stockage et relations
Chapitre 10 : Grer les segments d'annulation
Chapitre 11 : Grer les tables
Quatrime jour
Chapitre 12 : Grer les index
Chapitre 13 : Grer l'intgrit des donnes
Chapitre 14 : Charger les donnes
Chapitre 15 : Rorganiser les donnes
Cinquime jour
Chapitre 16 : Grer la scurit par mots de passe et les ressources
Chapitre 17 : Grer les utilisateurs
Chapitre 18 : Grer les privilges
Chapitre 19 : Grer les rles
Chapitre 20 : Utiliser le support NLS (National Language Support)

.....................................................................................................................................................
Oracle DBA : Architecture et administration
I-7

Introduction
.....................................................................................................................................................

.....................................................................................................................................................
I-8
Oracle DBA : Architecture et administration

1
.................................

Composants de
l'architecture Oracle

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Objectifs
Objectifs
A la fin de ce chapitre, vous pourrez :

dcrire l'architecture du serveur Oracle et ses


principaux composants,

numrer les structures intervenant dans la


connexion d'un utilisateur une instance de base
de donnes Oracle,

numrer les tapes du traitement :


interrogations SQL,
instructions LMD,
instructions COMMIT.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Objectifs
Ce chapitre prsente l'architecture du serveur Oracle en examinant les fichiers, les
processus et les structures de mmoire ncessaires l'tablissement d'une connexion
une base de donnes et l'excution d'une commande SQL.

.....................................................................................................................................................
1-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation
Instance

Processus
utilisateur

Zone de mmoire
partage
Cache
"library"

Processus
serveur

Cache du dict.
de donnes

PGA

SMON

Fichier de
paramtres
Fichier
de mots
de passe

DBW0

Fichiers
de
donnes

SGA
Cache de
tampons
de donnes

PMON

Fichiers
de
contrle

CKPT

Tampon de
journalisation

LGWR

Autres

Fichiers
de journalisation

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichiers
journaux
archivs

Prsentation
Le serveur Oracle est un systme de gestion de base de donnes relationnelle oriente
objet qui offre une mthode de gestion ouverte, complte et intgre des informations.
Principaux composants
Un serveur Oracle contient plusieurs processus, structures de mmoire et fichiers,
mais ces lments ne sont pas tous utiliss dans le traitement des instructions SQL.
Certains de ces lments amliorent les performances de la base de donnes,
permettent de rcuprer son contenu en cas d'incident logiciel ou matriel, ou
excutent d'autres tches ncessaires la gestion de la base de donnes. Le serveur
Oracle est constitu d'une instance de base de donnes Oracle et d'une base de donnes
Oracle.
Instance de base de donnes Oracle Une instance de base de donnes Oracle
combine les processus d'arrire-plan et les structures de mmoire. Pour accder aux
donnes de la base de donnes, vous devez dmarrer l'instance de base de donnes.
Chaque fois que vous dmarrez une instance de base de donnes, une zone de mmoire
SGA (System Global Area) est alloue et des processus d'arrire-plan Oracle sont
lancs.
La mmoire SGA est une zone de mmoire dans laquelle sont stockes des
informations sur la base de donnes, qui sont partages par les processus de base
de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-3

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Principaux composants (suite)


Instance de base de donnes Oracle (suite)
Les processus d'arrire-plan excutent des fonctions pour le compte du processus
appelant. Ils regroupent des fonctions qui, autrement, seraient gres par plusieurs
programmes Oracle ddis chaque utilisateur. Les processus d'arrire-plan
excutent des oprations d'entre/sortie et surveillent d'autres processus Oracle
afin de permettre un plus grand paralllisme et d'amliorer les performances et la
fiabilit.
Autres processus Le processus utilisateur est l'application qui met les instructions
SQL. Le processus serveur excute les instructions SQL envoyes par le processus
utilisateur.
Fichiers de base de donnes Les fichiers de base de donnes sont des fichiers du
systme d'exploitation qui fournissent l'espace de stockage physique rel des donnes
de la base. Ces fichiers permettent de maintenir la cohrence des donnes et peuvent
tre rcuprs en cas de dfaillance de l'instance de base de donnes.
Autres fichiers Les fichiers qui ne sont pas des fichiers de base de donnes
permettent de configurer l'instance de base de donnes, d'authentifier les utilisateurs
ayant des privilges et de rcuprer la base de donnes en cas de dfaillance du disque.
Traitement d'une instruction SQL
Les processus utilisateur et serveur sont les principaux processus intervenant dans
l'excution d'une instruction SQL. Nanmoins, d'autres processus peuvent intervenir
dans le traitement de l'instruction SQL par le serveur.
Administrateur de base de donnes Oracle
L'administrateur de base de donnes est responsable de la gestion du serveur Oracle,
afin que celui-ci puisse traiter correctement les demandes des utilisateurs. Il doit bien
matriser l'architecture Oracle pour pouvoir la grer efficacement.
Ce cours porte principalement sur la cration et la gestion d'un serveur Oracle auquel
les utilisateurs accdent en se connectant directement l'ordinateur qui excute le
serveur ou l'aide d'un modle client-serveur.

.....................................................................................................................................................
1-4
Oracle DBA : Architecture et administration

Fichiers de base de donnes Oracle


.....................................................................................................................................................

Fichiers de base de donnes Oracle


Fichiers de base de donnes Oracle

Fichier de
paramtres

Fichier
de mots
de passe

Fichiers
de donnes

Fichiers de
contrle

Fichiers de
journalisation

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichiers
journaux
archivs

Fichiers de base de donnes Oracle


Une base de donnes Oracle est un ensemble de donnes traites comme une entit
unique. En rgle gnrale, une base de donnes a pour fonction de stocker des
informations associes et de permettre leur extraction. Une base de donnes possde
une structure logique et une structure physique. La structure physique correspond aux
fichiers du systme d'exploitation de la base de donnes. Une base de donnes Oracle
est constitue de trois types de fichier :
Les fichiers de donnes contiennent les donnes relles de la base de donnes. Les
donnes sont stockes dans des tables dfinies par l'utilisateur, mais les fichiers de
donnes contiennent galement le dictionnaire de donnes, les images avant des
donnes modifies, des index et d'autres types de structure. Une base de donnes
contient au moins un fichier de donnes. Les caractristiques des fichiers de
donnes sont les suivantes :
Un fichier de donnes ne peut tre associ qu' une seule base de donnes.
Les fichiers de donnes peuvent prsenter des caractristiques qui leur
permettent de s'tendre automatiquement lorsque l'espace disponible est
insuffisant dans la base de donnes.
Une unit logique de stockage, appele tablespace, est constitue d'au moins
un fichier de donnes. La structure logique d'une base de donnes est
explique dans le chapitre 8, "Grer les tablespaces et les fichiers de donnes".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-5

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Fichiers de base de donnes Oracle (suite)


Les fichiers de journalisation (redo logs) contiennent un enregistrement des
modifications apportes la base de donnes afin de permettre la rcupration des
donnes en cas d'incident. Une base de donnes ncessite au moins deux fichiers
de journalisation.
Les fichiers de contrle contiennent les informations ncessaires au maintien et
la vrification de l'intgrit de la base de donnes. Un fichier de contrle, par
exemple, identifie les fichiers de donnes et les fichiers de journalisation. Une base
de donnes doit possder au moins un fichier de contrle.

.....................................................................................................................................................
1-6
Oracle DBA : Architecture et administration

Autres fichiers importants


.....................................................................................................................................................

Autres fichiers importants


Autres structures physiques importantes

Fichier de
paramtres

Fichier
de mots
de passe

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichiers
journaux
archivs

Autres fichiers importants


Le serveur Oracle utilise galement d'autres fichiers qui ne font pas partie de la base de
donnes :
Le fichier de paramtres dfinit les caractristiques d'une instance de base de
donnes Oracle. Ce fichier contient, par exemple, des paramtres qui dfinissent
la taille de certaines structures de la mmoire SGA.
Le fichier de mots de passe authentifie les utilisateurs autoriss dmarrer et
arrter une instance de base de donnes Oracle.
Les fichiers de journalisation archivs sont des copies "offline" des fichiers de
journalisation qui peuvent tre ncessaires la rcupration des donnes la suite
d'une dfaillance physique.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-7

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Instance de base de donnes Oracle


Instance de base de donnes Oracle
Une instance de base de donnes Oracle :

permet d'accder une base de donnes Oracle,


ouvre toujours une seule base de donnes.
Instance
Zone de mmoire
partage

SGA

Cache de
tampons
de donnes

SMON

DBW0

PMON

CKPT

Structures de
mmoire
Tampon de
journalisation

LGWR

Autres

Copyright Oracle Corporation, 1999. Tous droits rservs.

Processus
d'arrireplan

Instance de base de donnes Oracle


Une instance de base de donnes Oracle est constitue de la structure de mmoire
SGA et des processus d'arrire-plan utiliss pour grer une base de donnes. Une
instance de base de donnes est identifie l'aide de mthodes propres chaque
systme d'exploitation. L'instance de base de donnes ne peut ouvrir et utiliser qu'une
seule base de donnes la fois.
Mmoire SGA (System Global Area)
La mmoire SGA est une zone de mmoire permettant de stocker les informations qui
sont partages par les processus de base de donnes. Cette zone de mmoire contient
des donnes et des informations de contrle utilises par le serveur Oracle. Elle est
alloue dans la mmoire virtuelle de l'ordinateur sur lequel rside le serveur Oracle.
La mmoire SGA est constitue de plusieurs structures :
La zone de mmoire partage permet de stocker les dernires instructions
SQL excutes, ainsi que les dernires donnes du dictionnaire utilises. Ces
instructions SQL peuvent tre soumises par un processus utilisateur ou, dans le
cas de procdures stockes, lues dans le dictionnaire de donnes.
Le cache de tampons de la base de donnes (database buffer cache) sert stocker
les dernires donnes utilises. Les donnes sont lues et crites dans les fichiers de
donnes.
Le tampon de journalisation (redo log buffer) permet le suivi des modifications
apportes la base de donnes par le serveur et les processus d'arrire-plan.

.....................................................................................................................................................
1-8
Oracle DBA : Architecture et administration

Instance de base de donnes Oracle


.....................................................................................................................................................

Mmoire SGA (System Global Area) (suite)


Le rle de ces structures est expliqu en dtail dans les sections suivantes de ce
chapitre.
La mmoire SGA contient galement deux structures de mmoire optionnelles :
Zone de mmoire Java : utilise pour stocker le code Java.
Zone de mmoire LARGE POOL : utilise pour stocker de grandes structures de
mmoire qui ne sont pas directement associes au traitement des instructions SQL
(par exemple, les blocs de donnes copis lors d'oprations de sauvegarde et de
restauration des donnes).
Processus d'arrire-plan
Les processus d'arrire-plan d'une instance de base de donnes excutent des fonctions
courantes qui permettent de traiter les demandes simultanes des utilisateurs sans
affecter l'intgrit et les performances du systme. Ces processus regroupent des
fonctions qui, autrement, seraient traites par plusieurs programmes Oracle ddis
chaque utilisateur. Les processus d'arrire-plan excutent des oprations d'entre/
sortie et surveillent d'autres processus Oracle afin d'amliorer le paralllisme et donc
les performances et la fiabilit.
Selon sa configuration, une instance de base de donnes Oracle peut contenir plusieurs
processus d'arrire-plan parmi lesquels doivent obligatoirement figurer les cinq
suivants :
Le processus DBW0 (Database Writer) crit dans les fichiers de donnes les
donnes modifies qui figurent dans le cache de tampons de la base de donnes.
Le processus LGWR (Log Writer) crit dans les fichiers de journalisation les
modifications enregistres dans le tampon de journalisation.
Le processus SMON (System Monitor) vrifie la cohrence de la base de donnes
et, si ncessaire, lance la restauration de la base lorsqu'elle est ouverte.
Le processus PMON (Process Monitor) libre les ressources en cas d'chec de l'un
des processus Oracle.
Le processus CKPT (Checkpoint) met jour les informations de statut de la base
de donnes dans les fichiers de contrle et les fichiers de donnes lorsque les
modifications prsentes dans le cache de tampons (buffer cache) sont enregistres
dfinitivement dans la base de donnes.
Les sections suivantes de ce cours expliquent comment un processus serveur utilise
certains composants de l'instance et de la base de donnes Oracle pour traiter les
instructions SQL soumises par un processus utilisateur.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-9

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Traiter une instruction SQL


Traiter une instruction SQL

Connexion une instance de base


de donnes l'aide :
d'un processus utilisateur,
d'un processus serveur.

Les composants du serveur Oracle utiliss


dpendent du type de l'instruction SQL :
Les interrogations renvoient des lignes.
Les instructions LMD effectuent des modifications.
La validation permet de rcuprer les transactions.

Certains composants du serveur Oracle


n'interviennent pas dans le traitement des
instructions SQL.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Composants utiliss pour traiter une instruction SQL


Les composants d'une instance de base de donnes Oracle n'interviennent pas tous
dans le traitement d'une instruction SQL.
Les processus utilisateur et serveur permettent de connecter un utilisateur une
instance de base de donnes Oracle. Ces processus ne font pas partie de l'instance
de base de donnes Oracle, mais ils sont ncessaires au traitement d'une
instruction SQL.
Certains processus d'arrire-plan, structures de mmoire SGA et fichiers de base
de donnes sont utiliss dans le traitement d'une instruction SQL. Diffrents
composants sont utiliss, selon le type de l'instruction SQL :
Les interrogations ncessitent un traitement complmentaire pour renvoyer des
lignes l'utilisateur.
Les instructions LMD (langage de manipulation de donnes) ncessitent un
traitement complmentaire pour consigner les modifications apportes aux
donnes.
La validation garantit que les donnes modifies dans une transaction peuvent
tre rcupres.
Certains processus d'arrire-plan indispensables n'interviennent pas directement
dans le traitement d'une instruction SQL, mais permettent d'amliorer les
performances et de rcuprer la base de donnes.
Le processus d'arrire-plan optionnel ARC0 permet de garantir la possibilit de
rcuprer une base de donnes de production.

.....................................................................................................................................................
1-10
Oracle DBA : Architecture et administration

Se connecter une base de donnes


.....................................................................................................................................................

Se connecter une base de donnes


Se connecter une instance
Utilisateur

Serveur
Serveur Oracle

Serveur

Utilisateur

Client
Serveur
d'applications
Utilisateur

Serveur
Serveur

Navigateur
Copyright Oracle Corporation, 1999. Tous droits rservs.

Processus de connexion une instance de base de donnes


Pour pouvoir soumettre des instructions SQL Oracle, l'utilisateur doit se connecter
une instance de base de donnes.
L'utilisateur dmarre un outil, par exemple SQL*Plus, ou excute une application
dveloppe l'aide d'un outil tel qu'Oracle Forms. Cette application ou cet outil est
excut dans un processus utilisateur.
Dans la configuration la plus simple, un processus est cr sur l'ordinateur qui
excute le serveur Oracle lorsqu'un utilisateur se connecte au serveur. Ce
processus s'appelle un processus serveur. Ce processus communique avec
l'instance de base de donnes Oracle pour le compte du processus utilisateur
excut sur le client. Le processus serveur excute les instructions SQL pour le
compte de l'utilisateur.
Connexion
Une connexion est un chemin de communication entre un processus utilisateur et un
serveur Oracle. L'utilisateur d'une base de donnes peut se connecter un serveur
Oracle de trois manires :
Il peut se connecter au systme d'exploitation qui excute l'instance de base de
donnes Oracle et dmarrer une application ou un outil qui accde la base de
donnes du systme. Le chemin de communication est tabli l'aide des
mcanismes de communication interprocessus du systme d'exploitation hte.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-11

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Connexion (suite)
L'utilisateur dmarre l'application ou l'outil sur un ordinateur local et se connecte,
via un rseau, l'ordinateur qui excute l'instance de base de donnes Oracle. Dans
cette configuration, appele client-serveur, le logiciel rseau permet l'utilisateur
et au serveur Oracle de communiquer.
Dans une connexion trois niveaux (3-tiers), l'ordinateur de l'utilisateur
communique, sur le rseau, avec une application ou un serveur rseau. Ce dernier
est connect, via un rseau, la machine excutant l'instance de base de donnes
Oracle. Par exemple, l'utilisateur excute un navigateur sur un ordinateur en rseau
pour utiliser une application rsidant sur un serveur NT qui extrait les donnes
d'une base de donnes Oracle s'excutant sur un hte UNIX.
Sessions
Une session est une connexion spcifique d'un utilisateur un serveur Oracle. La
session dmarre lorsque l'utilisateur est authentifi par le serveur Oracle, et elle se
termine lorsque l'utilisateur se dconnecte ou lorsqu'un arrt anormal se produit. Un
utilisateur de base de donnes peut ouvrir plusieurs sessions simultanes s'il se
connecte simultanment partir de plusieurs outils, applications ou terminaux. En
rgle gnrale, le serveur Oracle doit tre disponible pour que l'on puisse ouvrir une
session, sauf si l'ouverture est effectue par certains outils spciaux d'administration de
base de donnes.
Remarque : Le type de connexion dcrit ici, impliquant une correspondance un un
entre l'utilisateur et le processus serveur, est appel "connexion serveur ddie". Dans
le cadre d'une configuration de serveur multithread, plusieurs processus utilisateur
peuvent partager des processus serveur. Les serveurs multithread sont dcrits en dtail
dans le cours "Oracle DBA : Administration du rseau".

.....................................................................................................................................................
1-12
Oracle DBA : Architecture et administration

Traiter une interrogation


.....................................................................................................................................................

Traiter une interrogation


Traiter une interrogation

Analyse :
recherche d'une instruction identique,
vrification de la syntaxe, du nom des objets
et des privilges,
verrouillage des objets utiliss pendant l'analyse,
cration et enregistrement du plan d'excution.

Excution : identification des lignes slectionnes.


Extraction : renvoi des lignes au processus
utilisateur.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Etapes du traitement d'une interrogation


Les interrogations se distinguent des autres types d'instruction SQL dans la mesure o,
lorsqu'elles aboutissent, elles renvoient des donnes. Contrairement aux autres
instructions qui renvoient simplement un code de russite ou d'chec, une
interrogation peut renvoyer une ligne ou des milliers de lignes.
Le traitement d'une interrogation s'effectue selon trois tapes principales :
1 l'analyse,
2 l'excution,
3 l'extraction.
Analyse d'une instruction SQL Lors de l'analyse, l'instruction SQL est transmise
par le processus utilisateur au processus serveur, et la reprsentation analyse de
l'instruction SQL est charge dans une zone SQL partage.
Au cours de cette tape, le processus serveur :
recherche une copie de l'instruction SQL dans la zone de mmoire partage,
valide l'instruction SQL aprs avoir vrifi sa syntaxe,
effectue des recherches dans le dictionnaire de donnes pour valider les dfinitions
de table et de colonne,

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-13

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Etapes du traitement d'une interrogation (suite)


Analyse d'une instruction SQL (suite)
obtient des verrous d'analyse sur des objets afin d'empcher la modification de
leurs dfinitions au cours de l'analyse de l'instruction,
vrifie les privilges d'accs de l'utilisateur aux objets de schma rfrencs,
dtermine le plan d'excution optimal de l'instruction,
charge l'instruction et le plan d'excution dans une zone SQL partage.
L'analyse inclut des oprations de traitement qui doivent gnralement tre effectues
une seule fois, quel que soit le nombre d'excutions de l'instruction. En rgle gnrale,
le serveur Oracle convertit chaque instruction SQL une seule fois et rexcute
l'instruction analyse lorsqu'il y est fait rfrence ultrieurement. Toutefois, le serveur
Oracle vrifie toujours si l'utilisateur dispose des privilges ncessaires l'excution
de l'instruction SQL.
Bien que l'analyse valide l'instruction SQL, elle identifie uniquement les erreurs
dtectables avant l'excution de l'instruction. En consquence, l'analyse ne dtecte pas
certaines erreurs. Par exemple, les erreurs intervenant dans les conversions de donnes
ou dans les donnes elles-mmes (tentative d'entre de valeurs en double dans une cl
primaire, par exemple) et les interblocages ne peuvent tre dtects et signals qu'au
cours de l'excution de l'instruction.
Excution de l'instruction SELECT A ce stade, le serveur Oracle dispose de
toutes les informations et ressources ncessaires l'excution de l'instruction. Dans le
cas des instructions SELECT, le processus serveur se prpare l'extraction des
donnes.
Extraction des lignes d'une interrogation Lors de l'extraction des donnes, le
serveur slectionne les lignes, les trie (si ncessaire) et les renvoie l'utilisateur. Selon
le nombre de lignes renvoyes chaque extraction, plusieurs extractions peuvent tre
ncessaires pour transfrer le rsultat final de l'interrogation l'utilisateur.

.....................................................................................................................................................
1-14
Oracle DBA : Architecture et administration

Zone de mmoire partage


.....................................................................................................................................................

Zone de mmoire partage


Zone de mmoire partage
Zone de mmoire
partage
Cache
"library"

Cache du
dictionnaire
de donnes

Le cache "library" contient le texte de l'instruction SQL,


le code analys et le plan d'excution.

Le cache du dictionnaire de donnes contient les dfinitions


et les privilges associs aux tables, aux colonnes et aux
autres objets.

La taille de la zone de mmoire partage est dfinie par


SHARED_POOL_SIZE.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Composants de la zone de mmoire partage


Au cours de l'analyse, le processus serveur utilise une zone de la mmoire SGA,
appele zone de mmoire partage, pour compiler l'instruction SQL. La zone de
mmoire partage est constitue de deux composants principaux :
le cache "library",
le cache du dictionnaire de donnes.
Cache "library" Le cache "library" stocke les informations relatives aux dernires
instructions SQL utilises dans une structure de mmoire appele zone SQL partage.
Cette zone contient :
le texte de l'instruction SQL,
l'arborescence de l'analyse : version compile de l'instruction,
le plan d'excution : tapes d'excution de l'instruction.
L'optimiseur est la fonction du serveur Oracle qui dtermine le plan d'excution
optimal.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-15

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Composants de la zone de mmoire partage (suite)


Cache "library" (suite) Si une instruction SQL est rexcute et qu'une zone SQL
partage contient dj le plan d'excution de l'instruction, le processus serveur
n'analyse pas de nouveau l'instruction. Le cache "library" amliore les performances
des applications qui rutilisent les instructions SQL en rduisant le temps d'analyse et
les besoins en mmoire. Si l'instruction SQL n'est pas rutilise, elle est finalement
exclue du cache "library".
Cache du dictionnaire de donnes
Le cache du dictionnaire de donnes, galement appel cache du dictionnaire ou cache
de ligne, contient les dernires dfinitions utilises dans la base de donnes. Ce cache
contient des informations sur les fichiers, les tables, les index, les colonnes, les
utilisateurs, les privilges et d'autres objets de la base de donnes.
Au cours de l'analyse, le processus serveur recherche les informations dans le cache du
dictionnaire pour rsoudre les noms d'objets dfinis dans l'instruction SQL et pour
valider les privilges d'accs. Si ncessaire, le processus serveur charge ces
informations partir des fichiers de donnes.
Dimensionnement de la zone de mmoire partage
La taille de la zone de mmoire partage est dfinie par le paramtre d'initialisation
SHARED_POOL_SIZE.

.....................................................................................................................................................
1-16
Oracle DBA : Architecture et administration

Cache de tampons de la base de donnes


.....................................................................................................................................................

Cache de tampons de la base de donnes


Cache de tampons de la base de donnes

Cache de
tampons de la
base de donnes

Enregistrement des derniers blocs utiliss

Nombre de tampons dfini par


DB_BLOCK_BUFFERS

Taille d'un tampon en fonction de la valeur de


DB_BLOCK_SIZE

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fonction du cache de tampons de la base de donnes


Lors du traitement d'une interrogation, le processus serveur recherche, dans le cache
de tampons de la base de donnes, les blocs dont il a besoin. Si un bloc ncessaire ne
s'y trouve pas, il lit le bloc dans le fichier de donnes, puis il place une copie de ce bloc
dans le cache de tampons. Etant donn que les demandes suivantes pour le mme bloc
peuvent tre satisfaites en lisant le bloc dans la mmoire, aucune lecture physique n'est
ncessaire. Le serveur Oracle utilise un algorithme d'anciennet pour exclure les
mmoires tampon (buffers) les moins utilises, librant ainsi de l'espace pour de
nouveaux blocs dans le cache de tampons.
Dimensionnement du cache de tampons de la base de donnes
La taille de chaque mmoire tampon du cache de tampons, dfinie l'aide du
paramtre DB_BLOCK_SIZE, est gale celle d'un bloc Oracle. Le nombre de
mmoires tampon est gal la valeur du paramtre DB_BLOCK_BUFFERS.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-17

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Zone PGA (Program Global Area)


Zone PGA (Program Global Area)

Non partage
Inscriptible uniquement par le processus serveur
Contient :
une zone de tri,
les informations de session,
l'tat du curseur,
l'espace de pile.

Processus
serveur
PGA

Copyright Oracle Corporation, 1999. Tous droits rservs.

Composants de la zone PGA


La zone PGA (Program Global Area ou Process Global Area) est une rgion de la
mmoire qui contient les donnes et les informations de contrle d'un seul processus
serveur ou d'un seul processus d'arrire-plan. Contrairement la zone SGA, qui est
partage par plusieurs processus, la zone PGA n'est utilise que par un seul processus.
Dans une configuration de serveur ddi, la zone PGA du serveur inclut les
composants suivants :
une zone de tri utilise pour effectuer les tris ventuellement ncessaires au
traitement de l'instruction SQL,
des informations de session qui comprennent les privilges de l'utilisateur et des
statistiques sur les performances de la session,
l'tat du curseur qui indique l'tape du traitement des instructions SQL
actuellement utilises par la session,
l'espace de pile qui contient d'autres variables de session.
La zone PGA est alloue lors de la cration d'un processus et dsalloue la fin du
processus.
Remarque : Certaines de ces structures sont stockes dans la zone SGA dans une
configuration de serveur multithread. Dans une telle configuration, plusieurs
processus utilisateur peuvent partager des processus serveur. Les serveurs multithread
sont dcrits en dtail dans le cours "Oracle DBA : Administration du rseau". Si vous
crez une zone de mmoire LARGE POOL, les structures y sont stockes. Sinon, elles
sont stockes dans la zone de mmoire partage.

.....................................................................................................................................................
1-18
Oracle DBA : Architecture et administration

Traiter une instruction LMD


.....................................................................................................................................................

Traiter une instruction LMD


Traiter une instruction LMD
SGA
Processus
utilisateur

Cache de
tampons
de donnes

Zone de mmoire
partage

Tampon de
journalisation

UPDATE
UPDATE emp
emp ...
...

Processus
serveur

Fichiers
de
donnes

Fichiers
de
contrle

Fichiers
de journalisation

Base de donnes
Copyright Oracle Corporation, 1999. Tous droits rservs.

Etapes du traitement d'une instruction LMD


Le traitement d'une instruction LMD (langage de manipulation de donnes) s'effectue
en deux tapes :
Analyse : cette tape est identique celle du traitement d'une interrogation.
Excution : cette tape ncessite des oprations supplmentaires afin de modifier
les donnes.
Excution d'une instruction LMD
Pour excuter une instruction LMD :
1 Si les blocs de donnes et les blocs d'annulation ne se trouvent pas dj dans le
cache de tampons, le processus serveur les y copie partir des fichiers de donnes.
2 Le processus serveur verrouille les lignes modifier.
3 Le processus serveur enregistre, dans le tampon de journalisation, les
modifications effectuer sur les blocs d'annulation et de donnes.
Les modifications des blocs d'annulation enregistrent les valeurs des donnes
avant qu'elles soient modifies. Les blocs d'annulation stockent les images
avant des donnes, ce qui permet d'annuler, si ncessaire, les instructions
LMD.
Les modifications des blocs de donnes enregistrent les nouvelles valeurs des
donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-19

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Excution d'une instruction LMD (suite)


4 Le processus serveur enregistre l'image avant du bloc d'annulation et met jour le
bloc de donnes. Ces deux modifications sont effectues dans le cache de tampons
de la base de donnes. Les blocs modifis dans le cache de tampons obtiennent
l'attribut de tampon "dirty" (mmoires tampon qui ne sont pas identiques aux blocs
correspondants sur le disque).
L'excution d'une commande DELETE ou INSERT s'effectue selon des tapes
similaires. L'image avant d'une commande DELETE contient les valeurs de colonne
de la ligne supprime et celle d'une commande INSERT contient les informations sur
l'emplacement de la ligne.
Remarque technique
Les modifications apportes aux blocs sont enregistres uniquement dans les
structures de mmoire et ne sont pas crites immdiatement sur le disque. De ce fait,
elles peuvent tre perdues en cas de dfaillance de l'ordinateur entranant l'effacement
des donnes de la zone SGA.

.....................................................................................................................................................
1-20
Oracle DBA : Architecture et administration

Tampon de journalisation
.....................................................................................................................................................

Tampon de journalisation
Tampon de journalisation

Tampon de
journalisation

Taille dfinie par LOG_BUFFER

Utilisation squentielle

Enregistrement des modifications effectues


via l'instance de base de donnes
Tampon circulaire
Copyright Oracle Corporation, 1999. Tous droits rservs.

Caractristiques du tampon de journalisation


Le processus serveur enregistre la plupart des modifications apportes aux blocs de
fichiers de donnes dans le tampon de journalisation qui fait partie de la zone SGA.
Le tampon de journalisation prsente les caractristiques suivantes :
Sa taille en octets est dfinie par le paramtre LOG_BUFFER.
Il enregistre le bloc modifi, l'emplacement de la modification et la nouvelle valeur
dans une entre de journalisation. Une entre de journalisation ne tient pas compte
du type du bloc modifi ; elle indique simplement quels sont les octets modifis
du bloc.
Le tampon de journalisation est utilis de manire squentielle et les modifications
effectues par une transaction peuvent tre combines avec celles effectues par
d'autres transactions.
Il s'agit d'un tampon circulaire (circular buffer) qui est rutilis une fois rempli,
mais uniquement lorsque toutes les anciennes entres de journalisation ont t
enregistres dans les fichiers de journalisation.
Remarque : les fichiers de journalisation sont dcrits en dtail dans le chapitre "Grer
les fichiers de journalisation".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-21

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Segment d'annulation
Segment d'annulation
Ancienne image

Nouvelle
image
Table
Segment
d'annulation

Instruction LMD

Copyright Oracle Corporation, 1999. Tous droits rservs.

Segment d'annulation
Avant d'effectuer une modification, le processus serveur enregistre l'ancienne valeur
des donnes dans un segment d'annulation. Cette image avant permet :
d'annuler les modifications si la transaction est annule,
de prserver la cohrence des donnes lues en empchant les autres transactions de
voir les modifications non valides effectues par l'instruction LMD,
de rcuprer une base de donnes cohrente en cas d'incident.
Les segments d'annulation, de mme que les tables et les index, se trouvent dans des
fichiers de donnes, et les blocs d'annulation sont placs dans le cache de tampons de
la base de donnes selon les besoins.
Les segments d'annulation sont crs par l'administrateur de la base de donnes.
Les modifications de segments d'annulation sont enregistres dans le tampon de
journalisation.
Pour plus d'informations sur les segments d'annulation, reportez-vous au chapitre
"Grer les segments d'annulation".

.....................................................................................................................................................
1-22
Oracle DBA : Architecture et administration

Validation : traitement de l'instruction COMMIT


.....................................................................................................................................................

Validation : traitement de l'instruction COMMIT


Validation : traitement de l'instruction COMMIT
Instance
SGA

1
Cache de
tampons
de donnes

Processus
serveur

Zone de mmoire
partage

Tampon de
journalisation

4
LGWR

2
Processus
utilisateur

Fichiers
de donnes

Fichiers
de
contrle

Fichiers
de journalisation

Base de donnes
Copyright Oracle Corporation, 1999. Tous droits rservs.

Validation rapide
Le serveur Oracle utilise un mcanisme de validation rapide qui garantit la
rcupration des modifications valides en cas de dfaillance de l'instance de base
de donnes.
Numro SCN
Chaque fois qu'une transaction est valide, le serveur Oracle lui affecte un numro
SCN. Ce numro est incrment chaque fois d'une unit et est unique dans la base
de donnes. Le serveur Oracle l'utilise comme attribut d'horodatage interne pour
synchroniser les donnes et assurer la cohrence de la lecture des donnes extraites des
fichiers de donnes. Le numro SCN permet au serveur Oracle de vrifier la cohrence
des donnes sans utiliser la date et l'heure du systme d'exploitation.
Etapes du traitement d'une instruction COMMIT
Le traitement d'une instruction COMMIT s'effectue selon les tapes suivantes :
1 Le processus serveur place un enregistrement de validation et le numro SCN dans
le tampon de journalisation.
2 Le processus LGWR crit de manire contigu toutes les entres du tampon de
journalisation jusqu' (et y compris) l'enregistrement de validation dans les fichiers
de journalisation. A ce stade, le serveur Oracle garantit que les modifications ne
seront pas perdues, mme en cas de dfaillance de l'instance de base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-23

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Etapes du traitement d'une instruction COMMIT (suite)


3 L'utilisateur est averti de la fin du traitement de l'instruction COMMIT.
4 Le processus serveur enregistre des informations qui indiquent que la transaction
est termine et que les verrous des ressources peuvent tre librs.
Le vidage des tampons "dirty" vers le fichier de donnes est excut de manire
indpendante par le processus DBW0 et peut tre effectu avant ou aprs la validation.
Avantages de la validation rapide
La validation rapide permet de rcuprer les donnes en crivant les modifications
dans le tampon de journalisation et non dans les fichiers de donnes. La validation
rapide offre les avantages suivants :
Il est plus rapide d'crire les donnes de faon squentielle dans les fichiers
journaux que de les crire dans diffrents blocs dans les fichiers de donnes.
Seules les informations minimales ncessaires l'enregistrement des modifications
sont crites dans les fichiers journaux, alors que l'criture des donnes dans les
fichiers de donnes implique l'criture de blocs de donnes entiers.
Lorsque plusieurs transactions envoient simultanment des demandes de
validation de donnes, l'instance de base de donnes crit en une seule fois les
enregistrements de journalisation (redo log records).
Une seule opration d'criture synchrone par transaction est ncessaire, moins
que le tampon de journalisation ne soit particulirement plein. En cas de
regroupement des enregistrements, il peut exister moins d'une opration d'criture
synchrone par transaction.
Du fait que le tampon de journalisation peut tre vid avant la validation, la taille
de la transaction n'affecte pas la dure d'excution de la validation.
Remarque : L'annulation d'une transaction ne dclenche pas d'opration d'criture sur
disque par le processus LGWR. Le serveur Oracle annule toujours les modifications
non valides lors de la rcupration des donnes la suite d'un incident. Lorsque le
serveur tombe en panne entre une annulation et l'enregistrement sur disque des entres
d'annulation, l'absence d'un enregistrement de validation suffit garantir l'annulation
des modifications effectues par la transaction.

.....................................................................................................................................................
1-24
Oracle DBA : Architecture et administration

Processus Log Writer


.....................................................................................................................................................

Processus Log Writer


Processus Log Writer (LGWR)
Instance
SGA
Cache de
tampons
de donnes

Zone de mmoire
partage

Tampon de
journalisation

Le processus LGWR
crit les donnes :

lorsqu'elles sont
valides,
LGWR

lorsqu'un tiers du
tampon de journalisation est plein,

lorsque les donnes


Fichiers
de donnes

Fichiers
de
contrle

journalises
reprsentent plus
d'un Mo,

Fichiers
de journalisation

avant que le
Base de donnes
Copyright Oracle Corporation, 1999. Tous droits rservs.

processus DBW0 ne
procde l'criture.

Processus LOG Writer


Le processus LGWR excute des oprations d'criture squentielles partir du tampon
de journalisation vers le fichier de journalisation dans les cas suivants :
lorsqu'une transaction est valide,
lorsqu'un tiers du tampon de journalisation est occup,
lorsque le tampon de journalisation contient plus d'un mgaoctet de modifications,
avant que le processus DBW0 n'crive les blocs modifis du cache de tampons de
la base de donnes vers les fichiers de donnes.
Etant donn que la journalisation est ncessaire la rcupration des donnes, le
processus LGWR ne confirme la validation qu'une fois que les donnes journalises
sont enregistres sur le disque.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-25

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Autres processus d'instance de base de donnes


Autres processus d'instance
de base de donnes

Autres processus obligatoires :


Database Writer (DBW0)
Process Monitor (PMON)
System Monitor (SMON)
Checkpoint (CKPT)

Le processus d'archivage ARC0 est gnralement


cr dans une base de donnes de production.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Autres processus indispensables


Quatre autres processus indispensables n'interviennent pas directement dans le
traitement des instructions SQL :
DBW0 (Database Writer),
PMON (Process Monitor),
SMON (System Monitor),
CKPT (Checkpoint).
Le processus de point de reprise (CKPT) permet de synchroniser les fichiers de la base
de donnes. Ce processus est dcrit en dtail dans le chapitre "Grer les fichiers de
journalisation".
Processus d'archivage
Tous les autres processus d'arrire-plan sont optionnels, selon la configuration de la
base de donnes. Toutefois, l'un d'entre eux, ARC0, joue un rle essentiel dans la
rcupration d'une base de donnes suite une dfaillance du disque. Le processus
ARC0 est gnralement cr dans une base de donnes de production.

.....................................................................................................................................................
1-26
Oracle DBA : Architecture et administration

Processus Database Writer


.....................................................................................................................................................

Processus Database Writer


Processus Database Writer (DBW0)
Instance

SGA
Cache de
tampons
de donnes

Zone de mmoire
partage

Tampon de
journalisation

Le processus DBW0
crit les donnes
lorsque :

plusieurs tampons
sont "dirty",

peu de tampons
sont libres,

DBW0

des temporisations
se produisent,
Fichiers
de
donnes

Fichiers
de
contrle

Fichiers
de journalisation

un point de reprise
est constitu.

Base de donnes
Copyright Oracle Corporation, 1999. Tous droits rservs.

Processus Database Writer


Le processus serveur enregistre les modifications des blocs d'annulation et des blocs
de donnes dans le cache de tampons. Le processus Database Writer (DBW0) crit les
tampons "dirty" du cache de tampons de la base de donnes vers les fichiers de
donnes. Il garantit qu'un nombre suffisant de mmoires tampon libres (tampons qui
peuvent tre crass lorsque les processus serveur doivent lire des blocs dans les
fichiers de donnes) est disponible dans le cache de tampons de la base de donnes.
Les performances de la base de donnes sont amliores puisque les processus serveur
n'effectuent les modifications que dans le cache de tampons et que le processus DBW0
diffre l'criture dans les fichiers de donnes jusqu' ce que l'un des vnements
suivants se produise :
Le nombre de tampons "dirty" a atteint un certain seuil.
Un processus balaie un certain nombre de blocs la recherche de mmoires
tampon libres et n'en trouve pas.
Une temporisation se produit (toutes les trois secondes).
Un point de reprise est constitu (un point de reprise permet de synchroniser le
cache de tampons de la base de donnes et le fichier de donnes). Les points de
reprise sont dcrits en dtail dans le chapitre "Grer les fichiers de journalisation".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-27

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Processus SMON : System Monitor


Processus SMON : System Monitor

Rcupre automatiquement l'instance


de base de donnes.
Il rimplmente les modifications dans
les fichiers de journalisation.
Il ouvre la base de donnes pour l'accs
utilisateur.
Il annule les transactions non valides.

Regroupe les espaces libres.


Dsalloue les segments temporaires.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Processus SMON : System Monitor


En cas de dfaillance de l'instance de base de donnes Oracle, les informations
prsentes dans la zone SGA et qui n'ont pas t crites sur disque sont perdues. La
dfaillance du systme d'exploitation, par exemple, provoque la dfaillance de
l'instance de base de donnes. Suite la perte de l'instance de base de donnes, le
processus d'arrire-plan SMON rcupre automatiquement cette dernire lors de la
rouverture de la base de donnes. La rcupration d'une instance de base de donnes
consiste effectuer les oprations suivantes :
1 Rimplmenter les modifications pour rcuprer les donnes non enregistres dans
les fichiers de donnes, mais enregistres dans le fichier de journalisation "online"
(online redo log). Ces donnes n'ont pas t enregistres sur disque du fait de
l'effacement de la zone SGA suite la dfaillance de l'instance de base de donnes.
Au cours de ce processus, le processus SMON lit les fichiers de journalisation et
applique les modifications qui y sont enregistres aux blocs de donnes. Etant
donn que toutes les transactions valides ont t enregistres dans les fichiers de
journalisation, ce processus permet de rcuprer les transactions dans leur
intgralit.
2 Ouvrir la base de donnes pour permettre aux utilisateurs de s'y connecter. Les
donnes qui ne sont pas verrouilles par des transactions non rcupres sont
immdiatement disponibles.
3 Annuler les transactions non valides. Ces transactions sont annules par le
processus SMON ou par les processus serveur lorsqu'ils accdent aux donnes
verrouilles.

.....................................................................................................................................................
1-28
Oracle DBA : Architecture et administration

Processus SMON : System Monitor


.....................................................................................................................................................

Processus SMON : System Monitor (suite)


Le processus SMON excute galement des fonctions de gestion de l'espace :
Il combine ou fusionne les espaces libres adjacents dans les fichiers de donnes.
Il dsalloue les segments temporaires pour les librer et augmenter ainsi l'espace
disponible dans les fichiers de donnes. Les segments temporaires permettent de
stocker les donnes lors du traitement des instructions SQL.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-29

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Processus PMON : Process Monitor


Processus PMON : Process Monitor

Effectue un nettoyage aprs l'chec de l'un


des processus :

en annulant la transaction,
en supprimant les verrous,
en librant les autres ressources.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fonctionnalit du processus PMON


Suite l'chec de processus, le processus d'arrire-plan PMON excute des oprations
de nettoyage :
en annulant la transaction en cours de l'utilisateur,
en librant tous les verrous des tables ou des lignes,
en librant d'autres ressources rserves par l'utilisateur.

.....................................................................................................................................................
1-30
Oracle DBA : Architecture et administration

Archivage
.....................................................................................................................................................

Archivage
v

Archivage

Mode d'archivage de la base de donnes :


NOARCHIVELOG pour les bases de donnes
pour lesquelles la rcupration n'est pas
ncessaire aprs une dfaillance matrielle,
ARCHIVELOG pour les bases de donnes de
production.

Le processus ARC0 :
archive automatiquement les fichiers de
journalisation "online",
conserve l'enregistrement de toutes les
modifications de la base de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Processus d'archivage
Tous les autres processus d'arrire-plan sont optionnels, selon la configuration de la
base de donnes. Toutefois, l'un d'entre eux, le processus ARC0, est essentiel la
rcupration d'une base de donnes la suite d'une dfaillance du disque. Le serveur
Oracle passe d'un fichier de journalisation "online" l'autre mesure que ceux-ci se
remplissent. Le passage d'un fichier de journalisation l'autre s'appelle un changement
de fichier de journalisation.
Archiver les fichiers de journalisation
L'une des principales dcisions de l'administrateur consiste dterminer s'il doit
configurer la base de donnes pour un fonctionnement en mode ARCHIVELOG ou en
mode NOARCHIVELOG.
Mode NOARCHIVELOG En mode NOARCHIVELOG, les fichiers de
journalisation "online" sont crass chaque fois qu'un changement de fichier de
journalisation se produit. Le processus LGWR n'crase pas un groupe de fichiers de
journalisation (redo log group) tant que le processus de point de reprise du groupe n'est
pas termin. Ceci garantit la rcupration des donnes valides en cas de dfaillance
d'une instance de base de donnes. Dans ce cas, seules les donnes de la zone SGA
sont perdues. Aucune donne des disques n'est perdue ; seules les donnes en mmoire
le sont. Une dfaillance du systme d'exploitation, par exemple, provoque la
dfaillance de l'instance de base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-31

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Archiver les fichiers de journalisation (suite)


Mode ARCHIVELOG Si la base de donnes fonctionne en mode ARCHIVELOG,
les groupes inactifs de fichiers de journalisation "online" pleins doivent tre archivs
pour pouvoir tre rutiliss. Etant donn que les modifications de la base de donnes
sont enregistres dans les fichiers de journalisation "online", l'administrateur de la
base de donnes peut utiliser la sauvegarde physique des fichiers de donnes et les
fichiers de journalisation "online" archivs pour rcuprer la base de donnes sans
perdre les donnes valides en cas d'incident, notamment la perte d'un disque. En rgle
gnrale, une base de donnes de production est configure pour fonctionner en mode
ARCHIVELOG.
Processus ARC0
Le processus ARC0 lance la sauvegarde ou l'archivage du groupe de fichiers de
journalisation pleins chaque changement de fichier de journalisation. Il archive
automatiquement le fichier de journalisation "online" pour qu'il puisse tre rutilis.
Ainsi, toutes les modifications apportes la base de donnes sont conserves. Ceci
permet l'administrateur de la base de donnes de rcuprer la base de donnes
partir du point sur lequel la dfaillance s'est produite, mme si un disque est
endommag.

.....................................................................................................................................................
1-32
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Synthse
Synthse
Ce chapitre vous a permis d'apprendre dcrire :

les fichiers d'une base de donnes : fichiers de


donnes, fichiers de contrle, fichiers de
journalisation "online",

les structures de mmoire SGA : cache de


tampons de base de donnes, zone de mmoire
partage SQL et tampon de journalisation,

les principaux processus d'arrire-plan :


DBW0, LGWR, CKPT, PMON, SMON et ARC0,

les tapes du traitement d'une instruction SQL :


analyse, excution, extraction.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichiers Oracle
Une base de donnes Oracle contient les fichiers suivants :
Fichiers de contrle : ils contiennent les informations ncessaires la vrification
de l'intgrit de la base de donnes, notamment le nom des autres fichiers de la
base de donnes (les fichiers de contrle ont gnralement des fichiers miroir).
Fichiers de donnes : ils contiennent les donnes de la base de donnes,
notamment les tables, les index, les segments d'annulation et les segments
temporaires.
Fichiers de journalisation "online" : ils contiennent les modifications apportes
aux fichiers de donnes (les fichiers de journalisation "online" sont utiliss pour
rcuprer les donnes et ont gnralement des fichiers miroir).
Les autres fichiers couramment utiliss avec la base de donnes sont les suivants :
Fichier de paramtres : il dfinit les caractristiques d'une instance de base de
donnes Oracle.
Fichier de mots de passe : il authentifie les utilisateurs disposant de privilges sur
la base de donnes.
Fichiers de journalisation archivs (archived redo logs) : ils correspondent aux
sauvegardes des fichiers de journalisation "online".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
1-33

Chapitre 1 : Composants de l'architecture Oracle


.....................................................................................................................................................

Structures de mmoire SGA


La zone de mmoire SGA (System Global Area) contient les trois structures
principales suivantes :
Zone de mmoire partage : elle stocke les dernires instructions SQL excutes et
les dernires donnes du dictionnaire de donnes utilises.
Cache de tampons de la base de donnes : il stocke les dernires donnes utilises.
Tampon de journalisation : il enregistre les modifications apportes la base de
donnes l'aide de l'instance de base de donnes.
Processus d'arrire-plan
Une instance de base de donnes de production Oracle contient les processus
suivants :
Database Writer (DBW0) : crit, dans les fichiers de donnes, les donnes
modifies.
Log Writer (LGWR) : enregistre, dans les fichiers de journalisation "online", les
modifications apportes aux fichiers de donnes.
System Monitor (SMON) : vrifie la cohrence des donnes et lance la
rcupration de la base de donnes lorsque celle-ci est ouverte.
Process Monitor (PMON) : libre les ressources si l'un des processus choue.
Checkpoint (CKPT) : met jour les informations de statut de la base de donnes
aprs un point de reprise.
Archiver (ARC0) : sauvegarde le fichier de journalisation "online" pour permettre
la rcupration des donnes en cas de dfaillance physique (ce processus est
optionnel, mais il est gnralement inclus dans une instance de base de donnes de
production).
En fonction de sa configuration, l'instance de base de donnes peut galement inclure
d'autres processus.
Etapes du traitement d'une instruction SQL
Les tapes du traitement d'une instruction SQL sont les suivantes :
Analyse : compile l'instruction SQL.
Excution : identifie les lignes slectionnes ou applique les modifications LMD
aux donnes.
Extraction : renvoie les lignes demandes par l'instruction SELECT.

.....................................................................................................................................................
1-34
Oracle DBA : Architecture et administration

2
.................................

Initiation Oracle Server

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

identifier les caractristiques du programme


d'installation Universal Installer,

configurer l'authentification par le systme


d'exploitation et par les fichiers de mots de passe,

numrer les principaux composants d'Oracle


Enterprise Manager et dcrire leurs fonctions.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
2-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Outils d'administration de base
de donnes : exemples
Outil

Description

SQL*Plus Line Mode

Utilitaire d'excution de tches


d'administration, telles que le
dmarrage, la fermeture et la
restauration d'une base de donnes

Oracle Enterprise Manager

Interface graphique d'administration,


de contrle et de rglage d'une ou
plusieurs bases de donnes

SQL*Loader

Utilitaire de chargement de donnes


de fichiers externes dans une base de
donnes Oracle

Utilitaire d'export ou d'import

Utilitaire d'export et d'import de


donnes au format Oracle

Utilitaire de fichier de mots


de passe

Utilitaire de cration de fichiers de


mots de passe de base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Exemples d'outils classiques d'administration de base de donnes


Le tableau rpertorie des exemples d'outils classiques d'administration de base de
donnes, ainsi que les tches qu'un administrateur de base de donnes peut excuter
l'aide de ces outils.
Ces outils sont dcrits dans ce cours, mais ils ne reprsentent qu'une partie des
utilitaires fournis par Oracle. Les commandes de dmarrage des diffrents outils
dpendent de la plate-forme utilise.
Ce chapitre dcrit l'utilisation des outils suivants, lesquels assistent l'administrateur
de base de donnes dans ses tches :
Universal Installer
Oracle Enterprise Manager
Oracle Configuration Assistant
Remarque : d'autres utilitaires, notamment Database Configuration Assistant
qui permet de crer une base de donnes Oracle, seront tudis dans les chapitres
"Grer une instance de base de donnes Oracle" et "Crer une base de donnes".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-3

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Oracle Universal Installer


Oracle Universal Installer :
caractristiques

Bas sur un moteur Java

Installation partir du Web

Dsinstallation implicite

Rsolution automatique des dpendances


et gestion des logiques complexes
Installations de composants et de familles
de composants
Prise en charge de plusieurs rpertoires
d'origine Oracle Home
Support NLS/globalisation

Copyright Oracle Corporation, 1999. Tous droits rservs.

Caractristiques d'Oracle Universal Installer


L'utilitaire Oracle Universal Installer de type Java offre une solution d'installation pour
toutes les plates-formes compatibles Java en proposant une procdure d'installation et
une interface communes, indpendantes de la plate-forme.
Le nouveau moteur d'installation dtecte automatiquement les dpendances entre
les composants et excute l'installation en consquence, selon les produits et le type
d'installation slectionn. Les installations de groupes de composants et de suites de
produits, c'est--dire de groupes de produits prdfinis ayant un ordre d'installation,
sont aisment identifies grce une intervention limite de l'utilisateur et l'absence
de questions rptitives.
Universal Installer peut pointer vers une URL correspondant un emplacement
o une version ou une zone intermdiaire a t dfinie et installer le logiciel
distance via HTTP.
Les produits de dsinstallation installs l'aide d'Universal Installer sont intgrs au
moteur lui-mme. Les actions de dsinstallation correspondent "l'annulation" des
actions d'installation.
Le programme d'installation Universal Installer rpertorie tous les rpertoires d'origine
Oracle Home sur une machine cible en enregistrant leur nom ainsi que les produits qui
y sont installs et leur version.
Le programme dtecte la langue du systme d'exploitation et excute l'installation
dans cette langue.

.....................................................................................................................................................
2-4
Oracle DBA : Architecture et administration

Oracle Universal Installer


.....................................................................................................................................................

Installation automatique l'aide de


fichiers de rponses

Dmarrer Universal Installer sous Windows NT :


setup.exe
setup.exe -responsefile
-responsefile nom
nom de
de fichier
fichier [-silent]
[-silent]
[-nowelcome]
[-nowelcome]

Dmarrer Universal Installer sous Solaris :


runInstaller
runInstaller -responsefile
-responsefile nom
nom de
de fichier
fichier
[-silent]
[-nowelcome]
[-silent] [-nowelcome]

Copyright Oracle Corporation, 1999. Tous droits rservs.

Installation automatique l'aide de fichiers de rponses


Les fichiers de rponses contiennent des variables fournissant les valeurs que doit
gnralement entrer l'utilisateur lorsqu'il procde l'installation manuellement. Pour
l'installation d'un composant donn, Universal Installer peut lire ces valeurs dans un
fichier de rponses prdfini. En utilisant ce fichier comme argument supplmentaire,
Universal Installer peut limiter le nombre de sessions d'installation manuelle ou crer
une session d'installation entirement automatique.
Pour Windows NT : le programme d'installation s'appelle setup.exe ; il se trouve
dans le rpertoire Program Files\Oracle\oui\install.
Pour UNIX : le programme d'installation s'appelle runInstaller ; il se trouve
dans le rpertoire INSTALL\install\solaris.
Par exemple, pour excuter le programme d'installation sur une plate-forme
Windows NT partir d'un CD-ROM se trouvant dans le lecteur D, entrez :
D:\> setup

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-5

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Architecture OFA
(Optimal Flexible Architecture)

Organise le logiciel et les donnes sur le disque.

Facilite le passage d'une base de donnes


Oracle une autre.

Gre et administre l'extension des bases


de donnes.

Rduit la contention de ressources.

Facilite l'excution des tches d'administration


courantes.

Est similaire sous NT et UNIX.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Architecture OFA (Optimal Flexible Architecture)


L'installation et la configuration sur toutes les plates-formes prises en charge sont
dsormais conformes l'architecture OFA (Optimal Flexible Architecture). Cette
architecture organise les fichiers de base de donnes en fonction de leur type et de leur
utilisation. Les fichiers binaires, qui contiennent le code de base Oracle, sont installs
dans un mme rpertoire. Les fichiers de contrle, les fichiers journaux et les fichiers
d'administration sont installs dans un second rpertoire, et les fichiers de base de
donnes dans un troisime.
L'architecture OFA :
fournit une mthode structure pour l'installation des bases de donnes et des
applications Oracle,
facilite l'administration, notamment les oprations de sauvegarde et de restauration
des donnes, grce une prsentation mieux structure des fichiers,
amliore les performances en diminuant la contention sur les disques pour les
fichiers de donnes, les fichiers binaires et les fichiers d'administration qui rsident
dsormais dans des rpertoires ou sur des disques diffrents,
facilite l'administration de plusieurs rpertoires d'origine Oracle Home sur une
mme machine en rpartissant les fichiers sur des units de disque et dans des
rpertoires diffrents.

.....................................................................................................................................................
2-6
Oracle DBA : Architecture et administration

Oracle Universal Installer


.....................................................................................................................................................

Lancer Oracle Universal Installer


2-1
1
2
3
4

Lancer Universal Installer et afficher la liste des produits installs.


Lancez Universal Installer :
Start>Programs>Oracle Installation Products>Universal Installer
Cliquez sur Installed Products dans la fentre de bienvenue pour afficher
la liste des produits installs.
Dveloppez un rpertoire d'origine Oracle Home et vrifiez les produits installs
et leur version. Une fois les oprations termines, cliquez sur Close.
Cliquez sur Exit pour quitter Universal Installer. Cliquez sur Yes dans la bote
de dialogue.

Lancer Universal Installer, mais passer outre la page de bienvenue.


1 Lancez Universal Installer avec l'option -nowelcome
Start>Run.
2 Entrez "C:\Program Files\Oracle\oui\install\setup.exe"
-nowelcome,, puis cliquez sur OK.

2-2

3 Cliquez sur Exit pour quitter Universal Installer. Cliquez sur Yes dans la bote

de dialogue.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-7

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Valider les utilisateurs ayant des privilges


Administrateurs de base de donnes

Les deux administrateurs de base de donnes


par dfaut SYS et SYSTEM

sont crs automatiquement,


ont le rle de DBA.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Administrateurs de base de donnes


Des privilges supplmentaires sont ncessaires pour excuter des tches
d'administration (cration d'utilisateurs, par exemple) sur le serveur Oracle.
Ces oprations doivent tre ralises par les administrateurs de base de donnes.
Les deux comptes utilisateur de base de donnes SYS et SYSTEM sont crs
automatiquement avec la base de donnes et reoivent le rle d'administrateur de
base de donnes, un rle prdfini cr systmatiquement avec chaque base de
donnes. Ce rle dispose de tous les privilges systme sur la base de donnes.
Remarque : ce sujet est trait en dtail dans le chapitre "Grer les privilges".

.....................................................................................................................................................
2-8
Oracle DBA : Architecture et administration

Valider les utilisateurs ayant des privilges


.....................................................................................................................................................

Utilisateurs SYS et SYSTEM

SYS

SYSTEM

Mot de passe :
change_on_install

Mot de passe :
manager

Propritaire du
dictionnaire de
donnes de la base

Propritaire de tables
et de vues internes
supplmentaires
utilises par les
outils Oracle

Copyright Oracle Corporation, 1999. Tous droits rservs.

SYS
Lors de la cration d'une base de donnes, l'utilisateur SYS, identifi l'origine par
le mot de passe change_on_install, est cr automatiquement et obtient le rle
d'administrateur de base de donnes.
Toutes les tables et vues de base du dictionnaire de donnes sont stockes dans
le schma SYS.
SYSTEM
Lors de la cration d'une base de donnes, l'utilisateur SYSTEM, identifi l'origine par
le mot de passe manager, est galement cr automatiquement et reoit les privilges
du rle d'administrateur de base de donnes.
D'autres tables et vues appartenant l'utilisateur SYSTEM sont galement cres.
Elles contiennent des informations d'administration utilises par les outils Oracle.
SYS et SYSTEM sont des utilisateurs standard, stocks dans le dictionnaire de donnes,
qui ne peuvent se connecter que lorsque la base de donnes est ouverte.
Remarque : vous serez certainement amen crer au moins un nom d'administrateur
supplmentaire pour excuter les tches d'administration quotidiennes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-9

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Mthodes d'authentification
Administration
de base de
donnes distante

Administration
de base de
donnes locale

Oui
La connexion
est-elle
scurise ?

Non

Voulez-vous
utiliser
l'authentification
par le systme
d'exploitation ?

Oui

Non

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser
l'authentification
par le systme
d'exploitation

Utiliser un fichier
de mots de
passe

Se connecter avec des privilges administrateur


Dans certains cas, l'administrateur de base de donnes doit utiliser une mthode
d'authentification spciale lorsque la base de donnes n'est pas ouverte, notamment
pour les oprations d'arrt et de dmarrage.
Selon que vous souhaitez administrer la base de donnes localement sur la machine
sur laquelle cette base est installe ou administrer plusieurs serveurs de base de
donnes partir d'un client distant, vous pouvez authentifier les administrateurs
en utilisant l'authentification par le systme d'exploitation ou l'authentification
par le fichier de mots de passe.

.....................................................................................................................................................
2-10
Oracle DBA : Architecture et administration

Valider les utilisateurs ayant des privilges


.....................................................................................................................................................

Authentification par
le systme d'exploitation

Dfinir l'utilisateur devant tre authentifi


par le systme d'exploitation.

Affecter la valeur NONE au paramtre


REMOTE_LOGIN_PASSWORDFILE.

Utiliser les commandes suivantes pour


la connexion une base de donnes :
CONNECT
CONNECT // AS
AS SYSDBA
SYSDBA
CONNECT
CONNECT // AS
AS SYSOPER
SYSOPER

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser l'authentification par le systme d'exploitation


L'authentification d'un utilisateur par le systme d'exploitation UNIX est diffrente
de l'authentification d'un utilisateur sur une plate-forme Windows NT.
UNIX
1 L'utilisateur doit tre membre du groupe UNIX, gnralement appel dba,
qui est cr avant l'installation du serveur Oracle. Le programme d'installation
affecte ce groupe UNIX les privilges utilisateur et administrateur de base de
donnes Oracle.
2 Affichez les fichiers /etc/group et /etc/passwd afin d'identifier les membres
du groupe UNIX.
Les lignes suivantes sont extraites du fichier /etc/passwd :
user15:x:1064:100::/home/disk3/user15:/bin/ksh
oracle:x:920:100::/export/home/oracle:/bin/ksh
vvijayan:x:1032:100::/users/vvijayan:/bin/ksh

Les lignes suivantes figurent dans le fichier /etc/group :


dba::100:root,oracle,estrodac,tigger,jdiianni

3 Vrifiez que le paramtre REMOTE_LOGIN_PASSWORDFILE a pour valeur

NONE. La valeur par dfaut de ce paramtre est EXCLUSIVE pour la version


8.1.x ou ultrieure. Dans les versions antrieures d'Oracle, la valeur par dfaut
tait NONE.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-11

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

UNIX (suite)
4 Connectez-vous la base de donnes avec le privilge SYSDBA ou SYSOPER.
Ce sont des privilges d'administration spciaux. La barre oblique implique que
la connexion s'effectue dans le schma appartenant SYS :
CONNECT / AS {SYSDBA |SYSOPER}

Remarque : l'utilisation des privilges SYSDBA et SYSOPER est explique dans le


chapitre "Grer les privilges".
Windows NT
1 Crez un nouveau groupe local d'utilisateurs Windows NT nomm
ORA_<SID>_DBA et ORA_<SID>_OPER spcifique une instance,
ou ORA_DBA et ORA_OPER non spcifique une instance.
2 Ajoutez un utilisateur Windows NT au groupe. Lorsque vous accdez ce
domaine, vous tes automatiquement authentifi comme tant un administrateur
de base de donnes autoris.
3 Vrifiez que le fichier sqlnet.ora contient la ligne suivante :
SQLNET.AUTHENTICATION_SERVICES = (NTS)
4 Affectez la valeur NONE au paramtre REMOTE_LOGIN_PASSWORDFILE.
5 Connectez-vous la base de donnes avec le privilge SYSDBA ou SYSOPER :
CONNECT / AS {SYSDBA |SYSOPER}

Remarque
Pour vous connecter un serveur Windows NT partir d'un client Windows NT
ou Windows 95 local ou distant, installez Net8 sur le client et sur le serveur ; vous
pouvez galement utiliser une connexion JDBC.
La commande CONNECT INTERNAL des versions antrieures d'Oracle a t
remplace par la syntaxe suivante :
CONNECT INTERNAL/pw AS SYSDBA

La commande CONNECT INTERNAL continue tre prise en charge des fins


de compatibilit descendante uniquement.

.....................................................................................................................................................
2-12
Oracle DBA : Architecture et administration

Valider les utilisateurs ayant des privilges


.....................................................................................................................................................

Utiliser l'authentification par


le fichier de mots de passe

Crer le fichier de mots de passe l'aide


de l'utilitaire :
$orapwd file=$ORACLE_HOME/dbs/orapwSID
password=admin entries=10

Affecter la valeur EXCLUSIVE ou SHARED au


paramtre REMOTE_LOGIN_PASSWORDFILE.

Utiliser la commande suivante pour la connexion


la base de donnes :
CONNECT
CONNECT INTERNAL/ORACLE
INTERNAL/ORACLE

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser l'authentification par le fichier de mots de passe


Oracle fournit un utilitaire de gestion des mots de passe permettant de se connecter
au serveur Oracle l'aide d'un nom d'utilisateur et d'un mot de passe standard, mais
l'utilitaire connecte l'utilisateur au schma SYS et non au nom d'utilisateur fourni.
L'accs la base de donnes l'aide du fichier de mots de passe est fourni par des
commandes GRANT spciales mises par des utilisateurs disposant de privilges
(voir le chapitre "Grer les privilges").
Utiliser un fichier de mots de passe sur un serveur UNIX et sur un serveur
Windows NT
1 Crez le fichier de mots de passe l'aide de l'utilitaire de gestion des mots
de passe ORAPWD.
orapwd file=fname password=password entries=entries

o :
fname
password
entries

est le nom du fichier de mots de passe,


est le mot de passe de SYS et INTERNAL,
reprsente le nombre maximal
d'administrateurs de base de donnes
diffrents.
La commande suivante cre un fichier de mots de passe contenant le mot de passe
admin pour les utilisateurs SYS et INTERNAL et accepte jusqu' cinq utilisateurs avec
des mots de passe diffrents :
Sous UNIX : $orapwd file=$ORACLE_HOME/dbs/orapwU15 password=admin
entries=10

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-13

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Utiliser l'authentification par le fichier de mots de passe (suite)


Utiliser un fichier de mots de passe sur un serveur UNIX et sur un serveur
Windows NT (suite)
Sous Windows NT : C:\>orapwd file=%ORACLE_HOME%/database/pwdSID
password=admin entries=10

2 Affectez la valeur EXCLUSIVE ou SHARED au paramtre

REMOTE_LOGIN_PASSWORDFILE.
o :
EXCLUSIVE
indique qu'une seule instance peut utiliser
le fichier de mots de passe et que ce dernier
contient des noms autres que SYS et
INTERNAL.
SHARED
indique que plusieurs instances peuvent
utiliser le fichier de mots de passe (les seuls
utilisateurs reconnus par le fichier de mots
de passe sont SYS et INTERNAL).
3 Connectez-vous la base de donnes comme suit :
SQL> CONNECT internal/oracle

Remarque
Sous UNIX :
Les fichiers de mots de passe sont gnralement situs dans le rpertoire
$ORACLE_HOME/dbs.
Sous Windows NT :
Le fichier de mots de passe se trouve gnralement dans le rpertoire
%ORACLE_HOME%\DATABASE. Pour ne pas utiliser l'emplacement par dfaut
du fichier de mots de passe, dfinissez la cl ORA_SID_PWFILE dans la base
de registres NT.
Le mot de passe pour INTERNAL est Oracle, si Oracle est install via
l'option Oracle8i Enterprise Edition. Vous pouvez dfinir le mot de passe
lors de l'installation l'aide de l'option d'installation personnalise.
Grer le fichier de mots de passe
Sous UNIX et Windows NT, utilisez l'utilitaire ORAPWD pour supprimer le fichier
de mots de passe existant et en crer un nouveau.

.....................................................................................................................................................
2-14
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Oracle Enterprise Manager


Prsentation d'Oracle Enterprise Manager

Systme unifi de gestion de l'environnement


Oracle en entreprise

Vue centralise de l'ensemble du systme gr

Application Management Pack

Services sous-jacents
DBA Management Pack gratuit
Performance Pack, Tuning Pack, Diagnostics Pack
et Change Management Pack

Copyright Oracle Corporation, 1999. Tous droits rservs.

Prsentation d'Oracle Enterprise Manager


Oracle Enterprise Manager est une structure de gestion unifie de l'environnement
Oracle en entreprise.
La console Oracle Enterprise Manager fournit une vue globale du systme. Les objets
et leurs relations au sein du systme y sont reprsents dans une arborescence
hirarchique, ainsi que sous forme graphique.
Des processus Agent Intelligent, rsidant sur des nuds grs, facilitent la gestion
distance des travaux, des vnements et des statuts. Ces agents permettent une
gestion autonome et rapide.
Les services standard (services de travaux, d'vnements, de reprage (discovery)
et de scurit) compltent la structure Oracle Enterprise Manager en fournissant les
fonctionnalits de base de toutes les applications Oracle Enterprise Manager.
Oracle Enterprise Manager comprend galement des applications de gestion
spcialises.
DBA Management Pack : est fourni gratuitement avec la base de donnes,
Advanced Management Packs : Tuning Pack, Diagnostics Pack et Change
Management Pack,
Application Management Pack : prise en charge d'Oracle Applications Concurrent
Manager, de WebForm Servers et des sous-systmes Workflow.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-15

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Prsentation d'Oracle Enterprise Manager (suite)


La structure est extensible et fournit un grand nombre d'API permettant d'intgrer
n'importe quelle application de gestion, notamment la gestion de l'ensemble des
produits Oracle ou de ceux des partenaires ou des clients.
Remarque technique :
Application Management Pack n'est pas fourni avec Oracle Enterprise Manager 2.0.4 ;
il le sera ultrieurement.

.....................................................................................................................................................
2-16
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Console et applications de type Java


Console
Oracle
Management Server

Rfrentiel

Oracle
Management Server

Copyright Oracle Corporation, 1999. Tous droits rservs.

Agent

Serveur
Oracle

Agent

Serveur
Oracle

Agent

Serveur
Oracle

Architecture d'Oracle Enterprise Manager


La version 2 d'Oracle Enterprise Manager tend l'architecture client-serveur de la
version 1 pour fournir un modle hautement volutif trois niveaux (3-tiers).
Le premier niveau est constitu d'une console compatible Java et d'applications
intgres pouvant tre installes ou excutes partir d'un navigateur Web.
Oracle Management Server
Le composant de deuxime niveau de la version 2 d'Oracle Enterprise Manager
est Oracle Management Server (OMS). Le serveur OMS a pour principale fonction
d'offrir des informations systme centralises ainsi qu'un contrle distribu entre les
clients et les nuds grs en traitant et en administrant toutes les tches systme.
L'ajout de serveurs OMS permet d'adapter l'architecture l'augmentation du nombre
de systmes grs. En outre, les fonctions de gestion automatique des incidents et
d'quilibrage de la charge intgres au serveur OMS amliorent considrablement la
fiabilit du traitement des notifications.
Rfrentiel Oracle Enterprise Manager
Le serveur OMS utilise le rfrentiel Oracle Enterprise Manager comme emplacement
d'administration permanent. Le rfrentiel (repository) gre les donnes systme, les
donnes des applications et le statut des entits gres distribues dans l'ensemble de
l'environnement. La version 2 permet plusieurs utilisateurs d'un systme dans lequel
les responsabilits sont partages d'accder aux donnes du rfrentiel et de les
partager.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-17

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Rfrentiel Oracle Enterprise Manager (suite)


Le troisime niveau est compos de cibles, telles que des bases de donnes, des nuds
ou d'autres services grs. L'Agent Intelligent excute les travaux et les vnements
envoys par le serveur OMS.
Les connexions client-serveur la base de donnes via la console Oracle Enterprise
Manager sont toujours prises en charge.

.....................................................................................................................................................
2-18
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Services communs du deuxime niveau

Service de
planification
des travaux

Service de
gestion des
vnements

Service
de scurit

Service de
reprage
Agent

Serveur OMS (Oracle Management Server)

Rfrentiel

Copyright Oracle Corporation, 1999. Tous droits rservs.

Services communs
Oracle Enterprise Manager fournit des services permettant de grer les nuds
de l'ensemble du rseau.
Service de reprage Oracle Enterprise Manager repre (localise) automatiquement
tous les services et bases de donnes des nuds grs, une fois les nuds identifis.
Outre les bases de donnes, ces services comprennent les serveurs Web, les processus
d'coute (listeners), les serveurs parallles, les serveurs vido et divers autres services.
Systme de planification des travaux Le systme de planification des travaux
fournit des fonctions de stockage et d'envoi des travaux permettant d'automatiser les
tches courantes et rptitives. Vous pouvez crer et grer les travaux, planifier leur
excution, afficher des informations concernant des travaux donns et partager ces
informations avec d'autres administrateurs. Le systme peut galement vous signaler,
ainsi qu' d'autres administrateurs, la russite ou l'chec de travaux par courrier
lectronique ou par pageur.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-19

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Services communs (suite)


Systme de gestion des vnements Vous pouvez utiliser le systme de gestion
des vnements pour identifier les incidents de fonctionnement (pertes de service),
les situations limites (insuffisance d'espace de stockage) et les problmes de capacit
(utilisation intensive de la CPU).
Lorsqu'un vnement est dtect, vous ou l'administrateur dsign pouvez en tre
averti. L'vnement peut galement dclencher l'excution d'un travail de correction
(fix-it job).
Scurit Des paramtres de scurit sont dfinis pour les services, les objets et
les administrateurs. Par exemple, un super-administrateur peut crer de nouveaux
administrateurs et dfinir leurs privilges.

.....................................................................................................................................................
2-20
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Rfrentiel partag

Partage des informations par les administrateurs


dans un rfrentiel central

Accs administrateur contrlant :


les super-utilisateurs
les utilisateurs standard

Un super-utilisateur par dfaut : sysman/oem_temp


Gestion des administrateurs partir de la console

Copyright Oracle Corporation, 1999. Tous droits rservs.

Systme multi-utilisateur
La version 2 d'Oracle Enterprise Manager prsente un systme multi-utilisateur.
Chaque administrateur dispose de son propre compte qui lui permet de se connecter
la console. Selon les autorisations dfinies, l'administrateur peut accder aux donnes
du rfrentiel central, un rfrentiel partag par tous les administrateurs Oracle
Enterprise Manager de l'environnement gr.
Les super-utilisateurs bnficient d'autorisations avances et dfinissent les
autorisations des autres administrateurs.
Remarque : lors de l'installation d'Oracle Enterprise Manager, le super-utilisateur par
dfaut sysman/oem_temp est cr. Un super-utilisateur dispose de tous les privilges
et peut crer des super-utilisateurs ou des utilisateurs standard.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-21

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Configuration Assistant

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dmarrer Enterprise Manager Configuration Assistant


L'outil Configuration Assistant cre des rfrentiels partags et configure le serveur
OMS et la console locale. Il est dmarr automatiquement par le programme
d'installation Universal Installer une fois l'installation termine, mais vous pouvez
le dmarrer manuellement depuis :
le systme d'exploitation en excutant la commande suivante :
%emrepmgr

le menu Start de Windows NT en cliquant sur Start>Programs>Oracle - EM


Home> Oracle Enterprise Management>Enterprise Manager Configuration
Assistant.

Remarque technique
Avant d'utiliser cet assistant, vrifiez que toutes les bases de donnes qui contiendront
un rfrentiel partag disposent des tablespaces ncessaires. Il est recommand de
placer chaque rfrentiel dans un tablespace distinct pour faciliter la gestion.

.....................................................................................................................................................
2-22
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Crer un rfrentiel
2-3 Configuration Assistant permet de crer ou de supprimer un rfrentiel Oracle
Enterprise Manager. Vous pouvez galement l'utiliser pour modifier la connexion
d'un rfrentiel sur un serveur OMS (Oracle Management Server).
Crez un rfrentiel l'aide de Configuration Assistant.
1 Lancez Configuration Assistant :
Start>Programs>Oracle - EMV2 Home>Oracle Enterprise Management
>Enterprise Manager Configuration Assistant
2 Slectionnez le bouton d'option "Create a new repository", puis cliquez sur le
bouton Next.
3 Entrez le nom d'utilisateur system, le mot de passe manager et le service
host:port:sid (JDBC), puis cliquez sur Next.
4 Si un avertissement s'affiche indiquant que le nombre de processus doit tre
gal 200, cliquez sur Yes pour continuer.
5 Entrez le nom d'utilisateur Rep_Usernumber et le mot de passe manager,
confirmez le mot de passe manager, puis cliquez sur Next.
6 Indiquez le tablespace OEM et le tablespace temporaire TEMP, puis cliquez sur Next.
7 Cliquez sur Finish, puis attendez la fin de la cration du rfrentiel. Cliquez sur
Close pour quitter Configuration Assistant.
2-4 Vous devez redmarrer le serveur OMS aprs avoir cr le rfrentiel.
Sous Windows NT, le serveur doit redmarrer automatiquement lorsque vous
dmarrez le PC.
Dmarrez le service OMS.
1 Dmarrez le service OMS :
Start>Settings>Control Panel
2 Cliquez deux fois sur Services, puis slectionnez le service OracleEMV2
HomeManagement Server. S'il n'est pas dmarr, cliquez sur Start pour
le dmarrer.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-23

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Console Oracle Enterprise Manager


1

Copyright Oracle Corporation, 1999. Tous droits rservs.

Console Oracle Enterprise Manager


La console Oracle Enterprise Manager fournit une vue globale du systme. La console
affiche les objets du systme dans une arborescence hirarchique et sous forme
graphique. Elle prsente les fonctionnalits suivantes :
1 Un ensemble de tiroirs appelle d'autres applications pour excuter des tches
d'administration, ce qui permet d'viter de recourir au menu.
2 Une vue de type navigateur ou explorateur d'objets offre une vision hirarchique
des services Oracle sur le rseau. Le navigateur permet aux administrateurs de
naviguer dans les diffrents services Oracle, tels que les bases de donnes, les
processus d'coute, les nuds et les serveurs de noms, et de modifier les
caractristiques d'objets, tels que les utilisateurs et les tables qu'ils contiennent.
3 Un systme Job permet d'excuter distance les tches associes aux processus
d'coute, aux bases de donnes ou l'hte lui-mme. Le systme Job repose sur
le moteur procdural TCL (Tool Control Language).
4 Vous pouvez utiliser un menu pour dmarrer d'autres applications d'administration
et excuter diverses tches.
5 Une carte, ou vue topographique, permet de regrouper les services Oracle en
fonction de leurs relations spatiales et/ou de leurs fonctions. Cette vue donne la
possibilit aux utilisateurs de se concentrer sur les objets grs qui les intressent.
6 Un systme Event surveille et signale le statut du systme. Le systme Event,
combin au systme Job, excute les actions correctives en fonction de critres
prdfinis et peut signaler les vnements l'administrateur, par pageur ou courrier
lectronique.

.....................................................................................................................................................
2-24
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Dmarrer la console Oracle Enterprise Manager


2-5 Dmarrer la console pour afficher une vue gnrale du systme associ au
rfrentiel connect.
1 Dmarrez la console :
Start>Programs>Oracle - EMV2 Home>Oracle Enterprise Management
>Enterprise Manager Console
2 Entrez le nom d'administrateur sysman, le mot de passe oem_temp et le serveur de
gestion nom du PC hte, puis cliquez sur OK.
3 Lorsqu'un message vous demande de modifier le mot de passe, entrez manager.
2-6 Pour afficher un service dans l'arborescence du navigateur, le service doit tre
repr par l'agent sur le nud o il rside.
1 Slectionnez Navigator>Discover Nodes... dans le menu Console.
2 Entrez le nom de l'hte du serveur, puis cliquez sur OK. Cliquez sur
Close une fois le service repr. La base de donnes doit dsormais figurer
dans l'arborescence du navigateur.
3 Pour le vrifier, dveloppez le dossier Database.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-25

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

DBA Management Pack

Instance Manager
Security Manager
Storage Manager
Schema Manager
SQL*Plus Worksheet
Outils et assistants de gestion
et de sauvegarde des donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

DBA Management Pack


Oracle Enterprise Manager comprend les applications standard suivantes :
Instance Manager : permet de contrler la disponibilit d'une base de donnes
et de dfinir les paramtres d'initialisation pour prciser les caractristiques de
l'instance.
Security Manager : gre les utilisateurs et leurs privilges.
Storage Manager : organise les fichiers de la base de donnes et gre les segments
d'annulation.
Schema Manager : cre et gre les objets, tels que les tables, les index et les vues.
SQL*Plus Worksheet : interface de ligne de commande permettant d'excuter des
commandes SQL, du code PL/SQL, des commandes SQL*Plus et des commandes
DBA spciales, telles que startup et shutdown.
Outils et assistants de gestion des donnes : permettent de charger et de rorganiser
les donnes dans les bases de donnes.
Outils et assistants de gestion des sauvegardes : permettent de sauvegarder,
de restaurer et de rcuprer les bases de donnes et de grer les fichiers de
journalisation (redo log).

.....................................................................................................................................................
2-26
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

DBA Management Pack (suite)


Remarque :
Vous pouvez appeler toutes les applications partir de la console ou directement
partir du systme d'exploitation.
L'utilisation de ces applications pour excuter des tches spcifiques est dcrite
dans les autres chapitres de ce cours.
L'utilisation des outils et des assistants de gestion des sauvegardes pour
sauvegarder, restaurer et rcuprer les bases de donnes est dcrite dans
le cours Oracle DBA : Sauvegarde et restauration.
Appeler SQL*Plus Worksheet
1 Dmarrez SQL*Plus Worksheet :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>SQL Plus Worksheet

2 Veillez vous connecter directement une base de donnes. Entrez le nom

d'utilisateur system, le mot de passe manager et le nom de service de la base


de donnes de travail, puis cliquez sur OK.
3 Slectionnez File>Exit pour fermer la feuille de calcul.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-27

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Diagnostic Pack, Tuning Pack


et Change Management Pack
Capacity Planner

DB Alter

Performance Mgr.

DB Capture

TopSessions

DB Diff

Trace Data Viewer

DB Propagate

Trace Mgr.

DB Quick Change
DB Search
Plan Manager

Oracle Expert
SQL Analyze
Tablespace Mgr.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Management Packs
Il existe trois packs de gestion contenant des outils de diagnostic, de rglage et
de gestion des modifications d'un environnement de base de donnes Oracle.
Diagnostics Pack contient les outils suivants :
Oracle Trace et Data Viewer : permettent de crer, de planifier, d'administrer
et d'afficher les informations de trace collectes partir de la base de donnes,
de Net8 et d'autres applications.
Performance Manager : permet de crer, d'afficher et de modifier des
graphiques pour surveiller et afficher les informations concernant la base
de donnes.
Capacity Planner : collecte des statistiques sur les performances de la base
de donnes et du systme d'exploitation, enregistre l'historique de la base de
donnes et analyse les donnes pour planifier les futurs besoins en capacit.
TopSessions : affiche des informations sur les sessions actuellement
connectes une base de donnes.
Advanced Events : fournit d'autres vnements Oracle Enterprise Manager
pour administrer la base de donnes de manire proactive.

.....................................................................................................................................................
2-28
Oracle DBA : Architecture et administration

Oracle Enterprise Manager


.....................................................................................................................................................

Management Packs (suite)


Tuning Pack contient les outils suivants :
Oracle Expert : optimise les performances de la base de donnes Oracle
en collectant des paramtres et des informations sur l'environnement, les
applications et la structure de la base de donnes (les donnes collectes
sont analyses et des recommandations de rglage sont proposes).
Tablespace Manager : dtecte et rsout les problmes de gestion d'espace
et rorganise les objets de base de donnes.
SQL Analyze : localise, analyse et modifie les instructions SQL pour amliorer
les performances des applications.
Change Management Pack contient les outils suivants :
Database Capture : saisit des ensembles de dfinitions d'objets de base de
donnes (lignes de base (baselines)).
Database Diff : compare les dfinitions d'objet de deux bases de donnes
(ou lignes de base).
Database Quick Change : modifie une seule dfinition d'objet dans une seule
base de donnes.
Database Alter : modifie une ou plusieurs dfinitions d'objet dans une ou
plusieurs bases de donnes.
Database Propagate : slectionne une ou plusieurs dfinitions d'objet dans
une base de donnes et les propage dans un autre schma ou dans une autre
base de donnes.
Plan Manager : centralise toutes les applications de gestion des modifications.
Remarque : les expressions tablespace, segment, extent (ensemble de blocs contigus)
et espace libre sont expliques dans les chapitres suivants.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
2-29

Chapitre 2 : Initiation Oracle Server


.....................................................................................................................................................

Synthse
Synthse
Ce chapitre vous a permis d'apprendre :
dcrire les caractristiques du programme
d'installation Universal Installer
bas sur un moteur Java,
prise en charge de plusieurs emplacements Oracle,
excution en mode automatique.
expliquer l'authentification par le systme
d'exploitation et par le fichier de mots de passe,
dcrire les principaux composants d'Oracle Enterprise
Manager
architecture trois niveaux,
console et applications de type Java,
systme multi-utilisateur avec rfrentiels partags,
point de contrle central.
Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
2-30
Oracle DBA : Architecture et administration

3
.................................

Grer une instance de


base de donnes Oracle

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

crer le fichier de paramtres,

fermer la base de donnes et arrter l'instance,

dmarrer une instance et ouvrir la base


de donnes,
extraire et dfinir les valeurs de paramtre,
grer des sessions,
surveiller le fichier ALERT et les fichiers trace.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
3-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation
Processus
utilisateur

Processus
serveur
PGA

Instance
Mmoire SGA

Zone de mmoire
partage

Fichier
ALERT
Fichiers
trace

Fichiers de
donnes

Fichiers de
contrle

Fichier de
paramtres
Fichier
de mots
de passe

Fichiers
de journalisation

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Prsentation des procdures de dmarrage et d'arrt d'un serveur Oracle


Une base de donnes Oracle ne peut tre disponible pour les utilisateurs que si
l'administrateur de base de donnes (DBA) a pralablement ouvert la base de donnes
et dmarr une instance.
Au cours du dmarrage d'une base de donnes, les vnements suivants se produisent.
Chaque vnement fait passer la base de donnes Oracle par diffrentes tapes :
1 Dmarrage d'une instance.
2 Montage de la base de donnes.
3 Ouverture de la base de donnes.
Au dmarrage d'une instance, Oracle alloue la mmoire SGA (System Global Area) et
lance les processus d'arrire-plan l'aide d'un fichier de paramtres qui contient les
paramtres d'initialisation.
Si vous avez dmarr une instance ou ouvert une base de donnes, procdez comme
suit pour arrter la base :
1 Fermez la base de donnes.
2 Dmontez-la.
3 Arrtez l'instance.
Lorsque la base de donnes est ferme, les utilisateurs ne peuvent pas y accder.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-3

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Fichier de paramtres d'initialisation


Instance
Zone de mmoire
partage

Mmoire SGA

Cache
de tampons
de donnes

SMON

Tampon
de journalisation

DBWR PMON

CKPT

Cache
"library"
Cache du
dictionnaire
de donnes
LGWR

ARCH

initU15.ora

SQL>
SQL>
SQL>
SQL>

CONNECT
CONNECT
STARTUP
STARTUP

// AS
AS SYSDBA
SYSDBA
PFILE=/DISK1/initU15.ora
PFILE=/DISK1/initU15.ora

Copyright Oracle Corporation, 1999. Tous droits rservs.

Crer et utiliser le fichier de paramtres


Le fichier de paramtres, communment appel fichier initsid.ora, est un fichier
texte modifiable l'aide d'un diteur standard du systme d'exploitation.
Par dfaut, il se trouve dans le rpertoire $ORACLE_HOME/dbs sous UNIX, et dans
le rpertoire %ORACLE_HOME%\database sous Windows NT. Dans Oracle8i pour
Windows NT, le fichier de paramtres pointe sur le rpertoire
%ORACLE_HOME%\admin\sid \pfile qui contient le fichier de paramtres rel.
Le paramtre IFILE est utilis cet effet.
Le fichier de paramtres n'est lu que pendant le dmarrage de l'instance. Si vous le
modifiez, arrtez l'instance puis redmarrez-la pour appliquer les nouvelles valeurs
de paramtre. Certains paramtres sont dynamiques, c'est--dire qu'ils peuvent tre
modifis pendant l'excution de l'instance. Les paramtres dynamiques sont traits
plus loin dans ce chapitre.
Oracle Enterprise Manager Console ou Instance Manager permet l'administrateur de
base de donnes (DBA) de consulter et de modifier les paramtres d'initialisation. Ces
paramtres sont conservs dans un fichier de paramtres local ou dans le rfrentiel
(repository) Oracle Enterprise Manager l'aide de configurations stockes. Si
l'administrateur de base de donnes utilise des configurations stockes, il doit se
connecter un serveur OMS (Oracle Management Server) pour accder au rfrentiel.
Dans les versions antrieures d'Oracle Enterprise Manager (1.x), les paramtres
d'initialisation taient stocks en local dans la base de registres Windows NT.

.....................................................................................................................................................
3-4
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Crer une configuration stocke


3-1 Lancez Instance Manager et enregistrez une configuration stocke.
1 Lancez la console Oracle Enterprise Manager :
Start>Programs>Oracle - EMV2 Home>Oracle Enterprise Management
>Enterprise Manager Console
2 Entrez l'ID administrateur sysman, le mot de passe manager et le nom du serveur
de gestion nom du PC hte, puis cliquez sur OK.
3 Cliquez sur le second tiroir situ gauche de la console et slectionnez Instance
Manager.

4 Dveloppez le dossier de la base de donnes de travail et slectionnez les

paramtres d'initialisation dans l'arborescence du navigateur.


5 Ces paramtres doivent s'afficher dans le panneau droit de la fentre. Cliquez sur
Save et nommez la configuration, puis cliquez sur OK pour l'enregistrer en tant
que configuration stocke.
6 Dveloppez le dossier des configurations stockes pour vrifier que les paramtres
ont t enregistrs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-5

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Utiliser les paramtres

Dimensionnez la mmoire SGA.

Dfinissez les limites relatives aux utilisateurs


ou aux processus.

Dfinissez les limites relatives aux ressources


de la base de donnes.

Dfinissez les divers attributs physiques de la


base de donnes, tels que la taille des blocs.

Indiquez l'emplacement des fichiers de contrle,


des fichiers journaux archivs, du fichier ALERT
et des fichiers trace.

Dfinissez les valeurs par dfaut de la base


de donnes et de l'instance.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser les paramtres


Les paramtres du fichier initsid.ora peuvent avoir une incidence importante sur
les performances de la base de donnes. Vous devez en modifier certains pour les
systmes de production en procdant comme suit :
Dimensionnez les composants de la mmoire SGA (System Global Area) pour
optimiser les performances.
Dfinissez les valeurs par dfaut de la base de donnes et de l'instance.
Dfinissez les limites relatives aux utilisateurs ou aux processus.
Dfinissez les limites relatives aux ressources de la base de donnes.
Dfinissez (uniquement lors de la cration de la base de donnes) les divers
attributs physiques de la base de donnes, tels que la taille des blocs.
Indiquez les fichiers de contrle, les fichiers journaux archivs, le fichier ALERT
et l'emplacement des fichiers trace.

.....................................................................................................................................................
3-6
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Exemple de fichier de paramtres


# Initialization Parameter File: initU15.ora
db_name
= U15
control_files
= (/DISK1/control01.con,
/DISK2/control02.con)
db_block_size
= 8192
db_block_buffers
= 2048
shared_pool_size
= 52428800
log_buffer
= 64K
processes
= 50
db_files
= 1024
log_files
= 10
max_dump_file_size
= 10240
background_dump_dest = (/home/disk3/user15/BDUMP)
user_dump_dest
= (/home/disk3/user15/UDUMP)
core_dump_dest
= (/home/disk3/user15/CDUMP)
rollback_segments
= (r01,r02,r03,r04,r05,r06,r07,r08)
...
Copyright Oracle Corporation, 1999. Tous droits rservs.

Rgles applicables la dclaration des paramtres


Indiquez les valeurs comme suit : keyword=value.
Tous les paramtres sont facultatifs.
Le serveur possde une valeur par dfaut pour chaque paramtre. En fonction de
celui-ci, la valeur peut dpendre du systme d'exploitation.
Les paramtres peuvent tre indiqus dans n'importe quel ordre.
Les lignes de commentaires sont prcdes du symbole #.
Placez les paramtres entre guillemets pour inclure les littraux de type caractre.
Vous pouvez ajouter d'autres fichiers l'aide du mot-cl IFILE.
Si la distinction majuscules/minuscules est importante pour le systme
d'exploitation, elle doit galement tre respecte pour les noms de fichier.
Les valeurs multiples sont places entre parenthses et spares par des virgules.
Remarque : adoptez une convention d'numration des paramtres ; numrez-les par
ordre alphabtique ou regroupez-les par fonction.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-7

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Paramtres indiquer
Paramtre
BACKGROUND_DUMP_DEST

COMPATIBLE
CONTROL_FILES
DB_BLOCK_BUFFERS
DB_NAME

SHARED_POOL_SIZE
USER_DUMP_DEST

Description
Emplacement utilis pour l'criture des fichiers trace
des processus d'arrire-plan (LGWR, DBWn, etc.).
C'est galement l'emplacement du fichier d'alertes.
Version de serveur avec laquelle cette instance est
compatible. La valeur par dfaut est 8.1.0.
Nom des fichiers de contrle.
Nombre de blocs mis en mmoire cache SGA.
Identificateur de base de donnes pouvant comporter
jusqu' 8 caractres. C'est le seul paramtre
obligatoire lors de la cration d'une base de donnes.
Taille (en octets) de la zone de mmoire partage.
Emplacement dans lequel des fichiers trace de
dbogage utilisateur sont crs pour un processus
utilisateur.

Remarque technique
Les valeurs par dfaut dpendent de la version du serveur Oracle.

.....................................................................................................................................................
3-8
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Paramtres communment modifis


Paramtre
IFILE

LOG_BUFFER
MAX_DUMP_FILE_SIZE
PROCESSES
SQL_TRACE
TIMED_STATISTICS

Description
Nom du fichier de paramtres imbriquer dans le fichier
de paramtres en cours. Il est possible d'utiliser jusqu'
trois niveaux d'imbrication.
Nombre d'octets allous au tampon de journalisation (redo
log buffer) dans la mmoire SGA.
Taille maximale des fichiers trace, exprime en nombre de
blocs du systme d'exploitation.
Nombre maximal de processus du systme d'exploitation
pouvant se connecter simultanment cette instance.
Active ou dsactive la fonction trace SQL pour chaque
session utilisateur.
Active ou dsactive le moment de dclenchement dans les
fichiers trace et sur les crans de surveillance.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-9

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Etapes des procdures de dmarrage et d'arrt


Etapes des procdures
de dmarrage et d'arrt
DEMARRAGE

OUVERTURE

MOUNT

NOMOUNT

Ouverture de tous les fichiers


conformment au fichier de
contrle de cette instance.

Ouverture du
fichier de contrle
de cette instance.

Dmarrage
de l'instance.
ARRET

ARRET

Copyright Oracle Corporation, 1999. Tous droits rservs.

Etapes de la procdure de dmarrage


Lorsque vous dmarrez une base de donnes, vous choisissez son tat initial.
Les scnarios ci-aprs dcrivent les diffrentes tapes du dmarrage d'une instance.
Dmarrer l'instance En gnral, vous dmarrez une instance sans monter de base
de donnes uniquement lors de la cration d'une base de donnes ou de la recration
des fichiers de contrle.
Le dmarrage d'une instance comprend les tches suivantes :
lecture du fichier de paramtres initsid.ora,
affectation de la mmoire SGA,
dmarrage des processus d'arrire-plan,
ouverture du fichier ALERT et des fichiers trace.
Vous devez nommer la base de donnes. Pour cela, indiquez le paramtre DB_NAME
dans le fichier initSID.ora ou dans la commande STARTUP.

.....................................................................................................................................................
3-10
Oracle DBA : Architecture et administration

Etapes des procdures de dmarrage et d'arrt


.....................................................................................................................................................

Etapes de la procdure de dmarrage (suite)


Monter la base de donnes A des fins de maintenance, vous dmarrez une instance
et montez une base de donnes sans l'ouvrir.
C'est le cas, par exemple, pour les tches suivantes :
attribution d'un nouveau nom un fichier de donnes,
activation ou dsactivation des options d'archivage des fichiers de journalisation,
rcupration de toute la base de donnes.
Le montage d'une base de donnes comprend les tches suivantes :
association d'une base de donnes une instance dj dmarre,
localisation et ouverture des fichiers de contrle indiqus dans le fichier de
paramtres,
lecture des fichiers de contrle pour extraire le nom et le statut des fichiers de
donnes et des fichiers de journalisation (redo log) (toutefois, l'existence des
fichiers de donnes et des fichiers de journalisation en ligne (online) n'est pas
vrifie ce stade).
Ouvrir la base de donnes En mode d'exploitation normal, vous dmarrez une
instance, puis montez et ouvrez la base de donnes. Ainsi, les utilisateurs autoriss
peuvent s'y connecter et accder aux donnes.
L'ouverture de la base de donnes comprend les tches suivantes :
ouverture des fichiers de donnes en ligne,
ouverture des fichiers de journalisation en ligne.
Si un fichier de donnes ou de journalisation en ligne est absent lorsque vous tentez
d'ouvrir la base de donnes, le serveur Oracle renvoie une erreur.
Au cours de cette dernire tape, il vrifie que tous les fichiers de donnes et de
journalisation en ligne peuvent tre ouverts et contrle la cohrence de la base de
donnes. Si ncessaire, le processus d'arrire-plan SMON (System Monitor) dclenche
la rcupration de l'instance.
Rcupration de l'instance
Il y a chec de l'instance lorsque celle-ci ne peut plus s'excuter.
Par exemple, en cas de dfaillance du systme d'exploitation, le processus d'arrireplan SMON rcupre automatiquement l'instance lors de la rouverture de la base de
donnes. Le fichier de journalisation en ligne permet de rcuprer les donnes valides
stockes dans le cache de tampons de la base de donnes (database buffer cache), mais
qui ont t perdues la suite d'un chec de l'instance.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-11

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Rcupration de l'instance (suite)


La rcupration d'une instance de base de donnes comprend les tapes suivantes :
1 rimplmentation des modifications pour la rcupration des donnes enregistres
dans le fichier de journalisation en ligne, mais non enregistrs dans les fichiers de
donnes,
2 ouverture de la base de donnes - et non pas attente de l'annulation de toutes
les transactions - pour sa mise la disposition des utilisateurs (les donnes non
verrouilles par les transactions non rcupres sont immdiatement disponibles),
3 annulation des transactions non valides par le processus SMON ainsi que par
les divers processus serveur qui accdent aux donnes verrouilles.
Etapes de la procdure d'arrt
La procdure d'arrt d'une instance et de la base de donnes associe comporte trois
tapes.
Fermer la base de donnes Dans la procdure d'arrt d'une base de donnes, la
premire tape consiste fermer la base. Lors de la fermeture, les modifications
stockes dans le cache de tampons (buffer cache) et les entres figurant dans le cache
de tampons de journalisation (redo log buffer cache) sont crites par le serveur Oracle
dans les fichiers de donnes et dans les fichiers de journalisation en ligne (online). Une
fois l'opration d'criture termine, le serveur Oracle ferme tous les fichiers de
donnes en ligne et les fichiers de journalisation en ligne. Les fichiers de contrle
restent ouverts lorsque la base de donnes est ferme mais non dmonte.
Dmonter la base de donnes La seconde tape consiste dmonter la base de
donnes partir d'une instance. Une fois la base de donnes dmonte, seule l'instance
reste prsente.
Une fois la base de donnes dmonte, le serveur Oracle ferme les fichiers de contrle.
Arrter l'instance La dernire tape de la procdure d'arrt de la base de donnes
consiste arrter l'instance. Cette opration entrane la fermeture du fichier ALERT et
des fichiers trace, la dsallocation de la mmoire SGA et l'interruption des processus
d'arrire-plan.

.....................................................................................................................................................
3-12
Oracle DBA : Architecture et administration

Dmarrer l'instance
.....................................................................................................................................................

Dmarrer l'instance
Commande STARTUP

Dmarrez l'instance et ouvrez la base de donnes :


STARTUP
STARTUP PFILE=/DISK1/initU15.ora
PFILE=/DISK1/initU15.ora

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dmarrer
Pour dmarrer une instance, excutez la commande suivante :
STARTUP [FORCE] [RESTRICT] [PFILE=filename]
[OPEN [RECOVER][database]
|MOUNT
|NOMOUNT]

Remarque : cet exemple n'illustre pas la syntaxe complte.


o :
OPEN
permet aux utilisateurs d'accder la base
de donnes.
MOUNT
monte la base de donnes pour certaines
tches d'administration, mais ne permet pas
aux utilisateurs d'y accder.
NOMOUNT
cre la mmoire SGA et lance les processus
d'arrire-plan, mais ne permet pas d'accder
la base de donnes.
PFILE=parfile
permet de configurer l'instance partir d'un
fichier de paramtres personnaliss.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-13

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Dmarrer (suite)
FORCE
RESTRICT

RECOVER

abandonne l'instance en cours, puis excute


un dmarrage normal.
n'autorise l'accs de la base de donnes
qu'aux utilisateurs dots du privilge
RESTRICTED SESSION.
lance la procdure de restauration physique
lors du dmarrage de la base de donnes.

Remarque technique
Dans Oracle8i, toutes les commandes Server Manager, telles que STARTUP et
SHUTDOWN, ont t intgres SQL*Plus. Dans ce cours, les exemples de syntaxe
utilisent SQL*Plus et non Server Manager.
Server Manager est toujours fourni avec Oracle8i des fins de compatibilit
descendante. Le mode ligne de Server Manager peut tre lanc l'aide de l'excutable
SVRMGRL.
Automatiser le dmarrage de la base de donnes
Sous Windows NT La base de donnes Oracle pour Windows NT s'excute en tant
que service, ce qui vite d'interrompre les processus lors de la dconnexion des
utilisateurs. Tout service doit tre enregistr par le sous-systme de services de
Windows NT.
Pour lancer les services Oracle au dmarrage, ouvrez le panneau de configuration de la
bote de dialogue Service et slectionnez le type de dmarrage Automatic.
Versions prcdentes d'Oracle8i Pour ouvrir la base de donnes, lancez les deux
services suivants :
OracleServiceSID : cr pour le SID d'instance de base de donnes.
OracleStartSID : dmarre la base de donnes automatiquement par l'excution du
script strtSID.cmd .
Pour ouvrir la base de donnes, lancez le service suivant :
OracleServiceSID: cr pour le SID d'instance de base de donnes.
Pour le dmarrage automatique de la base de donnes, assurez-vous que le paramtre
ORA_SID_AUTOSTART a pour valeur True dans la base de registres. (Pour plus
d'informations, voir le guide d'installation de votre systme d'exploitation.)
Avec Oracle8i

Sous UNIX Sous UNIX, le dmarrage et l'arrt automatiques de la base de donnes


peuvent tre contrls par les entres d'un fichier spcial du systme d'exploitation
(par exemple, le fichier oratab qui se trouve dans le rpertoire /var/opt/oracle).
(Pour plus d'informations, voir le guide d'installation de votre systme d'exploitation.)

.....................................................................................................................................................
3-14
Oracle DBA : Architecture et administration

Dmarrer l'instance
.....................................................................................................................................................

Dpannage
Si vous tentez de lancer les utilitaires Oracle sans ces services, vous obtiendrez l'un
des messages d'erreur suivants :
ORA-12547: TNS: lost contact

ou
ORA-09352: Windows 32-bit two-task driver unable to spawn new
Oracle task

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-15

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Modifier la disponibilit de la base de donnes


Commande ALTER DATABASE

Faites passer la base de donnes de l'tat


NOMOUNT MOUNT :
ALTER
ALTER DATABASE
DATABASE database
database MOUNT;
MOUNT;

Ouvrez la base de donnes en mode lecture seule


(READ ONLY) :
ALTER
ALTER DATABASE
DATABASE database
database OPEN
OPEN READ
READ ONLY;
ONLY;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Modifier le statut de la base de donnes


Pour faire passer la base de donnes du statut STARTUP NOMOUNT MOUNT ou
du statut MOUNT OPEN, excutez la commande ALTER DATABASE :
ALTER DATABASE { MOUNT | OPEN }

Pour viter que des transactions utilisateur ne modifient des donnes, la base de
donnes peut tre ouverte en mode lecture seule (READ ONLY).
Pour dmarrer une instance, excutez la commande suivante :
ALTER DATABASE OPEN
[READ WRITE| READ ONLY]

o :
READ WRITE

READ ONLY

ouvre la base de donnes en mode lecturecriture et permet de gnrer des fichiers de


journalisation.
limite l'accs aux transactions en mode
lecture seule et ne permet pas de gnrer
des informations de journalisation.

.....................................................................................................................................................
3-16
Oracle DBA : Architecture et administration

Ouvrir une base de donnes en mode lecture seule


.....................................................................................................................................................

Ouvrir une base de donnes en mode lecture seule


Ouvrir une base de donnes en mode
lecture seule (READ ONLY)

Toute base de donnes peut tre ouverte


en mode lecture seule.

Dans ce mode, vous pouvez :


lancer des interrogations,
effectuer des oprations de tri sur disque
avec des tablespaces grs en local,
utiliser des fichiers de donnes hors ligne
et en ligne, et non des tablespaces,
rcuprer des fichiers de donnes hors
ligne et des tablespaces.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Caractristiques d'une base de donnes en lecture seule


Toute base de donnes peut tre ouverte en mode lecture seule, dans la mesure o elle
n'est pas dj ouverte en mode lecture-criture (READ WRITE). Cette fonctionnalit
est particulirement utile lorsqu'une base de donnes de secours doit dcharger la base
de donnes de production du traitement des interrogations.
Si une interrogation doit employer un tablespace temporaire (par exemple, pour les tris
sur disque), l'utilisateur en cours doit disposer d'un tablespace gr en local et affect
en tant que tablespace temporaire par dfaut, sinon l'interrogation choue. L'utilisateur
SYS doit disposer d'un tablespace gr en local.
Remarque : les tablespaces grs en local sont traits dans un autre chapitre.
Le mode lecture seule ne limite ni la fonction de rcupration de la base de donnes ni
les oprations qui modifient l'tat de celle-ci sans gnrer de donnes de
journalisation. Ainsi, en mode lecture seule :
les fichiers de donnes sont utilisables hors ligne (offline) et en ligne (online),
les fichiers de donnes hors ligne et les tablespaces sont rcuprables.
Les oprations d'criture sur disque portant sur d'autres fichiers, tels que les fichiers de
contrle, les informations d'audit du systme d'exploitation, les fichiers trace et les
fichiers ALERT, peuvent se poursuivre en mode lecture seule.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-17

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Arrter
Options d'arrt
Mode d'arrt

Permettre de nouvelles connexions

Attendre la fin des sessions en cours

Attendre la fin des transactions en cours

Imposer un point de reprise et fermer les fichiers

Mode d'arrt :
A Abort

I Immediate

NON

T Transactional

N Normal

OUI

Copyright Oracle Corporation, 1999. Tous droits rservs.

Arrter la base de donnes


Arrtez la base de donnes pour effectuer la sauvegarde "offline" de toutes les
structures physiques et pour modifier des paramtres d'initialisation.
Pour arrter une instance, excutez la commande suivante :
SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

Arrt en mode Normal (SHUTDOWN NORMAL)


Le mode d'arrt par dfaut est SHUTDOWN NORMAL. Il s'effectue dans les
conditions suivantes :
aucune nouvelle connexion n'est autorise,
le serveur Oracle attend la dconnexion pralable de tous les utilisateurs,
il ferme et dmonte la base de donnes avant d'arrter l'instance,
la rcupration de l'instance n'est pas ncessaire lors du dmarrage suivant.

.....................................................................................................................................................
3-18
Oracle DBA : Architecture et administration

Arrter
.....................................................................................................................................................

Arrt en mode Transactional (SHUTDOWN TRANSACTIONAL)


L'arrt en mode Transactional vite aux clients de perdre les travaux en cours.
Il s'effectue dans les conditions suivantes :
aucun client ne peut lancer de nouvelle transaction pour l'instance indique,
le client est dconnect lorsqu'il termine la transaction en cours,
une fois toutes les transactions termines, l'arrt est immdiat,
la rcupration de l'instance n'est pas ncessaire lors du dmarrage suivant.
Arrt en mode Immediate (SHUTDOWN IMMEDIATE)
L'arrt en mode Immediate s'effectue dans les conditions suivantes :
les instructions SQL en cours de traitement par Oracle ne sont pas termines,
le serveur Oracle n'attend pas la dconnexion des utilisateurs de la base de
donnes,
il annule les transactions actives et dconnecte tous les utilisateurs en cours,
il ferme et dmonte la base de donnes avant d'arrter l'instance,
la rcupration de l'instance n'est pas ncessaire lors du dmarrage suivant.
Arrt en mode Abort (SHUTDOWN ABORT)
Si l'arrt en mode Normal et l'arrt en mode Immediate chouent, vous pouvez
abandonner l'instance de base de donnes en cours. Cette opration s'effectue dans les
conditions suivantes :
les instructions SQL en cours de traitement par le serveur Oracle sont
immdiatement interrompues,
le serveur Oracle n'attend pas la dconnexion des utilisateurs de la base de
donnes,
les transactions non valides ne sont pas annules,
l'instance est interrompue sans fermeture des fichiers,
la rcupration de l'instance est ncessaire lors du dmarrage suivant.
Remarque : dans les versions antrieures Oracle8i pour Windows NT, vous pouvez
fermer la base de donnes en arrtant les deux services suivants : OracleServiceSID
et OracleStartSID.
L'arrt du service OracleServiceSID entrane galement l'interruption
d'OracleStartSID et l'excution du script orashut.bat.
Avec Oracle8i pour Windows NT, vous pouvez fermer la base de donnes en arrtant
le service OracleServiceSID et en affectant la valeur True au paramtre
ORA_SID_SHUTDOWN dans la base de registres. (Pour plus d'informations, voir le guide
d'installation de votre systme d'exploitation.)

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-19

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Diffrents types d'arrt


Transfert
de fonds

Vrification de
soldes

Ajout de nouveaux
fonds

Retrait de fonds de
l'ancien compte

4
5

Arrt en
mode
Normal

Arrt en
Arrt en
mode
mode
Immediate Transactional

Arrt de
la base de
donnes

Validation

Dconnexion

Arrt de la base
de donnes
Arrt de la base
de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Squence d'vnements pendant les diffrents types d'arrt


(SHUTDOWN)
La diapositive indique la squence d'vnements qui se produit lorsque les diffrentes
commandes SHUTDOWN sont entres aprs l'excution de l'tape 1.
Les tapes 1 5 dcrivent un transfert de fonds d'un compte bancaire vers un autre.
1 Interrogez les comptes pour vrifier leurs soldes respectifs.
2 A l'aide de la commande INSERT, transfrez les fonds vers le nouveau compte
bancaire.
3 A l'aide de la commande DELETE, retirez les fonds de l'ancien compte bancaire.
4 A l'aide de la commande COMMIT, terminez la transaction.
5 Dconnectez-vous du serveur Oracle.
En cas d'arrt en mode Normal, le serveur Oracle attend la dconnexion pralable de
tous les utilisateurs.
En cas d'arrt en mode Immediate, il interrompt la commande SQL en cours l'tape 2
et annule la transaction active.
En cas d'arrt en mode Transactional, il attend le traitement de l'tape 4, c'est--dire
l'excution de la transaction, puis procde un arrt en mode Immediate.
En cas d'arrt en mode Abort, il interrompt la commande SQL en cours, mais n'annule
pas la transaction active.

.....................................................................................................................................................
3-20
Oracle DBA : Architecture et administration

Arrter
.....................................................................................................................................................

Dmarrer ou arrter une base de donnes l'aide d'Instance Manager


Instance Manager permet de dmarrer ou d'arrter une base de donnes.
1 Lancez Instance Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Instance Manager
2 Entrez les informations de connexion, puis cliquez sur OK.

3 Slectionnez l'option correspondant l'tat de base de donnes voulu, puis cliquez

sur Apply.
4 En fonction de l'option slectionne, vous devrez peut-tre choisir une tape de la
procdure puis cliquer sur OK pour excuter l'opration requise.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-21

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Extraire et dfinir les valeurs de paramtre


Vues dynamiques des performances

Sont gres par le serveur Oracle et mises jour


en permanence.

Contiennent des donnes sur les structures de


disque et de mmoire.

Contiennent des donnes utiles pour le rglage


des performances.

Sont associes des synonymes publics portant


le prfixe V$.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Vues dynamiques des performances


Ces vues sont dites dynamiques car elles sont mises jour en permanence lorsque la
base de donnes est ouverte et est en cours d'utilisation. Elles traitent essentiellement
des performances. Elles fournissent des donnes sur les structures internes de disque et
de mmoire et sont accessibles l'administrateur de base de donnes.
Elles sont identifies par le prfixe V_$, mais Oracle comporte des synonymes publics
utilisant le prfixe V$.
Une fois l'instance dmarre en phase NOMOUNT, les vues V$ lisibles en mmoire
deviennent accessibles. Les vues permettant de lire des donnes du fichier de contrle
exigent le montage de la base de donnes.
La vue V$FIXED_TABLE affiche toutes les vues dynamiques des performances.

.....................................................................................................................................................
3-22
Oracle DBA : Architecture et administration

Extraire et dfinir les valeurs de paramtre


.....................................................................................................................................................

Afficher les vues dynamiques


des performances
OUVERTURE

MOUNT

NOMOUNT

ARRET

Dictionnaire
de donnes

Lecture des donnes


sur disque

Lecture des donnes


en mmoire

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-23

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Exemple
V$PARAMETER
V$SGA
V$OPTION
V$PROCESS
V$SESSION
V$VERSION
V$INSTANCE

Mmoire
SGA

Fichier de
contrle

V$THREAD
V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$DATAFILE_HEADER
V$LOGFILE

Copyright Oracle Corporation, 1999. Tous droits rservs.

Exemple
Vue dynamique des performances
(accessible en phase NOMOUNT)
V$PARAMETER
V$SGA
V$OPTION
V$PROCESS
V$SESSION
V$VERSION
V$INSTANCE

Description
Contient des informations sur les paramtres
d'initialisation.
Contient des informations de synthse sur la
mmoire SGA.
Rpertorie les options installes avec le
serveur Oracle.
Contient des informations sur les processus en
cours.
Rpertorie les informations sur la session en
cours.
Indique le numro de version et les
composants.
Affiche l'tat de l'instance en cours.

.....................................................................................................................................................
3-24
Oracle DBA : Architecture et administration

Extraire et dfinir les valeurs de paramtre


.....................................................................................................................................................

Exemple (suite)
Vue dynamique des performances
(accessible en phase MOUNT)
V$THREAD

V$CONTROLFILE

V$DATABASE
V$DATAFILE
V$DATAFILE_HEADER
V$LOGFILE

Description
Contient des informations sur les threads (par
exemple, sur les groupes de fichiers de
journalisation).
Rpertorie les noms de fichier de contrle
(cette vue ne renvoie aucune ligne lorsque la
base de donnes est l'tat NOMOUNT).
Contient des informations sur la base de
donnes.
Contient des informations du fichier de
contrle sur les fichiers de donnes.
Affiche les informations du fichier de
contrle sur les en-ttes de fichier de donnes.
Contient des informations sur les fichiers de
journalisation en ligne (online).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-25

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Afficher les valeurs


de paramtre en cours

Excutez la commande :
SHOW
SHOW PARAMETER
PARAMETER control
control

Interrogez la vue dynamique des performances


V$PARAMETER :
SELECT
SELECT name
name FROM
FROM v$parameter
v$parameter
WHERE
name
LIKE
WHERE name LIKE '%control%';
'%control%';

Copyright Oracle Corporation, 1999. Tous droits rservs.

Afficher les valeurs de paramtre en cours


Pour dterminer les valeurs de paramtre d'une base de donnes dmarre, excutez la
commande SHOW PARAMETER.
Cette commande affiche tous les paramtres dans l'ordre alphabtique avec la valeur
en cours correspondante.
Lancez l'instruction SQL suivante pour afficher tous les noms de paramtre
comportant la chane de texte CONTROL :
SQL> SHOW PARAMETER control
NAME
------------------------------control_file_record_keep_time
control_files

TYPE
------integer
string

VALUE
-------------------7
/DISK1/control01.con

Vous pouvez galement dterminer les valeurs de paramtre en cours l'aide de la vue
dynamique des performances V$PARAMETER.

.....................................................................................................................................................
3-26
Oracle DBA : Architecture et administration

Extraire et dfinir les valeurs de paramtre


.....................................................................................................................................................

Paramtres d'initialisation dynamiques

Certains paramtres d'initialisation peuvent tre


modifis pendant l'excution d'une instance.

ALTER
ALTER SESSION
SESSION SET
SET SQL_TRACE=true;
SQL_TRACE=true;

ALTER
ALTER SYSTEM
SYSTEM SET
SET TIMED_STATISTICS=true;
TIMED_STATISTICS=true;

ALTER
ALTER SYSTEM
SYSTEM SET
SET SORT_AREA_SIZE=131072
SORT_AREA_SIZE=131072 DEFERRED;
DEFERRED;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Modifier dynamiquement les paramtres d'initialisation


Certains paramtres d'initialisation sont dynamiques, c'est--dire qu'ils sont
modifiables l'aide des commandes ALTER SESSION, ALTER SYSTEM ou ALTER
SYSTEM DEFERRED pendant l'excution d'une instance.
ALTER SESSION SET parameter_name = value
ALTER SYSTEM SET parameter_name = value [DEFERRED]

La commande ALTER SESSION modifie la valeur du paramtre indiqu pour la


session qui excute la commande.
La commande ALTER SYSTEM modifie globalement la valeur du paramtre
indique. La nouvelle valeur reste en vigueur jusqu' l'opration d'arrt ou de
modification suivante.
La commande ALTER SYSTEM DEFERRED modifie la valeur du paramtre indiqu
pour les sessions qui se connecteront ultrieurement la base de donnes.
Interrogez la vue V$PARAMETER ou V$SYSTEM_PARAMETER pour rpertorier
les informations sur le paramtre modifi.
SQL>
2
3
4

SELECT isses_modifiable,issys_modifiable,
ismodified, name
FROM v$system_parameter
WHERE ismodified != 'FALSE';

ISSES ISSYS_MOD ISMODIFI NAME


----- --------- -------- -------------------------------------TRUE IMMEDIATE MODIFIED timed_statistics
1 row selected.
.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-27

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Modifier dynamiquement les paramtres d'initialisation (suite)


Les colonnes affichent les informations suivantes :
ISSES_MODIFIABLE : indique si le paramtre est modifiable par la commande
ALTER SESSION.
ISSYS_MODIFIABLE : indique si le paramtre est modifiable par la commande
ALTER SYSTEM.
ISMODIFIED : indique si les commandes ALTER SESSION et ALTER SYSTEM
sont respectivement modifies par les valeurs MODIFIED et SYS_MODIFIED.
Les vues V$PARAMETER et V$SYSTEM_PARAMETER affichent respectivement
les valeurs de session en cours et les valeurs systme en cours indpendantes de la
session. Par exemple, si vous excutez la commande ALTER SYSTEM DEFERRED,
la colonne ISMODIFIED de la vue V$SYSTEM_PARAMETER contient la valeur
MODIFIED, mais la colonne de la vue V$PARAMETER affiche la valeur False dans
la mme session.
Remarque : la commande ALTER SYSTEM ou ALTER SYSTEM DEFERRED qui
modifie un paramtre est enregistre dans le fichier trace nomm ALERT.

.....................................................................................................................................................
3-28
Oracle DBA : Architecture et administration

Grer les sessions


.....................................................................................................................................................

Grer les sessions


Activer et dsactiver une
session en mode restreint

Excutez la commande STARTUP pour restreindre


l'accs une base de donnes :
STARTUP
STARTUP RESTRICT
RESTRICT

Excutez la commande ALTER SYSTEM pour


mettre une instance en mode restreint :
ALTER
ALTER SYSTEM
SYSTEM ENABLE
ENABLE RESTRICTED
RESTRICTED SESSION;
SESSION;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Session en mode restreint


Une session en mode restreint est utile par exemple lors de la mise jour des structures
ou de l'import/export d'une base de donnes. Vous pouvez dmarrer la base de donnes
en mode restreint pour qu'elle ne soit disponible qu'aux utilisateurs dots du privilge
RESTRICTED SESSION.
Vous pouvez galement mettre la base de donnes en mode restreint par la commande
SQL ALTER SYSTEM :
ALTER SYSTEM
{ENABLE|DISABLE}RESTRICTED SESSION

o :
ENABLE RESTRICTED
SESSION
DISABLE RESTRICTED
SESSION

ne permet qu'aux utilisateurs


dots du privilge RESTRICTED
SESSION de se connecter ultrieurement.
dsactive RESTRICTED SESSION de sorte que
les utilisateurs non dots de ce privilge puissen
se connecter.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-29

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Session en mode restreint (suite)


Remarque : la commande ALTER SYSTEM ne dconnecte pas les sessions en cours,
mais ne permet qu'aux utilisateurs dots du privilge RESTRICTED SESSION de se
connecter ultrieurement.
La vue dynamique des performances V$INSTANCE contient des informations sur le
mode restreint.
SQL> SELECT logins FROM v$instance;
LOGINS
---------RESTRICTED
1 row selected.

.....................................................................................................................................................
3-30
Oracle DBA : Architecture et administration

Grer les sessions


.....................................................................................................................................................

Interrompre des sessions

Dans la vue dynamique des performances


V$SESSION, identifiez la session interrompre :
SELECT sid, serial# FROM v$session WHERE
username='SCOTT';

Excutez la commande ALTER SYSTEM :


ALTER
ALTER SYSTEM
SYSTEM KILL
KILL SESSION
SESSION '7,15';
'7,15';

Copyright Oracle Corporation, 1999. Tous droits rservs.

Interrompre des sessions


Vous avez mis une instance en mode restreint et vous voulez arrter toutes les sessions
utilisateur en cours pour pouvoir effectuer des tches administratives.
ALTER SYSTEM KILL SESSION 'integer1,integer2'

o :

KILL SESSION

identifie la session avec les deux valeurs


suivantes extraites de la vue V$SESSION :
integer1 : valeur de la colonne SID.
integer2 : valeur de la colonne SERIAL#.
Remarque : l'ID de session et le numro de srie permettent d'identifier une session
de faon unique. Cette unicit permet de s'assurer que la commande ALTER SYSTEM
est applique la session approprie, mme si l'utilisateur se dconnecte et qu'une
nouvelle session est ouverte sous le mme ID de session.
Effets de l'interruption d'une session
Lors de l'excution de la commande ALTER SYSTEM KILL SESSION, le processus
d'arrire-plan PMON effectue les tches suivantes :
annulation de la transaction utilisateur en cours,
libration de tous les verrous de table ou de ligne,
libration de toutes les ressources rserves par l'utilisateur.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-31

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Effets de l'interruption d'une session (suite)


Vous pouvez interroger la vue V$SESSION pour identifier l'ID de session et le
numro de srie des sessions utilisateur.
Interrompre une session active Si un utilisateur envoie un appel SQL au serveur
Oraclela session est donc ACTIVElorsque la session est interrompue, la
transaction est annule et l'utilisateur reoit immdiatement le message suivant :
ORA-00028: your session has been killed

Si la session utilisateur traite des oprations qui ne doivent pas tre interrompues, le
serveur Oracle attend la fin de leur excution.
Interrompre une session inactive Si la session est inactive lors de son interruption,
le message ORA-00028 n'est pas renvoy immdiatement, mais la colonne STATUS
de la vue V$SESSION est marque comme tant ferme.
Lorsque l'utilisateur tente de reprendre la session interrompue, le message ORA-00028
est renvoy et la ligne correspondant la session interrompue est retire de la vue
V$SESSION.
Remarque : lorsqu'une session est interrompue, le serveur Oracle n'arrte pas les
processus du systme d'exploitation.
Toutefois, la commande suivante, normalement utilise dans un environnement
Parallel Server, dconnecte une session lorsque la transaction en cours est termine et
interrompt le processus serveur :
ALTER SYSTEM DISCONNECT SESSION 'integer1, integer2'
POST_TRANSACTION

.....................................................................................................................................................
3-32
Oracle DBA : Architecture et administration

Grer les sessions


.....................................................................................................................................................

Fichier ALERT et fichiers trace

Les fichiers trace peuvent tre crits par les


processus serveur et les processus d'arrire-plan.

Le serveur Oracle vide les informations relatives


aux erreurs dans des fichiers trace.

Le fichier ALERT est le journal chronologique


des messages et des erreurs.

La fonction trace par processus serveur peut


tre active ou dsactive par :
une commande ALTER SESSION,
le paramtre SQL_TRACE.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichier ALERT et fichiers trace


En cas d'erreur lors de l'excution de l'instance de base de donnes Oracle, les
messages correspondants sont crits dans le fichier ALERT. Lors du dmarrage de la
base de donnes, Oracle cre un fichier ALERT s'il n'existe pas.
Le fichier ALERT d'une base de donnes est le journal chronologique des messages et
des erreurs. Oracle peut utiliser le fichier ALERT plutt que d'afficher ces
informations.
Si une erreur est dtecte par un processus d'arrire-plan, les informations
correspondantes sont vides (DUMP) dans un fichier trace.
Les fichiers trace peuvent galement tre gnrs par les processus serveur la
demande de l'utilisateur.
Vous pouvez activer ou dsactiver la fonction trace par le paramtre d'initialisation
SQL_TRACE (valeur True ou False).
L'instruction suivante permet d'crire des donnes dans un fichier trace pour la session
indique :
SQL>ALTER SESSION SET sql_trace=TRUE;

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-33

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Contrler le fichier ALERT


et les fichiers trace
Instance

Processus
utilisateur

Processus
serveur

Fichiers trace

USER_DUMP_DEST

Mmoire SGA

Fichier ALERT

Zone de mmoire
partage

Fichiers trace

BACKGROUND_DUMP_DEST

Copyright Oracle Corporation, 1999. Tous droits rservs.

Emplacement du fichier ALERT et des fichiers trace


Les paramtres suivants permettent de contrler l'emplacement et la taille du fichier
ALERT et des fichiers trace :
Paramtre d'initialisation
BACKGROUND_DUMP_DEST
USER_DUMP_DEST
MAX_DUMP_FILE_SIZE

Description
Dfinit l'emplacement du fichier trace de
processus en arrire-plan et du fichier ALERT.
Dfinit l'emplacement dans lequel les fichiers
trace seront crs la demande des utilisateurs.
Est prcis dans les blocs OS ; limite la taille des
fichiers trace utilisateur, mais pas celle du fichier
ALERT ni des fichiers trace de processus en
arrire-plan.

Remarque :
MAX_DUMP_FILE_SIZE et USER_DUMP_DEST sont des paramtres
d'initialisation dynamiques.
Sous UNIX, le fichier ALERT s'appelle alert_SID.log et se trouve par dfaut
dans le rpertoire $ORACLE_HOME/rdbms/log.
Sous Windows NT, le fichier ALERT s'appelle SIDalrt.log et se trouve par
dfaut dans le rpertoire %ORACLE_HOME%\RDBMS80\TRACE d'Oracle8. Dans
Oracle8i, il figure dans le rpertoire %ORACLE_HOME%\ADMIN\SID\BDUMP.

.....................................................................................................................................................
3-34
Oracle DBA : Architecture et administration

Grer les sessions


.....................................................................................................................................................

Conseils

Vrifiez rgulirement le fichier ALERT pour :

dtecter les erreurs internes (ORA-600)


et les erreurs de corruption de bloc,

surveiller le fonctionnement de la base


de donnes,

afficher les paramtres d'initialisation


personnaliss.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Instructions relatives au fichier ALERT


Il est important de vrifier rgulirement le fichier ALERT pour dtecter les incidents
avant qu'ils ne s'aggravent.
Les informations suivantes sont journalises dans le fichier ALERT :
toutes les erreurs internes (ORA-00600) et les erreurs de corruption de bloc,
(ORA-01578),
les oprations qui ont une incidence sur les structures et les paramtres de la base
de donnes, ainsi que des commandes telles que STARTUP, SHUTDOWN,
ARCHIVE LOG et RECOVER,
les valeurs de tous les paramtres d'initialisation dfinis implicitement par le DBA
en vigueur au dmarrage de l'instance.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-35

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

crer le fichier de paramtres,


dmarrer et arrter une instance,
afficher les vues dynamiques des performances,
grer les sessions,
surveiller le fichier ALERT et les fichiers trace.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
3-36
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation

Rfrence
DB_NAME
CONTROL_FILES
SHARED_POOL_SIZE
BACKGROUND_DUMP_DEST
DB_BLOCK_BUFFERS
COMPATIBLE
IFILE
LOG_BUFFER
PROCESSES

Paramtres
d'initialisation dynamiques

Paramtres
d'initialisation dynamiques
(DEFERRED)
Vues dynamiques des
performances

SQL_TRACE
USER_DUMP_DEST
MAX_DUMP_FILE_SIZE
TIMED_STATISTICS
SORT_AREA_SIZE

V$FIXED_TABLE
V$PARAMETER
V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$DATAFILE_HEADER
V$INSTANCE
V$LOGFILE
V$OPTION
V$PROCESS
V$PWFILE_USERS
V$SESSION
V$SYSTEM_PARAMETER
V$SGA
V$VERSION

.....................................................................................................................................................
Oracle DBA : Architecture et administration
3-37

Chapitre 3 : Grer une instance de base de donnes Oracle


.....................................................................................................................................................

Contexte
Vues du dictionnaire de
donnes
Commandes

Rfrence
Aucune
CONNECT / AS SYSDBA
CONNECT / AS SYSOPER
STARTUP
SHUTDOWN
SHOW PARAMETER
ALTER SYSTEM KILL SESSION
ALTER SYSTEM DISCONNECT SESSION ...
POST_TRANSACTION
ALTER SYSTEM ENABLE RESTRICTED SESSION
ALTER SYSTEM DISABLE RESTRICTED SESSION
ALTER SESSION SET
ALTER SYSTEM SET
ALTER SYSTEM SET... DEFERRED
ALTER DATABASE MOUNT
ALTER DATABASE OPEN
ALTER DATABASE OPEN READ ONLY

Procdure et fonctions
de package

ALTER DATABASE OPEN READ WRITE


Aucune

.....................................................................................................................................................
3-38
Oracle DBA : Architecture et administration

4
.................................

Crer une base


de donnes

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

prparer le systme d'exploitation,


prparer le fichier de paramtres,
crer la base de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
4-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation
Processus
utilisateur

Processus
serveur
PGA

Instance
Mmoire SGA

Zone de mmoire
partage

Fichier
ALERT
Fichiers
trace

Fichiers de
donnes

Fichiers de
contrle

Fichier de
paramtres
Fichier
de mots
de passe

Fichiers
de journalisation

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Prsentation de la gestion et de l'organisation d'une base de donnes


La cration de la base de donnes constitue la premire tape de la procdure de
gestion et d'organisation d'un systme de base de donnes.
La cration de la base de donnes consiste prparer plusieurs fichiers du systme
d'exploitation. Cette tche n'est effectue qu'une seule fois, quel que soit le nombre de
fichiers de donnes stocks dans la base de donnes. Il s'agit d'une opration trs
importante, car vous devez choisir des paramtres de base de donnes, tels que la taille
des blocs et le jeu de caractres, que vous ne pourrez plus modifier une fois la base de
donnes cre.
Selon le systme d'exploitation, il se peut qu'une base de donnes ait t cre
automatiquement lors de l'installation.
Vous pouvez utiliser cette base de donnes initiale, ou l'effacer et en crer une
manuellement.
Lors de la migration partir d'une ancienne version d'Oracle, la cration d'une base de
donnes n'est ncessaire que si vous avez besoin d'une base entirement nouvelle.
Sinon, vous pouvez utiliser un utilitaire de migration, tel qu'Oracle Data Migration
Assistant, pour excuter la migration partir d'une ancienne version de la base de
donnes.
Vous pouvez crer une base de donnes avec de nouveaux fichiers de donnes ou bien
effacer les informations d'une base existante dote de la mme structure physique.
La commande CREATE DATABASE dclenche la cration des fichiers de contrle,
des fichiers de journalisation (redo log) et de la structure du dictionnaire de donnes
requise par le serveur Oracle pour accder la base de donnes.
.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-3

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Prparer le systme d'exploitation


Elments requis pour la cration

Un compte disposant de privilges authentifis


par l'une des mthodes suivantes :
par le systme d'exploitation
par un fichier de mots de passe

De la mmoire pour le dmarrage de l'instance


Un espace disque suffisant pour la base
de donnes prvue

Copyright Oracle Corporation, 1999. Tous droits rservs.

Avant de crer la base de donnes


Vous devez bnficier de tous les privilges sur le systme d'exploitation ou utiliser
l'authentification par le fichier de mots de passe (voir le chapitre "Grer une instance
de base de donnes Oracle").
Avant de crer la base de donnes, assurez-vous que vous disposez d'une quantit de
mmoire suffisante pour la mmoire SGA, pour l'excutable Oracle et pour les
processus. Pour plus d'informations, consultez les guides d'installation et
d'administration de votre systme d'exploitation.
Calculez l'espace disque ncessaire pour la base de donnes, y compris pour les
fichiers de journalisation en ligne (online redo log), les fichiers de contrle et les
fichiers de donnes.

.....................................................................................................................................................
4-4
Oracle DBA : Architecture et administration

Prparer le systme d'exploitation


.....................................................................................................................................................

Planifier l'emplacement des fichiers


de la base de donnes

Conservez au moins deux copies actives d'un


fichier de contrle, stockes sur des units
diffrentes.

Multiplexez les fichiers de journalisation et placez


les membres du groupe sur des disques diffrents.

Sparez les fichiers dont les donnes :


participeront la contention de ressources
sur diffrents disques physiques,
ont des dures de vie diffrentes,
ont des caractristiques d'administration
diffrentes.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Planifier l'emplacement des fichiers


Planifiez le mode de protection de la base de donnes, y compris celui des fichiers
de journalisation en ligne (online redo log), des fichiers de journalisation archivs
(archived redo log), des fichiers de contrle et des fichiers de donnes. Prvoyez
galement une stratgie de sauvegarde.
Fichiers de contrle Par mesure de scurit, nous vous recommandons de crer au
moins deux fichiers de contrle sur deux disques diffrents (voir le chapitre "Grer le
fichier de contrle"). Dans la mesure o les copies de fichier de contrle doivent
toujours tre places sur des disques diffrents, elles peuvent avoir des noms
identiques, tels que control01.ctl sous UNIX ou control.ora sous Windows NT.
Fichiers de journalisation en ligne Les fichiers de journalisation en ligne d'une
base de donnes sont constitus de groupes multiplexs de fichiers de journalisation en
ligne. Un groupe de fichiers de journalisation est compos de copies identiques qui
doivent tre places sur des disques diffrents (voir le chapitre "Grer les fichiers de
journalisation").
Pour faire la distinction entre les groupes et leurs membres, utilisez un nom tel que
log0101.rdo ou log01a.rdo .

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-5

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Planifier l'emplacement des fichiers (suite)


Fichiers de donnes Affectez aux fichiers de donnes un nom dont la racine est en
rapport avec leur contenu, par exemple system01.dbf, temp01.dbf et users01.dbf
sous UNIX , et system01.ora et temp01.ora sous Windows NT.
Avant de dterminer la structure approprie pour votre base de donnes, tenez compte
des caractristiques des donnes stocker afin de :
limiter la fragmentation,
rduire la contention du disque,
sparer les objets.
Pour limiter la fragmentation de la base de donnes, nous vous recommandons de
sparer les objets de base de donnes qui n'ont pas la mme dure de vie (par exemple,
les donnes d'application et les donnes temporaires) en les plaant dans des
tablespaces diffrents.
Pour assurer l'quilibrage de la charge des entres/sorties, nous vous recommandons
de sparer les objets ayant des exigences divergentes en termes d'E/S, tels que les
tables et les index, en les plaant dans des tablespaces diffrents.
Remarque : ces sujets sont traits en dtail dans les chapitres "Grer les tablespaces et
les fichiers de donns" et "Structure et relations de stockage".

.....................................................................................................................................................
4-6
Oracle DBA : Architecture et administration

Prparer le systme d'exploitation


.....................................................................................................................................................

Emplacement du logiciel Oracle


Sous UNIX
/oracle_base
/product

Sous Windows NT
\oracle_base

\oracle_home

/release_number
/bin
/dbs
/orainst
/sqlplus
...
/8.1.5
/admin
/local

\admin\db_name
\admin\v815
\oradata\db_name

\bin
\database

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-7

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Fichiers de base de donnes Oracle


/u02/
oradata/
db01/
system01.dbf
control01.ctl
redo0101.rdo
...
db02/
system01.dbf
control01.ctl
redo0101.rdo
...

/u03/
oradata/
db01/
tools01.dbf
control02.ctl
redo0102.rdo
...
db02/
users01.dbf
control02.ctl
redo0102.rdo
...

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
4-8
Oracle DBA : Architecture et administration

Prparer le systme d'exploitation


.....................................................................................................................................................

Architecture OFA (Optimal Flexible Architecture)


L'installation et la cration d'une base de donnes prsentent un autre point important
prendre en compte : l'organisation du systme de fichiers en vue de faciliter la
gestion de l'volutivit du systme par l'ajout de donnes la base existante, l'ajout
d'utilisateurs, la cration de nouvelles bases de donnes, l'installation de matriel
supplmentaire et la rpartition de la charge des entres/sorties sur un nombre suffisant
d'units.
La norme OFA (Optimal Flexible Architecture) apporte une solution unique ces
questions. Elle a t mise au point par une quipe Oracle charge d'installer, de rgler
et de mettre niveau les systmes UNIX. L'architecture OFA facilite la configuration
de systmes Oracle complexes tout en simplifiant la maintenance. Lors de l'installation
d'un systme Oracle, la configuration standard d'OFA est utilise automatiquement.
Structure OFA :
ORACLE_BASE : rpertoire racine (root).
ORACLE_HOME : sous-rpertoire contenant le logiciel et les donnes Oracle. Chaque
version possde un rpertoire d'origine distinct.
Faites bien la distinction entre les fichiers produit (logiciel et outils du serveur
Oracle), les fichiers d'administration (tels que les scripts de cration de base de
donnes ou les scripts d'initialisation) et les logiciels locaux utiliss avec le serveur
Oracle. Dans l'exemple UNIX, les rpertoires product, admin et local rpondent
cette exigence.
Crez un rpertoire explicitement destin au stockage des donnes du serveur
Oracle, au mme niveau d'arborescence que chacun des priphriques, par
exemple ORACLE_HOME/oradata.
Dans le rpertoire Oracle, crez un sous-rpertoire pour chaque base de donnes
du systme. Dans cet exemple, les bases de donnes sont appeles dba01 et db01.
Remarque : la structure de rpertoires OFA sous Windows NT est diffrente de celle
sous UNIX en raison des conventions d'appellation et de l'absence de liens
symboliques. Pour contourner ce problme, il faut crer des rpertoires physiques la
place des liens symboliques, tels que u01 et u02.
Ainsi, plutt que de crer /u01/oradata/db01/, o u01 reprsente un point de
montage sous UNIX, vous crez le rpertoire DISK_3:\ORADATA\DB01\ sous
Windows NT.
(Pour plus d'informations, consultez le guide d'installation de votre plate-forme.)

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-9

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Crer une base de donnes


Crer une base de donnes

A l'aide de l'utilitaire Database Configuration


Assistant

Manuellement, l'aide de la commande CREATE


DATABASE

Copyright Oracle Corporation, 1999. Tous droits rservs.

Mthodes de cration d'une base de donnes


Pour crer une base de donnes, vous pouvez utiliser l'utilitaire Database
Configuration Assistant ou crer un script SQL l'aide de la commande CREATE
DATABASE. L'utilitaire Database Configuration Assistant est crit en Java et peut
tre lanc partir de n'importe quelle plate-forme dote d'un moteur Java.
Lors de l'installation, vous tes invit crer une base de donnes l'aide de l'utilitaire
Database Configuration Assistant. Cet utilitaire peut galement tre utilis aprs
l'installation pour crer ou supprimer une base de donnes.
Remarque technique
Avant la version 8.1, l'utilitaire Database Configuration Assistant tait uniquement
disponible sur Windows NT. Pour crer une base de donnes sous UNIX, le
programme d'installation vous demande d'entrer le numro et l'emplacement des
points de montage, le jeu de caractres, le jeu de caractres nationaux, les mots de
passe des utilisateurs SYS et SYSTEM, ainsi que le mot de passe de groupe UNIX afin de
permettre au systme d'exploitation d'effectuer les authentifications.

.....................................................................................................................................................
4-10
Oracle DBA : Architecture et administration

Utiliser Database Configuration Assistant


.....................................................................................................................................................

Utiliser Database Configuration Assistant


Utiliser Database Configuration Assistant

Copyright Oracle Corporation, 1999. Tous droits rservs.

Lancer Database Configuration Assistant


Pour lancer Database Configuration Assistant aprs l'installation, procdez
comme suit :
1 Cliquez sur Start>Programs>Oracle -ORACLE_HOME>Database
Administration>Database Configuration Assistant.
Cet utilitaire constitue la mthode la plus simple pour crer une base de donnes
Oracle.
2 Passez au dernier cran de Database Configuration Assistant et terminez la
procdure de cration.
En fonction de l'option choisie, Database Configuration Assistant lance les
services associs, modifie les fichiers init.ora, cre une base de donnes,
configure les options ou supprime la base de donnes et les services associs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-11

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Bases de donnes prrgles

Copyright Oracle Corporation, 1999. Tous droits rservs.

Slectionner une base de donnes prrgle ou personnaliser une base


de donnes
Database Configuration Assistant vous propose diffrentes options :
Typical comporte deux sous-options :
Copy existing database files from the CD : installe automatiquement une base
de donnes standard avec les paramtres d'initialisation par dfaut.
Create new database files : plusieurs questions vous sont poses sur
l'environnement de la base de donnes avant sa cration dynamique.
Custom permet de personnaliser la cration de la base de donnes. Cette option est
rserve aux administrateurs familiariss avec les procdures avances de cration
de bases de donnes, telles que la personnalisation des lments suivants :
paramtres de donnes, de contrle et de journalisation,
taille des tablespaces,
taille des extents (ensembles de blocs contigus),
paramtres de mmoire de la base de donnes,
formats et destinations d'archivage,
destination des fichiers trace,
valeurs de jeu de caractres.

.....................................................................................................................................................
4-12
Oracle DBA : Architecture et administration

Utiliser Database Configuration Assistant


.....................................................................................................................................................

Schmas chantillon prdfinis

Copyright Oracle Corporation, 1999. Tous droits rservs.

Schmas chantillon prdfinis


Vous pouvez prciser le type d'environnement d'exploitation de votre base de donnes
l'aide de l'option Typical ou Custom :
Environnement
OLTP (traitement
des transactions
en ligne)

Systme d'aide
la dcision
(DSS, Decision
Support System)

Hybride

Description
Les bases de donnes sous environnements OLTP doivent traiter
quotidiennement des milliers, voire des millions de transactions
lances par de nombreux utilisateurs connects simultanment.
Ces transactions consistent effectuer des oprations de lecture,
d'criture et de suppression de donnes dans la base. Les
utilisateurs doivent pouvoir accder rapidement aux donnes les
plus rcentes. Par consquent, les performances des bases de
donnes sont dfinies en termes de dbit et de disponibilit des
donnes.
Les bases de donnes sous environnements DSS doivent traiter
divers types d'interrogation (le plus souvent en lecture seule),
allant de la simple extraction de quelques enregistrements de
nombreuses interrogations complexes impliquant le tri de
milliers d'enregistrements provenant de nombreuses tables
diffrentes. Dans ce cas, les performances des bases de donnes
sont dfinies en termes de temps de rponse.
Les bases de donnes hybrides prennent en charge les
environnements OLTP et DSS.

Des schmas chantillon de base de donnes OLTP et DSS sont disponibles pour
Oracle8i Enterprise Edition.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-13

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Terminer la cration d'une


base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Terminer l'excution de Database Configuration Assistant


Database Configuration Assistant vous permet de crer la base de donnes
immdiatement ou d'enregistrer les informations dans un fichier squentiel et de
l'excuter ultrieurement.

.....................................................................................................................................................
4-14
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Crer manuellement une base de donnes


Crer une base de donnes
manuellement
1. Attribuez un nom unique l'instance et la base
de donnes et choisissez un jeu de caractres
pour la base de donnes.
2. Dfinissez les variables du systme d'exploitation.
3. Prparez le fichier de paramtres.
4. Crez un fichier de mots de passe (recommand).
5. Dmarrez l'instance.
6. Crez la base de donnes.
7. Excutez les scripts pour gnrer le dictionnaire de
donnes et effectuer les tapes de post-cration.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Etapes de cration manuelle d'une base de donnes


Ce chapitre dcrit en dtail les six premires tapes.
La dernire tape, traitant de la gnration du dictionnaire de donnes est dcrite dans
le chapitre "Vues du dictionnaire de donnes et packages standard".
Remarque technique
Pour plus d'informations sur la cration de bases de donnes sur votre plate-forme,
consultez la documentation Oracle propre votre systme d'exploitation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-15

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Environnement du systme d'exploitation

Sous UNIX, dfinissez les variables d'environnement


suivantes :

ORACLE_HOME
ORACLE_SID
ORACLE_BASE
ORA_NLS33
PATH

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dfinir l'environnement du systme d'exploitation


Attribuez un nom unique l'instance et dfinissez les variables d'environnement
suivantes :
Variable
Description
ORACLE_HOME Indique le rpertoire dans lequel le logiciel Oracle doit tre install
(par exemple : /u01/app/oracle/product/8.1.5)
ORACLE_SID
Indique le nom de l'instance, qui doit tre unique pour les instances
Oracle s'excutant sur la mme machine.
ORACLE_BASE Variable facultative, mais recommande dans le cadre d'une installation
conforme l'architecture OFA (par exemple : /u01/app/oracle)
ORA_NLS33
Variable obligatoire lors de la cration d'une base de donnes utilisant un
jeu de caractres autre que US7ASCII (par exemple : $ORACLE_HOME/
ocommon/nls/admin/data)
PATH
Chemin de recherche, devant inclure $ORACLE_HOME/bin.

Par exemple, dfinissez l'environnement dans un shell Korn l'aide de la commande


suivante :
$ORACLE_SID=U16; export ORACLE_SID

Dans un shell C, excutez la commande suivante :


$setenv ORACLE_SID U16

.....................................................................................................................................................
4-16
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Remarque technique
Si la variable ORA_NLS n'est pas dfinie et que la base de donnes est dmarre
avec des paramtres de langue et de jeu de caractres diffrents de ceux par dfaut,
ces paramtres ne seront pas reconnus.
La valeur du SID peut comporter jusqu' huit caractres. Avant la version 8.1, elle
tait limite quatre caractres sous Windows NT.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-17

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Environnement du systme d'exploitation

Sous Windows NT :

Dfinissez la variable ORACLE_SID pour pouvoir


utiliser SQL*Plus.

Crez le service et le fichier de mots de passe en


utilisant ORADIM.
C:\>
C:\> ORADIM
ORADIM -NEW
-NEW -SID
-SID u16
u16 -INTPWD
-INTPWD password
password
-STARTMODE
-STARTMODE auto
auto
-PFILE
-PFILE ORACLE_HOME\DATABASE\
ORACLE_HOME\DATABASE\initU16.ora
initU16.ora

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dfinir l'environnement du systme d'exploitation sous Windows NT


Sous Windows NT, Oracle utilise des variables de la base de registres, de la mme
faon qu'Oracle sous UNIX utilise des variables d'environnement shell.
Oracle Installer, l'utilitaire ORADIM et Database Configuration Assistant dfinissent
des variables dans la base de registres et enregistrent l'instance Oracle en tant que
service. Vous pouvez modifier manuellement la base de registres l'aide de l'utilitaire
regedit.exe.
Par exemple, les paramtres tels que ORACLE_HOME, ORA_NLS33 et
ORACLE_SID (ORCL est utilis par dfaut pour la base de donnes initiale) sont
stocks dans le dossier HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE.
Par consquent, pour crer une nouvelle base de donnes, la variable ORACLE_SID
doit tre configure l'aide de la commande suivante :
C:\> set ORACLE_SID=U16

Crez ensuite un nouveau service et, si ncessaire, le nouveau fichier de mots de passe
afin d'excuter la base de donnes avec l'utilitaire ORADIM :
C:\>ORADIM -NEW -SID sid [-INTPWD internal_pwd][SRVC svrcname]
[MAXUSERS number][STARTMODE auto,manual][-PFILE filename]

Remarque : le serveur Oracle enregistre dans le fichier


ORACLE_HOME\DATABASE\ORADIM.LOG toutes les oprations excutes avec l'utilitaire
ORADIM.

.....................................................................................................................................................
4-18
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Prparer le fichier de paramtres

Crez le fichier initSID.ora.


$cp
$cp init.ora
init.ora $ORACLE_HOME/dbs/initU16.ora
$ORACLE_HOME/dbs/initU16.ora

Modifiez le fichier initU16.ora en ditant ses


paramtres.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-19

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Editer le fichier de paramtres


db_name = U10
instance_name = U10
service_names = U10
db_files = 1024
control_files =
("C:\ORA815\oradata\U10\control01.ctl",
"C:\ORA815\oradata\U10\control02.ctl")
db_file_multiblock_read_count = 8
db_block_buffers = 2048
shared_pool_size = 4194304
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 50
parallel_max_servers = 5
log_buffer = 32768

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
4-20
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Prparer le fichier de paramtres


Lors de la prparation de la nouvelle base de donnes, copiez le fichier par dfaut
init.ora sous le nouveau nom initSID.ora.
Modifiez la valeur de certains paramtres ; les autres peuvent conserver leur valeur par
dfaut.
Avant de dmarrer l'instance, prcisez au moins les paramtres suivants :
Paramtre
DB_NAME

CONTROL_FILES

DB_BLOCK_SIZE

Description
Identificateur de base de donnes pouvant comporter jusqu'
8 caractres. C'est le seul paramtre obligatoire lors de la cration
d'une base de donnes. Ce paramtre ne doit pas obligatoirement
correspondre la variable ORACLE_SID, mais il doit correspondre
au nom utilis dans l'instruction CREATE DATABASE.
Indique la liste des fichiers de contrle. Prcisez toujours au moins
deux fichiers de contrle, placs sur des disques diffrents si possible.
Il n'est pas ncessaire qu'ils soient prsents ce stade de la procdure.
Oracle Server peut gnrer des fichiers de systme d'exploitation lors
de la cration de la base de donnes.
Dtermine la taille des blocs de la base de donnes. Cette valeur ne
peut plus tre modifie une fois la base cre.

Remarque : le nom de base de donnes est associ une base de donnes au moment
de la cration et est stock dans les fichiers de contrle. Pour modifier le nom d'une
base de donnes existante, excutez la commande CREATE CONTROLFILE pour
recrer le fichier de contrle (voir le cours Oracle DBA : Sauvegarde et restauration).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-21

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Dmarrer l'instance

1. Connectez-vous sous l'ID SYSDBA.


2. Dmarrez l'instance en phase NOMOUNT.
SQL> STARTUP NOMOUNT PFILE=initU16.ora
ORACLE instance started.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dmarrer l'instance
Connectez-vous sous l'ID SYSDBA par authentification par le systme d'exploitation ou
par le fichier de mots de passe, puis dmarrez l'instance l'aide de la commande
STARTUP.
Le mot de passe est celui utilis auparavant pour crer le service avec l'utilitaire
ORADIM (Windows NT uniquement) ou ORAPWD.
Si le fichier de paramtres ne se trouve pas l'emplacement par dfaut, vous
devrez peut-tre indiquer la clause PFILE dans la commande STARTUP. Pour les
exemples cits dans ce cours, le fichier de paramtres se trouve dans le rpertoire
en cours.

.....................................................................................................................................................
4-22
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Crer la base de donnes


SPOOL creU16.log
STARTUP NOMOUNT PFILE=initU16.ora
CREATE DATABASE U16
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXLOGHISTORY 100
LOGFILE
GROUP 1 ('/DISK3/log1a.rdo',/DISK4/log1b.rdo') SIZE 1 M,
GROUP 2 ('/DISK3/log2a.rdo',/DISK4/log2b.rdo') SIZE 1 M
DATAFILE
'/DISK1/system01.dbf' size 50M autoextend on
CHARACTER SET WE8ISO8859P1;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Commande CREATE DATABASE


Pour crer une base de donnes, excutez la commande SQL suivante :
CREATE DATABASE [database]
[CONTROLFILE REUSE]
[LOGFILE [GROUP integer] filespec
[,

[GROUP integer] filespec]...]

[MAXLOGFILES integer]
[MAXLOGMEMBERS integer]
[MAXLOGHISTORY integer]
[MAXDATAFILES integer]
[MAXINSTANCES integer]
[ARCHIVELOG|NOARCHIVELOG]
[CHARACTER SET charset]
[NATIONAL CHARACTER SET charset]

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-23

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Commande CREATE DATABASE (suite)


[DATAFILE filespec [autoextend_clause]
[,

filespec [autoextend_clause]...]]

filespec :== 'filename' [SIZE integer][K|M] [REUSE]


autoextend_clause :==
[AUTOEXTEND {OFF
|ON [NEXT integer[K|M]]
[MAXSIZE {UNLIMITED|integer[K|M]}]
}
]

o :
database

est le nom de la base de donnes crer (si ce


nom est omis, le paramtre d'initialisation
DB_NAME est utilis par dfaut.)

CONTROLFILE REUSE indique qu'un fichier de contrle


existant identifi dans le fichier de
paramtres doit tre rutilis.
LOGFILE GROUP
indique les noms de fichier journal
utiliser ainsi que le groupe auquel ils
appartiennent.
MAXLOGFILES
indique le nombre maximal de
groupes de fichiers de journalisation
(redo log) pouvant tre
crs pour la base de donnes.
MAXLOGMEMBERS
indique le nombre maximal de
fichiers journaux pouvant appartenir
un groupe de journalisation.
MAXLOGHISTORY
indique le nombre maximal de
fichiers de journalisation archivs
pour la restauration physique
automatique du serveur Oracle
Parallel Server.
DATAFILE filespec
indique les fichiers de donnes
utiliser.
AUTOEXTEND
active ou dsactive
l'extension automatique d'un fichier
de donnes (voir le chapitre "Grer
les tablespaces et les fichiers de
donnes").
.....................................................................................................................................................
4-24
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Commande CREATE DATABASE (suite)


MAXDATAFILES
indique la taille initiale occupe par la
section fichiers de donnes du fichier de
contrle lors de l'excution de la
commande CREATE DATABASE ou
CREATE CONTROLFILE. Si vous
tentez d'ajouter un fichier qui porte le
nombre de fichiers une valeur
suprieure MAXDATAFILES, mais
infrieure ou gale DB_FILES, le
fichier de contrle est automatiquement
tendu pour que la section fichiers de
donnes puisse contenir un plus grand
nombre de fichiers.
MAXINSTANCES
est le nombre maximal d'instances
pouvant monter et ouvrir la base de
donnes simultanment.
ARCHIVELOG
indique que les fichiers de journalisation
doivent tre archivs pour pouvoir tre
rutiliss.
NOARCHIVELOG
indique que les fichiers de journalisation
peuvent tre rutiliss sans archivage
pralable de leur contenu.
CHARACTER SET
dsigne le jeu de caractres que la base
de donnes utilise pour le stockage des
donnes.
NATIONAL CHARACTER SET
dfinit le jeu de caractres nationaux
utilis pour stocker des donnes dans les
colonnes de type NCHAR, NCLOB ou
NVARCHAR2.
Par dfaut, le jeu de caractres
nationaux est le mme que celui de la
base de donnes [voir le chapitre
"Utiliser le support NLS (National
Language Support)"].
Si vous utilisez REUSE dans la spcification d'un fichier, ce dernier doit exister.
Sinon, l'option SIZE doit tre indique et l'existence du fichier n'est pas ncessaire.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-25

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Commande CREATE DATABASE (suite)


Exemple
Activez la fonction d'envoi pour traitement diffr pour enregistrer les messages et
excutez l'instruction CREATE.
La commande de cration gnre une base de donnes nomme U16. Cette base de
donnes comprend deux groupes de fichiers de journalisation en ligne (online), chacun
comportant deux membres de 1 Mo et un fichier de donnes de 50 Mo. Elle utilise un
jeu de caractres 8 bits pour le stockage des donnes.
Remarque :
Le serveur Oracle alloue dans les fichiers de contrle la quantit d'espace requise
par les paramtres MAXLOGMEMBERS, MAXLOGFILES, MAXDATAFILES,
MAXLOGHISTORY et MAXINSTANCES.
Pour modifier la valeur de ces paramtres, recrez le fichier de contrle l'aide de
la commande CREATE CONTROLFILE. (Voir le cours Oracle DBA : Sauvegarde
et restauration.)
Il n'existe pas de commande DROP DATABASE. Pour supprimer une base de
donnes, vous devez effacer les fichiers de donnes dans le systme d'exploitation.
Lancez l'instruction SQL suivante pour afficher la liste des fichiers de donnes
physiques supprimer manuellement dans le systme d'exploitation :
SQL> SELECT name FROM v$datafile
2

UNION

SELECT name FROM v$controlfile

UNION

SELECT member FROM v$logfile;

NAME
-----------------------------------C:\ORA815\ORADATA\V815\CONTROL01.CTL
C:\ORA815\ORADATA\V815\CONTROL02.CTL
C:\ORA815\ORADATA\V815\INDX01.DBF
C:\ORA815\ORADATA\V815\OEMREP01.DBF
C:\ORA815\ORADATA\V815\RBS01.DBF
C:\ORA815\ORADATA\V815\REDO01.LOG
C:\ORA815\ORADATA\V815\REDO01A.LOG
C:\ORA815\ORADATA\V815\REDO01B.LOG
C:\ORA815\ORADATA\V815\REDO02.LOG
C:\ORA815\ORADATA\V815\REDO03.LOG
C:\ORA815\ORADATA\V815\SYSTEM01.DBF
C:\ORA815\ORADATA\V815\TEMP01.DBF
C:\ORA815\ORADATA\V815\USERS01.DBF
13 rows selected.

.....................................................................................................................................................
4-26
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Commande CREATE DATABASE (suite)


Database Configuration Assistant permet de supprimer les services ainsi que les
fichiers de donnes.
Pour que la nouvelle base de donnes devienne la base par dfaut sous
Windows NT, modifiez la valeur de la variable ORACLE_SID dans la base
de registres.
Vous ne pouvez plus modifier le jeu de caractres ou le jeu de caractres
nationaux une fois la base cre.
Sous Windows NT, vous pouvez crer une base de donnes l'aide du script
build_db.sql qui se trouve dans le rpertoire %ORACLE_HOME%\RDBMS\ADMIN.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-27

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Dpannage

La cration de la base de donnes choue lorsque :

le script SQL contient des erreurs de syntaxe,


les fichiers crer existent dj,
des erreurs lies au systme d'exploitation (telles
que les autorisations d'accs aux fichiers et aux
rpertoires) ou un espace disque insuffisant se
produisent.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dpannage
Si l'un des trois incidents indiqus sur la diapositive se produit, l'instruction CREATE
DATABASE choue.
Dans tous les cas, arrtez la base de donnes, supprimez les fichiers crs par
l'instruction CREATE DATABASE, corrigez les erreurs, puis renouvelez la procdure
de cration.

.....................................................................................................................................................
4-28
Oracle DBA : Architecture et administration

Crer manuellement une base de donnes


.....................................................................................................................................................

Aprs la cration de la base de donnes


La base de donnes contient :

des fichiers de donnes constituant le tablespace


SYSTEM,

des fichiers de contrle et des fichiers de


journalisation,

l'ID utilisateur SYS avec le mot de passe


CHANGE_ON_INSTALL,

l'ID utilisateur SYSTEM avec le mot de passe


MANAGER,

le segment d'annulation SYSTEM,


des tables internes (mais aucune vue
du dictionnaire de donnes).
Copyright Oracle Corporation, 1999. Tous droits rservs.

Aprs la cration de la base de donnes


La base de donnes cre est ouverte, le script SQL sql.bsq est excut et les objets
de base de donnes cits sur la diapositive sont crs.
Vous pouvez consulter les vues dynamiques des performances, telles que
V$LOGFILE, V$CONTROLFILE et V$DATAFILE, mais aucune vue du dictionnaire
de donnes n'est cre.
Les chapitres suivants indiquent comment crer les vues du dictionnaire de donnes
pour ajouter des tablespaces, modifier ou ajouter des fichiers de journalisation, ajouter
des fichiers de contrle et excuter de nombreuses autres tches.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
4-29

Chapitre 4 : Crer une base de donnes


.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

planifier la structure de la base de donnes,

crer la base de donnes.

prparer l'environnement du systme


d'exploitation,

Copyright Oracle Corporation, 1999. Tous droits rservs.

Pour rfrence
Contexte
Paramtres d'initialisation

Rfrence
DB_NAME
CONTROL_FILES
DB_BLOCK_SIZE
Nant

Vues dynamiques des


performances
Vues du dictionnaire de donnes
Nant
Commandes
CREATE DATABASE
Procdures et fonctions de package Nant

.....................................................................................................................................................
4-30
Oracle DBA : Architecture et administration

5
.................................

Crer des vues du


dictionnaire de donnes et
des packages standard

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

crer des vues du dictionnaire de donnes,

administrer les procdures stockes


et les packages,

numrer les diffrents dclencheurs


d'vnements de base de donnes.

interroger le dictionnaire de donnes,


prparer l'environnement PL/SQL l'aide
des scripts d'administration,

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
5-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation
Autres objets crs avec la base
de donnes :

Dictionnaire de donnes
Tables de base

Tablespace
systme

Vues

Tables dynamiques des


performances

Packages PL/SQL intgrs

Les dclencheurs d'vnements


de base de donnes sont
automatiquement activs par
un vnement spcifique (par
exemple, erreur lie au serveur).
Copyright Oracle Corporation, 1999. Tous droits rservs.

Autres
fichiers de
base de
donnes
Base de donnes

Objets de base de donnes intgrs


Le serveur Oracle cre non seulement les fichiers de base de donnes, mais aussi
des structures dans les fichiers de donnes.
Le dictionnaire de donnes contient la description des objets se trouvant dans
la base de donnes. Il comprend deux types d'objet :
les tables de base, tables sous-jacentes permettant de stocker la description
de la base de donnes associe,
les vues du dictionnaire de donnes, qui affichent la synthse des informations
stockes dans les tables de base.
Les tables dynamiques des performances contiennent des informations permettant
l'administrateur de base de donnes (DBA) de surveiller et de rgler la base de
donnes et l'instance correspondante.
Les units de programme PL/SQL intgres ajoutent des fonctionnalits la base
de donnes.
Dclencheurs d'vnements de base de donnes
Les dclencheurs sont des procdures qui s'excutent (sont actives) implicitement
lors de la modification d'une table ou d'une vue, ou la suite d'une action de
l'utilisateur ou du systme de bases de donnes.
Ce chapitre traite de la cration et de l'utilisation des vues du dictionnaire de donnes,
des packages PL/SQL et des dclencheurs d'vnement de base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-3

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Prsentation du dictionnaire de donnes


Dictionnaire de donnes

Est l'lment central de toute base de


donnes Oracle.

Dcrit la base de donnes et les objets


qu'elle contient.

Contient des tables et des vues en


mode lecture seule.

Est mis jour par des commandes


SQL :

Tablespace
systme

Autres
fichiers de
base de
donnes

LDD,
certaines LMD.

Appartient l'utilisateur SYS.

Base de donnes

Est stock dans le tablespace SYSTEM.


Est accessible par des instructions SELECT.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Dictionnaire de donnes
L'un des composants essentiels d'une base de donnes Oracle est son dictionnaire
de donnes, compos d'un jeu de tables et de vues accessibles en lecture seule,
fournissant des informations sur la base de donnes associe.
Le dictionnaire de donnes est mis jour par le serveur Oracle lors de l'excution
d'une commande LDD. En outre, des commandes LMD, telles que celle qui provoque
l'extension d'une table, peuvent mettre jour le dictionnaire de donnes.
Le dictionnaire de donnes est non seulement le centre de toute base de donnes
Oracle, mais galement une source importante d'informations pour l'ensemble des
utilisateurs, de l'utilisateur final au dveloppeur d'applications et l'administrateur de
base de donnes. Il est accessible par des instructions SQL. Le dictionnaire de donnes
tant accessible en lecture seule, vous ne pouvez excuter que des interrogations sur
les tables et les vues qu'il contient.

.....................................................................................................................................................
5-4
Oracle DBA : Architecture et administration

Contenu du dictionnaire de donnes


.....................................................................................................................................................

Contenu du dictionnaire de donnes


Contenu du dictionnaire de donnes
Le dictionnaire de donnes fournit des
informations sur :

la structure logique et physique de la base de


donnes,

les dfinitions et allocations d'espace relatives


aux objets,

les contraintes d'intgrit,


les utilisateurs,
les rles,
les privilges,
la fonction d'audit,
l'ensemble de la base de donnes.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Contenu du dictionnaire de donnes


Un dictionnaire de donnes contient les lments suivants :
la dfinition des objets de schma de la base de donnes (tables, vues,
index, clusters, synonymes, squences, procdures, fonctions, packages,
dclencheurs, etc.),
la quantit d'espace alloue aux objets de schma et celle qu'ils utilisent,
les valeurs de colonne par dfaut,
les nformations sur les contraintes d'intgrit,
le nom des utilisateurs Oracle,
les rivilges et les rles attribus chaque utilisateur,
les nformations d'audit (par exemple, sur les utilisateurs qui ont consult
ou mis jour des objets de schma),
d'autres informations gnrales sur la base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-5

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Tables de base et vues du dictionnaire de donnes


Tables de base et vues
du dictionnaire de donnes
Le dictionnaire de donnes contient deux parties :

les tables de base :


normalises,
cres avec la base de donnes l'aide
du script sql.bsq.

les vues du dictionnaire de donnes :


simplifiant les informations sur les tables
de base,
accessibles par des synonymes publics,
cres l'aide du script catalog.sql.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Tables de base
Les tables de base sont les tables sous-jacentes qui stockent les informations relatives
la base de donnes associe. Ce sont les premiers objets crs dans toute base de
donnes Oracle. Elles sont automatiquement gnres lorsque le serveur Oracle
excute le script sql.bsq lors de la cration de la base de donnes. Seul le serveur
Oracle doit crire dans ces tables. Les utilisateurs y accdent rarement directement, car
la plupart des donnes sont stockes dans un format difficilement comprhensible.
Ne modifiez jamais directement les tables de base du dictionnaire de donnes l'aide
des commandes LMD, l'exception de la table AUD$. La table AUD$ est dcrite dans
le chapitre "Grer les privilges".
La table IND$ constitue un exemple de table de base. Elle contient des informations
sur les index de la base de donnes.
Vues du dictionnaire de donnes
La plupart des utilisateurs consultent le dictionnaire de donnes partir des vues plutt
que des tables de base. Ces vues affichent la synthse des informations stockes dans
les tables de base. Elles dcodent leurs donnes en informations utiles, simplifies par
des jointures et des clauses WHERE. Par exemple, les vues du dictionnaire de donnes
utilisent les noms d'objet, outre les numros d'objet.

.....................................................................................................................................................
5-6
Oracle DBA : Architecture et administration

Utiliser le dictionnaire de donnes


.....................................................................................................................................................

Utiliser le dictionnaire de donnes


Utiliser le dictionnaire de donnes
Les trois principales fonctions du dictionnaire
de donnes sont les suivantes :

Le serveur Oracle l'utilise pour rechercher des


informations sur :
les utilisateurs,
les objets de schma,
les structures de stockage.

Le serveur Oracle le modifie lors de l'excution


d'une instruction LDD.

Le dictionnaire de donnes peut servir de


rfrence accessible en lecture seule, pour les
utilisateurs et les administrateurs souhaitant
obtenir des informations sur la base de donnes.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Comment Oracle Server utilise-t-il le dictionnaire de donnes ?


Les donnes des tables de base contenues dans le dictionnaire de donnes sont
ncessaires au fonctionnement du serveur Oracle. Par consquent, seul le serveur
Oracle doit modifier les informations du dictionnaire de donnes. Lorsque la base de
donnes est en service, le serveur Oracle lit le dictionnaire de donnes pour s'assurer
que les objets de schma existent et que les utilisateurs disposent des privilges
appropris sur ces derniers. Il le met galement jour en permanence pour y rpercuter
les modifications apportes aux structures de la base de donnes, aux informations
d'audit, aux privilges accords et aux structures des donnes.
Comment les utilisateurs et les administrateurs peuvent-ils exploiter
le dictionnaire de donnes ?
Les vues du dictionnaire de donnes sont utilises comme rfrence par tous les
utilisateurs de la base de donnes. Elles sont accessibles par des instructions en
langage SQL. Certaines sont mises la disposition de tous les utilisateurs Oracle,
d'autres sont rserves l'administrateur de base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-7

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Catgories de vues du dictionnaire de donnes


Catgorie de vues
du dictionnaire de donnes
DBA_xxx
Tous les objets de la base de donnes
ALL_xxx
Objets accessibles par l'utilisateur en cours
USER_xxx
Objets dtenus par l'utilisateur en cours

Copyright Oracle Corporation, 1999. Tous droits rservs.

Trois catgories de vues du dictionnaire de donnes


Les vues du dictionnaire de donnes sont rparties en trois catgories diffrencies
par leur prfixe :
DBA : vue administrateur de la base de donnes (affiche le contenu de tous
les schmas),
ALL : vue utilisateur tendue (affiche les lments accessibles l'utilisateur),
USER : vue utilisateur (affiche le contenu du schma utilisateur).
Toutes les vues sont associes des synonymes publics.
Toutefois, certaines vues du dictionnaire de donnes n'utilisent pas cette convention
d'appellation.
Vues portant le prfixe DBA
Les vues portant le prfixe DBA fournissent une prsentation globale de toute la base
de donnes. Elles sont conues pour tre interroges uniquement par les administrateurs
de base de donnes. Toutefois, tout utilisateur dot du privilge systme SELECT ANY
TABLE peut interroger les vues DBA du dictionnaire de donnes.
Pour excuter une interrogation sur tous les objets de la base de donnes, l'administrateur
de base de donnes peut lancer l'instruction suivante :
SELECT
FROM

owner, object_name, object_type


dba_objects;

.....................................................................................................................................................
5-8
Oracle DBA : Architecture et administration

Catgories de vues du dictionnaire de donnes


.....................................................................................................................................................

Vues portant le prfixe ALL


Les vues portant le prfixe ALL font rfrence la perspective utilisateur gnrale lie
la base de donnes. Ces vues renvoient des informations relatives aux objets de schma
accessibles l'utilisateur dot de privilges et de rles accords publiquement ou
explicitement, outre les objets de schma dont il est propritaire.
Par exemple, l'interrogation suivante renvoie des informations sur tous les objets
auxquels vous avez accs :
SELECT
FROM

owner, object_name, object_type


all_objects;

Vues portant le prfixe USER


Les vues intressant certainement le plus l'utilisateur d'une base de donnes sont celles
qui portent le prfixe USER. Ces vues :
font rfrence l'environnement priv de l'utilisateur dans la base de donnes,
concernent gnralement des objets appartenant l'utilisateur en cours,
comportent des colonnes identiques celles d'autres vues, ceci prs
que la colonne OWNER dsigne implicitement l'utilisateur en cours,
renvoient un sous-ensemble des informations contenues dans les vues
de catgorie ALL_,
peuvent tre associes par commodit des synonymes PUBLIC abrgs.
Par exemple, l'interrogation suivante renvoie tous les objets contenus dans
votre schma :
SELECT
FROM

object_name, object_type
user_objects;

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-9

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Exemples de dictionnaire de donnes


Exemples de dictionnaire de donnes

Prsentation gnrale
DICTIONARY

DICT_COLUMNS

Objets de schma
DBA_TABLES

DBA_TAB_COLUMNS

DBA_OBJECTS

DBA_CONSTRAINTS

Allocation d'espace
DBA_ SEGMENTS

DBA_EXTENTS

DBA_FREE_SPACE

Structure de la base de donnes


DBA_DATA_FILES
DBA_ROLLBACK_SEGS
DBA_TABLESPACES
Copyright Oracle Corporation, 1999. Tous droits rservs.

Exemples de dictionnaire de donnes


Pour obtenir une prsentation du dictionnaire de donnes et des vues dynamiques
des performances, interrogez la vue DICTIONARY ou son synonyme DICT.
SQL>SELECT *
2 FROM dictionary
3 WHERE UPPER(comments) LIKE '%TABLE%';
TABLE_NAME

COMMENTS

-------------------- ---------------------------------------ALL_TABLES

Description of relational tables accessible


to the user

ALL_UPDATABLE_COLUMNS Description of updatable columns


...

Pour obtenir une prsentation des colonnes du dictionnaire de donnes et des vues
dynamiques des performances, interrogez la vue DICT_COLUMNS.
Remarque : consultez Oracle8i Reference qui fournit la liste complte des vues du
dictionnaire de donnes et des colonnes qu'elles contiennent.

.....................................................................................................................................................
5-10
Oracle DBA : Architecture et administration

Vues dynamiques des performances


.....................................................................................................................................................

Vues dynamiques des performances


Tables dynamiques des performances

Tables virtuelles.
Informations accessibles partir :
de la mmoire,
des fichiers de contrle.

Synonymes commenant par V$.

Sont rpertories dans V$FIXED_TABLE.

Permettent l'administrateur de surveiller


et de rgler la base de donnes.
Exemple : V$DATAFILE qui contient des
informations sur les fichiers de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Vues dynamiques des performances


L'instance Oracle enregistre en permanence l'activit de la base de donnes dans un
ensemble de tables "virtuelles" appeles vues dynamiques des performances.
Il ne s'agit pas rellement de tables et elles ne sont pas accessibles tous les
utilisateurs. Toutefois, l'administrateur de base de donnes peut lancer des
interrogations, accorder le privilge SELECT et crer des vues partir de celles-ci.
Elles sont parfois appeles vues fixes, car elles ne peuvent pas tre modifies ni
supprimes par l'administrateur de base de donnes.
Les tables dynamiques des performances appartiennent l'utilisateur SYS et portent
des noms qui commencent par le prfixe V$. Des vues sont cres partir de ces
tables. Ces vues portent des noms qui commencent par le prfixe V_$ et sont associes
des synonymes publics. Les synonymes commencent galement par le prfixe V$.
Remarque : consultez Oracle8i Reference qui fournit la liste complte des vues
dynamiques des performances et des colonnes qu'elles contiennent.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-11

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Programmes stocks
Programmes stocks

PL/SQL
Extension procdurale Oracle du langage SQL.
Sont stocks dans le dictionnaire de donnes.

Java
Sont stocks dans le dictionnaire de donnes.
Pour tre excuts, ncessitent la publication
de la spcification d'appel correspondante.

Procdures externes
Sont crites en langage C.
Sont stockes dans une bibliothque partage.
Pour tre excutes, ncessitent la publication
de la spcification d'appel correspondante.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Programmes stocks
Le serveur Oracle permet d'accder des informations relatives la base de donnes
et de manipuler ces informations l'aide d'objets de schma procduraux appels
programmes stocks. Les programmes stocks constituent un ensemble logique
d'instructions en langage SQL et en langage de programmation excutant une tche
dtermine. Ils peuvent tre appels partir d'un programme SQL ou PL/SQL.
Programmes PL/SQL
PL/SQL est le module Oracle d'extension procdurale du langage SQL. Il permet
d'utiliser des instructions SQL avec des structures procdurales.
Programmes Java
L'administrateur de base de donnes peut installer le composant JServer du serveur
Oracle pour excuter des programmes Java. Pour appeler une mthode Java partir
d'un programme SQL ou PL/SQL, publiez-la l'aide d'une spcification d'appel. Cette
spcification d'appel mappe les noms de mthodes Java, les types de paramtre et de
code de retour vers les lments SQL correspondants.

.....................................................................................................................................................
5-12
Oracle DBA : Architecture et administration

Programmes stocks
.....................................................................................................................................................

Programmes C
Une procdure externe est un programme C stock dans une bibliothque partage.
Elle peut tre appele partir d'un programme PL/SQL. Les procdures externes
permettent l'administrateur de base de donnes d'tendre les fonctions du serveur
Oracle. Elles s'excutent dans un espace d'adressage diffrent de celui du serveur
Oracle. Pour appeler une procdure externe, vous devez publier son nom, ainsi que
les types de paramtre et de code de retour associs.
Avantages
Les programmes stocks confrent les avantages suivants :
Pour rduire les temps de compilation, le code PL/SQL est prcompil et stock
dans le dictionnaire de donnes avec le code source.
Les programmes Java et C peuvent tre appels partir du code SQL et PL/SQL
par la dfinition de leur spcification d'appel.
Ils sont stocks dans la zone de mmoire partage pour rduire les extractions
partir du disque.
La scurit des donnes peut tre mise en uvre en permettant aux utilisateurs
d'accder aux donnes uniquement via des procdures et des fonctions.
Lors de l'excution, plusieurs utilisateurs partagent une mme copie du
programme.
Des fonctions stockes peuvent tre utilises dans des expressions SQL, de la
mme manire que des fonctions Oracle intgres, telles que UPPER et SUBSTR.
Remarque : cette section prsente les procdures stockes permettant d'administrer
les programmes stocks. Le dveloppement et la gestion des procdures stockes,
des packages et des dclencheurs sont traits de manire approfondie dans le cours
Programmes PL/SQL.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-13

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Programmes PL/SQL stocks


Programmes PL/SQL stocks

Correspondent des procdures, des fonctions,


des packages ou des dclencheurs.

Peuvent accepter et renvoyer des paramtres.

Constituent un ensemble de commandes SQL


et PL/SQL.

Sont stocks dans le dictionnaire de donnes.

Les fonctions peuvent tre appeles par des


instructions SQL.

Sont chargs dans la zone de mmoire partage.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Programmes PL/SQL stocks


Les programmes PL/SQL stocks sont :
un ensemble logique d'instructions crites en langage SQL et dans d'autres
langages de programmation PL/SQL pour excuter une tche dtermine,
des procdures, des fonctions, des dclencheurs ou des packages,
associs un nom utilis lors de l'appel du programme,
crs ou supprims par les dveloppeurs l'aide de la commande CREATE
ou DROP,
excuts partir d'une application Oracle ou l'aide d'outils Oracle, tels que
SQL*Plus ou Enterprise Manager,
crs et stocks dans le dictionnaire de donnes en tant qu'objets de schma,
chargs dans la zone de mmoire partage.

.....................................................................................................................................................
5-14
Oracle DBA : Architecture et administration

Programmes PL/SQL stocks


.....................................................................................................................................................

Procdures stockes
Une procdure stocke est une procdure ou une fonction cre et stocke dans le
dictionnaire de donnes en tant qu'objet de schma. Elle est compose d'un ensemble
de structures PL/SQL et SQL.
Les procdures et les fonctions sont identiques, ceci prs que les fonctions renvoient
toujours une valeur unique au demandeur alors que les procdures ne le font pas. Par
souci de simplification, le terme "procdure" utilis dans les pages suivantes de ce
chapitre dsigne une procdure ou une fonction.
Dclencheurs
Un dclencheur est un programme PL/SQL que le serveur Oracle excute
implicitement en prsence d'un type d'vnement dtermin. Un dclencheur n'est
jamais appel ; il est activ par l'excution d'un vnement. Les dclencheurs sont
traits de manire plus approfondie dans une autre section.
Paramtres
Les procdures et les fonctions fournissent des paramtres IN (entre uniquement),
OUT (sortie uniquement) et IN OUT (entre et sortie). Le mode par dfaut est IN.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-15

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Packages
Packages PL/SQL stocks
Un package :

Reprsente un groupe logique de types,


d'lments et de sous-programmes PL/SQL
associs.

Comporte deux parties :


La spcification dcrit les composants
qu'il contient.
Le corps met en uvre la logique.

Exemple : DBMS_SESSION.SET_ROLE
package : DBMS_SESSION,
procdure : SET_ROLE.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Packages
Un package est un groupe de variables, de constantes, de curseurs, d'exceptions, de
procdures et de fonctions associs, regroups dans la base de donnes en vue d'tre
utiliss comme une unit. A l'instar des procdures et des fonctions autonomes, les
procdures et les fonctions de package peuvent tre appeles explicitement par les
applications ou les utilisateurs.
Un package comporte gnralement deux parties stockes sparment dans la base
de donnes :
la spcification, qui communique avec l'application et dclare les types, les
variables, les constantes, les exceptions, les curseurs et les sous-programmes
pouvant tre utiliss hors du package,
le corps, qui met en uvre la spcification. Il comprend le code PL/SQL
permettant de mettre en oeuvre les spcifications de procdure et de fonction
incluses dans la spcification du package. Il peut galement contenir des
procdures et des fonctions pouvant tre appeles uniquement partir du package.
La fonction d'un package est identique celle d'une procdure stocke. Une fois crit
et compil, son contenu peut tre partag par de nombreuses applications. Le principal
avantage est que l'ensemble du package est charg en mmoire lors du premier appel
de la structure associe.

.....................................................................................................................................................
5-16
Oracle DBA : Architecture et administration

Excuter un programme PL/SQL


.....................................................................................................................................................

Excuter un programme PL/SQL


Excuter un programme PL/SQL
SQL>
SQL> EXECUTE
EXECUTE dbms_session.set_role(...)
dbms_session.set_role(...)
Instance

Serveur

Mmoire SGA
Zone de mmoire
partage
Tablespace
systme
Base de
donnes
Autres
fichiers de
donnes

Fichiers
de contrle

Fichiers
de journalisation

DBMS_SESSION
SET_ROLE
BEGIN...
END;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Appeler un programme PL/SQL


Sur la diapositive, la procdure DBMS_SESSION.SET_ROLE est excute avec
l'outil SQL*Plus. Cette procdure est explique dans une autre section.
La commande EXECUTE est une commande SQL*Plus qui appelle une
procdure stocke.
Le package est nomm DBMS_SESSION et la procdure SET_ROLE est dfinie
dans ce package. La syntaxe d'appel de la procdure est la suivante :
package_name.procedure_name

Les paramtres sont placs entre les parenthses.


Excuter un programme PL/SQL
Le processus serveur lit le programme PL/SQL stock dans la zone de mmoire
partage, puis l'excute. Lorsqu'un package est rfrenc, il est lu entirement
dans la zone de mmoire partage.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-17

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Spcification et corps du package


Spcification et corps du package
PROCEDURE hire ...
Spcification
du package
EMP_PKG

g_empno

NUMBER;

PROCEDURE hire

Corps du
package
EMP_PKG

v_ename
...

VARCHAR2(80);

BEGIN ...
FUNCTION edit_empno ...

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dfinition du package EMP_PKG


La diapositive prsente le package EMP_PKG.
La procdure HIRE peut tre appele hors du package, car elle est dclare dans
la spcification de celui-ci. La dfinition de la procdure, c'est--dire son code
PL/SQL et SQL, est incluse dans la dfinition de la procdure figurant dans le
corps du package. Pour excuter la procdure HIRE partir de l'outil SQL*Plus,
utilisez la commande EXECUTE.
SQL> EXECUTE emp_pkg.hire(100, 'Moira')
PL/SQL procedure successfully completed.

La variable globale G_EMPNO peut tre rfrence partir du package ou hors de


celui-ci. Vous pouvez utiliser la commande EXECUTE avec l'outil SQL*Plus pour
attribuer la valeur 10 aux variables globales.
SQL> EXEC emp_pkg.g_empno := 10;
PL/SQL procedure successfully completed.

La variable locale V_NAME peut tre rfrence uniquement partir de HIRE.


La fonction EDIT_EMPNO peut tre appele uniquement partir du package,
car elle n'est pas dclare dans la spcification de celui-ci.

.....................................................................................................................................................
5-18
Oracle DBA : Architecture et administration

Packages fournis par Oracle


.....................................................................................................................................................

Packages fournis par Oracle


Packages fournis par Oracle

DBMS_SESSION : gnre des commandes SQL


(par exemple, ALTER SESSION ou SET ROLE).

DBMS_UTILITY : comporte divers utilitaires.

DBMS_ROWID : fournit des informations ROWID.

DBMS_LOB : contient des routines pour


les oprations sur les donnes de type
BLOB et CLOB.

DBMS_SPACE : fournit des informations sur


la disponibilit des espaces segment.
DBMS_SHARED_POOL : conserve et retire les
packages dans la zone de mmoire partage.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Packages fournis par Oracle


La diapositive rpertorie quelques packages fournis par Oracle, ou packages intgrs.
Le tableau rpertorie des exemples de procdures contenues dans les packages fournis
par Oracle.
Package
DBMS_SESSION
DBMS_UTILITY

DBMS_ROWID
DBMS_SPACE
DBMS_SHARED_POOL

Procdures de package
SET_ROLE
SET_SQL_TRACE
ANALYZE_SCHEMA
COMPILE_SCHEMA
DB_VERSION
ROWID_INFO
UNUSED_SPACE
FREE_BLOCKS
KEEP
UNKEEP

Remarque : pour plus d'informations sur les packages fournis par Oracle, consultez
les manuels Oracle8i Supplied Packages Reference et Oracle8i PL/SQL User's Guide
and Reference.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-19

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Obtenir des informations


Obtenir des informations
sur les objets stocks

Vue du dictionnaire de donnes DBA_OBJECTS :


OWNER,
OBJECT_NAME,
OBJECT_TYPE,
STATUS :
VALID,
INVALID.

Commande DESCRIBE :
SQL>
SQL> DESCRIBE
DESCRIBE dbms_session
dbms_session

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dpendances
Le serveur Oracle enregistre automatiquement les relations de dpendance existant
entre les objets du dictionnaire de donnes. Par exemple, une procdure peut tre
dpendante d'une vue, elle-mme dpendante d'une table. Si la table partir de
laquelle la vue est construite est supprime, le serveur Oracle attribue la valeur
INVALID, dans la vue du dictionnaire de donnes DBA_OBJECTS, la colonne
STATUS correspondante.
Tous les objets de schma d'une base de donnes prennent le statut VALID
ou INVALID.
VALID : l'objet a t compil et peut tre immdiatement utilis une fois
rfrenc.
INVALID : l'objet doit d'abord tre compil pour pouvoir tre utilis. Dans le cas
de procdures, de fonctions et de packages, ce statut implique la compilation de
l'objet. Dans le cas d'une vue, celle-ci doit tre ranalyse. Si ces objets restent non
valides une fois recompils, des modifications de code peuvent tre ncessaires
pour pouvoir les excuter.

.....................................................................................................................................................
5-20
Oracle DBA : Architecture et administration

Obtenir des informations


.....................................................................................................................................................

Dpendances (suite)
Interrogez la vue du dictionnaire de donnes DBA_OBJECTS pour obtenir des
informations sur le propritaire, le nom, le type et le statut des objets contenus dans la
base de donnes.
SQL> SELECT object_name, object_type, status
2

FROM dba_objects WHERE object_name like 'DBMS_%'

OBJECT_NAME

OBJECT_TYPE

STATUS

-------------------- --------------- -------DBMS_ALERT

PACKAGE

VALID

DBMS_ALERT

PACKAGE BODY

VALID

DBMS_ALERT_INFO

TABLE

VALID

DBMS_APPLICATION_INF PACKAGE

VALID

DBMS_APPLICATION_INF PACKAGE BODY

VALID

DBMS_AQ

PACKAGE

VALID

DBMS_AQ

PACKAGE BODY

VALID

...

Excutez la commande DESCRIBE avec l'outil SQL*Plus pour obtenir


les spcifications de toutes les procdures et fonctions d'un package.
SQL> desc dbms_session
...
PROCEDURE SET_NLS
Argument Name Type

In/Out Default?

------------- --------- ------ -------PARAM

VARCHAR2

IN

VALUE

VARCHAR2

IN

PROCEDURE SET_ROLE
Argument Name Type

In/Out Default?

------------- --------- ------ -------ROLE_CMD

VARCHAR2

IN

PROCEDURE SET_SQL_TRACE
Argument Name Type

In/Out Default?

------------- --------- ------ -------SQL_TRACE

BOOLEAN

IN

...

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-21

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Dpannage
Dpannage

Le statut des objets dpendants peut tre INVALID :


lorsque des commandes LDD sont excutes
sur des objets rfrencs,
aprs la cration d'objets avec l'utilitaire
IMPORT,
lorsqu'un objet dpendant est modifi.

Dans le cas de programmes avec statut INVALID :


Le serveur Oracle les recompile
automatiquement.
L'utilisateur peut les recompiler manuellement.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dpannage
Aprs l'excution de commandes LDD, telles que ALTER TABLE ADD, RENAME,
DROP et CREATE OR REPLACE, le statut des objets dpendants devient INVALID.
De mme, le chargement de vues et de procdures stockes dpendantes l'aide de
l'utilitaire Import risque de gnrer un statut d'objet INVALID. En effet, il est possible
que l'utilitaire Import ne puisse pas gnrer les objets dpendants aprs la cration des
objets rfrencs.
L'objet A est dpendant de l'objet B si A rfrence B. Par exemple, une colonne est
ajoute la table EMP qui est rfrence dans la procdure HIRE_EMP. La procdure
HIRE_EMP est marque INVALID et doit tre recompile pour pouvoir tre excute.
Le serveur Oracle recompile automatiquement la vue ou le programme PL/SQL
non valide lors de sa prochaine utilisation. En outre, l'utilisateur peut, l'aide de la
commande SQL approprie, obliger le serveur Oracle recompiler une vue, une
procdure stocke ou un package.
Remarque : la recompilation des procdures stockes et des packages est traite de
manire approfondie dans le cours Programmes PL/SQL.

.....................................................................................................................................................
5-22
Oracle DBA : Architecture et administration

Construire le dictionnaire de donnes


.....................................................................................................................................................

Construire le dictionnaire de donnes


Crer des vues du
dictionnaire de donnes
Script

Object

catalog.sql

Cre les vues frquemment utilises


et leurs synonymes.

catproc.sql

Excute les scripts requis par


l'environnement PL/SQL ct serveur.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Crer le dictionnaire de donnes


Les tables de base du dictionnaire de donnes sont automatiquement gnres lors
de la cration d'une base de donnes. Lorsque la base de donnes est cre l'aide
d'Oracle Universal Installer, les vues du dictionnaire de donnes et les scripts
correspondant aux options du serveur Oracle choisies s'excutent automatiquement.
Vous devrez peut-tre les rexcuter lors d'une mise niveau vers une nouvelle
version du serveur Oracle. Excutez ces scripts sous l'ID utilisateur SYS. Ils se
trouvent dans le rpertoire :
$ORACLE_HOME/rdbms/admin sous UNIX,
%ORACLE_HOME%\rdbms\admin sous Windows NT.
Les autres scripts d'administration sont stocks dans ces rpertoires.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-23

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Script catalog.sql
Le script catalog.sql cre les vues et leurs synonymes partir des tables de base et
des vues dynamiques des performances. Il lance d'autres scripts qui crent des objets
pour les lments suivants :
l'environnement PL/SQL de base, y compris les dclarations pour PL/SQL :
les types de donnes,
les exceptions prdfinies,
les procdures et les fonctions intgres,
les oprations SQL,
la fonction d'audit,
la fonction d'import/export,
l'outil SQL*Loader,
les options installes.
Script catproc.sql
Le script catproc.sql dfinit l'utilisation de la fonction PL/SQL. En outre, il cre
plusieurs packages PL/SQL qui permettent d'tendre la fonction du SGBDR. Le script
catproc.sql cre galement des packages et des vues supplmentaires pour les
lments suivants :
les alertes,
les pipes,
l'utilitaire LogMiner,
les grands objets,
les objets,
la gestion des files d'attente de messages,
l'option de rplication,
les autres fonctions intgres et options.
Remarque : vous pouvez utiliser des scripts supplmentaires pour la prise en
charge d'autres fonctions tendues du serveur Oracle (voir section suivante).
Pour plus d'informations sur les packages intgrs, voir Oracle8i Supplied
Packages Reference.
Pour plus d'informations sur ces scripts, consultez le manuel Oracle8i
Administrator's Guide.

.....................................................................................................................................................
5-24
Oracle DBA : Architecture et administration

Scripts d'administration
.....................................................................................................................................................

Scripts d'administration
Scripts d'administration :
conventions d'appellation

Convention

Description

cat*.sql

Informations sur le catalogue et le dictionnaire de donnes.

dbms*.sql

Spcifications de package de base de donnes.

prvt*.plb

Corps de package de base de donnes.

utl*.sql

Vues et tables pour les utilitaires de base de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Catgories de scripts d'administration


Les scripts d'administration peuvent tre rparties en quatre catgories en fonction
de leur nom de fichier :

cat*.sql
dbms*.sql
prvt*.plb
utl*.sql

Scripts cat*.sql Les scripts cat*.sql crent des vues du dictionnaire de


donnes. Outre les scripts catalog.sql et catproc.sql, il existe des scripts qui
gnrent des informations destines aux utilitaires Oracle.
Par exemple, le script catadt.sql cre des vues du dictionnaire de donnes
permettant d'afficher des mtadonnes sur les types d'objet et d'autres caractristiques
objet du SGBDR. Le script catnoadt.sql supprime ces tables et ces vues.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-25

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Catgories de scripts d'administration (suite)


Scripts dbms*.sql et prvt*.plb Les scripts dbms*.sql et prvt*.plb
crent des objets pour les packages Oracle prdfinis pour l'extension des fonctions
du serveur Oracle. Ces programmes facilitent l'administration de la base de donnes.
La plupart des scripts SQL sont lancs lors de l'excution du script catproc.sql.
Quelques scripts supplmentaires doivent tre excuts par l'administrateur de base
de donnes.
Ainsi, le script dbmspool.sql permet, par exemple, d'afficher la taille des objets
de la zone de mmoire partage. Il permet galement de les marquer comme tant
conserver ou supprimer de la mmoire SGA pour limiter la fragmentation de la zone
de mmoire partage.
Scripts utl*.sql Les scripts utl*.sql doivent tre excuts lorsque la base
de donnes requiert des vues et des tables supplmentaires.
Ainsi, le script utlxplan.sql cre, par exemple, une table permettant d'afficher
le plan d'excution d'une instruction SQL.
Remarque : la plupart de ces scripts doivent tre excuts sous l'ID utilisateur SYS.
L'administrateur de base de donnes doit examiner les scripts pour dterminer le
compte utilisateur requis pour leur excution.

.....................................................................................................................................................
5-26
Oracle DBA : Architecture et administration

Exemple de package intgr


.....................................................................................................................................................

Exemple de package intgr


Exemple de package intgr
Spcification
de package
provenant de

CREATE OR REPLACE PACKAGE


dbms_session IS

dbmsutil.sql

PROCEDURE set_role
(role_cmd VARCHAR2);

Corps de
package
provenant de
prvtutil.plb

CREATE OR REPLACE PACKAGE BODY


dbms_session WRAPPED
0
abcd
abcd
abcd
abcd ...

Copyright Oracle Corporation, 1999. Tous droits rservs.

Exemple DBMS_SESSION
La spcification de package DBMS_SESSION se trouve dans le script dbmsutil.sql
et le corps de package associ figure dans le script prvtutil.plb. L'extension .plb
fait rfrence des programmes PL/SQL.
Le corps du package a t cr l'aide de l'utilitaire Oracle Wrapper, lequel masque
le code de l'application par le cryptage du code source PL/SQL.
Pour excuter la procdure de package SET_ROLE avec la valeur de paramtre IN
requise, le nom du rle, dans l'outil SQL*Plus, lancez l'instruction suivante :
SQL> execute DBMS_SESSION.SET_ROLE('APP1');
Statement processed.

Cette instruction gnre la commande SET ROLE en ajoutant le texte APP1 la fin
de SET ROLE, puis en l'excutant comme une commande SQL. Cette commande
permet d'activer ou de dsactiver les rles. Elle est traite de manire approfondie
dans le chapitre "Grer les rles".
Les deux scripts dbmsutil.sql et prvtutil.plb tant appels partir de
catproc.sql, ils n'ont pas besoin d'tre excuts par l'administrateur de base
de donnes aprs l'installation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-27

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Packages et scripts
Les packages rpertoris dans la diapositive prcdente sont crs partir de leur
propre fichier script.
DBMS_SPACE, DBMS_UTILITY, DBMS_ROWID et DBMS_SESSION sont
dfinis par les scripts dbmsutil.sql et prvtutil.plb. Ces scripts sont appels
partir de catproc.sql.
DBMS_LOB est dfini par dbmslob.sql et prvtlob.plb.
DBMS_SHARED_POOL est cr par l'excution du script dbmspool.sql.

.....................................................................................................................................................
5-28
Oracle DBA : Architecture et administration

Dclencheurs
.....................................................................................................................................................

Dclencheurs
Dclencheurs

Sont crits en langage PL/SQL, Java ou C.


Sont excuts :
automatiquement,
implicitement.

Sont stocks dans la base de donnes.


Sont grs comme les autres programmes stocks.
Exemples d'utilisation :
gnration de valeurs de colonnes drives,
mise en uvre d'ditions complexes,
journalisation d'vnements,
audit,
collecte de statistiques.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Prsentation
Les dclencheurs sont des procdures crites en langage PL/SQL, Java ou C, qui
s'excutent (sont actives) implicitement lors de la modification d'une table, lors de la
cration d'un objet ou la suite d'une action de l'utilisateur ou du systme de base de
donnes. Ces procdures peuvent tre crites en langage PL/SQL ou Java et stockes
dans la base de donnes, ou cres en tant que procdures externes.
Les dclencheurs sont identiques aux procdures stockes, mais diffrent par leur
mode d'appel. Une procdure est explicitement excute par un utilisateur, une
application ou un dclencheur. Un ou plusieurs dclencheurs sont implicitement
activs (excuts) par le serveur Oracle en prsence d'un vnement de
dclenchement, indpendamment de l'utilisateur connect ou de l'application utilise.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-29

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Comment les dclencheurs sont-ils utiliss ?


Les dclencheurs peuvent complter les fonctions standard du serveur Oracle, offrant
ainsi un systme de gestion de base de donnes (SGBD) fortement personnalis. Par
exemple, les dclencheurs peuvent tre utiliss pour :
gnrer automatiquement des valeurs de colonne drive,
viter les transactions non valides,
mettre en uvre des autorisations complexes au niveau de la scurit,
appliquer l'intgrit rfrentielle tous les nuds d'une base de donnes
distribue,
mettre en uvre des rgles de gestion complexes qui ne peuvent pas
tre codes sous forme de contraintes,
permettre la journalisation transparente des vnements,
offrir une fonction avance d'audit,
assurer la gestion des rplications synchrones de tables,
obtenir des statistiques sur les accs aux tables,
modifier les donnes des tables lorsque des instructions LMD sont lances
sur les vues,
publier des informations sur les vnements de base de donnes, les vnements
utilisateur et les instructions SQL pour les applications abonnes.

.....................................................................................................................................................
5-30
Oracle DBA : Architecture et administration

Composition d'un dclencheur


.....................................................................................................................................................

Composition d'un dclencheur


Composition d'un dclencheur

Evnement de dclenchement :
le dmarrage ou l'arrt d'une instance,
tout message d'erreur,
une connexion ou dconnexion utilisateur,
une instruction LMD sur une table ou
une vue dtermine,
une instruction LDD sur un schma.

Restriction :
clause boolenne facultative dans une
instruction WHEN,
le dclencheur ne s'excute que si cette
clause est vraie (TRUE).

Action : bloc de programmes.


Copyright Oracle Corporation, 1999. Tous droits rservs.

Trois parties d'un dclencheur


Un dclencheur comprend trois parties principales :
un vnement ou une instruction de dclenchement,
une restriction de dclencheur,
une action dclencheur.
Evnement ou instruction de dclenchement
Un vnement ou une instruction de dclenchement est l'instruction SQL,
l'vnement de base de donnes ou l'vnement utilisateur qui active le dclencheur.
Les vnements de dclenchement les plus susceptibles d'tre utiliss par
l'administrateur de base de donnes sont les suivants :
le dmarrage ou l'arrt d'une instance,
un message d'erreur, spcifique ou non,
une connexion ou une dconnexion utilisateur,
une instruction CREATE, ALTER ou DROP sur un schma.
En outre, les dveloppeurs d'applications peuvent crire des dclencheurs activs par
l'excution d'une instruction INSERT, UPDATE ou DELETE sur une table ou une vue
dtermine.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-31

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Restriction de dclencheur
Une restriction de dclencheur est une expression boolenne (logique) qui doit
tre vraie (TRUE) pour que le dclencheur soit activ. L'action dclencheur n'est
pas excute si la restriction de dclencheur value l'expression comme tant fausse
(FALSE) ou inconnue (UNKNOWN). La restriction de dclencheur est crite l'aide
d'une clause WHEN.
Action dclencheur
Une action dclencheur est une procdure (bloc PL/SQL, programme Java ou appel de
programme externe crit en C) qui contient les instructions et le code SQL excuter
en prsence d'une instruction de dclenchement value comme tant vraie (TRUE)
par la restriction de dclencheur. A l'instar des procdures stockes, une action
dclencheur peut contenir des instructions SQL et PL/SQL ou Java, dfinir des
structures de langage PL/SQL (par exemple, des variables, des constantes, des
curseurs, des exceptions) ou de langage Java et appeler des procdures stockes.

.....................................................................................................................................................
5-32
Oracle DBA : Architecture et administration

Exemple de dclencheur
.....................................................................................................................................................

Exemple de dclencheur
Exemple de dclencheur

CREATE OR REPLACE TRIGGER log_logon


AFTER LOGON ON DATABASE
WHEN (USER = 'SYS' OR USER LIKE 'OPS$%')
BEGIN
INSERT INTO sys.event_log
VALUES ('Logon ' || USER || ' at '
|| TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS'));
COMMIT;
END;
/

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dclencheur de connexion
L'exemple de la diapositive illustre un dclencheur cr ou remplac l'aide de
la commande CREATE OR REPLACE TRIGGER. Ses caractristiques sont les
suivantes :
il est appel LOG_LOGON,
il est activ par chaque connexion utilisateur l'instance,
il ne s'excute que si l'ID utilisateur est SYS ou commence par le prfixe OPS$,
lors de son excution, il insre une ligne dans la table EVENT_LOG pour indiquer
qu'un utilisateur s'est connect l'instance.
Les informations relatives aux dclencheurs sont stockes dans la vue du dictionnaire
de donnes DBA_TRIGGERS.
La mise en uvre des dclencheurs est traite en profondeur dans le cours
Programmes PL/SQL stocks.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
5-33

Chapitre 5 : Crer des vues du dictionnaire de donnes et des packages standard


.....................................................................................................................................................

Synthse
Synthse
Ce chapitre vous a permis d'apprendre :

obtenir des informations sur la base de donnes


et l'instance l'aide du dictionnaire de donnes,

obtenir des informations sur les vues du


dictionnaire de donnes partir de DICTIONARY
et de DICT_COLUMNS,

crer des vues du dictionnaire de donnes et


excuter les packages fournis par Oracle l'aide
de scripts d'administration,

obtenir des informations sur les programmes


PL/SQL stocks partir de DBA_SOURCE,

utiliser les dclencheurs d'vnement de base


de donnes.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des
performances
Vues du dictionnaire
de donnes

Commandes
Procdures et fonctions
de package

Rfrence
Nant
Nant
DICTIONARY
DICT
DICT_COLUMNS
DBA_OBJECTS
DBA_TRIGGERS
Nant
DBMS_SESSION.SET_ROLE

.....................................................................................................................................................
5-34
Oracle DBA : Architecture et administration

6
.................................

Grer le fichier
de contrle

Chapitre 6 : Grer le fichier de contrle


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

expliquer l'utilisation du fichier de contrle,


numrer le contenu du fichier de contrle,
multiplexer le fichier de contrle,
obtenir des informations du fichier de contrle.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
6-2
Oracle DBA : Architecture et administration

Utiliser le fichier de contrle


.....................................................................................................................................................

Utiliser le fichier de contrle


Utiliser le fichier de contrle

Fichiers
Fichiers de Fichiers de de journadonnes
contrle
lisation

Petit fichier binaire


Ncessaire :
au montage
au fonctionnement

Li une seule base


de donnes
Base de donnes

Doit tre multiplex


En cas de perte du
fichier de contrle,
la base de donnes
doit tre restaure

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser le fichier de contrle


Le fichier de contrle d'une base de donnes est un petit fichier binaire ncessaire au
dmarrage de la base et son fonctionnement. Chaque fichier de contrle est associ
une seule base de donnes Oracle.
Le fichier de contrle est mis jour en permanence par le serveur Oracle pendant
l'utilisation de la base de donnes et il doit donc tre disponible pour l'criture
d'informations chaque fois que la base de donnes est ouverte. Les informations
du fichier de contrle ne peuvent tre modifies que par le serveur Oracle ; ni
l'administrateur de la base, ni l'utilisateur final ne peut le modifier.
Si le fichier de contrle n'est pas accessible, la base de donnes ne peut pas fonctionner
correctement. Si vous perdez toutes les copies des fichiers de contrle d'une base de
donnes, vous devez restaurer la base pour pouvoir l'ouvrir.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
6-3

Chapitre 6 : Grer le fichier de contrle


.....................................................................................................................................................

Contenu du fichier de contrle


Contenu du fichier de contrle

Nom et identificateur de la base de donnes

Noms des tablespaces

Date de cration de la base de donnes


Emplacement des fichiers de donnes
et de journalisation
Historique de journalisation
Informations de sauvegarde
Numro de squence du journal en cours
Informations de points de reprise

Copyright Oracle Corporation, 1999. Tous droits rservs.

Contenu du fichier de contrle

Le nom de la base de donnes correspond au nom indiqu par le paramtre


d'initialisation DB_NAME ou celui utilis dans l'instruction CREATE
DATABASE.
L'identificateur de la base de donnes est enregistr lors de la cration de la base.
La date et l'heure de cration de la base de donnes sont galement enregistres
lors de la cration de cette dernire.
Les noms et les emplacements des fichiers de donnes et des fichiers de
journalisation "online" (online redo logs) associs sont mis jour lors de l'ajout, du
changement de nom ou de la suppression d'un fichier de donnes ou d'un fichier de
journalisation dans la base de donnes.
Les informations de tablespace sont mises jour lors de l'ajout ou de la
suppression des tablespaces.
L'historique de journalisation est enregistr lors des changements de fichiers de
journalisation.
L'emplacement et le statut des journaux archivs sont enregistrs lors de
l'archivage.
L'emplacement et le statut des sauvegardes sont enregistrs par l'utilitaire
Recovery Manager.
Le numro de squence de journal en cours est enregistr lors des changements de
fichiers de journalisation.
Les informations de point de reprise (checkpoint) sont enregistres lorsque des
points de reprise sont crs.

.....................................................................................................................................................
6-4
Oracle DBA : Architecture et administration

Contenu du fichier de contrle


.....................................................................................................................................................

Contenu du fichier de contrle (suite)


Le fichier de contrle contient deux types de section :
les sections rutilisables,
les sections non rutilisables.
Les sections rutilisables contiennent les informations de Recovery Manager,
telles que les noms des fichiers de donnes de sauvegarde et ceux des fichiers de
journalisation de sauvegarde. Ces sections sont utilises de manire circulaire et ne
peuvent tre rutilises que par Recovery Manager.
Remarque : Recovery Manager est dcrit en dtail dans le cours Oracle DBA :
Sauvegarde et restauration.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
6-5

Chapitre 6 : Grer le fichier de contrle


.....................................................................................................................................................

Multiplexer le fichier de contrle


Multiplexer le fichier de contrle

control_files=(/DISK1/control01.con,/DISK2/control02.con)

Disque 1

control01.con

Disque 2

control02.con

Copyright Oracle Corporation, 1999. Tous droits rservs.

Multiplexer le fichier de contrle


A l'instar des fichiers de journalisation "online", Oracle permet d'ouvrir simultanment
plusieurs fichiers de contrle identiques et d'crire des donnes dans ces fichiers.
Vous pouvez dfinir jusqu' huit noms de fichier l'aide du paramtre d'initialisation
CONTROL_FILES. Le serveur Oracle cre et gre tous les fichiers lists dans ce
paramtre lors du dmarrage de l'instance.
Vous pouvez multiplexer les fichiers de contrle :
en crant plusieurs fichiers de contrle lors de la cration de la base de donnes,
en ajoutant un fichier de contrle une fois la base de donnes cre.
Crer un fichier de contrle lors de la cration de la base de donnes La
mthode la plus simple pour crer plusieurs fichiers de contrle consiste inclure
leurs noms dans le paramtre d'initialisation CONTROL_FILES lors de la cration
de la base :
CONTROL_FILES = (/DISK1/control01.con,/DISK2/control02.con)

Le serveur Oracle cre tous les fichiers de contrle lists dans le paramtre. Le chemin
complet des fichiers doit figurer dans ce paramtre. Les spcifications de nom de
fichier sont spcifiques au systme d'exploitation.

.....................................................................................................................................................
6-6
Oracle DBA : Architecture et administration

Multiplexer le fichier de contrle


.....................................................................................................................................................

Multiplexer le fichier de contrle (suite)


Ajouter un fichier de contrle Pour ajouter un fichier de contrle ou modifier son
numro ou son emplacement, procdez comme suit :
1 Arrtez la base de donnes.
2 Copiez le fichier de contrle en cours l'aide de la commande approprie du
systme d'exploitation.
3 Ajoutez le nouveau nom de fichier de contrle au paramtre CONTROL_FILES.
4 Dmarrez la base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
6-7

Chapitre 6 : Grer le fichier de contrle


.....................................................................................................................................................

Instructions relatives aux fichiers de contrle


Instructions relatives aux
fichiers de contrle

Vous devez :
multiplexer le fichier de contrle,
inclure le chemin complet dans CONTROL_FILES,
sauvegarder le fichier de contrle aprs
modification de la structure de la base de donnes.

Fichiers de contrle :
taille dfinie par les mots-cls de la commande
CREATE DATABASE,
contiennent une section rutilisable dont la taille
peut augmenter suite aux mises jour de Recovery
Manager.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Fonction du multiplexage
Pour vous prmunir contre une dfaillance du fichier de contrle, il est fortement
recommand de le multiplexer en stockant chaque copie sur un disque physique
diffrent.
En cas de perte du fichier de contrle, utilisez la copie pour redmarrer l'instance.
Si vous avez stock plusieurs copies du fichier de contrle en cours sur des disques
diffrents, vous pouvez aisment dmarrer l'instance sans avoir restaurer la base de
donnes.

.....................................................................................................................................................
6-8
Oracle DBA : Architecture et administration

Instructions relatives aux fichiers de contrle


.....................................................................................................................................................

Mots-cls de la commande CREATE DATABASE


Les mots-cls indiqus lors de la cration de la base de donnes affectent la taille du
fichier de contrle. Cela est particulirement notable lorsque les paramtres ont des
valeurs leves. Vous pouvez tre amen recrer le fichier de contrle pour modifier
l'un ou plusieurs des paramtres de limite de la base de donnes, ce qui peut augmenter
ou diminuer la taille du fichier de contrle.
Les mots-cls suivants de la commande CREATE DATABASE ou CREATE
CONTROLFILE ont un impact sur la taille du fichier de contrle :
MAXLOGFILES
MAXLOGMEMBERS
MAXLOGHISTORY
MAXDATAFILES
MAXINSTANCES
Vous devez crer un nouveau fichier de contrle afin de modifier la taille de l'espace
cr par ces mots-cls.
La taille de la section rutilisable peut augmenter
Lorsque vous utilisez Recovery Manager, la taille de la section rutilisable du fichier
de contrle peut augmenter en fonction des entres ncessaires Recovery Manager.
Sauvegarde aprs une modification de la structure de la base de
donnes
Du fait que le fichier de contrle enregistre la structure physique de la base de
donnes, vous devez immdiatement effectuer une sauvegarde de ce fichier aprs
avoir modifi la structure physique de la base de donnes.
La sauvegarde et la restauration du fichier de contrle sont expliques en dtail dans le
cours Oracle DBA : Sauvegarde et restauration.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
6-9

Chapitre 6 : Grer le fichier de contrle


.....................................................................................................................................................

Obtenir des informations sur les fichiers de contrle


Obtenir des informations

V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
Informations des vues des performances
provenant du fichier de contrle :
V$DATAFILE
V$TEMPFILE
V$TABLESPACE
V$LOG
Autres

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur les fichiers de contrle


Pour obtenir l'emplacement et le nom des fichiers de contrle, utilisez la vue
dynamique des performances V$CONTROLFILE.
SQL> SELECT name
2

FROM v$controlfile;

NAME
----------------------/DISK1/control01.con
/DISK2/control02.con
2 rows selected.

Vous pouvez galement utiliser la vue V$PARAMETER, mais la longueur des


colonnes peut provoquer la troncature des noms de fichiers de contrle.

.....................................................................................................................................................
6-10
Oracle DBA : Architecture et administration

Obtenir des informations sur les fichiers de contrle


.....................................................................................................................................................

Obtenir des informations sur les fichiers de contrle (suite)


Pour obtenir des informations sur les sections des fichiers de contrle, interrogez la
vue dynamique des performances V$CONTROLFILE_RECORD_SECTION.
SQL> SELECT type, record_size, records_total, records_used
2 FROM v$controlfile_record_section
3 WHERE type='DATAFILE';
TYPE

RECORD_SIZ

RECORDS_TO

RECORDS_US

-------------

----------

----------

----------

DATAFILE

180

30

1 row selected.

La colonne RECORDS_TO indique le nombre d'enregistrements allous une section


spciale. Vous pouvez, par exemple, afficher le nombre maximum de fichiers de
donnes (30, dans notre exemple) qui est dtermin par le paramtre
MAXDATAFILES de la commande CREATE DATABASE.
Les informations figurant dans plusieurs des autres vues dynamiques des
performances proviennent du fichier de contrle :
V$BACKUP
V$DATAFILE
V$TEMPFILE
V$TABLESPACE
V$ARCHIVE
V$LOG
V$LOGFILE
V$LOGHIST
V$ARCHIVED_LOG
V$DATEBASE
Autres

.....................................................................................................................................................
Oracle DBA : Architecture et administration
6-11

Chapitre 6 : Grer le fichier de contrle


.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

que le fichier de contrle est ncessaire au


montage et au fonctionnement de la base de
donnes,

multiplexer le fichier de contrle pour viter


une dfaillance de la base de donnes,

sauvegarder le fichier de contrle aprs


modification de la structure physique de
la base de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des performances

Rfrence
CONTROL_FILES
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION

Vues du dictionnaire de donnes


Commandes
Procdures et fonctions de package

V$PARAMETER
Aucune
Aucune
Aucune

.....................................................................................................................................................
6-12
Oracle DBA : Architecture et administration

7
.................................

Grer les fichiers de


journalisation (redo log)

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Objectifs
Objectifs
A la fin de ce chapitre, vous pourrez :
expliquer l'utilisation des fichiers de journalisation
en ligne,
obtenir des informations de journalisation
et d'archivage,
grer les changements de fichiers de journalisation
et les points de reprise,
multiplexer et grer les fichiers de journalisation
en ligne,
planifier les fichiers de journalisation en ligne,
rsoudre les problmes courants lis aux fichiers
de journalisation,
analyser les fichiers de journalisation en ligne
et archivs.
Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
7-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Utiliser des fichiers de journalisation

Fichiers de
donnes

Fichiers de
contrle

Fichiers
de journalisation

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fonctions des fichiers de journalisation


Le serveur Oracle gre des fichiers de journalisation en ligne (online) pour minimiser
les pertes de donnes de la base. Ces fichiers enregistrent toutes les modifications
apportes aux donnes dans le cache de tampons de la base (database buffer cache),
sauf dans certains cas, par exemple lorsque les donnes sont crites directement dans
la base.
Les fichiers de journalisation servent restaurer les donnes valides non crites dans
les fichiers de donnes en cas, par exemple, de dfaillance de l'instance. Les fichiers de
journalisation ne servent que pour la restauration.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-3

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Utiliser des fichiers de journalisation en ligne


Groupes et membres de groupe de
fichiers de journalisation

Groupe 1

Groupe 2

Groupe 3
Disque 1

Membre

Membre

Membre

Membre

Membre

Membre

Copyright Oracle Corporation, 1999. Tous droits rservs.

Disque 2

Structure des fichiers de journalisation


L'administrateur de base de donnes peut configurer la base Oracle pour grer des
copies de fichiers de journalisation en ligne (online) afin d'viter de perdre des
donnes en cas d'incident.
Groupes de fichiers de journalisation en ligne
Un jeu de copies identiques de fichiers de journalisation en ligne s'appelle un
groupe de fichiers de journalisation en ligne.
Le processus d'arrire-plan LGWR crit simultanment les mmes informations
dans tous les fichiers de journalisation en ligne du groupe.
Le serveur Oracle ncessite au moins deux groupes de fichiers de journalisation en
ligne pour permettre la base de donnes de fonctionner correctement.
Membres d'un groupe de fichiers de journalisation en ligne
Chaque fichier de journalisation en ligne d'un groupe s'appelle un membre.
Les membres d'un groupe portent tous le mme numro de squence de journal et
ont tous la mme taille. Un numro de squence de journal, permettant d'identifier
de manire unique chaque fichier de journalisation, est attribu chaque fois que le
serveur Oracle crit dans un groupe de fichiers de journalisation. Le numro de
squence de journal en cours est stock dans le fichier de contrle et dans l'en-tte
de tous les fichiers de donnes.

.....................................................................................................................................................
7-4
Oracle DBA : Architecture et administration

Utiliser des fichiers de journalisation en ligne


.....................................................................................................................................................

Crer des fichiers de journalisation initiaux


Les groupes de fichiers de journalisation en ligne (online) et les membres initiaux sont
crs en mme temps que la base de donnes.
Les paramtres suivants limitent le nombre de fichiers de journalisation en ligne :
Le paramtre MAXLOGFILES de la commande CREATE DATABASE dfinit le
nombre maximum absolu de groupes de fichiers de journalisation en ligne.
La valeur maximale et la valeur par dfaut du paramtre MAXLOGFILES
dpendent du systme d'exploitation.
Le paramtre MAXLOGMEMBERS de la commande CREATE DATABASE
dtermine le nombre maximum de membres par groupe. La valeur maximale et la
valeur par dfaut du paramtre MAXLOGMEMBERS dpendent du systme
d'exploitation.
Le paramtre d'initialisation LOG_FILES dfinit le nombre maximum actuel de
groupes de fichiers de journalisation pouvant tre ouverts pendant l'excution de la
base. Ce nombre ne peut tre suprieur la valeur du paramtre MAXLOGFILES.
Remarque technique
Pour simplifier l'administration des bases de donnes, le paramtre LOG_FILES n'est
plus utilis dans la version 8.1.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-5

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Processus LGWR, changements de fichier de


journalisation et points de reprise
Architecture Oracle
SGA

Instance
Cache de
tampons
des donnes

DBWR

Fichier de
paramtres
Fichier
de mots
de passe

Tampon
de journalisation

CKPT

LGWR

Fichiers de
contrle
Fichiers de
donnes

ARCH

Fichiers
de journalisation

Fichiers
journaux
archivs

Base de donnes
Copyright Oracle Corporation, 1999. Tous droits rservs.

Tampon de journalisation (redo log buffer) et processus


d'arrire-plan LGWR
Le serveur Oracle enregistre squentiellement dans le tampon de journalisation toutes
les modifications apportes la base de donnes. Le tampon de journalisation est
utilis de manire circulaire. Les entres de journalisation sont crites dans l'un des
groupes de fichiers de journalisation en ligne (online), appel groupe de fichiers de
journalisation en ligne en cours par le processus LGWR dans les cas suivants :
lorsqu'une transaction est valide,
lorsqu'un tiers du tampon de journalisation est occup,
lorsque le tampon de journalisation contient plus d'un mgaoctet de modifications,
en cas de temporisation (toutes les trois secondes),
avant que le processus DBWn n'crive les blocs modifis du cache de tampons de
la base dans les fichiers de donnes.
Changements de fichier de journalisation
Le processus LGWR crit les donnes squentiellement dans les fichiers de
journalisation en ligne ; lorsque le groupe de fichiers de journalisation en cours est
plein, le processus crit les donnes dans le groupe suivant. Lorsque le dernier fichier
de journalisation en ligne disponible est plein, le processus LGWR utilise de nouveau
le premier groupe de fichiers de journalisation en ligne pour y crire les donnes.

.....................................................................................................................................................
7-6
Oracle DBA : Architecture et administration

Processus LGWR, changements de fichier de journalisation et points de reprise


.....................................................................................................................................................

Changements de fichier de journalisation (suite)


L'administrateur de base de donnes peut galement imposer le changement de fichier
de journalisation (voir les sections suivantes). Chaque fois qu'un changement de
fichier de journalisation se produit et que le processus LGWR crit les donnes dans
un nouveau groupe de fichiers de journalisation, le serveur Oracle affecte un numro,
appel numro de squence du journal, permettant d'identifier l'ensemble d'entres de
journalisation.
Lors d'un changement de fichier de journalisation, un vnement appel point de
reprise se produit.
Le changement de fichier de journalisation est l'vnement au cours duquel le
processus LGWR arrte d'crire les donnes dans un groupe de fichiers de
journalisation en ligne (online) pour les crire dans un autre.
Points de reprise
Au cours d'un point de reprise :
Des tampons de base de donnes "dirty" couverts par le fichier de journalisation
associ au point de reprise sont crits dans les fichiers de donnes par le processus
DBWn. Le nombre de mmoires tampon crites par le processus DBWn est
dtermin par le paramtre FAST_START_IO_TARGET, s'il est dfini. Ces
oprations sont dcrites en dtail dans le cours Oracle DBA : Sauvegarde et
restauration.
Le processus d'arrire-plan de point de reprise CKPT met jour les en-ttes
de tous les fichiers de donnes et de contrle pour indiquer qu'il s'est excut
correctement.
Des points de reprise peuvent se produire pour tous les fichiers de donnes de la base
ou pour certains seulement.
Un point de reprise se produit, par exemple, dans les cas suivants :
chaque changement de fichier de journalisation,
lors de l'arrt d'une instance l'aide de l'option Normal, Transactional ou
Immediate,
lorsqu'il est impos par les paramtres d'initialisation
LOG_CHECKPOINT_INTERVAL, LOG_CHECKPOINT_TIMEOUT et
FAST_START_IO_TARGET (voir les sections suivantes),
lorsque l'administrateur de base de donnes le demande manuellement (voir les
sections suivantes).
Les informations sur chaque point de reprise sont enregistres dans le fichier ALERT
si le paramtre d'initialisation LOG_CHECKPOINTS_TO_ALERT a la valeur TRUE.
La valeur par dfaut FALSE de ce paramtre ne permet pas d'enregistrer les points de
reprise.
Remarque technique
Le paramtre FAST_START_IO_TARGET a t ajout la version 8.1.
.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-7

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Archiver les fichiers de journalisation


Sans archivage

Sauvegarde

Dfaillance
matrielle

Fichiers
de
contrle

Fichiers de
donnes

50

51

t1

100

101

t2

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
7-8
Oracle DBA : Architecture et administration

Archiver les fichiers de journalisation


.....................................................................................................................................................

Avec archivage

Sauvegarde

Fichiers de
donnes

Fichiers
de
contrle

Fichiers de
journalisation
archivs

Dfaillance
matrielle

50

99
50

51

t1

100

101

t2

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dterminer si l'archivage des fichiers de journalisation doit tre activ


L'une des principales dcisions de l'administrateur consiste dterminer s'il doit faire
fonctionner la base de donnes en mode ARCHIVELOG ou en mode
NOARCHIVELOG.
Mode NOARCHIVELOG En mode NOARCHIVELOG, les donnes des fichiers
de journalisation en ligne (online) sont crases chaque fois qu'un fichier de
journalisation est plein et qu'un changement de fichier de journalisation se produit. Le
processus LGWR n'crase pas les donnes d'un groupe de fichiers de journalisation
tant que le processus de point de reprise du groupe n'est pas termin.
Mode ARCHIVELOG Si la base de donnes fonctionne en mode ARCHIVELOG,
les groupes inactifs de fichiers de journalisation pleins doivent tre archivs. Dans la
mesure o toutes les modifications apportes la base de donnes sont enregistres
dans les fichiers de journalisation en ligne, l'administrateur de base de donnes peut
utiliser la sauvegarde physique et les fichiers de journalisation en ligne archivs pour
restaurer la base de donnes sans perdre les donnes valides.
Vous pouvez archiver les fichiers de journalisation en ligne de deux manires :
manuellement,
automatiquement.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-9

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Dterminer si l'archivage des fichiers de journalisation doit tre


activ (suite)
Mode ARCHIVELOG (suite)
Le paramtre d'initialisation LOG_ARCHIVE_START indique si l'archivage doit tre
automatique ou manuel lors du dmarrage de l'instance.
TRUE indique que l'archivage est automatique. ARCn lance l'archivage du groupe
de fichiers de journalisation pleins chaque changement de fichier de
journalisation.
La valeur par dfaut FALSE indique que l'administrateur de base de donnes
archive manuellement les fichiers de journalisation pleins. Il doit excuter une
commande manuelle chaque fois qu'il souhaite archiver un fichier de
journalisation en ligne (online). Tous les fichiers de journalisation en ligne ou
certains d'entre eux peuvent tre archivs manuellement.
Remarque : l'archivage est expliqu en dtail dans le cours Oracle DBA : Sauvegarde
et restauration.

.....................................................................................................................................................
7-10
Oracle DBA : Architecture et administration

Obtenir des informations sur la journalisation et l'archivage


.....................................................................................................................................................

Obtenir des informations sur la journalisation et


l'archivage
Obtenir des informations
sur l'archivage

Commande SQL :
ARCHIVE
ARCHIVE LOG
LOG LIST;
LIST;

V$DATABASE :
NAME
LOG_MODE

V$INSTANCE :
ARCHIVER

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur l'archivage


La commande SQL suivante affiche le mode de journalisation d'une base de donnes
et indique si l'archivage automatique est activ :
SQL> ARCHIVE LOG LIST
Database log mode
Automatic archival
Archive destination
Oldest online log sequence
Current log sequence

No Archive Mode
Disabled
?/dbs/arch
688
689

Interrogez les vues dynamiques des performances V$DATABASE et V$INSTANCE


pour afficher le mode de journalisation et d'archivage de la base de donnes.
SQL>
2

SELECT name, log_mode


FROM v$database;

NAME
LOG_MODE
----------------U15
NOARCHIVELOG
1 row selected.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-11

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Obtenir des informations sur l'archivage (suite)


SQL>
2

SELECT archiver
FROM v$instance;

ARCHIVE
--------STOPPED
1 row selected.

.....................................................................................................................................................
7-12
Oracle DBA : Architecture et administration

Obtenir des informations sur la journalisation et l'archivage


.....................................................................................................................................................

Utiliser Instance Manager pour obtenir des informations sur l'archivage


Lancer Instance Manager et obtenir des informations sur l'archivage.
1 Lancez Instance Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Instance Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez la base de donnes de travail, puis slectionnez Database dans
l'arborescence du navigateur.
4 Cliquez sur l'onglet Information pour obtenir les informations d'archivage.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-13

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Obtenir des informations sur les groupes

V$THREAD :

GROUPS
CURRENT_GROUP#
SEQUENCE#

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur les groupes de fichiers de journalisation


Pour afficher le nombre de groupes de fichiers de journalisation en ligne (online), le
groupe de fichiers de journalisation en cours et le numro de squence, interrogez la
vue dynamique des performances V$THREAD. Cette vue prsente un intrt
particulier pour les administrateurs de Parallel Server.
SQL>
2

SELECT groups, current_group#, sequence#


FROM v$thread;

GROUPS
---------2
1 row selected.

CURRENT_GR
---------1

SEQUENCE#
---------689

.....................................................................................................................................................
7-14
Oracle DBA : Architecture et administration

Obtenir des informations sur la journalisation et l'archivage


.....................................................................................................................................................

Obtenir des informations sur


les groupes et les membres
V$LOG :

GROUP#
MEMBERS
STATUS
SEQUENCE#
BYTES

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur les groupes de fichiers de


journalisation (suite)
L'interrogation suivante renvoie des informations sur le fichier de journalisation en
ligne (online) partir du fichier de contrle :
SQL>

SELECT group#, sequence#, bytes, members, status


2 FROM v$log;
GROUP#
SEQUENCE#
BYTES
MEMBERS
--------------------------------1
688
1048576
1
2
689
1048576
1
2 rows selected.

STATUS
--------CURRENT
INACTIVE

Les lments suivants correspondent aux valeurs les plus courantes de la colonne
STATUS :
UNUSED : indique que le groupe de fichiers de journalisation en ligne n'a jamais
t utilis. Il s'agit du statut d'un fichier de journalisation en ligne qui vient d'tre
ajout.
CURRENT : indique le groupe de fichiers de journalisation en ligne en cours. Cela
implique que le groupe de fichiers de journalisation en ligne est actif.
ACTIVE : indique que le groupe de fichiers de journalisation en ligne est actif,
mais qu'il ne s'agit pas du groupe en cours. Il est ncessaire pour la restauration
aprs blocage et peut tre utilis pour la restauration de blocs. Il peut tre archiv
ou non.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-15

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Obtenir des informations sur les groupes de fichiers de


journalisation (suite)
CLEARING : indique que le fichier de journalisation est vid et recr la suite de
l'excution de la commande ALTER DATABASE CLEAR LOGFILE. Une fois le
fichier de journalisation vid, son statut devient UNUSED.
CLEARING_CURRENT : indique qu'un thread ferm est supprim du fichier de
journalisation en cours. Le fichier de journalisation peut conserver ce statut si une
erreur de changement de fichier de journalisation se produit, par exemple une
erreur d'entre/sortie lors de l'criture de l'en-tte du nouveau fichier de
journalisation.
INACTIVE : indique que le groupe de fichiers de journalisation en ligne (online)
n'est plus utile la rcupration de l'instance. Il peut tre archiv ou non.

.....................................................................................................................................................
7-16
Oracle DBA : Architecture et administration

Obtenir des informations sur la journalisation et l'archivage


.....................................................................................................................................................

Obtenir des informations sur


les groupes et les membres
V$LOGFILE :

GROUP#
STATUS
MEMBER

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur les membres d'un groupe de journalisation


Interrogez la vue dynamique des performances V$LOGFILE pour obtenir le nom de
tous les membres d'un groupe.
SQL>
2>

SELECT *
FROM v$logfile;

GROUP#STATUSMEMBER
----------------- ----------------------------1

/DISK3/log1a.rdo

/DISK4/log2a.rdo

La colonne STATUS peut contenir l'une des valeurs suivantes :


INVALID : indique que le fichier est inaccessible.
STALE : indique que le contenu du fichier est incomplet (par exemple, lorsque
l'ajout du membre est en cours).
DELETED : indique que le fichier n'est plus utilis.
L'absence de valeur indique que le fichier est utilis.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-17

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Grer les changements de fichier de journalisation et les


points de reprise
Changements de fichier de
journalisation et points de reprise

Imposer des changements de fichier de


journalisation l'aide de la commande :
ALTER
ALTER SYSTEM
SYSTEM SWITCH
SWITCH LOGFILE;
LOGFILE;

Grer les points de reprise l'aide des paramtres


d'initialisation :
LOG_CHECKPOINT_INTERVAL
LOG_CHECKPOINT_TIMEOUT
FAST_START_IO_TARGET

Copyright Oracle Corporation, 1999. Tous droits rservs.

Imposer des changements de fichier de journalisation et des points


de reprise
Un changement de fichier de journalisation survient lorsque le processus LGWR
arrte d'crire les donnes dans un groupe de fichiers de journalisation en ligne
(online) pour les crire dans un autre.
Les changements de fichier de journalisation et les points de reprise sont des
vnements qui se produisent automatiquement, par exemple lorsque le groupe de
fichiers de journalisation en ligne en cours est plein. Toutefois, ces vnements
peuvent tre imposs.
Imposer des changements de fichier de journalisation
Utilisez la commande SQL suivante pour imposer un changement de fichier de
journalisation :
SQL>

ALTER SYSTEM SWITCH LOGFILE;

Imposer des points de reprise


Utilisez la commande SQL suivante pour imposer manuellement un point de reprise :
SQL>

ALTER SYSTEM CHECKPOINT;

.....................................................................................................................................................
7-18
Oracle DBA : Architecture et administration

Grer les changements de fichier de journalisation et les points de reprise


.....................................................................................................................................................

Dfinir la frquence des points de reprise d'une base de donnes


Lorsque la base de donnes utilise des fichiers de journalisation en ligne (online)
volumineux, vous pouvez indiquer des points de reprise de base de donnes
supplmentaires en dfinissant les paramtres d'initialisation suivants :
LOG_CHECKPOINT_INTERVAL
LOG_CHECKPOINT_TIMEOUT
FAST_START_IO_TARGET (dans la version 8.1, mais uniquement pour
Enterprise Edition)
LOG_CHECKPOINT_INTERVAL Pour les versions antrieures la version 8.1,
un point de reprise se produit ds que le processus LGWR crit le nombre de blocs
dfinis par le paramtre LOG_CHECKPOINT_INTERVAL.
La valeur de ce paramtre est dfinie dans des blocs du systme d'exploitation et non
dans ceux de la base de donnes Oracle.
Quelle que soit cette valeur, un point de reprise se produit toujours lors d'un
changement de fichier de journalisation en ligne.
Si la valeur est suprieure la taille relle du fichier de journalisation en ligne,
les points de reprise ne se produisent que lors des changements de fichier de
journalisation.
Notez que la frquence 0 peut provoquer la constitution trs frquente de points de
reprise, car une nouvelle demande est lance mme si un seul tampon de journalisation
(redo log buffer) a t crit depuis la dernire demande.
Si vous dfinissez le paramtre LOG_CHECKPOINT_INTERVAL dans la
version 8.1, la cible ne peut tre dcale par rapport la fin du fichier de journalisation
d'un nombre de blocs de journalisation (redo log block) suprieur celui dfini par ce
paramtre. Ainsi, l'instance peut tre rcupre sans qu'il soit ncessaire de lire un
nombre de blocs de journalisation suprieur au nombre dfini.
LOG_CHECKPOINT_TIMEOUT La valeur du paramtre d'initialisation des
versions antrieures la version 8.1 dfinit le dlai maximum entre deux points de
reprise. La valeur est dfinie en secondes. Le dlai correspond au nombre de secondes,
dfini par le paramtre, qui doit s'couler entre le dbut d'un point de reprise et
l'excution du point de reprise suivant.
La valeur de temporisation 0 dsactive les points de reprise planifis.
Si vous dfinissez ce paramtre dans la version 8.1, la distance entre la cible et la fin
du fichier de journalisation correspond au nombre de secondes coules. Ainsi, la
rcupration s'effectue en ne lisant que le nombre de blocs de journalisation
correspondant au nombre de secondes dfini.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-19

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Dfinir la frquence des points de reprise d'une base de donnes (suite)


FAST_START_IO_TARGET Le paramtre FAST_START_IO_TARGET
amliore les performances des oprations de restauration aprs blocage et de
rcupration d'une instance. Plus la valeur de ce paramtre est faible, meilleures
sont les performances, car le nombre de blocs rcuprer est moindre. Si vous
dfinissez le paramtre, le processus DBWn crit les tampons "dirty" plus rapidement.
Le paramtre a t introduit dans la version 8.1.
Remarque technique
La procdure de point de reprise rapide est dcrite en dtail dans le cours Oracle
DBA : Sauvegarde et restauration.

.....................................................................................................................................................
7-20
Oracle DBA : Architecture et administration

Multiplexer et grer les membres et les groupes


.....................................................................................................................................................

Multiplexer et grer les membres et les groupes


Ajouter des groupes de fichiers
de journalisation en ligne
ALTER
ALTER DATABASE
DATABASE ADD
ADD LOGFILE
LOGFILE
('/DISK3/log3a.rdo',
('/DISK3/log3a.rdo',
'/DISK4/log3b.rdo')
'/DISK4/log3b.rdo') size
size 1M;
1M;

log1b.rdo

log2b.rdo

log3b.rdo

Groupe 1

Groupe 2

Groupe 3

Copyright Oracle Corporation, 1999. Tous droits rservs.

Ajouter des groupes de fichiers de journalisation


Dans certains cas, vous pouvez tre amen crer des groupes de fichiers de
journalisation supplmentaires. Par exemple, vous pouvez ajouter des groupes pour
rsoudre les problmes de disponibilit. Utilisez la commande SQL suivante pour
crer un groupe de fichiers de journalisation en ligne (online) :
ALTER DATABASE [database]
ADD LOGFILE [GROUP integer] filespec
[,
[GROUP integer] filespec]...]

Dfinissez le nom et l'emplacement des membres en suivant les spcifications de


fichier. Vous pouvez dfinir la valeur du paramtre GROUP pour chaque groupe de
fichiers de journalisation. Si vous ne dfinissez pas ce paramtre, le serveur Oracle
gnre la valeur automatiquement.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-21

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Ajouter des membres des groupes


de fichiers de journalisation en ligne

ALTER
ALTER DATABASE
DATABASE ADD
ADD
'/DISK4/log1b.rdo'
'/DISK4/log1b.rdo'
'/DISK4/log2b.rdo'
'/DISK4/log2b.rdo'

log1a.rdo

LOGFILE
LOGFILE MEMBER
MEMBER
TO
TO GROUP
GROUP 1,
1,
TO
TO GROUP
GROUP 2;
2;

log1b.rdo

Groupe 1

log2a.rdo

log2b.rdo

Groupe 2

Copyright Oracle Corporation, 1999. Tous droits rservs.

Ajouter des membres des groupes de fichiers de journalisation


Pour ajouter des membres des groupes de fichiers de journalisation, utilisez la
commande ALTER DATABASE LOGFILE MEMBER suivante :
ALTER DATABASE [database]
ADD LOGFILE MEMBER
[
'filename' [REUSE]
[, 'filename' [REUSE]]...
TO {GROUP integer
|('filename'[, 'filename']...)
}
]...

Utilisez le nom complet des membres pour ne pas crer les fichiers dans un rpertoire
par dfaut du serveur de base de donnes.
Si le fichier existe dj, il doit avoir la mme taille, et vous devez indiquer l'option
REUSE. Vous pouvez identifier le groupe cible en dfinissant des membres du groupe
ou le numro du groupe.

.....................................................................................................................................................
7-22
Oracle DBA : Architecture et administration

Multiplexer et grer les membres et les groupes


.....................................................................................................................................................

Utiliser Storage Manager pour grer les groupes et les membres


Lancer Storage Manager pour grer les groupes de fichiers de journalisation et leurs
membres.
1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez la base de donnes de travail, puis slectionnez le dossier Redo Log
Groups dans l'arborescence du navigateur. Cliquez avec le bouton droit de la souris
et slectionnez Create.
4 Entrez les informations du groupe de fichiers de journalisation et dfinissez les
membres. Cliquez sur Create.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-23

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Changer l'emplacement ou le nom des fichiers de


journalisation en ligne (online)
Modifier l'emplacement et le nom des
fichiers de journalisation en ligne

1. Copiez les fichiers de journalisation en ligne vers


un nouvel emplacement.
2. Excutez la commande ALTER DATABASE
RENAME FILE.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Changer le nom des fichiers de journalisation


Vous pouvez changer l'emplacement des fichiers de journalisation en ligne en
renommant les fichiers. Avant de renommer les fichiers de journalisation en ligne,
assurez-vous que les nouveaux fichiers de journalisation en ligne existent. Le serveur
Oracle modifie uniquement les pointeurs dans les fichiers de contrle, mais ne
renomme pas physiquement ou ne cre pas de fichiers de systme d'exploitation.
La commande ALTER DATABASE RENAME FILE suivante permet de changer le
nom du fichier de journalisation en ligne :
ALTER DATABASE [database]
RENAME FILE 'filename'[, 'filename']...
TO 'filename'[, 'filename']...

.....................................................................................................................................................
7-24
Oracle DBA : Architecture et administration

Changer l'emplacement ou le nom des fichiers de journalisation en ligne (online)


.....................................................................................................................................................

Utiliser Storage Manager pour changer l'emplacement ou le nom des


membres d'un groupe de fichiers de journalisation
Lancez Storage Manager pour changer le nom ou l'emplacement des membres d'un
groupe de fichiers de journalisation.
1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez la base de donnes de travail, puis slectionnez un groupe de fichiers
de journalisation.
4 Modifiez les informations sur les membres du groupe de fichiers de journalisation
dont vous souhaitez changer le nom ou l'emplacement. Cliquez sur Apply.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-25

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Supprimer des groupes de fichiers de journalisation en


ligne (online) et des membres
Supprimer des groupes de fichiers
de journalisation en ligne

ALTER
ALTER DATABASE
DATABASE DROP
DROP LOGFILE
LOGFILE GROUP
GROUP 3;
3;

log3a.rdo
log1b.rdo

log1b.rdo

log1b.rdo

log2b.rdo

Groupe 1

Groupe 2

log3b.rdo
Groupe 3

Copyright Oracle Corporation, 1999. Tous droits rservs.

Supprimer un groupe de fichiers de journalisation


Pour augmenter ou rduire la taille des groupes de fichiers de journalisation en ligne,
ajoutez de nouveaux groupes de fichiers de journalisation en ligne (ayant la nouvelle
taille), puis supprimez les anciens.
Utilisez la commande ALTER DATABASE DROP LOGFILE suivante pour
supprimer l'ensemble d'un groupe de fichiers de journalisation en ligne :
ALTER DATABASE [database]
DROP LOGFILE
{GROUP integer|('filename'[, 'filename']...)}
[,{GROUP integer|('filename'[, 'filename']...)}]...

Restrictions
Une instance ncessite au moins deux groupes de fichiers de journalisation
en ligne.
Vous ne pouvez pas supprimer un groupe actif ou en cours.
Si la base de donnes fonctionne en mode ARCHIVELOG et que le groupe de
fichiers de journalisation n'est pas archiv, vous ne pouvez pas supprimer le
groupe.
Lorsque vous supprimez un groupe de fichiers de journalisation en ligne, les
fichiers du systme d'exploitation ne sont pas supprims.

.....................................................................................................................................................
7-26
Oracle DBA : Architecture et administration

Supprimer des groupes de fichiers de journalisation en ligne (online) et des membres


.....................................................................................................................................................

Supprimer des membres dun groupe de


fichiers de journalisation en ligne

ALTER
ALTER DATABASE
DATABASE DROP
DROP LOGFILE
LOGFILE MEMBER
MEMBER
'/DISK4/log2b.dbf';
'/DISK4/log2b.dbf';

log1b.rdo
log1b.rdo

log1b.rdo
log2b.rdo

Groupe 1

Groupe 2

Copyright Oracle Corporation, 1999. Tous droits rservs.

Supprimer un membre d'un groupe de fichiers de journalisation


Vous pouvez tre amen supprimer un membre d'un groupe de fichier de
journalisation en ligne (online) ayant le statut INVALID. Utilisez la commande
ALTER DATABASE DROP LOGFILE MEMBER suivante pour supprimer des
membres d'un groupe de fichiers de journalisation en ligne :
ALTER DATABASE [database]
DROP LOGFILE MEMBER 'filename'[, 'filename']...

Restrictions
Si le membre supprimer est le dernier membre valide du groupe, vous ne pouvez
pas le supprimer.
S'il s'agit du groupe en cours, vous devez imposer un changement de fichier de
journalisation pour pouvoir supprimer le membre.
Si la base de donnes fonctionne en mode ARCHIVELOG et que le groupe de
fichiers de journalisation du membre n'est pas archiv, vous ne pouvez pas
supprimer le membre.
Lorsque vous supprimez un membre d'un groupe de fichiers de journalisation en
ligne, le fichier du systme d'exploitation n'est pas supprim.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-27

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Utiliser Storage Manager pour supprimer des groupes de fichiers de


journalisation et des membres
Lancer Storage Manager pour supprimer des groupes de fichiers de journalisation et
des membres.
1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez la base de donnes de travail, puis slectionnez le groupe de fichiers
de journalisation ou le membre supprimer.
4 Cliquez sur Object>Remove dans la barre de menus pour supprimer le groupe
de fichiers de journalisation ou le membre.

.....................................................................................................................................................
7-28
Oracle DBA : Architecture et administration

Supprimer des groupes de fichiers de journalisation en ligne (online) et des membres


.....................................................................................................................................................

Effacer des fichiers de


journalisation en ligne

Exemple :
ALTER DATABASE CLEAR LOGFILE
'/DISK3/log2a.rdo';

Copyright Oracle Corporation, 1999. Tous droits rservs.

Effacer des fichiers de journalisation en ligne (online)


Si tous les membres sont endommags, l'administrateur de base de donnes peut
rsoudre le problme en rinitialisant les fichiers de journalisation.
Utilisez la commande SQL ALTER DATABASE CLEAR LOGFILE suivante pour
rinitialiser les fichiers de journalisation en ligne :
ALTER DATABASE [database]
CLEAR [UNARCHIVED] LOGFILE
{GROUP integer|('filename'[, 'filename']...)}
[,{GROUP integer|('filename'[, 'filename']...)}]...

L'utilisation de cette commande revient ajouter, puis effacer un fichier de


journalisation en ligne. Toutefois, vous pouvez excuter cette commande mme s'il
existe seulement deux groupes de fichiers de journalisation ne contenant qu'un seul
membre et que le groupe effac est disponible mais non archiv.
Restrictions
Vous pouvez effacer un fichier de journalisation en ligne, qu'il soit archiv ou non.
Toutefois, s'il n'est pas archiv, vous devez inclure le mot-cl UNARCHIVED. Cette
opration rend les sauvegardes inutilisables en cas de restauration des donnes l'aide
du fichier de journalisation en ligne.
Remarque : l'effacement de fichiers de journalisation en ligne est expliqu en dtail
dans le cours Oracle DBA : Sauvegarde et restauration.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-29

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Planifier les fichiers de journalisation en ligne (online)


Configuration des fichiers
de journalisation en ligne

Groupe 1

Groupe 2

Groupe 3

Membre

Membre

Membre

Membre
Membre

Disque 1

Disque 2

Copyright Oracle Corporation, 1999. Tous droits rservs.

Disque 3

Nombre de fichiers de journalisation en ligne


Pour dterminer le nombre de fichiers de journalisation en ligne ncessaires une
instance de base de donnes, vous devez tester diffrentes configurations.
Dans certains cas, une instance de base de donnes peut tre limite deux groupes.
Dans d'autres cas, une instance de base de donnes peut ncessiter des groupes
supplmentaires pour garantir leur disponibilit pour le processus LGWR. Par
exemple, si des messages du fichier trace LGWR ou du fichier ALERT indiquent
que le processus LGWR doit attendre frquemment la fin d'un point de reprise ou
l'archivage d'un groupe pour accder un groupe, vous devez ajouter des groupes.
Bien que le serveur Oracle permette d'utiliser des groupes multiplexs contenant un
nombre de membres diffrent, essayez de crer une configuration symtrique. Une
configuration asymtrique ne doit tre que temporaire et rsulter d'une situation
anormale, telle qu'une dfaillance du disque.
Dfinir l'emplacement des fichiers de journalisation en ligne
Lorsque vous crez des fichiers de journalisation en ligne multiplexs, placez les
membres d'un groupe sur diffrents disques. Ainsi, l'instance ne s'arrte pas lorsqu'un
membre n'est pas disponible, alors que d'autres membres le sont.
Rpartissez les fichiers de journalisation archivs et les fichiers de journalisation en
ligne sur des disques diffrents afin de rduire la contention entre les processus
d'arrire-plan ARCn et LGWR.

.....................................................................................................................................................
7-30
Oracle DBA : Architecture et administration

Planifier les fichiers de journalisation en ligne (online)


.....................................................................................................................................................

Dfinir l'emplacement des fichiers de journalisation en


ligne (online) (suite)
Placez les fichiers de donnes et les fichiers de journalisation en ligne sur des disques
diffrents afin de limiter la contention entre les processus LGWR et DBWn et rduire
les risques de perte de fichiers de donnes et de fichiers de journalisation en ligne en
cas de dfaillance physique.
Dfinir la taille des fichiers de journalisation en ligne
La taille minimale d'un fichier de journalisation en ligne est de 50 ko, et sa taille
maximale est fonction du systme d'exploitation. Les membres des groupes peuvent
avoir des tailles diffrentes. Toutefois, la diffrence de taille ne procure aucun
avantage.
Des groupes de tailles diffrentes ne doivent exister que temporairement lorsque vous
changez la taille des membres des groupes de fichiers de journalisation en ligne. Dans
ce cas, vous devez crer de nouveaux fichiers de journalisation en ligne avec la
nouvelle taille et supprimer les anciens groupes.
La configuration des fichiers de journalisation en ligne peut tre affecte par :
le nombre de changements de fichier de journalisation et de points de reprise,
le nombre d'entres de journalisation et le volume des entres,
l'espace de stockage disponible sur le support (une bande, par exemple, si
l'archivage est activ).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-31

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Dpannage
Erreurs possibles du processus LGWR

Un membre d'un groupe contenant au moins deux


fichiers de journalisation n'est pas disponible.

Tous les membres du groupe suivant ne sont


pas disponibles.

Tous les membres du groupe en cours ne sont


pas disponibles.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Membres d'un groupe de fichiers de journalisation non disponibles


Le processus LGWR ragit diffremment lorsque certains membres d'un groupe de
fichiers de journalisation en ligne (online) sont indisponibles.
Si le processus LGWR peut accder au moins un membre du groupe, l'criture
des donnes dans les membres accessibles du groupe s'effectue normalement, et le
processus ne prend pas en compte les membres non disponibles. Si le groupe
n'tait pas actif, c'est--dire si le point de reprise n'tait pas termin, il suffit de
supprimer un membre du groupe de fichiers de journalisation et d'en ajouter un
nouveau pour rsoudre le problme. Dans tous les autres cas, vous devez imposer
le changement de fichier de journalisation.
Si le processus LGWR ne peut pas accder l'ensemble des membres du groupe
suivant lors du changement de fichier de journalisation, l'instance s'arrte. Si le
groupe tait inactif, il suffit de supprimer un groupe de fichiers de journalisation et
d'en ajouter un nouveau pour rsoudre le problme. Si tel n'est pas le cas, vous
devez effectuer une restauration physique la suite de la perte d'un fichier de
journalisation en ligne.
Si, subitement, le processus LGWR ne peut plus accder aucun membre du
groupe en cours lors de l'criture, l'instance de base de donnes Oracle s'arrte.
Dans ce cas, vous devez effectuer une restauration physique la suite de la perte
d'un fichier de journalisation en ligne.

.....................................................................................................................................................
7-32
Oracle DBA : Architecture et administration

Utiliser LogMiner
.....................................................................................................................................................

Utiliser LogMiner
Analyser les fichiers de
journalisation en ligne

Suivi des modifications :


dans la base de donnes,
dans une table spcifique,
relatives un utilisateur particulier.

Application de modles d'accs aux donnes.

Utilisation des donnes archives pour


effectuer des oprations de rglage et
planifier les capacits.

Annulation des modifications de la base


de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fonction de LogMiner
LogMiner fournit une procdure permettant de traiter les fichiers de journalisation et
de convertir leur contenu en instructions SQL reprsentant les oprations logiques
excutes dans la base de donnes.
Remarque technique
LogMiner fonctionne avec la version 8.1 d'Oracle et les versions ultrieures.
Vous pouvez analyser les fichiers de journalisation d'une base de donnes version 8.0
ou ultrieure.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-33

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Utiliser LogMiner

Dfinir UTL_FILE_DIR.
Crer un fichier de dictionnaire.

EXECUTE DBMS_LOGMNR_D.BUILD('v815dict.ora',
'C:\ora815\admin\v815\log');

Copyright Oracle Corporation, 1999. Tous droits rservs.

Prliminaires l'utilisation de LogMiner


LogMiner s'excute dans une instance de base de donnes Oracle monte ou
dmonte. LogMiner utilise un fichier spcial, appel fichier de dictionnaire, qui
indique la base de donnes qui a cr le fichier, ainsi que la date de cration de ce
dernier. Ce fichier de dictionnaire n'est pas obligatoire, mais il est recommand.
Sans ce fichier, les instructions SQL quivalentes utilisent un ID d'objet interne Oracle
comme nom d'objet et prsentent les valeurs de colonne sous forme de donnes
hexadcimales.
Crer un fichier de dictionnaire
Affectez au paramtre d'initialisation UTL_FILE_DIR un rpertoire d'entre/sortie
de fichier PL/SQL.
Excutez la procdure DBMS_LOGMNR_D.BUILD pour crer le fichier de
dictionnaire.

.....................................................................................................................................................
7-34
Oracle DBA : Architecture et administration

Utiliser LogMiner
.....................................................................................................................................................

Dfinir les fichiers de


journalisation analyser
Configurer la vue V$LOGMNR_CONTENTS :

Initialisez une nouvelle liste et dfinissez le


premier fichier de journalisation.
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
'c:\ora815\oradata\v815\redo01a.log',
DBMS_LOGMNR.NEW);

Ajoutez des fichiers de journalisation la liste.


EXECUTE
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
DBMS_LOGMNR.ADD_LOGFILE(
'c:\ora815\oradata\v815\redo02a.log',
'c:\ora815\oradata\v815\redo02a.log',
DBMS_LOGMNR.ADDFILE);
DBMS_LOGMNR.ADDFILE);

Copyright Oracle Corporation, 1999. Tous droits rservs.

Configurer la session LogMiner


Une fois le fichier de dictionnaire cr, vous pouvez analyser les fichiers de
journalisation. La premire tape consiste dfinir les fichiers de journalisation que
vous souhaitez analyser l'aide de la procdure DBMS_LOGMNR.ADD_LOGFILE.
Utilisez les constantes suivantes :
DBMS_LOGMNR.NEW : cre une liste et dfinit le premier fichier de
journalisation.
DBMS_LOGMNR.ADDFILE : ajoute des fichiers de journalisation la liste.
DBMS_LOGMNR.REMOVEFILE : supprime des fichiers de journalisation de
la liste.
LogMiner peut analyser les fichiers de journalisation en ligne (online) et archivs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-35

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Lancer l'analyse des


fichiers de journalisation

Initialiser une session LogMiner :


EXECUTE DBMS_LOGMNR.START_LOGMNR(
DICTFILENAME=>
'c:\ora815\oradata\v815\log\v815dict.ora');

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dmarrer une session LogMiner


Une fois le fichier de dictionnaire cr et la liste des fichiers de journalisation dfinie,
vous pouvez dmarrer LogMiner pour commencer l'analyse. Utilisez les options
suivantes pour limiter la recherche au dmarrage :
Option
StartScn
EndScn
StartTime
EndTime
DictFileName
Options

Description
Dbut d'une plage de numros SCN
Fin d'une plage de numros SCN
Dbut d'un dlai
Fin d'un dlai
Nom du fichier de dictionnaire
Utilise la correspondance de colonne dfinie dans le fichier
logmnr.opt ; la valeur est USE_COLMAP

.....................................................................................................................................................
7-36
Oracle DBA : Architecture et administration

Utiliser LogMiner
.....................................................................................................................................................

Identifier les modifications


apportes une table
Visualiser V$LOGMNR_CONTENTS pour identifier
les modifications de la table EMP :
SELECT timestamp, username, sql_redo
FROM v$logmnr_contents
WHERE seg_name = 'EMP';
TIMESTAMP
---------14-APR-99
14-APR-99
14-APR-99

USER
----SYS
SYS
SYS

SQL_REDO
---------------------------update SCOTT.EMP set sal =..
update SCOTT.EMP set sal =..
insert into SCOTT.EMP()...

Copyright Oracle Corporation, 1999. Tous droits rservs.

Identifier les modifications apportes une table


Utilisez la vue V$LOGMNR_CONTENTS pour identifier les modifications. Vous ne
pouvez afficher les informations de journalisation que dans la session ayant effectue
l'analyse. Les informations ne sont pas visibles dans les autres sessions. Pour pouvoir
les afficher dans d'autres sessions, stockez les informations dans une autre table.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-37

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Arrter l'analyse des


fichiers de journalisation

Arrter la session LogMiner :


EXECUTE
EXECUTE DBMS_LOGMNR.END_LOGMNR;
DBMS_LOGMNR.END_LOGMNR;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Arrter la session LogMiner


Excuter la procdure DBMS_LOGMNR.END_LOGMNR pour mettre fin l'analyse
des fichiers de journalisation.

.....................................................................................................................................................
7-38
Oracle DBA : Architecture et administration

Utiliser LogMiner
.....................................................................................................................................................

Obtenir des informations sur les


fichiers de journalisation analyser

V$LOGMNR_DICTIONARY
V$LOGMNR_PARAMETERS
V$LOGMNR_CONTENTS

Copyright Oracle Corporation, 1999. Tous droits rservs.

Afficher le dictionnaire de donnes


Une fois LogMiner dmarr, vous disposez des vues du dictionnaire de donnes
suivantes :
Vue
V$LOGMNR_DICTIONARY
V$LOGMNR_PARAMETERS
V$LOGMNR_CONTENTS

Description
Fichier de dictionnaire utilis
Valeurs en cours des paramtres LogMiner
Contenu des fichiers de journalisation analyser

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-39

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

Synthse
Synthse
Ce chapitre vous a permis d'apprendre :

expliquer l'utilisation des fichiers


de journalisation en ligne,
obtenir des informations sur la journalisation
et l'archivage,
grer les changements de fichier de journalisation
et les points de reprise,
multiplexer et grer les fichiers de journalisation
en ligne,
planifier les fichiers de journalisation en ligne,
rsoudre les problmes courants lis aux fichiers
de journalisation,
analyser les fichiers de journalisation en ligne
et archivs.
Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
7-40
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation

Paramtres
d'initialisation dynamique
Vues dynamiques
des performances

Vues du dictionnaire
de donnes
Commandes

Procdures et fonctions
de package

Rfrence
LOG_FILES (n'existe plus dans la version 8.1)
LOG_CHECKPOINTS_TO_ALERT
UTL_FILE_DIR
LOG_CHECKPOINT_TIMEOUT
LOG_CHECKPOINT_INTERVAL
FAST_START_IO_TARGET
V$THREAD
V$LOG
V$LOGFILE
V$DATABASE
V$LOGMNR_CONTENTS
V$LOGMNR_DICTIONARY
V$LOGMNR_LOGS
V$LOGMNR_PARAMETERS
Aucune
ALTER SYSTEM SWITCH LOGFILE
ALTER SYSTEM CHECKPOINT
ARCHIVE LOG LIST
ALTER DATABASE ADD LOGFILE
ALTER DATABASE ADD LOGFILE MEMBER
ALTER DATABASE RENAME FILE
ALTER DATABASE DROP LOGFILE
ALTER DATABASE DROP LOGFILE MEMBER
ALTER DATABASE CLEAR LOGFILE
DBMS_LOGMNR_D.BUILD
DBMS_LOGMNR.ADD_LOGFILE
DBMS_LOGMNR.START_LOGMNR
DBMS_LOGMNR.END_LOGMNR

.....................................................................................................................................................
Oracle DBA : Architecture et administration
7-41

Chapitre 7 : Grer les fichiers de journalisation (redo log)


.....................................................................................................................................................

.....................................................................................................................................................
7-42
Oracle DBA : Architecture et administration

8
.................................

Grer les tablespaces et


les fichiers de donnes

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Objectifs
Objectifs
A la fin de ce chapitre, vous pourrez :

dcrire la structure logique de la base de donnes,

crer des tablespaces,

changer l'emplacement des tablespaces.

identifier les diffrents types de segment


temporaire,
modifier la taille des tablespaces,
allouer de l'espace aux segments temporaires,
modifier le statut des tablespaces,
modifier les paramtres de stockage des
tablespaces,

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
8-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation

Fichiers
de contrle

Fichiers
de donnes

Fichiers
de journalisation

Base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Prsentation
Une petite base de donnes peut ne ncessiter que le tablespace SYSTEM. Toutefois,
Oracle recommande de crer des tablespaces supplmentaires pour stocker les donnes
utilisateur, les index utilisateur, les segments d'annulation et les segments temporaires
en dehors du dictionnaire de donnes. Ceci facilite l'excution de diverses oprations
d'administration de base de donnes et rduit la contention entre objets de dictionnaire
et objets de schma associs aux mmes fichiers de donnes.
L'administrateur de base de donnes peut crer des tablespaces, modifier la taille
des fichiers de donnes, ajouter des fichiers de donnes aux tablespaces, dfinir et
modifier les paramtres de stockage par dfaut des segments crs dans un tablespace,
rendre des tablespaces accessibles en lecture seule ou en lecture-criture, rendre des
tablespace temporaires ou permanents et supprimer des tablespaces.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-3

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Hirarchie de stockage de la base de donnes


Hirarchie de stockage
de la base de donnes
Base de
donnes
Tablespace

Logique

Fichier
de donnes
Physique

Segment

Extent

Bloc Oracle

Bloc OS

Copyright Oracle Corporation, 1999. Tous droits rservs.

Architecture de la base de donnes


L'architecture d'une base de donnes Oracle contient les structures logiques
et physiques qui constituent la base de donnes.
La structure physique comprend les fichiers de contrle, les fichiers de
journalisation en ligne (online redo log) et les fichiers de donnes qui
constituent la base de donnes.
La structure logique est compose de tablespaces, de segments, d'extents
(ensemble de blocs contigus) et de blocs de donnes.
Le serveur Oracle permet un contrle prcis de l'utilisation de l'espace disque l'aide
de tablespaces et de structures de stockage logiques constitues de segments, d'extents
et de blocs de donnes.
Tablespaces
Les donnes d'une base de donnes Oracle sont stockes dans des tablespaces.
Une base de donnes Oracle peut tre divise en plus petites zones logiques
d'espace appeles tablespaces.
Un tablespace ne peut appartenir qu' une seule base de donnes la fois.
Chaque tablespace est constitu d'un ou de plusieurs fichiers de systme
d'exploitation, appels fichiers de donnes.

.....................................................................................................................................................
8-4
Oracle DBA : Architecture et administration

Hirarchie de stockage de la base de donnes


.....................................................................................................................................................

Tablespaces (suite)
Un tablespace peut contenir un ou plusieurs segments.
Les tablespaces peuvent tre disponibles "online" lorsque la base de donnes
est active.
A l'exception du tablespace SYSTEM ou des tablespaces contenant un segment
d'annulation actif, les tablespaces peuvent tre mis "offline", en laissant la base
de donnes active.
Les tablespaces peuvent tre accessibles en lecture et criture ou en lecture seule.
Fichiers de donnes
Chaque tablespace d'une base de donnes Oracle contient des fichiers appels
fichiers de donnes. Ces fichiers sont des structures physiques correspondant
au systme d'exploitation sur lequel s'excute le serveur Oracle.
Un fichier de donnes ne peut appartenir qu' un seul tablespace.
Un serveur Oracle cre un fichier de donnes dans un tablespace en allouant
l'espace disque dfini et un petit espace supplmentaire.
L'administrateur de base de donnes peut modifier la taille des fichiers de donnes
aprs leur cration ou indiquer que leur taille peut augmenter de faon dynamique
mesure que celle des objets du tablespace s'accrot.
Segments
Un segment est un espace allou une structure de stockage logique spcifique dans
un tablespace. Par exemple, l'ensemble de l'espace de stockage allou une table
constitue un segment.
Un tablespace peut contenir un ou plusieurs segments.
Un segment ne peut tre rparti sur plusieurs tablespaces, mais peut s'tendre
plusieurs fichiers de donnes d'un mme tablespace.
Chaque segment est constitu d'un ou de plusieurs extents.
Extents
Les extents permettent d'allouer de l'espace un segment.
Un segment peut tre constitu d'un ou de plusieurs extents.
Lorsque vous crez un segment, celui-ci contient au moins un extent.
A mesure que la taille du segment augmente, des extents lui sont ajouts.
L'administrateur de base de donnes peut ajouter manuellement des extents
un segment.
Un extent est constitu de blocs Oracle contigus.
Un extent peut ne pas couvrir un fichier de donnes, mais il doit exister dans
un fichier de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-5

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Blocs de donnes
Le serveur Oracle gre l'espace de stockage des fichiers de donnes l'aide d'units
appeles blocs de donnes ou blocs Oracle.
Le degr de finesse maximum est atteint en stockant les donnes d'une base de
donnes Oracle dans des blocs de donnes.
Les blocs de donnes Oracle reprsentent la plus petite unit de stockage que le
serveur Oracle peut allouer, crire ou lire.
Un bloc de donnes correspond un ou plusieurs blocs de systme d'exploitation
allous partir d'un fichier de donnes existant.
Le paramtre d'initialisation DB_BLOCK_SIZE permet de dfinir la taille des
blocs de donnes lors de la cration d'une base de donnes Oracle.
Cette taille doit correspondre un multiple de la taille des blocs du systme
d'exploitation afin d'viter les oprations d'entre/sortie inutiles.
La taille maximale d'un bloc de donnes dpend du systme d'exploitation utilis.

.....................................................................................................................................................
8-6
Oracle DBA : Architecture et administration

Tablespaces SYSTEM et non SYSTEM


.....................................................................................................................................................

Tablespaces SYSTEM et non SYSTEM


Tablespaces SYSTEM et non SYSTEM

Tablespace SYSTEM :
cr avec la base de donnes,
contient le dictionnaire de donnes,
contient le segment d'annulation SYSTEM.

Tablespaces non SYSTEM :


sparent les segments,
facilitent l'administration de l'espace,
grent l'espace allou un utilisateur.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Types de tablespace
L'administrateur de base de donnes cre des tablespaces pour amliorer le contrle
et faciliter la gestion de la base de donnes. Le serveur Oracle accepte deux types de
tablespace : le tablespace SYSTEM et tous les autres tablespaces.
Le tablespace SYSTEM
est cr en mme temps que la base de donnes,
doit exister dans toutes les bases de donnes,
contient le dictionnaire de donnes, y compris les programmes stocks,
contient le segment d'annulation SYSTEM,
ne doit pas contenir de donnes utilisateur, bien que cela soit possible.
Tablespaces non SYSTEM
facilitent l'administration de la base de donnes,
sparent les segments d'annulation, les segments temporaires, les segments
de donnes d'application et les segments d'index d'application,
sparent les donnes en fonction des besoins de sauvegarde,
sparent les donnes dynamiques des donnes statiques,
grent l'espace allou aux objets utilisateur.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-7

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Crer des tablespaces


Crer des tablespaces

CREATE TABLESPACE app_data


DATAFILE '/DISK4/app_data_01.dbf'
SIZE 100M,
'/DISK5/app data_ 02.dbf'
SIZE 100M
MINIMUM EXTENT 500K
DEFAULT STORAGE ( INITIAL
NEXT
MAXEXTENTS
PCTINCREASE

500K
500K
500
0 );

Copyright Oracle Corporation, 1999. Tous droits rservs.

Commande CREATE TABLESPACE


Utilisez la commande CREATE TABLESPACE pour crer des tablespaces :
CREATE TABLESPACE tablespace
DATAFILE datafile_clause]
[,

datafile_clause]...

[MINIMUM EXTENT integer[K|M]]


[LOGGING|NOLOGGING]
[DEFAULT storage_clause ]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY]
[extent_management_clause]

tablespace
DATAFILE

correspond au nom du tablespace crer,


dfinit le ou les fichiers de donnes
constituant le tablespace,
MINIMUM EXTENT garantit que la taille de chaque extent du
tablespace est un multiple de integer
(utilisez K ou M pour dfinir la taille
en kilo-octets ou en mgaoctets),

.....................................................................................................................................................
8-8
Oracle DBA : Architecture et administration

Crer des tablespaces


.....................................................................................................................................................

Commande CREATE TABLESPACE (suite)


LOGGING
indique que toutes les modifications
effectues sur les tables, index et
partitions du tablespace seront crites par
dfaut dans le fichier de journalisation
(LOGGING est la valeur par dfaut).
NOLOGGING
indique que toutes les modifications
effectues dans les tables, index et
partitions du tablespace ne seront pas
crites par dfaut dans le fichier de
journalisation (NOLOGGING n'affecte
que certaines commandes LMD et LDD,
telles que les chargements directs).
DEFAULT
dfinit les paramtres de stockage par
dfaut de tous les objets crs dans le
tablespace.
ONLINE
rend le tablespace disponible ds
sa cration.
OFFLINE
rend le tablespace indisponible ds
sa cration.
PERMANENT
indique que le tablespace peut tre utilis
pour stocker des objets permanents.
TEMPORARY
indique que le tablespace ne contiendra
que des objets temporaires, tels que les
segments de tri implicite crs par la
clause ORDER BY.
extent_management_clause
indique la manire dont les extents du
tablespace sont grs (cette clause est
dcrite dans l'une des sections suivantes
du prsent chapitre).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-9

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Commande CREATE TABLESPACE (suite)


datafile_clause :== filename
{SIZE integer[K|M] [REUSE] | REUSE }
[ autoextend_clause ]

filename
SIZE

REUSE
autoextend_clause

est le nom d'un fichier de donnes du tablespace,


dfinit la taille du fichier (utilisez K ou M
pour dfinir la taille en kilo-octets ou en
mgaoctets).
permet au serveur Oracle de rutiliser un
fichier existant.
active ou dsactive l'augmentation
automatique de la taille du fichier de
donnes (cette clause est dcrite dans
l'une des sections suivantes du prsent
chapitre).

.....................................................................................................................................................
8-10
Oracle DBA : Architecture et administration

Crer des tablespaces


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour crer un nouveau tablespace


1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Slectionnez le dossier Tablespaces, cliquez avec le bouton droit de la souris,
puis slectionnez Create dans le menu.
4 Dans la page General de la fentre de proprits, entrez le nom, puis cliquez
sur ADD pour afficher la fentre de proprits Create Data file.

5 Dfinissez chaque fichier de donnes dans cette fentre.


6 Entrez les informations de stockage dans la page Extents de la fentre

de proprits.
7 Cliquez sur Create.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-11

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Gestion de l'espace dans les tablespaces


Gestion de l'espace dans les tablespaces
Tablespaces grs par le dictionnaire de donnes :
mthode par dfaut,
extents libres enregistrs dans des tables
du dictionnaire de donnes.

Tablespaces grs localement :


extents libres enregistrs dans un bitmap,
chaque bit correspond un bloc ou un
groupe de blocs,
la valeur du bit indique si l'extent est libre
ou utilis.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Choisir la mthode de gestion de l'espace


Les extents d'un tablespace peuvent tre grs l'aide des tables du dictionnaire
de donnes ou de bitmaps. Lorsque vous crez un tablespace, vous choisissez l'une
ou l'autre de ces mthodes de gestion. Vous ne pouvez pas changer la mthode
par la suite.
Tablespaces grs par le dictionnaire de donnes
Lorsqu'un tablespace gre ses extents l'aide du dictionnaire de donnes, le serveur
Oracle met jour les tables appropries dans le dictionnaire de donnes chaque fois
qu'un extent est allou ou libr.
Il s'agit de la mthode de gestion de l'espace utilise par dfaut dans les tablespaces.
C'est la seule mthode disponible dans Oracle 8.0 et les versions antrieures.
Tablespaces grs localement
Un tablespace qui gre ses propres extents conserve un bitmap dans chaque fichier de
donnes pour identifier les blocs disponibles ou utiliss dans le fichier de donnes.
Chaque bit du bitmap correspond un bloc ou un groupe de blocs. Lorsqu'un extent
est allou ou libr pour tre rutilis, le serveur Oracle modifie les valeurs de son
bitmap pour indiquer le nouveau statut des blocs.

.....................................................................................................................................................
8-12
Oracle DBA : Architecture et administration

Tablespaces grs localement


.....................................................................................................................................................

Tablespaces grs localement


Tablespaces grs localement
CREATE
CREATE TABLESPACE
TABLESPACE user_data
user_data
DATAFILE
DATAFILE '/DISK2/user_data_01.dbf'
'/DISK2/user_data_01.dbf'
SIZE
SIZE 500M
500M
EXTENT
EXTENT MANAGEMENT
MANAGEMENT LOCAL
LOCAL
UNIFORM
SIZE
10M;
UNIFORM SIZE 10M;

Rduction de la gestion rcursive de l'espace

Aucune information d'annulation gnre

Rduction de la contention des tables


du dictionnaire de donnes
Aucune fusion ncessaire

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
L'option LOCAL de la clause EXTENT MANAGEMENT permet d'indiquer qu'un
tablespace doit tre gr localement.
extent_management_clause :==
[ EXTENT MANAGEMENT
{ DICTIONARY | LOCAL
{ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] } } ]

DICTIONARY
LOCAL
AUTOALLOCATE

indique que le tablespace est gr l'aide de tables


du dictionnaire de donnes (mthode par dfaut).
indique que le tablespace est gr
localement l'aide d'un bitmap.
indique que le tablespace est gr par le
systme (les utilisateurs ne peuvent pas
dfinir de taille d'extent).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-13

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Syntaxe (suite)
UNIFORM

indique que le tablespace est gr l'aide


d'extents de taille uniforme ayant la
valeur SIZE, exprime en octets.
(Utilisez K ou M pour dfinir la taille
d'extent en kilo-octets ou en mgaoctets.
La taille par dfaut est gale un 1 Mo.
Si vous dfinissez LOCAL, vous ne
pouvez pas dfinir DEFAULT
storage_clause, MINIMUM EXTENT
ou TEMPORARY.)
La clause EXTENT MANAGEMENT peut tre utilise dans diverses commandes
CREATE :
Pour un tablespace permanent autre que le tablespace SYSTEM, vous
pouvez dfinir EXTENT MANGEMENT LOCAL dans la commande
CREATE TABLESPACE.
S'il s'agit d'un tablespace temporaire, vous pouvez dfinir EXTENT
MANGEMENT LOCAL dans la commande CREATE TEMPORARY
TABLESPACE.

Avantages des tablespaces grs localement


Les tablespaces grs localement prsentent les avantages suivants par rapport aux
tablespaces grs l'aide du dictionnaire de donnes :
La gestion locale permet d'viter les oprations rcursives de gestion d'espace qui
peuvent se produire avec les tablespaces grs l'aide du dictionnaire de donnes,
lorsque l'utilisation ou la libration d'espace dans un extent provoque l'excution
d'une autre opration qui utilise ou libre l'espace dans un segment d'annulation ou
une table du dictionnaire de donnes.
Dans la mesure o les tablespaces grs localement n'enregistrent pas l'espace libre
dans des tables du dictionnaire de donnes, ils rduisent la contention au niveau
des tables.
La gestion locale des extents identifie automatiquement les espaces libres
adjacents, ce qui vite d'avoir fusionner les extents libres.
Le systme peut dterminer automatiquement la taille des extents grs
localement. D'autre part, tous les extents d'un tablespace gr localement
peuvent avoir la mme taille.
La modification des bitmaps d'extent ne gnre pas d'informations d'annulation,
car elle ne met jour aucune table dans le dictionnaire de donnes (sauf dans
certains cas prcis, tels que les informations sur les quotas de tablespace).

.....................................................................................................................................................
8-14
Oracle DBA : Architecture et administration

Tablespace temporaire
.....................................................................................................................................................

Tablespace temporaire
Tablespace temporaire

Utilis pour les oprations de tri


Ne peut pas contenir d'objets permanents
Extents grs localement recommands
UNIFORM SIZE = SORT_AREA_SIZE * n

CREATE
CREATE TEMPORARY
TEMPORARY TABLESPACE
TABLESPACE temp
temp
TEMPFILE
'/DISK2/temp_01.dbf'
TEMPFILE '/DISK2/temp_01.dbf'
SIZE
SIZE 500M
500M
EXTENT
EXTENT MANAGEMENT
MANAGEMENT LOCAL
LOCAL
UNIFORM
UNIFORM SIZE
SIZE 10M;
10M;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Segments temporaires
Vous pouvez grer plus efficacement l'espace pour les oprations de tri en dfinissant
des tablespaces temporaires rservs exclusivement aux segments de tri. Aucun objet
de schma permanent ne peut rsider dans un tablespace temporaire.
Un segment de tri ou un segment temporaire est utilis lorsqu'un segment est
partag par plusieurs oprations de tri. Les tablespaces temporaires amliorent les
performances lorsque plusieurs tris ne peuvent tenir dans la mmoire. Le segment de
tri d'un tablespace temporaire donn est cr lors de la premire opration de tri dans
l'instance. La taille du segment de tri augmente par allocation d'extents jusqu' ce
qu'elle soit gale ou suprieure au nombre total des demandes de stockage de tous
les tris en cours excuts dans l'instance.
Commande CREATE TEMPORARY TABLESPACE
Bien que vous puissiez utiliser la commande ALTER/CREATE
TABLESPACE...TEMPORARY pour crer un tablespace temporaire, il est
recommand d'utiliser la commande CREATE TEMPORARY TABLESPACE.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-15

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Commande CREATE TEMPORARY TABLESPACE (suite)


Les tablespaces temporaires grs localement contiennent des fichiers de donnes
temporaires (tempfiles) semblables aux fichiers de donnes standard, ceci prs que :
les fichiers temporaires sont toujours en mode NOLOGGING,
les fichiers temporaires ne peuvent pas tre en lecture seule,
vous ne pouvez pas renommer un fichier temporaire,
vous ne pouvez pas crer un fichier temporaire l'aide de la commande
ALTER DATABASE,
la restauration physique ne permet pas de restaurer les fichiers temporaires,
BACKUP CONTROLFILE ne gnre pas d'informations pour les fichiers
temporaires,
CREATE CONTROLFILE ne permet pas de dfinir des informations sur les
fichiers temporaires.
Pour optimiser les performances d'une opration de tri dans un tablespace temporaire,
affectez au paramtre UNIFORM SIZE une valeur multiple de celle du paramtre
SORT_AREA_SIZE.

.....................................................................................................................................................
8-16
Oracle DBA : Architecture et administration

Tablespace temporaire
.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour crer un tablespace temporaire


1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Slectionnez le dossier Tablespaces, cliquez avec le bouton droit de la souris,
puis slectionnez Create dans le menu.
4 Dans la page General de la fentre de proprits, entrez le nom du tablespace
et slectionnez le bouton d'option TEMPORARY.

5 Cliquez sur ADD pour afficher la fentre de proprits Create Data file.
6 Dfinissez chaque fichier de donnes dans cette fentre.
7 Cliquez sur Create.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-17

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Modifier les paramtres de stockage


Modifier les paramtres de stockage
ALTER
ALTER TABLESPACE
TABLESPACE
MINIMUM
MINIMUM EXTENT
EXTENT

app_data
app_data
2M;
2M;

ALTER TABLESPACE app_data


DEFAULT STORAGE (
INITIAL
2M
NEXT
2M
MAXEXTENTS 999 );

Copyright Oracle Corporation, 1999. Tous droits rservs.

Modifier les paramtres de stockage par dfaut


Utilisez la commande ALTER TABLESPACE pour modifier la dfinition de stockage
par dfaut d'un tablespace.
ALTER TABLESPACE tablespace
{

MINIMUM EXTENT integer[K|M]

DEFAULT storage_clause }

.....................................................................................................................................................
8-18
Oracle DBA : Architecture et administration

Modifier les paramtres de stockage


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour modifier les paramtres


de stockage
1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tablespaces.
4 Slectionnez le tablespace.
5 Entrez les informations de stockage dans la page Extents de la fentre
de proprits.

6 Cliquez sur Apply.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-19

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Mettre des tablespaces "offline" ou "online"


Statut "offline"

Tablespace "offline" non disponible pour accder


aux donnes,

Certains tablespaces doivent tre "online" :


SYSTEM,
tablespaces contenant des segments
d'annulation actifs.

Pour mettre un tablespace "offline" :


ALTER
ALTER TABLESPACE
TABLESPACE app_data
app_data OFFLINE;
OFFLINE;

Pour mettre un tablespace "online" :


ALTER
ALTER TABLESPACE
TABLESPACE app_data
app_data ONLINE;
ONLINE;
Copyright Oracle Corporation, 1999. Tous droits rservs.

Mettre un tablespace "offline"


Un tablespace est gnralement "online", ce qui permet aux utilisateurs de la base de
donnes d'accder aux donnes qu'il contient. Toutefois, l'administrateur de base de
donnes peut mettre un tablespace "offline" pour :
rendre une partie de la base de donnes indisponible tout en permettant l'accs
normal au reste de la base,
sauvegarder un tablespace "offline" (bien qu'il soit possible de sauvegarder un
tablespace pendant qu'il est "online" et en cours d'utilisation),
restaurer un tablespace ou un fichier de donnes lorsque la base de donnes
est ouverte,
dplacer un fichier de donnes lorsque la base de donnes est ouverte.
Statut "offline" d'un tablespace
Lorsque vous mettez un tablespace "offline", le serveur Oracle ne permet pas aux
instructions SQL suivantes de faire rfrence aux objets contenus dans le tablespace.
Dans ce cas, les utilisateurs qui tentent d'accder ces objets reoivent un message
d'erreur.
Lorsqu'un tablespace passe du statut "offline" au statut "online", ou inversement,
l'vnement est enregistr dans le dictionnaire de donnes et dans le fichier de
contrle. Si vous arrtez la base de donnes alors qu'un tablespace est "offline",
le tablespace reste "online" et n'est pas vrifi lorsque vous remontez et rouvrez
la base de donnes.

.....................................................................................................................................................
8-20
Oracle DBA : Architecture et administration

Mettre des tablespaces "offline" ou "online"


.....................................................................................................................................................

Statut "offline" d'un tablespace (suite)


L'instance de base de donnes Oracle met automatiquement "offline" un tablespace
"online" lorsque certaines erreurs se produisent (par exemple, lorsque le processus
DBW0 (Database Writer) ne parvient pas plusieurs reprises crire dans un fichier
de donnes du tablespace). Ces situations sont dcrites en dtail dans le cours
Oracle DBA : Sauvegarde et restauration.
Mettre un tablespace "offline"
Lorsque la base de donnes est ouverte, l'administrateur de base de donnes peut
mettre n'importe quel tablespace "offline", l'exception du tablespace SYSTEM ou
des tablespaces dans lesquels des segments d'annulation ou des segments temporaires
sont actifs. Lorsque vous mettez un tablespace "offline", le serveur Oracle met tous ses
fichiers de donnes "offline".
ALTER TABLESPACE tablespace
{ONLINE
|OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER]}

NORMAL

TEMPORARY

IMMEDIATE

FOR RECOVER

supprime de la mmoire SGA tous les blocs de tous


les fichiers de donnes du tablespace. (Action par
dfaut ; il n'est pas ncessaire d'effectuer une
restauration physique du tablespace avant de le
remettre "online". Dans la mesure du possible,
utilisez la clause NORMAL.)
excute un point de reprise pour tous les
fichiers de donnes "online" du tablespace
uniquement (les fichiers "offline" peuvent
ncessiter une restauration physique).
ne garantit pas que les fichiers du
tablespace sont disponibles et n'excute pas
de point de reprise (vous devez effectuer
une restauration physique du tablespace
avant de le remettre "online").
met les tablespaces "offline" pour rcuprer
les donnes jusqu' un point dans le temps.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-21

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour mettre un tablespace "offline"


1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tablespaces.
4 Slectionnez le tablespace.
5 Slectionnez Take Offline>Mode.

6 Cliquez sur Yes dans la bote de dialogue.

.....................................................................................................................................................
8-22
Oracle DBA : Architecture et administration

Tablespaces accessibles en lecture seule


.....................................................................................................................................................

Tablespaces accessibles en lecture seule


Tablespaces accessibles en lecture seule
ALTER
ALTER TABLESPACE
TABLESPACE app_data
app_data READ
READ ONLY;
ONLY;

Tablespace disponible uniquement pour les


oprations de lecture.

Impossible de supprimer les objets du tablespace.


Pour crer un tablespace en lecture seule sur un
lecteur non rinscriptible :
ALTER TABLESPACEREAD ONLY;
Placez le fichier de donnes sur le lecteur non
rinscriptible
ALTER TABLESPACERENAME DATAFILE;
Copyright Oracle Corporation, 1999. Tous droits rservs.

Commande ALTER TABLESPACE...READ ONLY


Rendre accessible un tablespace en lecture seule permet d'empcher les oprations
d'criture dans les fichiers de donnes du tablespace. En consquence, les fichiers
de donnes peuvent rsider sur des supports accessibles en lecture seule, tels que des
CD-ROM ou des lecteurs non rinscriptibles. Les tablespaces accessibles en lecture
seule vitent d'avoir sauvegarder de grandes sections de donnes statiques d'une base
de donnes. Utilisez la commande SQL ALTER TABLESPACE pour rendre un
tablespace accessible en lecture et criture ou en lecture seule.
ALTER TABLESPACE tablespace READ [ONLY | WRITE]

Pour crer un tablespace accessible en lecture seule sur un lecteur non rinscriptible :
1 Lancez la commande ALTER TABLESPACE...READ ONLY.
2 Utilisez la commande de systme d'exploitation approprie pour transfrer les
fichiers de donnes d'un tablespace vers un lecteur accessible en lecture seule.
3 Lancez la commande ALTER TABLESPACE...RENAME DATAFILE.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-23

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour rendre un tablespace


accessible en lecture seule
1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tablespaces.
4 Slectionnez le tablespace.
5 Cliquez avec le bouton droit de la souris, puis slectionnez Make Read-Only
dans le menu.

6 Cliquez sur OK.

.....................................................................................................................................................
8-24
Oracle DBA : Architecture et administration

Tablespaces accessibles en lecture seule


.....................................................................................................................................................

Rendre un tablespace
accessible en lecture seule

Le tablespace doit tre "online".

Oracle8i permet dexcuter les transactions


en cours.

Le tablespace ne doit pas contenir de segments


d'annulation actifs.

Le tablespace ne doit pas tre impliqu dans


une sauvegarde "online".

Dans les versions antrieures Oracle8i, aucune


transaction active n'est autorise.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Rendre des tablespaces accessibles en lecture seule


Dans Oracle8i, la commande ALTER TABLESPACE ... READ ONLY place le
tablespace dans un mode de lecture seule de transition. Ce mode ne permet pas
d'effectuer des oprations d'criture dans le tablespace, sauf pour annuler les
transactions existantes qui ont pralablement modifi des blocs du tablespace. Une
fois toutes les transactions existantes valides ou annules, la commande ALTER
TABLESPACE ... READ ONLY s'excute et place le tablespace en lecture seule.
Pour les versions antrieures Oracle8i, il est conseill l'administrateur de base de
donnes de dmarrer l'instance en mode restreint lors de la mise en mode lecture seule
d'un tablespace, dans la mesure o un tablespace ne peut tre mis en lecture seule
lorsque des transactions sont en cours.
Vous pouvez supprimer des lments, tels que des tables et des index, d'un tablespace
accessible en lecture seule, car ces commandes n'affectent que le dictionnaire de
donnes. Cela est possible parce que la commande DROP met jour le dictionnaire
de donnes, mais pas les fichiers physiques qui constituent le tablespace. Pour les
tablespaces grs localement, le segment supprim est converti en segment temporaire
pour viter la mise jour du bitmap.
Pour rendre accessible en lecture et criture un tablespace qui est en lecture seule, tous
ses fichiers de donnes doivent tre "online".
La mise en lecture seule d'un tablespace cre un point de reprise dans les fichiers de
donnes du tablespace.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-25

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Supprimer des tablespaces


Supprimer des tablespaces

Tablespace supprim du dictionnaire de donnes.

Fichiers de systme d'exploitation non supprims.

Eventuellement, contenu supprim du dictionnaire


de donnes.

DROP
DROP TABLESPACE
TABLESPACE app_data
app_data INCLUDING
INCLUDING CONTENTS;
CONTENTS;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Commande DROP TABLESPACE


Vous pouvez supprimer un tablespace de la base de donnes lorsque le tablespace
et son contenu sont devenus inutiles. Pour ce faire, utilisez la commande DROP
TABLESPACE :
DROP TABLESPACE tablespace
[INCLUDING CONTENTS [CASCADE CONSTRAINTS]]

tablespace
correspond au nom du tablespace supprimer.
INCLUDING CONTENTS
supprime tous les segments du tablespace.
CASCADE CONSTRAINTS
supprime les contraintes d'intgrit
rfrentielles des tables en dehors du
tablespace qui font rfrence aux cls
primaires et uniques dans les tables du
tablespace supprimer.

.....................................................................................................................................................
8-26
Oracle DBA : Architecture et administration

Supprimer des tablespaces


.....................................................................................................................................................

Instructions
Un tablespace qui contient toujours des donnes ne peut pas tre supprim sans
l'option INCLUDING CONTENTS. Cette option peut gnrer un grand nombre
d'annulations lorsque le tablespace contient de nombreux objets.
Une fois le tablespace supprim, ses donnes ne figurent plus dans la base
de donnes.
Lorsque vous supprimez un tablespace, seuls les pointeurs de fichier du fichier de
contrle de la base de donnes associe sont supprims. Les fichiers de systme
d'exploitation existent toujours et doivent tre supprims explicitement l'aide
de la commande de systme d'exploitation approprie.
Vous pouvez supprimer un tablespace et les segments qu'il contient, mme si
le tablespace est accessible en lecture seule.
Il est recommand de mettre "offline" le tablespace avant de le supprimer,
afin d'empcher d'ventuelles transactions d'accder ses segments.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-27

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour supprimer un tablespace


1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tablespaces, puis slectionnez le tablespace.
4 Cliquez avec le bouton droit de la souris pour afficher le menu contextuel,
puis slectionnez Remove.

5 Cliquez sur Yes dans la bote de dialogue pour confirmer la suppression.

.....................................................................................................................................................
8-28
Oracle DBA : Architecture et administration

Redimensionner un tablespace
.....................................................................................................................................................

Redimensionner un tablespace
Redimensionner un tablespace

Modification de la taille d'un fichier de donnes :


automatique,
manuelle.

Ajout d'un fichier de donnes


Tablespace APP_DATA

app_data_01.dbf
100M

app_data_02.dbf
100M

app_data_03.dbf
200M

100M

Copyright Oracle Corporation, 1999. Tous droits rservs.

Augmenter la taille d'un tablespace


Vous pouvez augmenter la taille d'un tablespace de deux manires :
en modifiant la taille d'un fichier de donnes automatiquement ou manuellement,
en ajoutant un fichier de donnes au tablespace.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-29

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Activer le redimensionnement automatique des


fichiers de donnes
Activer le redimensionnement
automatique des fichiers de donnes
ALTER TABLESPACE app_data
ADD DATAFILE '/DISK6/app_data_04.dbf'
SIZE 200M
AUTOEXTEND ON
NEXT 10M
MAXSIZE 500M;

Tablespace APP_DATA

app_data_01.dbf
100M

app_data_02.dbf
100M

app_data_03.dbf
200M

app_data_04.dbf
200M

Copyright Oracle Corporation, 1999. Tous droits rservs.

Indiquer AUTOEXTEND pour un nouveau fichier de donnes


La clause AUTOEXTEND active ou dsactive l'augmentation automatique de
la taille des fichiers de donnes.
Lors de la cration d'un fichier de donnes, utilisez les commandes SQL suivantes
pour activer l'augmentation automatique de la taille du fichier de donnes :
CREATE DATABASE
CREATE TABLESPACE ... DATAFILE
ALTER TABLESPACE ... ADD DATAFILE
Utilisez la commande ALTER TABLESPACE pour ajouter un fichier de donnes
lorsque l'augmentation automatique de taille de fichier est active.
ALTER TABLESPACE tablespace
ADD DATAFILE

filespec [autoextend_clause]

[,

filespec [autoextend_clause]]...

.....................................................................................................................................................
8-30
Oracle DBA : Architecture et administration

Activer le redimensionnement automatique des fichiers de donnes


.....................................................................................................................................................

Indiquer AUTOEXTEND pour un nouveau fichier de donnes (suite)


autoextend_clause :== [ AUTOEXTEND { OFF|ON[NEXT integer[K|M]]
[MAXSIZE UNLIMITED | integer[K|M]] } ]

AUTOEXTEND OFF dsactive l'augmentation automatique de la taille


du fichier de donnes.
AUTOEXTEND ON active l'augmentation automatique
de la taille du fichier de donnes.
NEXT
dfinit l'espace disque allouer au
fichier de donnes lorsque des extents
supplmentaires sont ncessaires.
MAXSIZE
dfinit l'espace disque maximum
allouer au fichier de donnes.
UNLIMITED
ne dfinit aucune limite d'espace
disque pour le fichier de donnes.

Indiquer AUTOEXTEND pour un fichier de donnes existant


Utilisez la commande SQL ALTER DATABASE pour activer ou dsactiver
l'augmentation automatique de la taille des fichiers de donnes existants.
ALTER DATABASE [database]
DATAFILE 'filename'[, 'filename']...autoextend_clause

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-31

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour activer le redimensionnement


automatique
1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Data files.
4 Slectionnez le fichier de donnes.
5 Sous l'onglet Auto Extend de la fentre de proprits, cochez la case Enable
Auto Extend.

6 Cliquez sur Apply.

.....................................................................................................................................................
8-32
Oracle DBA : Architecture et administration

Redimensionner manuellement des fichiers de donnes


.....................................................................................................................................................

Redimensionner manuellement des fichiers de donnes


Redimensionner manuellement
des fichiers de donnes
ALTER
ALTER DATABASE
DATABASE
DATAFILE
DATAFILE '/DISK5/app_data_02.dbf'
'/DISK5/app_data_02.dbf'
RESIZE
RESIZE 200M;
200M;

Tablespace APP_DATA

app_data_01.dbf
100M

app_data_02.dbf
100M

app_data_03.dbf
200M

app_data_04.dbf
200M

100M

Copyright Oracle Corporation, 1999. Tous droits rservs.

Commande ALTER DATABASE DATAFILE RESIZE


Au lieu d'augmenter l'espace de la base de donnes en ajoutant des fichiers de
donnes, l'administrateur de base de donnes peut modifier la taille d'un fichier de
donnes. Utilisez la commande ALTER DATABASE pour augmenter ou diminuer
manuellement la taille d'un fichier de donnes.
ALTER DATABASE [database]
DATAFILE 'filename'[, 'filename']...
RESIZE integer[K|M]

integer

correspond la taille absolue, en octets,


du fichier de donnes rsultant.
S'il existe des objets de base de donnes ayant une taille suprieure la taille dfinie,
la taille du fichier de donnes est diminue uniquement jusqu'au dernier bloc des
derniers objets du fichier de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-33

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Ajouter des fichiers de donnes un tablespace


Ajouter des fichiers de
donnes un tablespace
ALTER
ALTER TABLESPACE
TABLESPACE app_data
app_data
ADD
ADD DATAFILE
DATAFILE '/DISK5/app_data_03.dbf'
'/DISK5/app_data_03.dbf'
SIZE
SIZE 200M;
200M;

Tablespace APP_DATA

app_data_01.dbf
100M

app_data_02.dbf
100M

app_data_03.dbf
200M

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser la commande ALTER TABLESPACE ADD DATAFILE


Utilisez la commande ALTER TABLESPACE ADD DATAFILE pour ajouter des
fichiers de donnes un tablespace et augmenter l'espace disque total du tablespace.
ALTER TABLESPACE tablespace
ADD DATAFILE

filespec [autoextend_clause]

[,

filespec [autoextend_clause]]...

.....................................................................................................................................................
8-34
Oracle DBA : Architecture et administration

Ajouter des fichiers de donnes un tablespace


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour ajouter un fichier de donnes


1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tablespaces.
4 Slectionnez Tablespace>Add Datafile.

5 Entrez les informations relatives au fichier dans la page General de la fentre

de proprits.
6 Cliquez sur Create.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-35

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Dplacer des fichiers de donnes


Dplacer des fichiers de donnes :
ALTER TABLESPACE

Le tablespace doit tre "offline".


Les fichiers de donnes cible doivent exister.

ALTER
ALTER TABLESPACE
TABLESPACE app_data
app_data
RENAME
RENAME
DATAFILE
DATAFILE '/DISK4/app_data_01.dbf'
'/DISK4/app_data_01.dbf'
TO
'/DISK5/app_data_01.dbf';
TO
'/DISK5/app_data_01.dbf';

Copyright Oracle Corporation, 1999. Tous droits rservs.

Mthodes de dplacement des fichiers de donnes


Selon le type de tablespace, l'administrateur de base de donnes peut dplacer
les fichiers de donnes de deux manires : l'aide de la commande ALTER
TABLESPACE ou de la commande ALTER DATABASE.
Utiliser la commande ALTER TABLESPACE
La commande ALTER TABLESPACE suivante ne s'applique qu'aux fichiers de
donnes d'un tablespace non SYSTEM ne contenant pas de segments d'annulation
ni de segments temporaires actifs :
ALTER TABLESPACE tablespace
RENAME DATAFILE 'filename'[, 'filename']...
TO 'filename'[, 'filename']...

Pour renommer un fichier de donnes, procdez comme suit :


1 Mettez le tablespace "offline".
2 Utilisez la commande de systme d'exploitation approprie pour dplacer
ou copier les fichiers.
3 Excutez la commande ALTER TABLESPACE RENAME DATAFILE.
4 Placez le tablespace "online".
5 Utilisez la commande de systme d'exploitation approprie pour supprimer
le fichier, si ncessaire.
Les noms de fichier source doivent correspondre ceux stocks dans le fichier
de contrle.

.....................................................................................................................................................
8-36
Oracle DBA : Architecture et administration

Dplacer des fichiers de donnes


.....................................................................................................................................................

Dplacer des fichiers de donnes :


ALTER DATABASE

La base de donnes doit tre monte.


Le fichier de donnes cible doit exister.

ALTER
ALTER DATABASE
DATABASE
RENAME
RENAME FILE
FILE '/DISK1/system_01.dbf'
'/DISK1/system_01.dbf'
TO
'/DISK2/system_01.dbf';
TO '/DISK2/system_01.dbf';

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser la commande ALTER DATABASE


Utilisez la commande ALTER DATABASE (voir le chapitre "Grer les fichiers
de journalisation") pour dplacer n'importe quel type de fichier de donnes.
ALTER DATABASE [database]
RENAME FILE 'filename'[, 'filename']...
TO 'filename'[, 'filename']...

Dans la mesure o le tablespace SYSTEM ne peut pas tre mis "offline", vous devez
utiliser cette mthode pour dplacer les fichiers de donnes du tablespace SYSTEM.
Pour renommer les fichiers des tablespaces qui ne peuvent pas tre mis "offline",
procdez comme suit :
1 Arrtez la base de donnes.
2 Utilisez la commande de systme d'exploitation approprie pour dplacer
les fichiers.
3 Montez la base de donnes.
4 Excutez la commande ALTER DATABASE RENAME FILE.
5 Ouvrez la base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-37

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour ajouter un fichier de donnes


1 Lancez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tablespaces et slectionnez le fichier de donnes.
4 Mettez jour les informations relatives au fichier dans la page General de
la fentre de proprits.
5 Cliquez sur Apply.
Remarque :
Ces commandes vrifient l'existence du fichier dans le nouvel emplacement ;
elles ne crent ni ne dplacent aucun fichier.
Indiquez toujours des noms de fichier complet (avec le chemin) pour distinguer
les nouveaux fichiers des anciens.

.....................................................................................................................................................
8-38
Oracle DBA : Architecture et administration

Informations du dictionnaire de donnes


.....................................................................................................................................................

Informations du dictionnaire de donnes


Obtenir des informations
sur les tablespaces

Informations de tablespace :
DBA_TABLESPACES
V$TABLESPACE

Informations de fichier de donnes :


DBA_DATA_FILES
V$DATAFILE

Informations de fichier temporaire :


DBA_TEMP_FILES
V$TEMPFILE

Copyright Oracle Corporation, 1999. Tous droits rservs.

Joindre les vues du dictionnaire de donnes


Les vues des performances sont cres partir des informations du fichier de contrle.
Pour joindre la vue V$TABLESPACE et la vue V$DATAFILE ou V$TEMPFILE,
joignez les vues dans la colonne TS# (numro de tablespace).
Pour joindre les vues du dictionnaire de donnes sur les tablespaces et celles sur
les fichiers de donnes, joignez les tables sur le nom du tablespace.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-39

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Instructions
Instructions

Utiliser plusieurs tablespaces.


Dfinir les paramtres par dfaut des
tablespaces.

Affecter des quotas de tablespaces aux


utilisateurs.

Inclure le chemin du rpertoire dans les


noms de fichier.

Utiliser MINIMUM EXTENTS.


Utiliser des extents grs localement.
Possibilit de dfinir jusqu' 1023 fichiers
de donnes par tablespace.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser plusieurs tablespaces


Utilisez plusieurs tablespaces pour faciliter les oprations de gestion de la base
de donnes.
Sparez les donnes utilisateur de celles du dictionnaire de donnes.
Sparez les segments de donnes des segments d'index.
Sparez les donnes d'application.
Stockez les fichiers de donnes des diffrents tablespaces sur des disques
distincts afin de rduire les problmes de contention d'entre/sortie.
Sparez le segment d'annulation des segments de donnes pour viter
qu'une dfaillance de disque ne provoque la perte dfinitive des donnes.
Placez des tablespaces "offline" et maintenez les autres "online".
Rservez des tablespaces aux oprations spciales sur la base de donnes, telles
que les longues mises jour, les longues oprations en lecture seule ou le stockage
des segments temporaires.
Sauvegardez chaque tablespace.
Dfinir les paramtres de stockage du tablespace
Prcisez les paramtres de stockage par dfaut d'un tablespace pour tenir compte
de la taille d'un objet type qui sera cr dans le tablespace.

.....................................................................................................................................................
8-40
Oracle DBA : Architecture et administration

Instructions
.....................................................................................................................................................

Affecter des quotas de tablespace aux utilisateurs


En fonction des besoins, affectez des quotas de tablespace aux utilisateurs
de la base de donnes.
Inclure le chemin du rpertoire dans les noms de fichier
Lorsque vous crez ou renommez des fichiers de donnes, indiquez le nom complet
des fichiers, car sinon, le serveur Oracle cre les fichiers de donnes dans le rpertoire
par dfaut du serveur de bases de donnes.
Utiliser MINIMUM EXTENTS pour contrler la fragmentation
L'option MINIMUM EXTENT permet l'administrateur de base de donnes de
contrler la fragmentation du tablespace. Cette option s'applique uniquement aux
tablespaces, non aux objets de stockage.
Limites
Le nombre maximum de tablespaces par base de donnes correspond un
espace de 64 ko.
Le nombre maximum de fichiers de donnes que peut contenir un tablespace est
gal 1023 fichiers, mais cette limite varie en fonction du systme d'exploitation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-41

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

Synthse
Synthse
Ce chapitre vous a permis d'apprendre :

utiliser les tablespaces pour sparer


les donnes,

redimensionner les tablespaces :


en ajoutant des fichiers de donnes,
en augmentant la taille des fichiers
de donnes,

utiliser des tablespaces grs localement,


utiliser des tablespaces temporaires.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
8-42
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des
performances
Vues du dictionnaire
de donnes
Commandes

Procdures et fonctions
de package

Rfrence
DB_FILES
V$DATAFILE
V$TEMPFILE
V$TABLESPACE
DBA_DATA_FILES
DBA_TABLESPACES
DBA_TEMP_FILES
CREATE TABLESPACE ... DATAFILE ...
DEFAULT STORAGE...MINIMUM EXTENT
CREATE TEMPORARY TABLESPACE
CREATE TABLESPACE ... DATAFILE AUTOEXTEND
ALTER TABLESPACE ... ADD DATAFILE ...
AUTOEXTEND
ALTER DATABASE DATAFILE ... RESIZE
ALTER TABLESPACE...DEFAULT STORAGE...
MINIMUM EXTENT
ALTER TABLESPACE ... RENAME DATAFILE...
ALTER DATABASE RENAME FILE...
ALTER TABLESPACE ... READ ONLY
ALTER TABLESPACE ... READ WRITE
ALTER TABLESPACE ... OFFLINE
DROP TABLESPACE
Aucune

.....................................................................................................................................................
Oracle DBA : Architecture et administration
8-43

Chapitre 8 : Grer les tablespaces et les fichiers de donnes


.....................................................................................................................................................

.....................................................................................................................................................
8-44
Oracle DBA : Architecture et administration

9
.................................

Structure de stockage
et relations

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

dcrire la structure logique de la base de donnes,

numrer les mots-cls qui contrlent l'utilisation


de l'espace des blocs,

obtenir des informations sur les structures de


stockage partir du dictionnaire de donnes,

numrer les critres de sparation des segments.

numrer les types de segment et expliquer leur


fonction,

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
9-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation
Base de
donnes
Tablespace

Logique

Fichier
de donnes
Physique

Segment

Extent

Bloc Oracle

Bloc de systme
d'exploitation

Copyright Oracle Corporation, 1999. Tous droits rservs.

Architecture de base de donnes


Le chapitre prcdent portait sur la structure de stockage d'une base de donnes, de ses
tablespaces et de ses fichiers de donnes. Ce chapitre prolonge la description de la
structure de stockage d'une base de donnes et aborde plus particulirement les
segments, les extents (ensemble de blocs contigus) et les blocs de donnes.
Remarque : les commandes et les instructions de gestion des diffrents types de
segment sont expliques en dtail dans le cours Oracle8 for Developers.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-3

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Types de segment
Types de segment

Table

Cluster

Partition de table

Index

Copyright Oracle Corporation, 1999. Tous droits rservs.

Segments
Les segments sont des objets qui occupent de l'espace dans une base de donnes. Ils
utilisent de l'espace dans les fichiers de donnes d'une base de donnes. Cette section
dcrit les diffrents types de segment.
Table
Les donnes d'une base sont gnralement stockes dans une table. Un segment de
table stocke les donnes d'une table qui n'est ni incluse dans un cluster, ni partitionne.
Les donnes d'un segment de table ne sont pas stockes dans un ordre spcifique et
l'administrateur de la base de donnes a un contrle trs limit sur l'emplacement des
lignes dans les blocs d'une table. Toutes les donnes d'un segment de table doivent tre
stockes dans un seul tablespace.
Partition de table
L'volutivit et la disponibilit sont des lments trs importants prendre en compte
lorsqu'une table de base de donnes sera utilise simultanment par de nombreux
utilisateurs. Dans ce cas, les donnes de la table peuvent tre stockes dans plusieurs
partitions, chacune se trouvant dans un tablespace diffrent. Le serveur Oracle prend
en charge actuellement le partitionnement l'aide d'une srie de valeurs de cls ou d'un
algorithme de hachage. Lorsqu'une table est partitionne, chacune de ses partitions
constitue un segment qui peut tre contrl de manire indpendante l'aide de
paramtres de stockage. L'utilisation de ce type de segment requiert l'option
Partitioning d'Oracle8i Enterprise Edition.

.....................................................................................................................................................
9-4
Oracle DBA : Architecture et administration

Types de segment
.....................................................................................................................................................

Cluster
Un cluster, comme une table, est un type de segment de donnes. Les lignes d'un
cluster sont stockes en fonction des valeurs des colonnes de cls. Un cluster peut
contenir une ou plusieurs tables. Les tables d'un cluster appartiennent au mme
segment et partagent les mmes caractristiques de stockage. Les lignes d'une table
incluse dans un cluster sont accessibles l'aide d'un index ou d'un algorithme de
hachage.
Index
Toutes les entres d'un index spcifique sont stockes dans un seul segment d'index. Si
une table possde trois index, trois segments d'index sont utiliss. Le segment d'index
permet de rechercher l'emplacement des lignes dans une table en fonction d'une cl
spcifie.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-5

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Types de segment

Table organise
en index

Partition d'index

Segment
d'annulation

Segment
temporaire

Copyright Oracle Corporation, 1999. Tous droits rservs.

Table organise en index


Les donnes d'une table organise en index sont stockes dans l'index en fonction de la
valeur de cl. Une table organise en index ne ncessite pas l'excution d'une opration
de recherche, car toutes les donnes peuvent tre extraites directement partir de
l'arborescence d'index.
Partition d'index
Un index peut tre partitionn et rparti dans plusieurs tablespaces. Dans ce cas,
chaque partition de l'index correspond un segment et ne peut pas tre rpartie dans
plusieurs tablespaces. Un index partitionn est utilis principalement pour rduire la
contention en rpartissant les entres/sorties d'index. Ce type de segment requiert
l'option Partitioning d'Oracle8i Enterprise Edition.
Segment d'annulation (rollback segment)
Un segment d'annulation est utilis par une transaction qui effectue des modifications
dans une base de donnes. Avant toute modification des blocs de donnes ou d'index,
l'ancienne valeur est stocke dans le segment d'annulation pour permettre l'utilisateur
d'annuler les modifications, s'il le souhaite.
Segment temporaire
Lorsque l'utilisateur excute des commandes, telles que CREATE INDEX, SELECT
DISTINCT et SELECT GROUP BY, le serveur Oracle tente d'effectuer des tris dans la
mmoire. Lorsqu'un tri ncessite plus d'espace disponible que n'en contient la
mmoire, des rsultats intermdiaires sont crits sur le disque. Les segments
temporaires permettent de stocker ces rsultats intermdiaires.

.....................................................................................................................................................
9-6
Oracle DBA : Architecture et administration

Types de segment
.....................................................................................................................................................

Types de segment

Segment
LOB

Index LOB

Table
imbrique

Segment de
bootstrap

Copyright Oracle Corporation, 1999. Tous droits rservs.

Segment LOB
Une ou plusieurs colonnes d'une table peuvent tre utilises pour stocker les objets
LOB (Large Object), tels que des documents texte, des images ou des donnes vido.
Si la colonne est large, le serveur Oracle enregistre ces valeurs dans des segments
distincts appels segments LOB. La table contient uniquement un pointeur vers
l'emplacement des donnes LOB correspondantes.
Index LOB
Un segment d'index LOB est cr implicitement en mme temps qu'un segment LOB.
L'index LOB permet de rechercher des valeurs de colonne LOB spcifiques.
Table imbrique
Une colonne d'une table peut tre constitue d'une table dfinie par l'utilisateur,
comme dans le cas d'articles d'une commande. Dans ce cas, la table interne, appele
table imbrique, est stocke sous forme de segment distinct. L'utilisation de tables
imbriques requiert l'option Objects d'Oracle8i Enterprise Edition.
Segment de bootstrap
Un segment de bootstrap, appel galement segment de cache, est cr par le script
sql.bsq en mme temps que la base de donnes. Ce segment permet d'initialiser le
cache du dictionnaire de donnes l'ouverture de la base de donnes par une instance.
Le segment de bootstrap ne peut pas tre interrog, ni mis jour et ne ncessite aucune
opration de maintenance de la part de l'administrateur de la base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-7

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Priorit des clauses de stockage


Priorit des clauses de stockage

Dfaut Oracle
Tablespace
Segment

Copyright Oracle Corporation, 1999. Tous droits rservs.

Paramtres de stockage
Une clause de stockage peut tre dfinie au niveau du segment afin de contrler le
mode d'allocation des extents un segment.
Tout paramtre de stockage dfini au niveau du segment annule l'option
correspondante dfinie au niveau du tablespace, sauf pour les paramtres de
tablespace MINIMUM EXTENT et UNIFORM SIZE.
Lorsque des paramtres de stockage ne sont pas dfinis explicitement au niveau du
segment, les paramtres dfinis au niveau du tablespace sont utiliss par dfaut.
Lorsque les paramtres de stockage ne sont pas dfinis explicitement au niveau du
tablespace, les paramtres systme du serveur Oracle sont utiliss par dfaut.
Autres considrations
Si vous modifiez des paramtres de stockage, les nouvelles valeurs s'appliquent
uniquement aux extents non allous.
Certains paramtres ne peuvent pas tre dfinis au niveau du tablespace. Ils
doivent l'tre au niveau du segment uniquement.
Si vous avez dfini une taille minimum d'extent pour le tablespace, cette taille
s'appliquera par la suite tous les extents allous des segments du tablespace.

.....................................................................................................................................................
9-8
Oracle DBA : Architecture et administration

Allouer et librer des extents


.....................................................................................................................................................

Allouer et librer des extents


Allouer et librer des extents

Allocation lorsque le segment est :


cr,
tendu,
modifi.

Libration lorsque le segment est :


supprim,
modifi,
tronqu,
redimensionn automatiquement
(segments d'annulation uniquement).

Copyright Oracle Corporation, 1999. Tous droits rservs.

Redimensionner des segments d'annulation


Le redimensionnement des segments d'annulation est expliqu en dtail dans le
chapitre "Grer les segments d'annulation".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-9

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Extents utiliss et libres


Extents utiliss et libres
Fichier de donnes

En-tte de fichier

Extent utilis

Copyright Oracle Corporation, 1999. Tous droits rservs.

Extent libre

Extents
Lorsqu'un tablespace est cr, ses fichiers de donnes contiennent les lments
suivants :
un bloc d'en-tte qui est le premier bloc du fichier,
un extent libre contenant le reste du fichier de donnes.
Au fur et mesure que des segments sont crs, de l'espace provenant des extents
libres du tablespace leur est allou. Des espaces contigus utiliss par un segment
constituent un extent utilis. Lorsque des segments librent de l'espace, les extents
librs sont ajouts au pool d'extents libres du tablespace. L'allocation et la libration
frquentes d'extents peuvent provoquer une fragmentation de l'espace dans les fichiers
de donnes du tablespace.

.....................................................................................................................................................
9-10
Oracle DBA : Architecture et administration

Utiliser les paramtres d'utilisation de l'espace de bloc


.....................................................................................................................................................

Utiliser les paramtres d'utilisation de l'espace de bloc


Bloc de base de donnes

Unit minimum d'entre/sortie

Dfini par DB_BLOCK_SIZE

Constitu d'un ou de plusieurs blocs de systme


d'exploitation
Dfini lors de la cration de la base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-11

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Contenu d'un bloc de base de donnes

En-tte

Espace libre

Donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Blocs de donnes
Les blocs de donnes Oracle contiennent :
un en-tte de bloc : l'en-tte contient l'adresse du bloc de donnes, l'espace des
tables, l'espace des lignes et l'espace de transaction utilis lorsque les transactions
modifient des lignes du bloc. La taille des en-ttes de bloc augmente de haut
en bas.
Espace de donnes : les donnes de ligne sont insres dans le bloc de bas en haut.
Espace libre : l'espace libre d'un bloc se situe au milieu, ce qui permet l'espace
d'en-tte et l'espace de donnes de ligne de s'tendre lorsque cela s'avre
ncessaire. Au dpart, les espaces libres d'un bloc sont contigus. Toutefois, les
suppressions et les mises jour fragmentent l'espace libre d'un bloc. Les espaces
libres d'un bloc sont fusionns par le serveur Oracle en cas de ncessit.

.....................................................................................................................................................
9-12
Oracle DBA : Architecture et administration

Utiliser les paramtres d'utilisation de l'espace de bloc


.....................................................................................................................................................

Paramtres d'utilisation
de l'espace de bloc

INITRANS
MAXTRANS

PCTFREE
PCTUSED

Copyright Oracle Corporation, 1999. Tous droits rservs.

Paramtres d'utilisation de l'espace de bloc


Les paramtres d'utilisation de l'espace de bloc permettent de contrler l'utilisation de
l'espace dans les segments de donnes et les segments d'index.
Paramtres de contrle de la simultanit d'accs aux donnes
Les paramtres INITRANS et MAXTRANS dfinissent le nombre initial et le nombre
maximum d'espaces de transaction d'un bloc d'index ou d'un bloc de donnes.
Les espaces de transaction permettent galement stocker des informations sur les
transactions qui modifient le bloc un point dans le temps. Une transaction n'utilise
qu'un seul espace de transaction, mme si elle modifie plusieurs lignes ou entres
d'index.
Le paramtre INITRANS, dont la valeur par dfaut est 1 pour les segments de donnes
et 2, pour les segments d'index, garantit un niveau minimum de simultanit d'accs
aux donnes. Par exemple, si vous lui affectez la valeur 3, le paramtre INITRANS
permet trois transactions au moins de modifier simultanment le bloc. Si ncessaire,
vous pouvez allouer des espaces de transaction supplmentaires en utilisant l'espace
libre du bloc afin de permettre un plus grand nombre de transactions de modifier
simultanment des lignes du bloc.
Le paramtre MAXTRANS, dont la valeur par dfaut est 255, dfinit le nombre
maximum de transactions pouvant modifier simultanment un bloc de donnes ou
un bloc d'index. Cette valeur limite l'espace utilis dans le bloc par les espaces de
transaction et garantit ainsi un espace disponible suffisant pour les donnes de ligne
et d'index.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-13

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Paramtres de gestion de l'utilisation de l'espace de donnes


Le paramtre PCTFREE d'un segment de donnes dfinit, pour chaque bloc de
donnes, le pourcentage d'espace rserv l'augmentation de la taille du bloc rsultant
des mises jour des lignes du bloc. La valeur par dfaut du paramtre PCTFREE
est 10.
Le paramtre PCTUSED d'un segment de donnes correspond au pourcentage
minimum d'espace utilis que le serveur Oracle essaie de maintenir pour chaque bloc
de donnes de la table. Un bloc est replac dans la liste d'espaces libres lorsque la
quantit d'espace utilis qu'il contient est infrieure la valeur du paramtre
PCTUSED. La liste d'espaces libres d'un segment est la liste des blocs qui pourront
tre utiliss pour des insertions. Par dfaut, un segment est cr avec une seule liste
d'espaces libres. Vous pouvez dfinir un plus grand nombre de listes d'espaces libres
pour un segment l'aide du paramtre FREELISTS de la clause de stockage. La valeur
par dfaut du paramtre PCTUSED est 40.
Les paramtres PCTFREE et PCTUSED reprsentent le pourcentage d'espace de
donnes disponible, savoir l'espace restant une fois l'espace d'en-tte dduit de la
taille totale du bloc.
Vous ne pouvez dfinir les paramtres d'utilisation d'espace de bloc que pour les
segments et ces paramtres ne peuvent pas tre dfinis au niveau du tablespace.
Remarque : l'utilisation de ces paramtres avec les index est explique en dtail
dans le chapitre "Grer les index".
La dfinition du paramtre FREELISTS est explique en dtail dans le cours
Oracle DBA : Tuning.

.....................................................................................................................................................
9-14
Oracle DBA : Architecture et administration

Utiliser les paramtres d'utilisation de l'espace de bloc


.....................................................................................................................................................

Block Space Usage


PCTFREE=20

Inserts

PCTUSED=40

80%

Inserts

80%
Inserts
40%

Inserts

Copyright Oracle Corporation, 1999. All rights reserved.

Utilisation de l'espace de bloc


Les tapes suivantes expliquent comment l'espace d'un bloc est gr pour un segment
de donnes l'aide des paramtres PCTFREE=20 et PCTUSED=40 :
1 Des lignes sont insres dans le bloc jusqu' ce que l'espace libre du bloc soit gal
ou infrieur 20 %. L'insertion de nouvelles lignes dans le bloc n'est plus possible
lorsque les lignes occupent au moins 80 % (100 PCTFREE) de l'espace de
donnes disponible du bloc.
2 Les 20 % restants peuvent tre utiliss lorsque la taille d'une ligne augmente.
Par exemple, une colonne NULL au dpart est mise jour par l'affectation d'une
valeur. Ainsi, le taux d'utilisation du bloc peut dpasser 80 % la suite de mises
jour.
3 Si des lignes du bloc sont supprimes ou que leur taille diminue la suite de mises
jour, le taux d'utilisation du bloc peut passer en dessous de 80 %. Toutefois,
aucune ligne n'est insre dans un bloc tant que le taux d'utilisation de ce dernier
n'est pas infrieur la valeur de PCTUSED, soit 40 %, dans notre exemple.
4 Lorsque le taux d'utilisation est infrieur la valeur du paramtre PCTUSED, le
bloc peut nouveau recevoir des lignes. Au fur et mesure que des lignes sont
insres dans le bloc, le taux d'utilisation du bloc augmente et le cycle redmarre
partir de l'tape 1.
Remarque : les instructions de dfinition des paramtres PCTFREE et PCTUSED
sont dcrites en dtail dans les chapitres relatifs aux tables et index, respectivement
"Grer les tables" et "Grer les index".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-15

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Obtenir des informations sur les structures de stockage


Vues du dictionnaire de donnes
Extents utiliss
DBA_EXTENTS

Segments
DBA_SEGMENTS

Extents libres
DBA_FREE_SPACE

Fichiers de donnes
DBA_DATA_FILES

Tablespaces
DBA_TABLESPACES

Copyright Oracle Corporation, 1999. Tous droits rservs.

Interroger le dictionnaire de donnes


Vous pouvez visualiser les relations entre les tablespaces, les fichiers de donnes, les
segments et les extents libres et utiliss en interrogeant le dictionnaire de donnes.
Lorsque vous crez un tablespace comportant un ou plusieurs fichiers, une ligne est
ajoute la vue DBA_TABLESPACES. Pour chaque fichier de la base de donnes,
une ligne est ajoute la vue DBA_DATA_FILES. A ce stade, l'espace de chaque
fichier de donnes, en-tte exclu, correspond un seul extent libre dans la vue
DBA_FREE_SPACE.
Lors de la cration d'un segment, une ligne est visible dans la vue DBA_SEGMENTS.
L'espace allou aux extents de ce segment est visible dans la vue DBA_EXTENTS,
tandis que la vue DBA_FREE_SPACE est ajuste afin d'indiquer une quantit d'espace
libre moindre dans les fichiers dans lesquels les extents ont t crs pour le segment.
La totalit de l'espace du fichier (en-tte de bloc exclu) doit tre prise en compte dans
la vue DBA_FREE_SPACE ou DBA_EXTENTS.

.....................................................................................................................................................
9-16
Oracle DBA : Architecture et administration

Interroger la vue DBA_SEGMENTS


.....................................................................................................................................................

Interroger la vue DBA_SEGMENTS


Interroger la vue DBA_SEGMENTS
Informations gnrales

Paramtres de stockage

OWNER

INITIAL_EXTENT

SEGMENT_NAME
SEGMENT_TYPE

NEXT_EXTENT
MIN_EXTENTS

TABLESPACE_NAME

MAX_EXTENTS
PCT_INCREASE

Taille

Autres informations

EXTENTS
BLOCKS

Emplacement

BYTES

Rglage

Copyright Oracle Corporation, 1999. Tous droits rservs.

DBA_SEGMENTS
Interrogez la vue DBA_SEGMENTS afin d'obtenir le nombre d'extents et de blocs
allous un segment.
SQL> SELECT segment_name,tablespace_name,extents,blocks
2 FROM dba_segments
3 WHERE owner='SCOTT';
SEGMENT_NAME

TABLESPACE_NAME

EXTENTS

------------

---------------

--------

BLOCKS

EMP

DATA01

55

DEPT

DATA01

BONUS

DATA01

SALGRADE

DATA01

--------

5 rows selected.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-17

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Interroger la vue DBA_EXTENTS


Interroger la vue DBA_EXTENTS
Identification

Emplacement

OWNER

TABLESPACE_NAME

SEGMENT_NAME

RELATIVE_FNO

EXTENT_ID

FILE_ID

Taille

BLOCK_ID

BLOCKS
BYTES

Copyright Oracle Corporation, 1999. Tous droits rservs.

DBA_EXTENTS
Interrogez la vue DBA_EXTENTS afin d'obtenir les extents pour un segment donn.
SQL>
2
3
4

SELECT extent_id,file_id,block_id,blocks
FROM dba_extents
WHERE owner='SCOTT'
AND segment_name='EMP';
EXTENT_ID

FILE_ID

BLOCK_ID

BLOCKS

--------0
1
2
3
4
5 rows selected.

------4
4
4
4
4

-------2
27
32
42
57

-----5
5
10
15
20

.....................................................................................................................................................
9-18
Oracle DBA : Architecture et administration

Interroger la vue DBA_FREE_SPACE


.....................................................................................................................................................

Interroger la vue DBA_FREE_SPACE


Interroger la vue DBA_FREE_SPACE

Emplacement
TABLESPACE_NAME
RELATIVE_FNO
FILE_ID
BLOCK_ID

Taille
BYTES
BLOCKS

Copyright Oracle Corporation, 1999. Tous droits rservs.

DBA_FREE_SPACE
Interrogez la vue DBA_FREE_SPACE afin d'obtenir les extents pour un segment
donn.
SQL> SELECT tablespace_name, count(*),
2

max(blocks), sum(blocks)

3 FROM dba_free_space
4 GROUP BY tablespace_name;
TABLESPACE_NAME
---------------

COUNT(*)
--------

MAX(BLOCKS

SUM(BLOCKS

----------

----------

DATA01

1284

1533

RBS

2329

2419

SORT

1023

1023

SYSTEM

5626

5626

TEMP

2431

2431

5 rows selected.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-19

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Planifier l'emplacement des segments


Organiser les tablespaces en fonction
de leur propension la fragmentation
Tablespace

Utilisation

Fragmentation

SYSTEM

Dictionnaire de donnes

Zro

TOOLS

Applications

Trs faible

DATAn

Segments de donnes

Faible

INDEXn

Segments d'index

Faible

RBSn

Segments d'annulation

Eleve

TEMPn

Segments temporaires

Trs leve*

* Uniquement si le tablespace est PERMANENT

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fragmentation
La propension des segments la fragmentation dpend du type de segment. Il est
recommand de placer les segments dans diffrents tablespaces afin de rduire l'espace
perdu.
Types d'objet et fragmentation
La structure recommande des tablespaces, leur utilisation et leur propension la
fragmentation sont indiques dans le tableau ci-dessus. Les diffrents types d'objet
sont classs ci-dessous par ordre croissant de leur propension la fragmentation :
Les objets du dictionnaire de donnes, l'exception de la table d'audit, ne sont
jamais supprims, ni tronqus. Par consquent, ils ne sont pas susceptibles de
fragmenter le tablespace.
L'espace utilis pour les rfrentiels d'applications, telles qu'Oracle Enterprise
Manager et Oracle Designer, n'est libr que lors de la rorganisation de ces
structures. Etant donn que ces tables sont rarement rorganises, ces objets ont
une trs faible propension la fragmentation.
Les segments de donnes et d'index utiliss pour les applications crites par
l'utilisateur peuvent ncessiter une rorganisation plus frquente que les
rfrentiels. Ils ont une plus forte propension se fragmenter que les rfrentiels
d'applications.

.....................................................................................................................................................
9-20
Oracle DBA : Architecture et administration

Planifier l'emplacement des segments


.....................................................................................................................................................

Types d'objet et fragmentation (suite)


Etant donn que les segments d'annulation peuvent librer automatiquement les
extents, ils sont susceptibles de provoquer des fragmentations dans un systme
dont les donnes sont frquemment mises jour.
Les segments temporaires des tablespaces permanents peuvent librer
frquemment de l'espace et doivent donc tre placs dans des tablespaces distincts.
Impact de la dure de vie d'un segment
La dure de vie des segments dans une base de donnes varie en fonction des
segments. Par exemple, dans un environnement de projet, dans une socit de
dveloppement de logiciels, par exemple, il peut tre ncessaire de purger toutes les
donnes associes une application une fois le dveloppement de l'application
termin. L'utilisation d'un ensemble de tablespaces distinct pour ces segments peut
faciliter les oprations de nettoyage. A la fin du projet, l'ensemble des tablespaces peut
tre sauvegard et supprim pour librer de l'espace pour les autres applications qui
utilisent la base de donnes.
Autres critres d'organisation des tablespaces
L'administrateur de la base de donnes peut galement sparer les tablespaces pour :
grer l'allocation d'espace et affecter des limites d'utilisation de l'espace aux
utilisateurs,
contrler la disponibilit des donnes en plaant des tablespaces "online" ou
"offline",
rpartir le stockage des donnes entre les units pour amliorer les performances
des oprations d'entre/sortie et rduire la contention sur un disque unique,
effectuer des sauvegardes et des restaurations partielles,
conserver de gros volumes de donnes statiques sur des units accessibles en
lecture seule.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
9-21

Chapitre 9 : Structure de stockage et relations


.....................................................................................................................................................

Synthse
Synthse
Ce chapitre vous a permis d'apprendre :

utiliser les tablespaces pour :


sparer les segments afin de faciliter
l'administration,
grer l'allocation d'espace aux utilisateurs.

classer les segments en catgories en fonction


du type d'information qu'ils contiennent,

dterminer la taille des extents l'aide de


la clause de stockage,

grer l'utilisation de l'espace des blocs.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des performances
Vues du dictionnaire de donnes

Rfrence
DB_BLOCK_SIZE
Aucune
DBA_TABLESPACES
DBA_DATA_FILES
DBA_SEGMENTS
DBA_EXTENTS
DBA_FREE_SPACE
DBA_FREE_SPACE_COALESCED

.....................................................................................................................................................
9-22
Oracle DBA : Architecture et administration

10
.................................

Grer les segments


d'annulation

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Objectifs
Objectifs
A la fin de ce chapitre, vous pourrez :

crer des segments d'annulation en utilisant


les paramtres de stockage appropris,

grer les segments d'annulation,

obtenir des informations sur les segments


d'annulation partir du dictionnaire de donnes,

rsoudre les problmes courants relatifs aux


segments d'annulation.

planifier le nombre de segments d'annulation


et leur taille,

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
10-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Segment d'annulation
Ancienne
image

Nouvelle
image

Table
Segment
d'annulation

Transaction
de mise jour
Copyright Oracle Corporation, 1999. Tous droits rservs.

Prsentation du chapitre
Un segment d'annulation (rollback segment) permet d'enregistrer l'ancienne valeur
lorsqu'un processus modifie les donnes d'une base de donnes. Il enregistre
l'emplacement des donnes et les donnes qui existaient avant la modification.
L'en-tte d'un segment d'annulation contient la table des transactions dans laquelle
sont enregistres les informations sur les transactions en cours associes au segment
d'annulation.
Une transaction stocke l'ensemble de ses enregistrements d'annulation dans un seul
segment d'annulation.
Plusieurs transactions simultanes peuvent crire des donnes dans un mme segment
d'annulation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-3

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Segments d'annulation
Segments d'annulation : fonction

Annulation
de transaction

Rcupration
de transaction

Segment
d'annulation

Cohrence
en lecture

Copyright Oracle Corporation, 1999. Tous droits rservs.

Annuler une transaction


Lorsqu'une transaction modifie une ligne dans une table, l'ancienne image est
enregistre dans le segment d'annulation. En cas d'annulation de la transaction, le
serveur Oracle restaure la valeur d'origine en la rcrivant dans la ligne du segment
d'annulation.
Rcuprer une transaction
Si l'instance choue lorsque des transactions sont en cours, le serveur Oracle, lors
de la rouverture de la base de donnes, doit annuler les modifications non valides.
L'annulation fait partie de la rcupration de la transaction. La rcupration est
possible uniquement dans la mesure o les modifications effectues dans le segment
d'annulation sont galement protges par les fichiers de journalisation (redo log).
Cohrence en lecture
Lorsque des transactions sont en cours, les autres utilisateurs de la base de donnes ne
doivent pas voir les modifications non valides effectues par ces transactions. En
outre, une instruction ne doit pas voir les modifications valides aprs le dbut de son
excution. Les anciennes valeurs des segments d'annulation sont galement utilises
pour fournir aux lecteurs une image cohrente d'une instruction donne.

.....................................................................................................................................................
10-4
Oracle DBA : Architecture et administration

Segments d'annulation
.....................................................................................................................................................

Cohrence en lecture
SELECT *
FROM table

Table

Nouvelle image
Image au dbut de l'instruction
Copyright Oracle Corporation, 1999. Tous droits rservs.

Cohrence en lecture (suite)


Le serveur Oracle permet une instruction de voir les donnes de manire cohrente
un instant donn, mme si celles-ci sont modifies par d'autres transactions.
Lorsque le serveur Oracle commence excuter l'instruction SELECT, il dtermine le
numro SCN en cours et s'assure que les modifications non valides avant ce numro
ne sont pas traites par l'instruction. Supposons qu'une longue interrogation soit
excute alors que plusieurs modifications sont en cours. Si un bloc contient des
modifications non valides au dbut de l'interrogation, le serveur Oracle cre une
image cohrente en lecture du bloc en extrayant l'image avant modifications depuis
le segment d'annulation et en appliquant les modifications une copie du bloc en
mmoire.
Cohrence en lecture d'une transaction
Une instruction SQL est toujours cohrente en lecture. Toutefois, vous pouvez
demander la cohrence en lecture d'une transaction en lecture seule en excutant la
commande suivante au dbut de la transaction :
SET TRANSACTION READ ONLY;

Vous pouvez galement demander la cohrence en lecture d'une transaction lanant


LMD en excutant la commande suivante au dbut de la transaction :
SET TRANSACTION SERIALIZABLE;

Dans les deux cas, le serveur Oracle fournit des donnes lues de manire cohrente ds
le dbut de la transaction. L'utilisation de la commande SERIALIZABLE peut avoir
un impact ngatif sur les performances.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-5

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Types de segment d'annulation

SYSTEM : utilis pour les objets du tablespace


SYSTEM.

Non SYSTEM : utilis pour les objets des autres


tablespaces
priv : obtenu par une seule instance,
public : obtenu par n'importe quelle instance.

Diffr : utilis lorsque les tablespaces sont mis


"offline" avec l'option Immediate.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Segment d'annulation SYSTEM


Le segment d'annulation SYSTEM est cr dans le tablespace SYSTEM lors de la
cration de la base de donnes. Ce segment d'annulation ne peut tre utilis que pour
traiter les modifications apportes aux objets du tablespace SYSTEM.
Segments d'annulation non SYSTEM
Une base de donnes disposant de plusieurs tablespaces doit avoir au moins un
segment d'annulation non SYSTEM. Un segment d'annulation non SYSTEM, cr par
l'administrateur de base de donnes, peut tre utilis pour traiter les modifications
apportes aux objets des tablespaces non SYTEM. Il existe deux types de segment
d'annulation non SYSTEM.
Privs Les segments d'annulation privs sont des segments mis "online" par une
instance parce qu'ils sont rpertoris dans le fichier des paramtres. Toutefois, vous
pouvez les mettre "offline" de faon explicite l'aide de la commande ALTER
ROLLBACK SEGMENT.

.....................................................................................................................................................
10-6
Oracle DBA : Architecture et administration

Segments d'annulation
.....................................................................................................................................................

Segments d'annulation non SYSTEM (suite)


Publics Les segments d'annulation publics constituent un pool de segments
d'annulation disponibles dans une base de donnes. Ces segments sont gnralement
utiliss avec Oracle Parallel Server pour crer un pool de segments d'annulation
pouvant tre utiliss par n'importe quelle instance Parallel Server.
Remarque : l'utilisation des segments d'annulation publics est explique dans le
manuel Oracle8i Parallel Server Concepts and Administration.
Segments d'annulation diffrs
Des segments d'annulation diffrs peuvent tre crs lorsqu'un tablespace est mis
"offline". Ces segments permettent d'annuler les transactions lorsque le tablespace est
remis "online". Ils sont supprims automatiquement lorsqu'ils ne sont plus ncessaires.
Etant donn que les segments d'annulation diffrs sont grs par le serveur Oracle,
aucune intervention de l'administrateur de base de donnes n'est ncessaire.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-7

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Utiliser des segments d'annulation avec les transactions


Transactions et segments d'annulation

Transaction 1 Transaction 2

Extent actif

Extent inactif

Copyright Oracle Corporation, 1999. Tous droits rservs.

Allouer un segment d'annulation


Lorsqu'une transaction commence, un segment d'annulation doit lui tre affect.
Excutez la commande suivante pour affecter un segment d'annulation spcifique
une transaction :
SET TRANSACTION USE ROLLBACK SEGMENT rollback_segment

Si vous n'excutez pas cette commande, le serveur Oracle utilise le segment


d'annulation contenant le moins grand nombre de transactions et l'affecte la
transaction.
Utiliser les extents
Les transactions utilisent des extents (ensembles de blocs contigus) d'un segment
d'annulation dans une procdure squentielle circulaire dans laquelle elles passent d'un
extent l'autre lorsque l'extent en cours est plein. Une transaction crit une entre
son emplacement en cours dans le segment d'annulation et avance le pointeur en cours
d'une distance quivalente la taille de l'entre.
Plusieurs transactions peuvent crire dans le mme extent d'un segment d'annulation,
mais un bloc de segment d'annulation ne contient les donnes que d'une seule et
unique transaction.

.....................................................................................................................................................
10-8
Oracle DBA : Architecture et administration

Utiliser des segments d'annulation avec les transactions


.....................................................................................................................................................

Exemple
Dans l'exemple de la diapositive, deux transactions sont associes un segment
d'annulation contenant quatre extents.
1 Lorsque les transactions commencent, elles se mettent crire les donnes dans
l'extent 3 du segment d'annulation.
2 A mesure que les deux transactions gnrent d'autres informations d'annulation,
elles continuent crire dans l'extent 3.
3 Lorsque l'extent 3 est plein, les transactions crivent les donnes dans l'extent
suivant de l'anneau, savoir l'extent 4. Lorsque les transactions commencent
crire les donnes dans un nouvel extent, l'opration s'appelle un "wrap".
4 Lorsque le dernier extent (4) du segment d'annulation est plein, les transactions
peuvent utiliser le premier extent (1) de l'anneau s'il est libre ou inactif. Un extent
est libre ou inactif lorsqu'aucune transaction en cours ne l'utilise, c'est--dire
lorsque toutes les transactions qui crivent des donnes dans l'extent sont
termines.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-9

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Augmentation de la taille
des segments d'annulation

1
5

3
4

Extent actif

Nouvel extent

Extent inactif

Copyright Oracle Corporation, 1999. Tous droits rservs.

Augmentation de la taille des segments d'annulation


Le pointeur, ou en-tte du segment d'annulation, est transfr vers l'extent suivant
lorsque tous les blocs de l'extent en cours sont utiliss et qu'une transaction ncessite
un autre bloc supplmentaire. Lorsque le dernier extent est plein, le pointeur est
transfr au dbut du premier extent.
Le pointeur ne peut tre transfr vers l'extent suivant que si aucune transaction n'est
en cours d'excution dans cet extent. Le pointeur ne peut pas ignorer un extent. Si
l'extent suivant est utilis, la transaction alloue un extent supplmentaire au segment
d'annulation. Cette opration s'appelle une extension.
La taille d'un segment d'annulation peut augmenter de cette manire jusqu' ce qu'elle
atteigne le nombre maximum d'extents dfini par le paramtre MAXEXTENTS.

.....................................................................................................................................................
10-10
Oracle DBA : Architecture et administration

Utiliser des segments d'annulation avec les transactions


.....................................................................................................................................................

Rduction de la taille
des segments d'annulation

5
4

3
Extent actif

OPTIMAL

Extent inactif

Copyright Oracle Corporation, 1999. Tous droits rservs.

Paramtre OPTIMAL
Le paramtre OPTIMAL dfinit la taille en octets laquelle un segment d'annulation
doit revenir, si possible. Ce paramtre permet de rduire les pertes d'espace dans un
segment d'annulation. Si vous dfinissez le paramtre OPTIMAL, un segment
d'annulation peut librer de l'espace la fin des transactions qui ont provoqu
l'augmentation de la taille du segment d'annulation.
La libration d'extents n'est pas effectue ds la fin des transactions. Elle n'est
excute que lorsque l'en-tte passe d'un extent l'autre. Les extents sont librs
lorsque les deux conditions suivantes sont vraies :
la taille en cours du segment d'annulation est suprieure la valeur du paramtre
OPTIMAL,
il existe des extents contigus inactifs.
Le serveur Oracle tente de librer des extents jusqu' ce que la taille du segment
d'annulation soit gale la valeur du paramtre OPTIMAL, mais il arrte l'opration
avant si l'extent suivant librer est en cours d'utilisation.
Le serveur Oracle libre toujours les extents inactifs les plus anciens, dans la mesure
o ils sont peu susceptibles d'tre utiliss pour la cohrence en lecture.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-11

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Crer des segments d'annulation


Crer des segments d'annulation

CREATE ROLLBACK SEGMENT rbs01


TABLESPACE rbs
STORAGE (
INITIAL
100K
NEXT
100K
MINEXTENTS
20
MAXEXTENTS
100
OPTIMAL
2000K );

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
Utilisez la commande suivante pour crer un segment d'annulation :
CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment
[TABLESPACE tablespace]
[STORAGE ([INITIAL integer[K|M]]
[NEXT
integer[K|M]]
[MINEXTENTS integer]
[MAXEXTENTS {integer|UNLIMITED}]
[OPTIMAL {integer[K|M]|NULL}]
)
]

.....................................................................................................................................................
10-12
Oracle DBA : Architecture et administration

Crer des segments d'annulation


.....................................................................................................................................................

Restrictions
Un segment d'annulation peut tre dfini comme tant PUBLIC ou PRIVATE
(attribut par dfaut) lors de sa cration et ne peut pas tre modifi.
Pour un segment d'annulation, le paramtre MINEXTENTS doit avoir la valeur 2
au minimum.
Le paramtre PCTINCREASE d'un segment d'annulation ne peut pas tre dfini ;
il a toujours la valeur 0.
La valeur du paramtre OPTIMAL, si vous la dfinissez, doit tre au minimum
gale la taille initiale du segment d'annulation, qui correspond l'espace utilis
par les extents dont le nombre est dfini dans le paramtre MINEXTENTS.
Instructions
Utilisez toujours INITIAL = NEXT pour les segments d'annulation afin que tous
les extents aient la mme taille.
Affectez au paramtre OPTIMAL une valeur permettant de rduire l'allocation et
la libration d'extents de segment d'annulation.
N'affectez pas la valeur UNLIMITED au paramtre MAXEXTENTS. Cette valeur
peut provoquer l'extension inutile d'un segment d'annulation et ventuellement des
fichiers de donnes en raison d'une erreur de programme.
Placez toujours les segments d'annulation dans un tablespace distinct exclusif pour
rduire la contention et la fragmentation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-13

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour crer un nouveau segment


d'annulation
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Slectionnez le dossier Rollback Segments, cliquez avec le bouton droit de la
souris, puis slectionnez Create dans le menu.
4 Dans la page General de la fentre de proprits, entrez le nom, le tablespace et le
type. Slectionnez ventuellement le bouton d'option Online.

5 Dans la page Extents de la fentre de proprits, entrez les informations de

stockage.
6 Cliquez sur Create.
Utilisez Rollback>Create Like pour crer un nouveau segment d'annulation qui
utilise le mme tablespace et les mmes paramtres qu'un segment d'annulation
existant.

.....................................................................................................................................................
10-14
Oracle DBA : Architecture et administration

Crer des segments d'annulation


.....................................................................................................................................................

Mettre des segments


d'annulation "online"

Utilisez la commande suivante pour rendre


un segment d'annulation disponible :
ALTER
ALTER ROLLBACK
ROLLBACK SEGMENT
SEGMENT rbs01
rbs01 ONLINE;
ONLINE;

Dfinissez le paramtre d'initialisation suivant


pour mettre les segments d'annulation "online"
au dmarrage :
ROLLBACK_SEGMENTS=(rbs01,
ROLLBACK_SEGMENTS=(rbs01, rbs02)
rbs02)

Copyright Oracle Corporation, 1999. Tous droits rservs.

Commande ALTER ROLLBACK SEGMENT


Lorsque vous crez un segment d'annulation, le segment est "offline" et ne peut tre
utilis. Pour permettre aux transactions d'accder au segment d'annulation, utilisez la
commande ALTER ROLLBACK SEGMENT et mettez le segment d'annulation
"online".
Syntaxe
Utilisez la commande suivante pour rendre un segment d'annulation disponible :
ALTER ROLLBACK SEGMENT rollback_segment ONLINE;

Le nombre de segments d'annulation pouvant tre mis "online" par une instance est
limit par le paramtre MAX_ROLLBACK_SEGMENTS. Affectez ce paramtre
une valeur suprieure d'une unit au nombre de segments d'annulation non SYSTEM
ncessaires l'instance.
Un segment d'annulation n'est "online" que jusqu' ce que l'instance soit arrte. Pour
qu'une instance mette toujours un segment d'annulation "online", dfinissez le nom du
segment d'annulation dans le fichier des paramtres, comme indiqu dans l'exemple
ci-dessous :
ROLLBACK_SEGMENTS=(rbs01, rbs02)

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-15

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour mettre un segment d'annulation


"online"
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Rollback Segments.
4 Slectionnez le segment d'annulation.
5 Cliquez avec le bouton droit de la souris, puis slectionnez Place Online.

6 Dans la bote de dialogue, cliquez sur Yes.

.....................................................................................................................................................
10-16
Oracle DBA : Architecture et administration

Crer des segments d'annulation


.....................................................................................................................................................

Obtention des segments


d'annulation par les instances
Obtention de
segments
d'annulation
privs

Calcul du
nombre de
segments
d'annulation
ncessaire

Le nombre de
segments d'annulation
est-il suffisant ?

Oui

Non

Obtention
de segments
d'annulation
publics

Mise "online" de
tous les segments
d'annulation obtenus

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtention des segments d'annulation par les instances


Les tapes suivantes expliquent comment une instance obtient les segments
d'annulation lorsqu'elle ouvre une base de donnes :
1 L'instance obtient tous les segments d'annulation dfinis dans le paramtre
d'initialisation ROLLBACK_SEGMENTS.
2 La valeur du paramtre TRANSACTIONS init.ora est divise par celle du
paramtre TRANSACTIONS_PER_ROLLBACK_SEGMENT init.ora, et le
rsultat correspond au nombre de segments d'annulation ncessaires l'instance. Si
cette valeur est suprieure au nombre de segments d'annulation non SYSTEM que
l'instance a dj mis "online", l'instance obtient des segments d'annulation publics
supplmentaires pour ajuster le nombre. Si le nombre de segments d'annulation
publics est insuffisant, la base de donnes s'ouvre et est accessible aux utilisateurs.
Aucune erreur n'est gnre.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-17

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Grer les segments d'annulation


Changer les paramtres de
stockage des segments d'annulation

Utilisez la commande ALTER ROLLBACK


SEGMENT.

Changez la valeur OPTIMAL ou MAXEXTENTS.

ALTER ROLLBACK SEGMENT rbs01


STORAGE( MAXEXTENTS 200 );

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
Pour modifier les paramtres de stockage d'un segment d'annulation, utilisez la
commande ALTER ROLLBACK SEGMENT.
ALTER ROLLBACK SEGMENT rollback_segment
[STORAGE ( [NEXT
integer[K|M]]
[MINEXTENTS integer]
[MAXEXTENTS {integer|UNLIMITED}]
[OPTIMAL {integer[K|M]|NULL}]
)
]

Utilisez cette commande pour redfinir les paramtres OPTIMAL et MAXEXTENTS.

.....................................................................................................................................................
10-18
Oracle DBA : Architecture et administration

Grer les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour modifier les paramtres de


stockage
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Rollback Segments.
4 Slectionnez le segment d'annulation.
5 Slectionnez l'onglet Storage de la fentre de proprits, puis modifiez les
paramtres.

6 Cliquez sur Apply.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-19

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Librer de l'espace affect


aux segments d'annulation

Utilisez la commande ALTER ROLLBACK


SEGMENT.

Si les extents sont actifs, il se peut que la taille


des segments ne soit pas ramene la taille
demande.
ALTER
ALTER ROLLBACK
ROLLBACK SEGMENT
SEGMENT rbs01
rbs01
SHRINK
SHRINK TO
TO 4M;
4M;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Librer de l'espace affect aux segments d'annulation


Si vous avez dfini le paramtre OPTIMAL d'un segment d'annulation, le serveur
Oracle tente de dsallouer des extents pour librer tout l'espace suprieur la taille
optimale.
Librer manuellement de l'espace
Utilisez la commande suivante pour librer manuellement de l'espace affect un
segment d'annulation :
ALTER ROLLBACK SEGMENT rollback_segment
SHRINK [ TO integer [ K|M ]];

Cette commande tente de rduire la taille du segment d'annulation la taille dfinie,


mais s'arrte aussitt si un extent ne peut tre libr parce qu'il est actif.
Si integer n'est pas dfini, le serveur Oracle tente de librer les extents jusqu' ce que
la taille du segment d'annulation soit gale la valeur du paramtre OPTIMAL.
Si la valeur integer est suprieure la taille actuelle du segment d'annulation, cette
commande n'est pas prise en compte.

.....................................................................................................................................................
10-20
Oracle DBA : Architecture et administration

Grer les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour rduire la taille d'un segment


d'annulation
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Rollback Segments.
4 Slectionnez le segment d'annulation.
5 Cliquez avec le bouton droit de la souris, puis slectionnez Shrink.
6 Dans la bote de dialogue Shrink Rollback Segment, slectionnez Optimal Size
pour rduire le segment d'annulation sa taille optimale. Vous pouvez galement
slectionner Size et entrer la taille en kilo-octets ou en mgaoctets.

7 Cliquez sur OK.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-21

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Mettre un segment
d'annulation "offline"

Mettez un segment d'annulation "offline" pour


le rendre indisponible.

Si des transactions utilisent le segment


d'annulation, le statut PENDING OFFLINE
est temporairement utilis.
ALTER
ALTER ROLLBACK
ROLLBACK SEGMENT
SEGMENT rbs01
rbs01
OFFLINE;
OFFLINE;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Mettre un segment d'annulation "offline"


Mettez un segment d'annulation "offline" :
pour empcher de nouvelles transactions d'utiliser un segment d'annulation,
lorsque vous souhaitez supprimer le segment d'annulation.
Syntaxe
Utilisez la commande suivante pour mettre un segment d'annulation "offline" :
ALTER ROLLBACK SEGMENT rollback_segment OFFLINE;

Si des transactions utilisent le segment d'annulation lorsque vous excutez cette


instruction, le statut PENDING OFFLINE est affect au segment, comme l'indique la
vue dynamique des performances V$ROLLSTAT. Le segment est mis "offline" ds la
fin des transactions en cours.

.....................................................................................................................................................
10-22
Oracle DBA : Architecture et administration

Grer les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour rduire la taille d'un segment


d'annulation
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Rollback Segments.
4 Slectionnez le segment d'annulation.
5 Cliquez avec le bouton droit de la souris, puis slectionnez Take Offline.

6 Dans la bote de dialogue, cliquez sur Yes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-23

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Supprimer des segments d'annulation

Vous devez mettre un segment d'annulation "offline"


pour pouvoir le supprimer.

DROP ROLLBACK SEGMENT rbs01;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
Utilisez la commande suivante pour supprimer un segment d'annulation :
DROP ROLLBACK SEGMENT rollback_segment

Supprimez un segment d'annulation lorsqu'il est devenu inutile ou qu'il doit tre recr
avec des paramtres de stockage INITIAL, NEXT ou MINEXTENTS diffrents.
Pour pouvoir supprimer un segment d'annulation, vous devez le mettre "offline".

.....................................................................................................................................................
10-24
Oracle DBA : Architecture et administration

Grer les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour supprimer un segment


d'annulation
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Rollback Segments.
4 Slectionnez le segment d'annulation.
5 Cliquez avec le bouton droit de la souris, puis slectionnez Remove. L'option de
suppression n'est active que si le segment d'annulation est "offline".

6 Dans la bote de dialogue, cliquez sur Yes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-25

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Obtenir des informations sur les segments d'annulation


Segments d'annulation
dans la base de donnes
DBA_ROLLBACK_SEGS

Identification :
SEGMENT_ID
SEGMENT_NAME

Emplacement : TABLESPACE_NAME
Type : OWNER (PUBLIC ou SYS)
Statut : STATUS (ONLINE ou OFFLINE)

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur les segments d'annulation partir du


dictionnaire de donnes
Pour obtenir des informations sur les segments d'annulation de la base de donnes,
interrogez la vue DBA_ROLLBACK_SEGS.
SQL> SELECT segment_name, tablespace_name, owner, status
2 FROM dba_rollback_segs;
SEGMENT_NAME

TABLESPACE_NAME

OWNER

STATUS

-------------- ----------------- ------ --------------SYSTEM

SYSTEM

SYS

ONLINE

RBS1

RBS

SYS

ONLINE

RBS2

RBS

SYS

ONLINE

RBS3

RBS

SYS

ONLINE

4 rows selected.

Vous ne pouvez afficher les informations sur les segments d'annulation "offline" que
dans la vue DBA_ROLLBACK_SEGS. Les vues dynamiques des performances ne
contiennent que les segments d'annulation "online".
La colonne OWNER indique le type du segment d'annulation :
SYS fait rfrence un segment d'annulation priv.
PUBLIC fait rfrence un segment d'annulation public.

.....................................................................................................................................................
10-26
Oracle DBA : Architecture et administration

Obtenir des informations sur les segments d'annulation


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour supprimer un segment


d'annulation
1 Dmarrez Storage Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Storage Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Slectionnez le noeud Rollback Segments pour afficher le rcapitulatif de tous les
segments d'annulation de la base de donnes.

4 Dveloppez le dossier Rollback Segments.


5 Slectionnez le segment d'annulation pour afficher les informations sur les extents

ainsi que le type de segment d'annulation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-27

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Statistiques sur les


segments d'annulation

V$ROLLSTAT
V$ROLLSTAT
USN
USN
EXTENTS
EXTENTS
RSSIZE
RSSIZE
XACTS
XACTS
OPTSIZE
OPTSIZE
HWMSIZE
HWMSIZE
AVEACTIVE
AVEACTIVE
STATUS
STATUS
CUREXT
CUREXT
CURBLK
CURBLK

V$ROLLNAME
V$ROLLNAME
USN
USN
NAME
NAME

Copyright Oracle Corporation, 1999. Tous droits rservs.

Vues V$ROLLSTAT et V$ROLLNAME


Joignez les vues V$ROLLSTAT et V$ROLLNAME pour obtenir les statistiques sur
les segments d'annulation actuellement utiliss par l'instance.
Exemple
SQL> SELECT n.name, s.extents, s.rssize, s.optsize,
2

s.hwmsize, s.xacts, s.status

FROM v$rollname n, v$rollstat s

WHERE n.usn = s.usn;

NAME

EXTENTS

RSSIZE

OPTSIZE

HWMSIZE

XACTS

STATUS

------ ------- -------- -------- -------- ------ -------SYSTEM

43

2199552

RBS1

20

202752

RBS2

38912

204800

2199552

ONLINE

417792

ONLINE

38912

PENDING
OFFLINE

3 rows selected.

Remarque : vous pouvez obtenir la valeur du paramtre OPTIMAL dans la vue


V$ROLLSTAT uniquement.

.....................................................................................................................................................
10-28
Oracle DBA : Architecture et administration

Obtenir des informations sur les segments d'annulation


.....................................................................................................................................................

Vues V$ROLLSTAT et V$ROLLNAME (suite)


La vue V$ROLLSTAT contient les colonnes suivantes :
Colonne

Description

USN

Numro du segment d'annulation ; joignez la vue


V$ROLLNAME.USN pour obtenir le nom.

EXTENTS

Nombre d'extents dans le segment d'annulation.

RSSIZE

Taille actuelle du segment, exprime en octets.

XACTS

Nombre de transactions utilisant le segment.

OPTSIZE

Valeur du paramtre OPTIMAL du segment


d'annulation.

HWMSIZE

Repre high-water mark ; indique la taille


maximale en octets atteinte par le segment depuis
le dmarrage.

AVEACTIVE

Taille actuelle pondre des extents actifs.

STATUS

Statut du segment d'annulation :


ONLINE indique que le segment d'annulation
peut tre utilis.
PENDING OFFLINE indique que la
commande de mise lors ligne d'un segment
d'annulation a t excute et que des
transactions actives utilisent le segment. Le
segment d'annulation sera mis "offline" ds que
toutes les transactions qui utilisent ce segment
d'annulation seront termines.
OFFLINE indique que le segment d'annulation
ne peut pas tre utilis.

CUREXT

Emplacement actuel de l'en-tte du segment


d'annulation : numro d'extent et de bloc.

CURBLK

Remarque : lorsqu'un segment d'annulation attend d'tre mis hors ligne (PENDING
OFFLINE), son statut indique qu'il est en ligne (ONLINE) dans la vue
DBA_ROLLBACK_SEGS.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-29

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Segment d'annulation : activit en cours


V$SESSION
V$SESSION
SADDR
SADDR
USERNAME
USERNAME
SID
SID
SERIAL#
SERIAL#

V$TRANSACTION
V$TRANSACTION
SES_ADDR
SES_ADDR
XIDUSN
XIDUSN
UBAFIL
UBAFIL
UBABLK
UBABLK
UBASQN
UBASQN
UBAREC
UBAREC
STATUS
STATUS
USED_UBLK
USED_UBLK
USED_UREC
USED_UREC

Copyright Oracle Corporation, 1999. Tous droits rservs.

Vues V$SESSION et V$TRANSACTION


Pour vrifier l'utilisation d'un segment d'annulation par les transactions en cours,
joignez les vues V$TRANSACTION et V$SESSION.
Exemple
SQL>
2
3
4

SELECT s.username, t.xidusn, t.ubafil,


t.ubablk, t.used_ublk
FROM v$session s, v$transaction t
WHERE s.saddr = t.ses_addr;

USERNAME

XIDUSN

UBAFIL

UBABLK

USED_UBLK

----------- ----------

------

-------

----------

SYSTEM

SCOTT

163

2 rows selected.

.....................................................................................................................................................
10-30
Oracle DBA : Architecture et administration

Obtenir des informations sur les segments d'annulation


.....................................................................................................................................................

Vues V$TRANSACTION et V$SESSION (suite)


Voici les colonnes pertinentes de la vue V$TRANSACTION, ainsi que leur
description :
Colonne

Description

SES_ADDR

Adresse de la session : peut tre jointe la vue


V$SESSION.SADDR.

XIDUSN

Numro du segment d'annulation utilis par la


transaction ; utilis dans l'ID de la transaction.

UBAFIL

Indique l'emplacement actuel du


segment d'annulation dans lequel la transaction
crit les donnes.

UBABLK
UBASQN
UBAREC
USED_UBLK

Nombre de blocs d'annulation gnrs par la


transaction.

START_UEXT

Extent de segment d'annulation partir duquel la


transaction a commenc crire les donnes.

START_UBAFIL

Numro de fichier du segment d'annulation partir


duquel la transaction a commenc crire.

START_UBABLK

Numro de bloc du segment d'annulation partir


duquel la transaction a commenc crire.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-31

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Planifier les segments d'annulation


Planifier les segments
d'annulation : nombre

Environnement OLTP
grand nombre de petits segments
d'annulation,
quatre transactions par segment d'annulation,
jusqu' dix transactions par segment
d'annulation.

Environnement batch
quelques grands segments d'annulation,
un par transaction.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Nombre de segments d'annulation


L'en-tte de bloc d'un segment d'annulation contient les entres de la table des
transactions qui dfinissent l'tat de chaque transaction. Chaque transaction qui utilise
un segment d'annulation doit mettre jour frquemment la table des transactions.
Ceci peut provoquer la contention au niveau de l'en-tte, notamment dans les
environnements OLTP (Online Transaction Processing). Du fait qu'un environnement
OLTP utilise gnralement des transactions brves, il est recommand d'utiliser de
petits segments d'annulation dans ce type d'environnement. Si possible, crez un
segment d'annulation pour quatre transactions simultanes.
En gnral, les environnements batch excutent moins d'oprations que ncessaire
pour effectuer plusieurs modifications. Ces oprations exigent de grands segments
d'annulation. En consquence, dans un environnement batch, vous devez permettre
la taille des segments d'annulation d'augmenter en les crant dans de grands
tablespaces.

.....................................................................................................................................................
10-32
Oracle DBA : Architecture et administration

Planifier les segments d'annulation


.....................................................................................................................................................

Planifier les segments


d'annulation : nombre d'extents
0.50
0.40
Probabilit
d'extension

0.30
0.20
0.10
0.00
0

10

20

30

40

Nombre d'extents

Copyright Oracle Corporation, 1999. Tous droits rservs.

Taille d'un segment d'annulation


Le nombre d'octets ncessaires au stockage des informations permettant d'effectuer
une annulation dpend de deux lments :
le type de transaction excute (insertion, mise jour, suppression, etc.),
les donnes traites.
En rgle gnrale, l'insertion d'un enregistrement donn dans une table gnre moins
d'informations d'annulation que la suppression de ce mme enregistrement. S'il s'agit
d'une insertion, seul l'identificateur de ligne (ROWID) est enregistr, alors que pour
une suppression, la ligne entire est enregistre.
Vous pouvez valuer la taille du segment d'annulation en excutant la transaction la
plus longue possible et en vrifiant la taille du segment d'annulation ou la quantit
d'informations d'annulation gnre. Reportez-vous aux cours Oracle DBA :
Performance Tuning et Oracle8i : SQL Statement Tuning qui portent sur la
surveillance des statistiques.
Nombre d'extents
L'augmentation dynamique de la taille d'un segment d'annulation peut tre limite en
crant des segments d'annulation comportant un grand nombre d'extents. Pour limiter
la possibilit d'augmentation de la taille d'un segment d'annulation, crez des segments
d'annulation avec le paramtre MINEXTENTS=20.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-33

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Dpannage : problmes lis aux segments d'annulation


Problmes lis aux
segments d'annulation

Espace insuffisant pour les transactions


Erreur de cohrence en lecture
Session bloquante
Erreur lors de la mise "offline" du tablespace.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
10-34
Oracle DBA : Architecture et administration

Dpannage : problmes lis aux segments d'annulation


.....................................................................................................................................................

Espace insuffisant pour les transactions

Pas d'espace dans le tablespace :


tendez les fichiers de donnes,
activez l'augmentation automatique de la taille
des fichiers de donnes,
ajoutez des fichiers de donnes.

Limite MAXEXTENTS du segment atteinte :


augmentez la valeur MAXEXTENTS,
recrez les segments en utilisant une plus
grande taille d'extent.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Causes possibles
Une transaction utilise un seul segment d'annulation et peut chouer si le segment
d'annulation ne contient pas suffisamment d'espace (ORA-01562). Cette situation peut
avoir l'une des origines suivantes :
Le tablespace ne contient pas l'espace suffisant pour permettre la taille des
segments d'annulation d'augmenter (ORA-01560).
Le nombre d'extents dans le segment d'annulation dfini dans le paramtre
MAXEXTENTS a t atteint et des extents supplmentaires ne peuvent pas tre
ajouts (ORA-01628).
Solution
Si le tablespace n'a pas d'espace libre, augmentez l'espace disponible en :
dfinissant OPTIMAL pour viter qu'un seul segment d'annulation n'utilise tout
l'espace libre du tablespace,
en ramenant les segments d'annulation leur taille optimale,
en augmentant la taille du tablespace.
Si un segment d'annulation ne peut allouer plus d'extents, car la limite impose par le
paramtre MAXEXTENTS a t atteinte :
augmentez la valeur MAXEXTENTS du segment d'annulation,
supprimez et recrez le segment d'annulation en utilisant une plus grande taille
d'extent pour viter que le problme ne se reproduise.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-35

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Erreur de cohrence en lecture


SELECT *
FROM table

Table

Bloc rutilis

Nouvelle image
Image au dbut de l'instruction

Copyright Oracle Corporation, 1999. Tous droits rservs.

Causes possibles
Pour assurer la cohrence en lecture, le serveur Oracle empche l'instruction de voir
les modifications des autres utilisateurs non valides au dbut de son excution ou
effectues aprs le dbut de son excution. Si le serveur Oracle ne peut crer une
image des donnes cohrente en lecture, l'utilisateur reoit l'erreur ORA-01555
SNAPSHOT TOO OLD. Cette erreur se produit lorsque la transaction qui a effectu la
modification a dj valid les donnes et que :
l'espace de transaction de l'en-tte d'annulation a t rutilis,
l'image avant, dans le segment d'annulation, a t remplace par une autre
transaction.
Solution
Vous pouvez rduire les erreurs de cohrence en lecture en affectant aux segments :
une valeur MINEXTENTS plus leve,
une plus grande taille d'extents,
une valeur OPTIMAL plus leve.
Notez que vous ne pouvez pas viter ces erreurs en augmentant la valeur du paramtre
MAXEXTENTS.

.....................................................................................................................................................
10-36
Oracle DBA : Architecture et administration

Dpannage : problmes lis aux segments d'annulation


.....................................................................................................................................................

Session bloquante
Session
bloquante

Extent 3

3
4

Extent existant
Nouvel extent

Copyright Oracle Corporation, 1999. Tous droits rservs.

Causes possibles
Lorsqu'un extent d'un segment d'annulation est plein, le serveur Oracle tente de
rutiliser l'extent suivant du segment. Si ce dernier contient une entre en cours,
c'est--dire une entre gnre par une transaction qui est toujours active, il ne peut
tre utilis. Dans ce cas, un segment d'annulation alloue un extent supplmentaire.
La transaction ne peut pas ignorer un extent de l'anneau et poursuit les oprations
d'criture dans un extent suivant. Une transaction n'ayant effectu que quelques
modifications et qui est inactive depuis un long moment peut provoquer
l'augmentation de la taille des segments d'annulation, mme s'il existe un grand
nombre d'extents libres. Dans ce cas, un espace considrable est perdu et
l'administrateur de base de donnes peut intervenir pour empcher l'augmentation
excessive de la taille des segments d'annulation.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-37

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Solution
Interrogez les vues V$ROLLSTAT, V$SESSION et V$TRANSACTION pour
identifier les transactions bloquantes.
Exemple
SQL>
2
3
4
5
6

SELECT s.sid, s.serial#, t.start_time, t.xidusn, s.username


FROM v$session s, v$transaction t, v$rollstat r
WHERE s.saddr = t.ses_addr
AND t.xidusn = r.usn
AND ((r.curext = t.start_uext-1) OR
((r.curext = r.extents-1) AND t.start_uext=0));

SID

SERIAL#

START_TIME

XIDUSN

USERNAME

---

-------

----------------- ------

--------

27

10/30/97 21:10:41

SYSTEM

1 row selected.

Dterminez si l'utilisateur peut arrter la transaction. S'il ne le peut pas, vous devrez
peut-tre fermer la session.

.....................................................................................................................................................
10-38
Oracle DBA : Architecture et administration

Dpannage : problmes lis aux segments d'annulation


.....................................................................................................................................................

Erreur lors de la mise


"offline" d'un tablespace
Impossible de mettre "offline" un tablespace
contenant des segments d'annulation actifs :
1. Identifiez les segments d'annulation du tablespace.
2. Mettez tous ces segments d'annulation "offline".
3. Recherchez les transactions actives qui utilisent
ces segments d'annulation.
4. Recherchez l'ID de session et le numro de srie.
5. Interrompez la session, si ncessaire.
6. Mettez le tablespace "offline".

Copyright Oracle Corporation, 1999. Tous droits rservs.

Identification et rsolution des problmes


Si un tablespace contient un ou plusieurs segments d'annulation actifs, vous ne pouvez
pas le mettre "offline". La session qui excute l'instruction reoit le message d'erreur
ORA-01546.
Solution
Procdez comme suit :
1 Interrogez la vue DBA_ROLLBACK_SEGS pour identifier les segments
d'annulation du tablespace.
2 Mettez "offline" tous les segments d'annulation du tablespace.
3 Dans la vue V$TRANSACTION, recherchez les transactions qui utilisent ces
segments d'annulation.
4 Utilisez la vue V$SESSION pour obtenir les informations relatives l'utilisateur et
la session.
5 Fermez la session ou demandez l'utilisateur d'arrter la transaction.
6 Mettez le tablespace "offline".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-39

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

expliquer l'utilisation des segments d'annulation :


annulations,
cohrence en lecture,
rcupration.

crer les segments d'annulation appropris,


rsoudre les problmes lis aux segments
d'annulation.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
10-40
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation

Rfrence
ROLLBACK_SEGMENTS
TRANSACTIONS
TRANSACTIONS_PER_ROLLBACK_SEGMENTS
MAX_ROLLBACK_SEGMENTS
Vues dynamiques des performances V$ROLLNAME
V$ROLLSTAT
V$TRANSACTION
V$SESSION
Vues du dictionnaire de donnes
DBA_ROLLBACK_SEGS
Commandes
CREATE ROLLBACK SEGMENT
ALTER ROLLBACK SEGMENT ... ONLINE
ALTER ROLLBACK SEGMENT ... STORAGE
ALTER ROLLBACK SEGMENT ... SHRINK
ALTER ROLLBACK SEGMENT ... OFFLINE
DROP ROLLBACK SEGMENT
SET TRANSACTION USE ROLLBACK SEGMENT

.....................................................................................................................................................
Oracle DBA : Architecture et administration
10-41

Chapitre 10 : Grer les segments d'annulation


.....................................................................................................................................................

.....................................................................................................................................................
10-42
Oracle DBA : Architecture et administration

11
.................................

Grer les tables

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

crer des tables en utilisant les paramtres de


stockage appropris,

grer l'espace utilis par les tables,

extraire des informations sur les tables du


dictionnaire de donnes,

convertir un identificateur ROWID dans le format


d'un autre identificateur ROWID.

analyser les tables pour vrifier l'intgrit et la


migration,

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
11-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Stocker les donnes utilisateur

Table normale

Table organise
en index

Table
partitionne

Cluster

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser diffrentes mthodes de stockage des donnes utilisateur


Dans une base de donnes Oracle, vous pouvez stocker les donnes utilisateur
de diffrentes manires. Les donnes peuvent tre stockes dans l'une des tables
suivantes :
tables normales,
tables partitionnes,
tables organises en index,
tables incluses dans un cluster.
Remarque : les tables partitionnes, les tables organises en index et les tables
incluses dans un cluster sont traites dans d'autres cours.
Tables normales
Une table normale (appele en gnral "table") est l'lment le plus communment
utilis pour stocker les donnes utilisateur. Il s'agit du type de table par dfaut qui
constitue le sujet principal de chapitre. Les prrogatives de l'administrateur sur la
distribution des lignes d'une table incluse dans un cluster sont trs limites. Les
lignes peuvent tre stockes dans n'importe quel ordre selon l'activit de la table.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-3

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Table partitionne
Une table partitionne permet de crer des applications volutives. Elle prsente
les caractristiques suivantes :
Une table partitionne contient une ou plusieurs partitions qui stockent chacune
les lignes partitionnes l'aide du partitionnement par plage, par hachage ou
composite.
Chaque partition d'une table partitionne constitue un segment qui peut se trouver
dans un tablespace diffrent.
Les partitions trouvent une utilit particulire pour les tables volumineuses qui
peuvent tre interroges ou manipules par plusieurs processus simultans.
Des commandes spciales permettent de grer les partitions d'une table.
Tables organises en index
Une table organise en index est une table normale contenant un index de cl primaire
dans une ou plusieurs de ses colonnes. Toutefois, au lieu de grer deux espaces de
stockage distincts pour la table et un index B-Tree, une table organise en index ne
gre qu'un seul B-Tree contenant la cl primaire de la table et d'autres valeurs de
colonnes.
Les tables organises en index acclrent l'accs par cl aux donnes des tables
dans les interrogations impliquant des recherches de correspondance exacte ou
des recherches sur des plages de donnes.
En outre, les besoins en stockage sont moindres dans la mesure o les colonnes
de cl ne sont pas dupliques dans la table, ni dans l'index. Les colonnes restantes
ne contenant pas de cl sont stockes dans l'index si la taille de l'entre d'index
n'augmente pas considrablement. Si tel n'est pas le cas, le serveur Oracle fournit
la clause OVERFLOW qui permet de rsoudre le problme.
Table incluse dans un cluster
Une table incluse dans un cluster permet galement de stocker les donnes dans des
tables. Un cluster est constitu de plusieurs tables qui partagent les mmes blocs de
donnes, regroups du fait qu'ils partagent des colonnes et souvent utiliss
conjointement.
Un cluster prsente les caractristiques suivantes :
Il dispose d'une cl de cluster qui permet d'identifier les lignes devant tre
enregistres ensemble.
La cl de cluster peut tre constitue d'une ou de plusieurs colonnes.
Les tables d'un cluster contiennent des colonnes correspondant la cl de cluster.
La cration de cluster est un mcanisme qui est transparent aux applications qui
utilisent les tables. Les donnes d'une table incluse dans un cluster peuvent tre
manipules de la mme manire que celles d'une table normale.

.....................................................................................................................................................
11-4
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Table incluse dans un cluster (suite)


La mise jour de l'une des colonnes de la cl de cluster peut provoquer
le dplacement physique de la ligne.
La cl de cluster est indpendante de la cl primaire. Les tables d'un cluster
peuvent avoir une cl primaire qui peut correspondre la cl de cluster ou
un ensemble de colonnes diffrent.
Les clusters sont gnralement utiliss pour amliorer les performances. L'accs
direct aux donnes d'un cluster peut tre plus rapide, mais le balayage complet de
tables est gnralement plus long.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-5

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Structure d'une ligne

En-tte de ligne
Bloc de base de
donnes

Longueur de colonne
Valeur de colonne

Copyright Oracle Corporation, 1999. Tous droits rservs.

Format et longueur de ligne


Les donnes des lignes sont stockes dans des blocs de base de donnes sous forme
d'enregistrements de longueur variable. Les colonnes d'une ligne sont gnralement
enregistres selon l'ordre dans lequel elles sont dfinies, et toutes les colonnes de fin
NULL ne sont pas enregistres. Chaque ligne d'une table peut comporter un nombre de
colonnes diffrent. Chaque ligne d'une table a :
un en-tte : cet en-tte permet de stocker le nombre de colonnes de la ligne,
les informations de chanage et le statut de verrouillage de la ligne,
des donnes de ligne : le serveur Oracle stocke la longueur et la valeur de chaque
colonne (un octet est ncessaire pour enregistrer la longueur de colonne si celle-ci
ne peut dpasser 250 octets. Une colonne plus longue ncessite 3 octets. La valeur
de la colonne est stocke immdiatement aprs les octets de longueur de colonne).
Aucun espace n'est ncessaire entre les lignes adjacentes. Chaque ligne du bloc est
associe un pointeur dans le rpertoire des lignes. Le pointeur pointe vers le dbut
de la ligne.

.....................................................................................................................................................
11-6
Oracle DBA : Architecture et administration

Types de donnes Oracle


.....................................................................................................................................................

Types de donnes Oracle


Types de donnes Oracle
Type de donnes
Dfini par l'utilisateur
Scalaire
CHAR(N), NCHAR(N)
VARCHAR2(N),
NVARCHAR2(N)
NUMBER(P,S)
DATE
RAW(N)
BLOB, CLOB,
NCLOB, BFILE
LONG, LONG RAW
ROWID, UROWID

Interne
Ensemble
VARRAY

Relation
REF

TABLE

Copyright Oracle Corporation, 1999. Tous droits rservs.

Types de donnes internes Oracle


Le serveur Oracle fournit plusieurs types de donnes internes pour stocker les donnes
scalaires, les ensembles et les relations.
Types de donnes scalaires
Donnes de type caractre Les donnes de type caractre sont stockes sous forme
de chanes de longueur fixe ou de longueur variable dans la base de donnes.
Les donnes de longueur fixe de type caractre, tel que CHAR et NCHAR,
sont stockes avec des espaces. NCHAR est un type de donnes NLS (National
Language-Supported) qui permet de stocker des jeux de caractres de longueur fixe
ou de longueur variable. La taille maximale est dtermine par le nombre d'octets
ncessaires au stockage d'un caractre, avec une limite maximale de 2 000 octets par
ligne. La valeur par dfaut est de 1 caractre, soit 1 octet, selon le jeu de caractres.
Les donnes de longueur variable de type caractre utilisent uniquement le nombre
d'octets ncessaires au stockage de la valeur de colonne relle et leur taille peut varier
pour chaque ligne et tre gale 4 000 octets au maximum. Les donnes de type
VARCHAR2 et NVARCHAR2, par exemple, sont des donnes de type caractre
de longueur variable.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-7

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Types de donnes scalaires (suite)


Donnes numriques Dans les bases de donnes Oracle, les nombres sont toujours
stocks sous forme de donnes de longueur variable. Ils peuvent comporter jusqu'
38 chiffres significatifs. Les donnes numriques ncessitent :
un octet pour l'exposant,
un octet tous les deux chiffres significatifs dans la mantisse,
un octet pour les nombres ngatifs si le nombre de chiffres significatifs
est infrieur 38 octets.
Donnes de type DATE Le serveur Oracle enregistre les dates dans des champs
de longueur fixe de sept octets. Une date Oracle contient toujours l'heure.
Donnes de type DATE Ce type de donnes permet de stocker de petites donnes
binaires. Le serveur Oracle ne convertit pas le jeu de caractres lorsque des donnes
de type RAW sont transmises entre les machines d'un rseau ou lorsqu'elles sont
transfres d'une base de donnes vers une autre l'aide d'utilitaires Oracle. Le
nombre d'octets ncessaires au stockage de la valeur de colonne relle varie pour
chaque ligne et peut tre gal 2 000 octets au maximum.

.....................................................................................................................................................
11-8
Oracle DBA : Architecture et administration

Types de donnes Oracle


.....................................................................................................................................................

Types de donnes de stockage


des objets LOB
LONG, LONG RAW

LOB

Une colonne par table

Plusieurs colonnes par table

Jusqu' 2 gigaoctets

Jusqu' 4 gigaoctets

SELECT renvoie les donnes

SELECT renvoie un pointeur

Donnes stockes dans le


segment

Donnes stockes dans le


segment ou hors du segment

Pas de prise en charge de


type d'objet

Prise en charge des


types d'objet

Accs squentiel aux


segments de donnes

Accs direct aux segments


de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Types de donnes scalaires de stockage des objets LOB


Oracle fournit six types de donnes pour stocker les objets LOB :
CLOB et LONG pour les grands caractres de longueur fixe,
NCLOB pour les jeux de grands caractres nationaux de longueur fixe,
BLOB et LONG RAW pour stocker les donnes non structures,
BFILE pour stocker les donnes non structures dans des fichiers de
systme d'exploitation.
Les types de donnes LONG et LONG RAW taient utiliss auparavant pour
les donnes non structures, telles que les images binaires, les documents ou les
informations gographiques, et sont principalement fournis des fins de compatibilit
descendante. Ces types de donnes sont remplacs par les types de donnes LOB. Les
donnes de type LOB sont diffrentes des donnes de type LONG et LONG RAW et
ne sont pas interchangeables. Les donnes de type LOB ne prennent pas en charge
l'interface API LONG (Application Programming Interface), et vice versa.
Comparer les donnes de type LONG et LOB
La comparaison entre la fonctionnalit LOB et les anciens types de donnes peut
s'avrer utile. Ci-dessous, LONG fait rfrence LONG et LONG RAW, et LOB
toutes les donnes de type LOB.
Les donnes de type LOB permettent d'utiliser plusieurs colonnes LOB par table ou
plusieurs attributs dans un type d'objet, alors que le type LONG n'en accepte qu'une
seule ou qu'un seul.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-9

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Comparer les donnes de types LONG et LOB (suite)


La taille maximale des donnes de type LONG est de 2 gigaoctets alors que celle
des donnes de type LOB peut tre gale 4 gigaoctets maximum.
Lors de leur extraction, les types de donnes LOB renvoient le pointeur alors que
les types de donnes LONG renvoient les donnes.
Les types de donnes LOB stockent un pointeur dans la table et les donnes dans un
autre emplacement, sauf si la taille des donnes de type VARCHAR2 est infrieure
la taille maximale de 4 000 octets. Les types de donnes LONG stockent toutes les
donnes dans le segment. En outre, les types de donnes LOB permettent de stocker
les donnes dans un segment et un tablespace distincts ou dans un fichier hte.
Les donnes de type LOB prennent en charge les attributs de type d'objet (sauf le type
de donnes NCLOB), contrairement aux donnes de type LONG.
Les donnes de type LONG sont stockes sous forme de morceaux de lignes chans,
un morceau de ligne d'un bloc pointant vers le morceau de ligne suivant d'un autre
bloc. En consquence, l'accs aux segments s'effectue squentiellement. En revanche,
les donnes de type LOB permettent d'accder directement aux segments de donnes
via une interface de type fichier.

.....................................................................................................................................................
11-10
Oracle DBA : Architecture et administration

Types de donnes Oracle


.....................................................................................................................................................

Type de donnes ROWID

Identificateur de ligne unique.


Utilis pour rechercher une ligne.

Format ROWID
OOOOOO

FFF

BBBBBB

RRR

Numro d'objet
de donnes

Numro de
fichier relatif

Numro
de bloc

Numro
de ligne

Copyright Oracle Corporation, 1999. Tous droits rservs.

Type de donnes ROWID et UROWID


ROWID est une pseudo-colonne qui peut tre interroge en mme temps que les autres
colonnes d'une table. Ce type de donnes prsente les caractristiques suivantes :
Il identifie de manire unique chaque ligne dans une base de donnes.
Il n'est pas enregistr explicitement sous la forme d'une valeur de colonne.
Bien que le type ROWID ne fournisse pas directement l'adresse physique d'une
ligne, il permet de rechercher la ligne.
Il constitue la mthode la plus rapide pour accder une ligne d'une table.
Les donnes de type ROWID sont stockes dans des index dfinissant des lignes
ayant des valeurs de cl spcifiques.
La version 8.1 du serveur Oracle fournit un nouveau type de donnes unique appel
"universale rowid" ou UROWID. Il prend en charge les donnes de type ROWID des
tables trangres (tables non Oracle) et peut stocker n'importe quelle donne de ce
type. Pour pouvoir utiliser le type de donnes UROWID, vous devez affecter la valeur
8.1 ou suprieure au paramtre COMPATIBLE.
Format des donnes de type ROWID
Les donnes de type ROWID ncessitent 10 octets de stockage sur disque et
s'affichent sur 18 caractres. Ces donnes sont constitues des lments suivants :
numro d'objet de donnes : affect chaque objet de donnes cr, tel qu'une
table ou un index, et unique dans la base de donnes,
numro de fichier relatif : unique pour chaque fichier d'un tablespace,

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-11

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Format des donnes de type ROWID (suite)


numro de bloc : indique l'emplacement du bloc contenant la ligne dans le fichier,
numro de ligne : indique la position du pointeur du rpertoire des lignes dans l'entte de bloc.
En interne, le numro d'objet de donnes ncessite 32 bits, le numro de fichier relatif,
10 bits, le numro de bloc, 22 bits, et le numro de ligne, 16 bits, soit un total de 80
bits, ou 10 octets.
Les donnes de type ROWID s'affichent en utilisant un schma d'encodage en base
64 qui utilise six positions pour le numro d'objet, trois positions pour le numro de
fichier relatif, six positions pour le numro de bloc et trois positions pour le numro de
ligne. Ce schma utilise les caractres "A-Z", "a-z", "0-9", "+" et "/", soit un total de
64 caractres, comme dans l'exemple ci-dessous :
SQL> SELECT id, ROWID FROM summit.department;
ID ROWID
--------- -----------------10 AAADC4AACAAAAMAAAA
31 AAADC4AACAAAAMAAAB
32 AAADC4AACAAAAMAAAC
33 AAADC4AACAAAAMAAAD
34 AAADC4AACAAAAMAAAE
35 AAADC4AACAAAAMAAAF
41 AAADC4AACAAAAMAAAG
42 AAADC4AACAAAAMAAAH
43 AAADC4AACAAAAMAAAI
44 AAADC4AACAAAAMAAAJ
45 AAADC4AACAAAAMAAAK
50 AAADC4AACAAAAMAAAL

Dans cet exemple :


AAADC4 correspond au numro d'objet de donnes.
AAC reprsente le numro de fichier relatif.
AAAAMA indique le numro de bloc.
AAA dfinit le numro de ligne du dpartement dont l'ID=10.

.....................................................................................................................................................
11-12
Oracle DBA : Architecture et administration

Types de donnes Oracle


.....................................................................................................................................................

Rechercher une ligne l'aide du type de donnes ROWID


Etant donn qu'un segment ne peut rsider que dans un seul tablespace, le serveur
Oracle peut identifier le tablespace contenant la ligne en utilisant le numro d'objet
de donnes.
Le numro de fichier relatif figurant dans le tablespace identifie le fichier, le numro
de bloc identifie le bloc contenant la ligne, et le numro de ligne identifie la ligne dans
le rpertoire des lignes.
L'entre du rpertoire des lignes peut permettre de rechercher le dbut de la ligne.
Ainsi, le type de donnes ROWID permet de rechercher n'importe quelle ligne dans
une base de donnes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-13

Chapitre 11 : Grer les tables


.....................................................................................................................................................

ROWID restreint

Peut identifier les lignes d'un segment.


Ncessite moins d'espace.

BBBBBBBB
Numro
de bloc

RRRR
Numro
de ligne

FFFF
Numro
de fichier

Copyright Oracle Corporation, 1999. Tous droits rservs.

Utiliser un ROWID restreint dans Oracle7 et les versions antrieures


Les versions antrieures du serveur Oracle8 utilisaient le format ROWID restreint.
Un ROWID restreint utilisait seulement six octets en interne et ne contenait pas de
numro d'objet de donnes. Ce format tait acceptable dans Oracle7 ou les versions
antrieures, car les numros de fichier taient uniques dans une base de donnes.
Ainsi, les versions prcdentes taient limites 1 022 fichiers de donnes.
Bien qu'Oracle8 ait supprim cette limitation en utilisant des numros de fichier
relatifs des tablespaces, un ROWID restreint est toujours utilis dans des objets,
tels que les index non partitionns ou les tables non partitionnes, dans lesquels
toutes les entres d'index font rfrence aux lignes d'un mme segment.

.....................................................................................................................................................
11-14
Oracle DBA : Architecture et administration

Types de donnes Oracle


.....................................................................................................................................................

Ensembles

Les ensembles sont des objets qui contiennent


des objets.

Les tableaux VARRAY sont des lments


ordonns contenant un nombre et une limite.

Les tables imbriques sont des tables contenant


une colonne ou une variante du type de donnes
TABLE.

Tableau
VARRAY

Table
imbrique

Copyright Oracle Corporation, 1999. Tous droits rservs.

Types de donnes Ensemble


Deux types de donnes Ensemble permettent de stocker les donnes rptitives d'une
ligne d'une table. Dans les versions antrieures du serveur Oracle8i, l'option Objects
tait ncessaire pour dfinir et utiliser les ensembles. Ces deux types de donnes sont
dcrits brivement ci-dessous.
Tableaux de taille variable (VARRAY) Ces tableaux permettent de stocker
des listes contenant un petit nombre d'lments, tels que des numros de tlphone
de clients.
Les tableaux VARRAY prsentent les caractristiques suivantes :
Un tableau contient des donnes ordonnes.
Les donnes d'un tableau ont tous le mme type.
Chaque lment comporte un index qui correspond un numro indiquant
la position de l'lment dans le tableau.
Le nombre d'lments d'un tableau correspond la taille du tableau.
Le serveur Oracle permet d'utiliser des tableaux de taille variable, et c'est la raison
pour laquelle ils s'appellent VARRAY, mais la taille maximale du tableau doit tre
dfinie lors de sa dclaration.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-15

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Types de donnes Ensemble (suite)


Tables imbriques Les tables imbriques permettent de dfinir une table sous forme
de colonne dans une table. Ces tables peuvent tre utilises pour stocker des ensembles
pouvant contenir un grand nombre d'enregistrements, tels que le nombre d'articles
d'une commande.
Gnralement, les tables imbriques prsentent les caractristiques suivantes :
Une table imbrique est un ensemble non ordonn d'enregistrements ou de lignes.
Les lignes d'une table imbrique prsentent la mme structure.
Les lignes d'une table imbrique sont stockes dans une table distincte de la table
mre, avec un pointeur vers la ligne correspondante dans la table mre.
Les caractristiques de stockage d'une table imbrique peuvent tre dfinies
par l'administrateur de base de donnes.
Il n'existe pas de taille maximale prdfinie pour une table imbrique.
Types de donnes Relation (REF)
Les types de donnes Relation servent de pointeurs dans la base de donnes.
L'utilisation de ces types de donnes fait appel l'option Objects. Par exemple,
chaque lment ordonn peut pointer vers une ligne de la table PRODUCTS ou
y faire rfrence sans avoir stocker la rfrence du produit.
Types de donnes dfinis par l'utilisateur
Le serveur Oracle permet l'utilisateur de dfinir des types de donnes abstraits et
de les utiliser dans l'application. L'utilisation de ces types de donnes fait appel
l'option Objects.

.....................................................................................................................................................
11-16
Oracle DBA : Architecture et administration

Crer une table


.....................................................................................................................................................

Crer une table


Crer une table
CREATE TABLE employee(
id
NUMBER(7),
last_name VARCHAR2(25),
dept_id
NUMBER(7))
PCTFREE 20 PCTUSED 50
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0
MAXEXTENTS 50)
TABLESPACE data;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
Utilisez la commande suivante pour crer une table :
CREATE TABLE [schema.] table
(column datatype [ , column datatype ] ...)
[TABLESPACE tablespace ]
[ PCTFREE integer ]
[ PCTUSED integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ STORAGE storage-clause ]
[LOGGING | NOLOGGING]
[CACHE | NOCACHE] ]

o :

schema
table
column
data type

est le propritaire de la table,


est le nom de la table,
est le nom de la colonne,
est le type de donnes de la colonne,

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-17

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Syntaxe (suite)
TABLESPACE
PCTFREE

PCTUSED

INITRANS

MAXTRANS

STORAGE

LOGGING

NOLOGGING

CACHE

NOCACHE

indique le tablespace de destination de


la table crer,
correspond l'espace rserv dans chaque
bloc (sous la forme d'un pourcentage de
l'espace total moins l'en-tte de bloc)
l'augmentation de la longueur des lignes,
dfinit la limite infrieure de l'espace utilis
dans un bloc (aprs utilisation de l'espace
dfini par le paramtre PCTFREE) partir
de laquelle d'autres lignes peuvent tre
insres,
dfinit le nombre d'entres de transaction
pralloues dans chaque bloc (la valeur par
dfaut est 1),
limite le nombre d'entres de transaction
pouvant tre alloues chaque bloc
(la valeur par dfaut est 255),
identifie la clause de stockage qui
dtermine l'allocation des extents
(ensemble de blocs contigus) la table,
indique que la cration de la table sera
consigne dans le fichier de journalisation
(redo log), (indique galement que toutes
les oprations suivantes effectues sur la
table sont enregistres ; il s'agit de la valeur
par dfaut),
indique que la cration de la table et de
certains types de chargement de donnes
ne sera pas consigne dans le fichier de
journalisation,
indique que les blocs extraits pour cette
table sont placs l'extrmit la plus
rcemment utilise de la liste LRU du cache
de tampons (buffer cache), mme lorsque
la table est balaye en totalit,
indique que les blocs extraits de cette table
sont placs la fin de la liste LRU du cache
des tampons, lorsque la table est balaye en
totalit.

.....................................................................................................................................................
11-18
Oracle DBA : Architecture et administration

Crer une table


.....................................................................................................................................................

Syntaxe (suite)
Remarque :
En gnral, les tables doivent tre cres avec une cl primaire. La gestion
des contraintes est dcrite dans le chapitre "Grer l'intgrit des donnes".
Si vous avez dfini le paramtre MINIMUM EXTENT du tablespace, la taille
des extents de la table est arrondie au multiple suivant le plus proche.
Si vous omettez la clause [NO]LOGGING, l'attribut de journalisation de la table
correspond par dfaut celui du tablespace dans lequel elle rside.
Si vous affectez au paramtre MINEXTENTS une valeur suprieure 1 et que
le tablespace contient plusieurs fichiers de donnes, les extents sont rpartis
dans les diffrents fichiers du tablespace.
Copier une table existante
Utilisez la commande CREATE TABLE avec une sous-interrogation pour copier une
table en totalit ou partiellement.
La syntaxe simplifie est :
CREATE TABLE [schema.]table
[ LOGGING | NOLOGGING ]
...
AS
subquery

Les autres clauses, telles que TABLESPACE, STORAGE et les paramtres


d'utilisation des blocs peuvent tre dfinis lors de la cration d'une table partir d'une
autre table. Utilisez la clause NOLOGGING pour interdire la gnration d'entres de
journalisation (redo log entries) et acclrer la cration de la table.
Lorsque vous crez une table en copiant une table, les contraintes, les dclencheurs
et les privilges de table ne sont pas copis. Si la table d'origine contient une colonne
NOT NULL, cette colonne existe galement dans la nouvelle table.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-19

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Utiliser Schema Manager pour crer une table


11-1
1 Dmarrez Schema Manager :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Schema Manager
2 Slectionnez l'option permettant de vous connecter directement une base de
donnes. Entrez l'administrateur system, le mot de passe manager, le nom de
service your working database, puis cliquez sur OK.

3 Slectionnez Object>Create dans la barre de menus.


4 Slectionnez Table dans la liste des objets, slectionnez l'option Use Wizard,

puis cliquez sur Create.


5 Entrez les informations relatives la table dans l'assistant Table Wizard, telles
que le nom, le tablespace, le propritaire, les colonnes, les types de donnes et
les tailles. Cliquez sur Finish.
6 Dveloppez le dossier Tables pour vrifier si la table a t cre.
Vous pouvez galement slectionner une table existante dans le navigateur et utiliser
Object>Create Like pour crer une table ayant les mmes caractristiques de
colonne et de stockage que la table slectionne.
Autres options Oracle Schema Manager permet galement de dfinir
automatiquement les paramtres de stockage et d'utilisation des blocs partir
d'une estimation du volume initial, de la frquence d'augmentation de la taille
de la table et de son activit DML.

.....................................................................................................................................................
11-20
Oracle DBA : Architecture et administration

Crer une table


.....................................................................................................................................................

Tables temporaires

Les lignes sont rserves la session.


CREATE
CREATE GLOBAL
GLOBAL TEMPORARY
TEMPORARY TABLE
TABLE employee_temp
employee_temp
AS
AS SELECT
SELECT ** FROM
FROM employee;
employee;

Les tables contiennent les donnes uniquement


pendant la dure de la transaction ou de la
session.
ON
ON COMMIT
COMMIT PRESERVE
PRESERVE ROWS;
ROWS;

Les verrous LMD ne sont pas placs sur les


donnes.

Les LMD ne gnrent pas d'informations de


journalisation.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Tables temporaires
Outre les tables permanentes, vous pouvez crer des tables temporaires qui
contiennent les donnes prives des sessions qui n'existent que le temps d'une
transaction ou d'une session.
La commande CREATE GLOBAL TEMPORARY TABLE permet de crer une
table temporaire spcifique une transaction ou une session. Les donnes d'une
table temporaire de transaction et celles d'une table temporaire de session existent
respectivement pendant la dure de la transaction et pendant la dure de la session.
Les donnes d'une session sont prives. Chaque session ne peut voir et modifier que
ses propres donnes. Aucun verrou DML n'est plac sur les donnes d'une table
temporaire. Les clauses qui contrlent la dure de stockage des lignes sont :
ON COMMIT DELETE ROWS : indique que les lignes sont uniquement visibles
dans la transaction,
ON COMMIT PRESERVE ROWS : indique que les lignes sont visibles pour toute
la session.
Vous pouvez crer des index, des vues et des dclencheurs dans les tables temporaires
et utiliser galement les utilitaires Export et Import pour exporter et importer la
dfinition d'une table temporaire. Toutefois, aucune donne n'est exporte, mme
si vous utilisez l'option ROWS. La dfinition d'une table temporaire est visible dans
toutes les sessions.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-21

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Crer une table : instructions

Utilisez quelques tailles d'extent standard pour les


tables afin de rduire la fragmentation des
tablespaces.

Utilisez des tablespaces grs localement pour


viter la fragmentation.

Utilisez la clause CACHE pour les petites tables


frquemment utilises.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Instructions de cration d'une table


Placez les tables dans des tablespaces distincts et non dans des tablespaces
contenant des segments d'annulation, des segments temporaires et des index.
Placez les tables dans des tablespaces grs localement pour viter la
fragmentation.
Utilisez quelques tailles d'extent standard multiples de 5 DB_BLOCK_SIZE
afin de limiter la fragmentation.
Pour amliorer les performances du balayage complet de tables, alignez les tailles
d'extent l'aide du paramtre d'initialisation
DB_FILE_MULTIBLOCK_READ_COUNT qui dfinit le nombre de blocs
demands par les processus serveur dans chaque appel de lecture du systme
d'exploitation lors de la lecture de l'ensemble de la table.
Utilisez la clause CACHE pour les petites tables de rfrence pouvant tre
frquemment utilises.

.....................................................................................................................................................
11-22
Oracle DBA : Architecture et administration

Crer une table


.....................................................................................................................................................

Paramtres PCTFREE et PCTUSED

Calcul de PCTFREE
(Taille de ligne moyenne - taille de ligne initiale) * 100
Taille de ligne moyenne

Calcul de PCTUSED
Taille de ligne moyenne * 100
100 - PCTFREE Espace de donnes disponible

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dfinir le paramtre PCTFREE


Plus la valeur du paramtre PCTFREE est leve, plus l'espace disponible pour la mise
jour d'un bloc d'une base de donnes est lev. Dfinissez une valeur leve lorsque
la table contient :
des colonnes initialement NULL, puis mises jour l'aide d'une valeur,
des colonnes dont la taille risque d'augmenter la suite d'une mise jour.
En affectant une valeur plus leve au paramtre PCTFREE, vous rduisez la
densit de bloc, c'est--dire que chaque bloc contiendra moins de lignes.
La formule dfinie ci-dessus permet au bloc de disposer d'un espace suffisant
permettant la taille de la ligne d'augmenter.
Dfinir le paramtre PCTUSED
Dfinissez le paramtre PCTUSED pour permettre de renvoyer le bloc dans la liste
d'espaces libres uniquement lorsqu'il existe un espace suffisant pour accepter une ligne
moyenne. Si un bloc de la liste des espaces libres ne dispose pas de l'espace suffisant
pour insrer une ligne, le serveur Oracle consulte le bloc suivant de la liste. Ce
balayage linaire continue jusqu' ce qu'un bloc disposant de l'espace suffisant soit
trouv ou que la fin de la liste soit atteinte. Cette formule permet de rduire le temps de
balayage de la liste d'espaces libres en augmentant la probabilit de trouver un bloc
ayant l'espace libre ncessaire.
Remarque : la longueur de ligne moyenne peut tre value l'aide de la commande
ANALYZE TABLE, qui est explique dans l'une des sections ci-aprs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-23

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Migrer et chaner des lignes

Avant la mise
jour

Aprs la mise
jour

Pointeur

Copyright Oracle Corporation, 1999. Tous droits rservs.

Migrer des lignes


Si vous affectez une valeur faible au paramtre PCTFREE, le bloc risque de ne pas
contenir l'espace suffisant permettant la longueur de la ligne d'augmenter la suite
d'une mise jour. Dans ce cas, le serveur Oracle transfre la totalit de la ligne vers un
nouveau bloc et conserve le pointeur du bloc d'origine vers le nouveau bloc. Cette
opration s'appelle une migration de ligne. Lors de la migration d'une ligne, les
performances des E/S sur la ligne diminuent, car le serveur Oracle doit balayer
deux blocs de donnes pour extraire la ligne.
Chaner des lignes
Un chanage de ligne se produit lorsqu'une ligne ne peut pas tenir dans un bloc. Cette
situation peut se produire lorsque la ligne contient des colonnes de trs grande taille.
Dans ce cas, le serveur Oracle divise la ligne en morceaux de ligne plus petits. Chaque
morceau de ligne est stock dans un bloc avec les pointeurs associs pour extraire et
assembler la totalit de la ligne. Le chanage de lignes peut tre limit en dfinissant
une plus grande taille de bloc ou en divisant, si possible, la table en plusieurs tables
contenant moins de colonnes.
Remarque : la migration de lignes et le chanage de lignes sont expliqus en dtail
dans le cours Oracle DBA : Tuning.

.....................................................................................................................................................
11-24
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Contrler l'espace utilis par les tables


Modifier les paramtres d'utilisation
de blocs et de stockage

ALTER TABLE summit.employee


PCTFREE 30
PCTUSED 50
STORAGE(NEXT 500K
MINEXTENTS 2
MAXEXTENTS 100);

Copyright Oracle Corporation, 1999. Tous droits rservs.

Modifier les paramtres d'utilisation de blocs et de stockage


Vous pouvez modifier certains paramtres de stockage et tous les paramtres
d'utilisation des blocs l'aide de la commande ALTER TABLE.
Syntaxe
ALTER TABLE [schema.]table
{[ storage-clause ]
[ PCTFREE integer ]
[ PCTUSED integer ]
[ INITRANS integer ]
[ MAXTRANS integer]}

Impact de la modification des paramtres de stockage


Les paramtres que vous pouvez modifier et l'effet de leur modification sont
les suivants :
NEXT : lorsque le serveur Oracle alloue un autre extent la table, la nouvelle
valeur est utilise. La taille des extents suivants augmente de la valeur dfinie
par le paramtre PCTINCREASE.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-25

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Impact de la modification des paramtres de stockage (suite)


PCTINCREASE : la modification de la valeur du paramtre PCTINCREASE est
enregistre dans le dictionnaire de donnes. La nouvelle valeur est utilise pour
recalculer la valeur du paramtre NEXT lorsque l'extent suivant est allou par le
serveur Oracle. Supposons qu'une table deux extents comporte les paramtres
NEXT=10K et PCTINCREASE=0. Si vous affectez la valeur 100 au paramtre
PCTINCREASE, le troisime extent allou sera de 10 ko, le quatrime de 20 ko,
et ainsi de suite.
MINEXTENTS : vous pouvez affecter au paramtre MINEXTENTS une valeur
infrieure ou gale au nombre actuel d'extents de la table. La nouvelle valeur
n'entre pas immdiatement en vigueur, mais elle est prise en compte si la table
est tronque.
MAXEXTENTS : vous pouvez affecter au paramtre MAXEXTENTS une valeur
gale ou suprieure au nombre actuel d'extents de la table.
Restrictions Vous ne pouvez pas modifier la valeur du paramtre INITIAL
d'une table.
La valeur du paramtre NEXT est arrondie une valeur multiple de la taille du bloc,
gale ou suprieure la valeur dfinie.
Paramtres d'utilisation de blocs
Vous pouvez modifier la valeur des paramtres d'utilisation de blocs pour :
amliorer l'utilisation de l'espace,
rduire les possibilits de migration.
La modification des paramtres d'utilisation de blocs a les effets suivantes :
PCTFREE : la modification du paramtre PCTFREE affecte les insertions
suivantes. Les blocs dj remplis et donc inutiliss pour les insertions
(100/PCTFREE) ne sont pas affects jusqu' ce qu'ils soient renvoys dans
la liste d'espaces libres. Ils ne peuvent tre placs dans la liste d'espaces libres
que si leur taux d'utilisation tombe sous la valeur du paramtre PCTUSED.
PCTUSED : la modification du paramtre PCTUSED affecte tous les blocs de la
table. Si une ligne est mise jour ou supprime, l'utilisation du bloc contenant la
ligne est vrifie et le bloc est rutilis pour y insrer des donnes si son taux
d'utilisation est infrieur la valeur du paramtre PCTUSED.
INITRANS : la modification du paramtre INITRANS n'affecte que les
nouveaux blocs.
MAXTRANS : la modification du paramtre MAXTRANS affecte tous les blocs
de la table.

.....................................................................................................................................................
11-26
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour modifier les paramtres


de stockage
1 Dmarrez Schema Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Schema Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Tables.
4 Dveloppez le nom d'utilisateur (ou schma).
5 Slectionnez la table.
6 Modifiez les valeurs de l'onglet Storage de la fentre de proprits. Notez que cette
mthode ne permet pas de modifier le nombre minimum d'extents, ni le nombre
initial de transactions.
7 Cliquez sur Apply.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-27

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Allouer manuellement des extents

ALTER TABLE summit.employee


ALLOCATE EXTENT(SIZE 500K
DATAFILE '/DISK3/DATA01.DBF');

Copyright Oracle Corporation, 1999. Tous droits rservs.

Allouer manuellement des extents


Vous pouvez tre amen allouer des extents manuellement :
pour contrler la distribution des extents d'une table dans les fichiers,
avant de charger les donnes en masse pour empcher l'augmentation
dynamique de la taille des tables.
Syntaxe
Utilisez la commande suivante pour allouer un extent une table :
ALTER TABLE [schema.]table
ALLOCATE EXTENT [ ([SIZE integer [K|M]]
[ DATAFILE 'filename' ]) ]

Si vous ne dfinissez pas le paramtre SIZE, le serveur Oracle utilise la taille d'extent
NEXT_EXTENT de DBA_TABLES pour allouer l'extent.
Le fichier dfini dans la clause DATAFILE doit appartenir au tablespace contenant
la table. Sinon, l'instruction gnre une erreur. Si vous n'utilisez pas la clause
DATAFILE, le serveur Oracle alloue l'extent dans l'un des fichiers du tablespace
contenant la table.
Remarque : la valeur NEXT_EXTENT de DBA_TABLES n'est pas affecte par
l'allocation manuelle d'extents. Le serveur Oracle ne recalcule pas la taille de l'extent
suivant lorsque cette commande est excute.

.....................................................................................................................................................
11-28
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Rorganiser les tables non partitionnes

ALTER
ALTER TABLE
TABLE employee
employee
MOVE
MOVE TABLESPACE
TABLESPACE data1;
data1;

Transfre les donnes dans un nouveau segment,


tout en conservant les index, les contraintes, les
privilges, etc. dans la table.

Utilis pour transfrer une table vers un


tablespace diffrent ou pour rorganiser les
extents.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Transfrer ou rorganiser une table


Oracle8i permet de dplacer une table non partitionne sans recourir l'utilitaire
Export ou Import. Cela s'avre utile pour :
transfrer une table d'un tablespace vers un autre,
rorganiser la table pour supprimer la migration de lignes.
Aprs avoir transfr une table, vous devez reconstituer les index pour viter
l'erreur suivante :
SQL> select * from employee where id=23;
select * from employee where id=23
*
ERROR at line 1:
ORA-01502: index 'SUMMIT.EMPLOYEE_ID_PK' or partition of such
index is in unusable state

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-29

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Repre high-water mark


Aprs les insertions :
ID d'extent

Bloc utilis

Repre
high-water mark

Aprs les suppressions :


ID d'extent

Bloc inutilis

Copyright Oracle Corporation, 1999. Tous droits rservs.

Espace libre
aprs suppression

Description du repre high-water mark


Le repre high-water mark d'une table indique le dernier bloc utilis de la table.
Lorsque des donnes sont insres dans la table, le repre high-water mark se
dplace pour indiquer le dernier bloc utilis.
Le repre high-water mark n'est pas rinitialis lorsque des lignes sont supprimes
de la table.
Le repre high-water mark est stock dans l'en-tte de segment de la table.
Lorsque le serveur Oracle effectue des balayages complets de tables, il lit tous
les blocs jusqu'au repre high-water mark.

.....................................................................................................................................................
11-30
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Rechercher le repre high-water mark :


DBMS_SPACE.UNUSED_SPACE
TOTAL_BLOCKS

UNUSED_BLOCKS

ID d'extent

Repre high-water mark


LAST_USED_EXTENT_FILE_ID,
LAST_USED_EXTENT_BLOCK_ID
Copyright Oracle Corporation, 1999. Tous droits rservs.

Rechercher le repre high-water mark


Le package DBMS_SPACE contient une procdure permettant de rechercher le
repre high-water mark et le nombre de blocs situs au-dessus du repre. Bien que
ces informations puissent tre obtenues partir du dictionnaire de donnes aprs
l'analyse de la table, le package DBMS_SPACE permet d'accder plus rapidement
aux informations sans affecter les performances.
Syntaxe
Vous pouvez utiliser le bloc PL/SQL suivant pour rechercher et afficher le nombre
de blocs allous une table et le nombre de blocs non utiliss :
SQL> DECLARE
2
v_owner VARCHAR2(30) := 'SUMMIT' ;
3
v_segment_name VARCHAR2(30) := 'EMPLOYEE';
4
v_segment_type VARCHAR2(30) := 'TABLE';
5
v_total_blocks NUMBER;
6
v_total_bytes NUMBER;
7
v_unused_blocks NUMBER;
8
v_unused_bytes NUMBER;
9
v_last_used_extent_file_id NUMBER;
10
v_last_used_extent_block_id NUMBER;

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-31

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Syntaxe (suite)
11 v_last_used_block NUMBER;
12 BEGIN
13 dbms_space.unused_space(v_owner,
14 v_segment_name,
15 v_segment_type,
16 v_total_blocks,
17 v_total_bytes,
18 v_unused_blocks,
19 v_unused_bytes,
20 v_last_used_extent_file_id,
21 v_last_used_extent_block_id,
22 v_last_used_block
23 );
24 dbms_output.put_line(INITCAP(v_segment_type)||' :
'||v_owner||'.'||v_segment_name);
25 dbms_output.put_line('Total Blocks :
'||TO_CHAR(v_total_blocks));
26 dbms_output.put_line('Blocks above HWM :
'||TO_CHAR(v_unused_blocks));
27 END;
28 /
Statement processed.
Table : SUMMIT.EMPLOYEE
Total Blocks : 25
Blocks above HWM : 23

Remarque : le package DBMS_SPACE est cr lorsque les scripts dbmsutil.sql et


prvtutil.plb sont appels par le script catproc.sql.

.....................................................................................................................................................
11-32
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Librer l'espace inutilis


ID d'extent
avant
dsallocation

ALTER TABLE summit.employee


Repre
high-water mark

DEALLOCATE UNUSED;
ID d'extent
aprs
dsallocation

Bloc utilis

Bloc inutilis

Espace libre
aprs suppression

Copyright Oracle Corporation, 1999. Tous droits rservs.

Librer l'espace inutilis


Si vous allouez des extents de grande taille une table et que les extents ne sont
pas utiliss en totalit, vous pouvez librer manuellement de l'espace dans la table.
L'espace libr devient alors disponible pour les autres segments du tablespace.
Syntaxe
Utilisez la commande suivante pour librer de l'espace dans une table :
ALTER TABLE [schema.]table
DEALLOCATE UNUSED [KEEP integer [ K|M ] ]

KEEP dfinit le nombre d'octets conserver au-dessus du repre high-water mark.


Si vous ne dfinissez pas la clause KEEP dans la commande, le serveur Oracle libre
tout l'espace inutilis au-dessus du repre high-water mark. Si le repre high-water
mark se trouve un extent en dessous de la valeur MINEXTENTS, le serveur Oracle
libre des extents au-dessus de MINEXTENTS.
Examinons l'exemple de la diapositive. Si la valeur du paramtre MINEXTENTS de la
table est gale ou infrieure quatre, le serveur Oracle libre tous les blocs inutiliss
au-dessus du repre high-water mark. Notez que le cinquime extent (avec ID=4) ne
contient maintenant que cinq blocs. Si la valeur du paramtre MINEXTENTS de table
est gale cinq, le serveur Oracle ne libre pas d'espace dans le cinquime extent.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-33

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Syntaxe (suite)
Remarque :
Etant donn que la libration d'espace l'aide de cette commande libre l'espace
inutilis dans un extent, son utilisation frquente risque de fragmenter l'espace des
fichiers de donnes. Pour viter ce problme, dfinissez le paramtre MINIMUM
EXTENT du tablespace.
Pour librer tout l'espace en dessous du repre high-water mark, mme si l'extent
que dsigne le repre correspond un nombre d'extents infrieur la valeur du
paramtre MINEXTENTS, utilisez le paramtre KEEP 0.

.....................................................................................................................................................
11-34
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Tronquer une table

TRUNCATE
TRUNCATE TABLE
TABLE summit.employee;
summit.employee;

ID d'extent

Espace libre
Repre
high-water mark

Copyright Oracle Corporation, 1999. Tous droits rservs.

Tronquer une table


La troncature d'une table supprime toutes les lignes d'une table et libre l'espace
inutilis. Dans l'exemple de la diapositive, la valeur du paramtre MINEXTENTS
de la table est gale 2.
Syntaxe
TRUNCATE TABLE [schema.] table
[{DROP | REUSE} STORAGE]

Cette commande a les effets suivants :


Elle supprime toutes les lignes de la table.
Aucune donne d'annulation n'est gnre et la commande valide implicitement
les donnes, car la commande TRUNCATE TABLE est une commande LDD.
Elle tronque les index correspondants.
Une table rfrence par une cl trangre ne peut tre tronque.
Les dclencheurs de suppression ne sont pas activs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-35

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Syntaxe (suite)
Si vous utilisez la clause DROP (clause par dfaut) :
tous les extents, l'exception de ceux dfinis par le paramtre MINEXTENTS,
sont librs,
le repre high-water mark est rinitialis et pointe vers le premier bloc
de la table,
le paramtre NEXT_EXTENT de la table a pour valeur la taille de l'extent
libr ayant l'ID le plus bas. Par exemple, si la valeur du paramtre
MINEXTENTS est gale 2, la valeur du paramtre NEXT_EXTENT
est gale la taille du troisime extent de la table.
Vous devez dfinir la clause REUSE pour conserver tout l'espace inutilis
de la table.
Les index sont affects par la clause REUSE ou DROP.

.....................................................................................................................................................
11-36
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Supprimer une table

DROP
DROP TABLE
TABLE summit.department
summit.department
CASCADE
CASCADE CONSTRAINTS;
CONSTRAINTS;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Supprimer une table


Vous pouvez supprimer une table devenue inutile ou une table que vous souhaitez
rorganiser.
Syntaxe
Utilisez la commande suivante pour supprimer une table :
DROP TABLE [schema.] table
[CASCADE CONSTRAINTS]

Lorsque vous supprimez une table, vous librez les extents qu'elle utilise. Si les
extents sont contigus, vous pouvez les fusionner automatiquement ou manuellement
plus tard.
Remarque : vous devez utiliser l'option CASCADE CONSTRAINTS s'il s'agit de la
table mre d'une relation de cl trangre. Cette option est dcrite en dtail dans le
chapitre "Grer l'intgrit des donnes".
Utiliser Oracle Enterprise Manager pour supprimer une table
1 Dmarrez Schema Manager.
2 Dveloppez le dossier Tables.
3 Dveloppez le nom d'utilisateur (ou schma).
4 Slectionnez la table.
5 Slectionnez Object>Remove.
6 Slectionnez Yes dans la bote de dialogue.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-37

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Supprimer une colonne


Supprimer une colonne d'une table
ALTER TABLE employee
DROP COLUMN comments
CASCADE CONSTRAINTS CHECKPOINT 1000;

Cette commande supprime la longueur et les


donnes de colonne de chaque ligne pour librer
de l'espace dans le bloc de donnes.

La suppression d'une colonne d'une table


volumineuse prend un temps considrable.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Supprimer une colonne d'une table


Les versions antrieures d'Oracle8i ne permettaient pas de supprimer une colonne
d'une table. Le serveur 8i d'Oracle permet dsormais de supprimer des colonnes
partir des lignes d'une table. La suppression de colonnes permet de nettoyer les
colonnes inutilises et les colonnes ayant besoin d'espace, sans avoir exporter
ou importer des donnes ni recrer les index et les contraintes.
La suppression d'une colonne peut prendre un certain temps, car toutes les donnes
de la colonne sont supprimes de la table.
Utiliser un point de reprise lors de la suppression d'une colonne
La suppression d'une colonne peut prendre un certain temps et ncessiter un espace
d'annulation consquent. Lorsque vous supprimez des colonnes dans des tables
volumineuses, vous pouvez dfinir des points de reprise pour rduire l'espace
d'annulation utilis. Dans l'exemple de la diapositive, un point de reprise se constitue
toutes les 1 000 lignes. La table a l'attribut INVALID tant que l'annulation est en cours.
Si l'instance connat un incident pendant l'annulation, la table conserve l'attribut
INVALID au dmarrage, et l'opration doit tre poursuivie.
Utilisez l'instruction suivante pour reprendre une annulation interrompue :
SQL> ALTER TABLE orders
DROP COLUMNS CONTINUE;

Cette commande gnre une erreur lorsque la table a l'attribut VALID.

.....................................................................................................................................................
11-38
Oracle DBA : Architecture et administration

Contrler l'espace utilis par les tables


.....................................................................................................................................................

Utiliser l'option UNUSED

Marquer une colonne comme n'tant pas utilise


ALTER
ALTER TABLE
TABLE orders
orders
SET
UNUSED
SET UNUSED COLUMN
COLUMN comments
comments
CASCADE
CASCADE CONSTRAINTS;
CONSTRAINTS;

Supprimer les colonnes inutilises


ALTER
ALTER TABLE
TABLE orders
orders
DROP
DROP UNUSED
UNUSED COLUMNS
COLUMNS CHECKPOINT
CHECKPOINT 1000;
1000;

Poursuivre l'opration de suppression de colonne


ALTER
ALTER TABLE
TABLE orders
orders
DROP
DROP COLUMNS
COLUMNS CONTINUE
CONTINUE CHECKPOINT
CHECKPOINT 1000;
1000;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Marquer une colonne comme n'tant pas utilise


Au lieu de supprimer une colonne d'une table, vous pouvez marquer la colonne pour
indiquer qu'elle n'est pas utilise, puis la supprimer ultrieurement. Ce marquage a
l'avantage d'tre relativement rapide dans la mesure o aucun espace disque n'est
rcupr du fait qu'aucune donne n'est supprime. Vous pouvez supprimer
ultrieurement les colonnes inutilises de la table lorsque l'activit du systme
est faible.
Les colonnes inutilises sont considres comme n'appartenant pas la table. Les
interrogations ne peuvent pas voir les donnes des colonnes inutilises. En outre, les
noms et les types de donnes de ces colonnes n'apparaissent pas lorsque la commande
DESCRIBE est excute. L'utilisateur peut ajouter une colonne en utilisant le nom
d'une colonne inutilise.
Vous pouvez, par exemple, marquer des colonnes comme tant inutilises pour
supprimer deux colonnes d'une mme table. Lorsque vous supprimez deux colonnes
d'une table, toutes les lignes de la table sont mises jour deux fois. Si vous marquez
des colonnes comme tant inutilises et les supprimez, les lignes ne sont mises jour
qu'une seule fois.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-39

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Identifier les tables contenant des colonnes inutilises


Pour identifier les tables contenant des colonnes inutilises, interrogez la vue
DBA_UNUSED_COL_TABS. Cette vue obtient le nom des tables contenant
des colonnes inutilises et le nombre de colonnes inutilises qu'elles contiennent.
L'interrogation suivante indique que la table ORDERS appartenant l'utilisateur
SUMMIT contient une colonne inutilise :
SQL> select * from dba_unused_col_tabs;
OWNER

TABLE_NAME

COUNT

--------------------------- --------------------------- --------SUMMIT

ORDERS

Restrictions relatives la suppression d'une colonne


Vous ne pouvez pas :
supprimer une colonne d'une table de type objet,
supprimer des colonnes dans des tables imbriques,
supprimer toutes les colonnes d'une table,
supprimer une colonne de cl de partitionnement,
supprimer une colonne des tables dont SYS est propritaire,
supprimer une colonne de cl parent,
supprimer une colonne d'une table organise en index si la colonne
est une cl primaire.

.....................................................................................................................................................
11-40
Oracle DBA : Architecture et administration

Extraire les informations relatives une table


.....................................................................................................................................................

Extraire les informations relatives une table


Extraire les informations relatives une table
DBA_OBJECTS

DBA_TABLES

OWNER
OBJECT_NAME
OBJECT_ID
DATA_OBJECT_ID
CREATED

OWNER
TABLE_NAME
PCT_FREE
PCT_USED
INITIAL_EXTENT
NEXT_EXTENT
MIN_EXTENTS
MAX_EXTENTS
PCT_INCREASE
CACHE
BLOCKS
EMPTY_BLOCKS
CHAIN_CNT
TEMPORARY
DURATION

DBA_SEGMENTS
OWNER
SEGMENT_NAME
TABLESPACE_NAME
HEADER_FILE
HEADER_BLOCK

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations du dictionnaire de donnes


Vous pouvez obtenir des informations sur les tables partir du dictionnaire
de donnes. Pour obtenir le numro d'objet de donnes et l'emplacement de
l'en-tte de table de toutes les tables appartenant l'utilisateur SUMMIT,
lancez l'interrogation suivante :
SQL> SELECT t.table_name, o.data_object_id,
2 s.header_file, s.header_block
3 FROM dba_tables t, dba_objects o, dba_segments s
4 WHERE t.owner=o.owner
5 AND t.table_name=o.object_name
6 AND t.owner=s.owner
7 AND t.table_name=s.segment_name
8 AND t.owner='SUMMIT';

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-41

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Obtenir des informations du dictionnaire de donnes (suite)


TABLE_NAME DATA_OBJECT_ID HEADER_FILE HEADER_BLOCK
---------- -------------- ----------- -----------CUSTOMER

12743

902

DEPARTMENT

12745

912

EMPLOYEE

12748

927

IMAGE

12751

942

INVENTORY

12753

952

ITEM

12755

962

LONG_TEXT

12758

977

ORDERS

12760

987

PRODUCT

12762

997

REGION

12765

1012

TITLE

12768

1027

WAREHOUSE

12770

1037

12 rows selected.

.....................................................................................................................................................
11-42
Oracle DBA : Architecture et administration

Extraire les informations relatives une table


.....................................................................................................................................................

Extraire les informations sur les extents

DBA_EXTENTS
OWNER
SEGMENT_NAME
EXTENT_ID
FILE_ID
BLOCK_ID
BLOCKS

Copyright Oracle Corporation, 1999. Tous droits rservs.

Distribuer l'espace allou


Vous pouvez obtenir le nombre d'extents, leur emplacement et leur taille en
interrogeant la vue DBA_EXTENTS. L'exemple ci-dessous indique le nombre
d'extents et le nombre total de blocs utiliss par une table dans chacun des fichiers
de la base de donnes :
SQL> SELECT file_id, COUNT(*) AS Extents, SUM(blocks) AS Blocks
2 FROM dba_extents
3 WHERE owner='SUMMIT'
4 AND segment_name='EMPLOYEE'
5 GROUP BY file_id;
FILE_ID
EXTENTS
BLOCKS
-----------------3
1
25
1 row selected.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-43

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Package DBMS_ROWID
Fonctions couramment utilises :
Nom de fonction

Description

ROWID_CREATE

Cre un identificateur ROWID partir de composants.

ROWID_OBJECT

Renvoie l'identificateur d'objet d'un ROWID.

ROWID_RELATIVE_FNO

Renvoie le numro de fichier relatif d'un ROWID.

ROWID_BLOCK_NUMBER

Renvoie le numro de bloc d'un ROWID.

ROWID_ROW_NUMBER

Renvoie le numro de ligne d'un ROWID.

ROWID_TO_ABSOLUTE_FNO

Renvoie le numro de fichier absolu d'un ROWID.

ROWID_TO_EXTENDED

Convertit un ROWID restreint en ROWID tendu.

ROWID_TO_RESTRICTED

Convertit un ROWID tendu en ROWID restreint.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Obtenir des informations sur le type de donnes ROWID


Le serveur Oracle fournit le package DBMS_ROWID, cr partir du script
dbmsutil.sql, lui-mme appel par le script catproc.sql.
Le package contient de nombreuses fonctions permettant d'effectuer des conversions
de formats ROWID et de convertir le ROWID en composants individuels. La prsente
section contient des exemples d'utilisation de ce package.
Obtenir les composants ROWID
Lancez l'interrogation suivante pour obtenir l'emplacement physique des lignes dans
une table :
SQL> SELECT id, ROWID,
2 DBMS_ROWID.ROWID_OBJECT(ROWID) AS OBJECT,
3 DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) AS "RELATIVE FILE",
4 DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) AS BLOCK
5 FROM summit.department;

.....................................................................................................................................................
11-44
Oracle DBA : Architecture et administration

Extraire les informations relatives une table


.....................................................................................................................................................

Obtenir les composants ROWID (suite)


ID ROWID

OBJECT RELATIVE FILE

BLOCK

-- ------------------ --------- ------------- --------10 AAADHJAACAAAAORAAA

12745

913

31 AAADHJAACAAAAORAAB

12745

913

32 AAADHJAACAAAAORAAC

12745

913

33 AAADHJAACAAAAORAAD

12745

913

34 AAADHJAACAAAAORAAE

12745

913

35 AAADHJAACAAAAORAAF

12745

913

41 AAADHJAACAAAAORAAG

12745

913

42 AAADHJAACAAAAORAAH

12745

913

43 AAADHJAACAAAAORAAI

12745

913

44 AAADHJAACAAAAORAAJ

12745

913

45 AAADHJAACAAAAORAAK

12745

913

50 AAADHJAACAAAAORAAL

12745

913

12 rows selected.

Rechercher le numro de fichier absolu


Lancez l'interrogation suivante pour obtenir les numros de fichier absolus des lignes
dans SUMMIT.DEPARTMENT :
SQL> SELECT id, ROWID,
2 DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO(ROWID,'SUMMIT','DEPARTMENT')
AS "FILE"
3 FROM summit.department;
ID ROWID
FILE
--------- ------------------ --------10 AAADHJAACAAAAORAAA
2
31 AAADHJAACAAAAORAAB
2
32 AAADHJAACAAAAORAAC
2
33 AAADHJAACAAAAORAAD
2
34 AAADHJAACAAAAORAAE
2
35 AAADHJAACAAAAORAAF
2
41 AAADHJAACAAAAORAAG
2
42 AAADHJAACAAAAORAAH
2
43 AAADHJAACAAAAORAAI
2
44 AAADHJAACAAAAORAAJ
2
45 AAADHJAACAAAAORAAK
2
50 AAADHJAACAAAAORAAL
2
12 rows selected.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-45

Chapitre 11 : Grer les tables


.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

crer une table avec les paramtres de stockage


et d'utilisation de blocs appropris,

contrler le stockage d'une table,


utiliser le package DBMS_ROWID.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
11-46
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation

Rfrence
DB_BLOCK_SIZE

Paramtres d'initialisation
DB_FILE_MULTIBLOCK_READ_COUNT
dynamique
Vues dynamiques des performances Aucune
Vues du dictionnaire de donnes
DBA_TABLES
DBA_SEGMENTS
DBA_OBJECTS
DBA_EXTENTS
Commandes
CREATE TABLE
CREATE GLOBAL TEMPORARY TABLE
ALTER TABLE ... STORAGE
ALTER TABLE ... PCTFREE ... PCTUSED
ALTER TABLE ... ALLOCATE EXTENT
ALTER TABLE ... DEALLOCATE UNUSED
TRUNCATE TABLE
DROP TABLE
ALTER TABLE ... DROP COLUMN
ALTER TABLE ... SET UNUSED COLUMN
ALTER TABLE ... DROP UNUSED COLUMNS
ALTER TABLE ... DROP COLUMNS CONTINUE
Procdures et fonctions de package DBMS_SPACE.UNUSED_SPACE
DBMS_ROWID

.....................................................................................................................................................
Oracle DBA : Architecture et administration
11-47

Chapitre 11 : Grer les tables


.....................................................................................................................................................

.....................................................................................................................................................
11-48
Oracle DBA : Architecture et administration

12
.................................

Grer les index

Chapitre 12 : Grer les index


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre, vous pourrez :

numrer les diffrents types d'index et expliquer


leur utilisation,

crer des index B-Tree et bitmap,


rorganiser les index,
supprimer des index,
obtenir des informations partir du dictionnaire
de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
12-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Classification des index

Index logiques
monocolonnes ou concatns,
uniques ou non uniques,
bass sur une fonction.

Index physiques
partitionns ou non partitionns,
B-Tree,
normaux ou cl inverse,
bitmap.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Classification des index


Un index est une arborescence qui permet d'accder directement une ligne d'une
table. Les index peuvent tre classs en fonction de leur structure logique ou de
leur mise en uvre physique. La classification logique regroupe les index en fonction
de l'application, alors que la classification physique dpend du mode de stockage
des index.
Index monocolonne et concatn
La cl d'un index monocolonne ne contient qu'une seule colonne, comme dans le cas
d'un index de colonne contenant les numros d'employ d'une table d'employs.
Un index concatn, galement appel index composite, utilise plusieurs colonnes
d'une table. Il n'est pas ncessaire que les colonnes d'un index concatn respectent
l'ordre des colonnes de la table et soient adjacentes; par exemple, l'index des colonnes
des services et des postes d'une table d'employs.
Un index composite peut contenir jusqu' 32 colonnes. Toutefois, la taille combine
de toutes les colonnes ne peut dpasser approximativement le tiers de la taille d'un
bloc de donnes.
Index uniques et non uniques
Un index unique permet d'empcher une colonne d'index de contenir deux valeurs de
ligne de table identiques. Une cl d'index unique ne peut pointer que vers une seule
ligne d'une table.
Dans un index non unique, une mme cl peut tre associe plusieurs lignes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-3

Chapitre 12 : Grer les index


.....................................................................................................................................................

Index bas sur une fonction


Un index bas sur une fonction est cr lorsque l'utilisateur emploie des fonctions ou
des expressions impliquant une ou plusieurs colonnes d'une table indexer. Un index
bas sur une fonction prcalcule la valeur de la fonction ou de l'expression et la stocke.
Les index bass sur des fonctions peuvent tre crs sous forme d'index B-Tree ou
d'index bitmap.
Index partitionns et non partitionns
Les index partitionns sont utiliss avec les tables volumineuses pour stocker les
entres d'un index dans plusieurs segments. Le partitionnement permet de rpartir un
index sur un grand nombre de tablespaces, de rduire la contention lors des recherches
dans l'index et de faciliter la gestion. Les index partitionns sont souvent utiliss avec
les tables partitionnes pour amliorer l'volutivit et faciliter la gestion. Une partition
d'index peut tre cre pour chaque partition d'une table.
Ce chapitre explique comment crer et grer les index B-Tree et bitmap non
partitionns.

.....................................................................................................................................................
12-4
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Index B-Tree
Entre d'index
Racine

Branche

En-tte d'entre d'index

Feuille

Longueur de colonne de cl
Valeur de colonne de cl
ROWID
Copyright Oracle Corporation, 1999. Tous droits rservs.

Stockage des index


Bien que tous les index utilisent une structure B-Tree, le terme B-Tree est
gnralement associ un index qui stocke une liste d'identificateurs ROWID
pour chaque cl.
Structure d'un index B-Tree
En haut de l'index figure la racine contenant les entres qui pointent vers le niveau
suivant de l'index. Le niveau suivant correspond aux blocs de branchement qui
pointent vers les blocs du niveau suivant de l'index. Au bas de l'arborescence se
trouvent les nuds feuille qui contiennent les entres d'index qui pointent vers les
lignes de la table. Les blocs feuille comportent deux liens facilitant le balayage de
l'index dans l'ordre croissant et dcroissant des valeurs de cl.
Format des entres feuille d'un index
Une entre d'index est constitue :
d'un en-tte d'entre, contenant le nombre de colonnes et les informations
de verrouillage,
de paires de valeurs correspondant la longueur de la colonne de cl et la
valeur de la colonne, qui dfinissent la taille de la colonne dans la cl et la
valeur de la colonne (le nombre de paires correspond au nombre maximal de
colonnes dans l'index),
de l'identificateur ROWID d'une ligne qui contient les valeurs de la cl.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-5

Chapitre 12 : Grer les index


.....................................................................................................................................................

Caractristiques des entres feuille d'un index


Dans l'index B-Tree d'une table non partitionne :
Les valeurs de cl se rptent si plusieurs lignes ont la mme valeur de cl.
Il n'existe pas d'entre d'index pour une ligne dont toutes les colonnes de cl
sont NULL.
L'identificateur ROWID restreint permet de pointer vers les lignes de la table,
dans la mesure o toutes les lignes appartiennent au mme segment.
Impact des oprations LMD sur un index
Le serveur Oracle gre tous les index lorsque des oprations LMD sont excutes
sur une table. L'impact d'une commande LMD sur un index est dcrit ci-dessous :
Les oprations d'insertion provoquent l'insertion d'une entre d'index dans le
bloc appropri.
La suppression d'une ligne entranent uniquement la suppression logique de
l'entre d'index. L'espace libr par la ligne supprime ne peut pas tre utilis pour
de nouvelles entres tant que toutes les entres du bloc ne sont pas supprimes.
Les mises jour des colonnes de cl provoquent une suppression logique et
une insertion dans l'index. La valeur du paramtre PCTFREE n'a aucun effet sur
l'index, sauf lors de la cration. Une nouvelle entre peut tre ajoute un bloc
d'index, mme si elle dispose d'un espace infrieur celui dfini par le paramtre
PCTFREE.

.....................................................................................................................................................
12-6
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Index cl inverse
Indexation sur
EMPLOYEE (ID)
KEY

ROWID

ID
----1257
2877
4567
6657
8967
9637
9947
...
...

(BLOCK# ROW# FILE#)


------------------0000000F.0002.0001
0000000F.0006.0001
0000000F.0004.0001
0000000F.0003.0001
0000000F.0005.0001
0000000F.0001.0001
0000000F.0000.0001
...
...

Table EMPLOYEE

ID
----7499
7369
7521
7566
7654
7698
7782

...

FIRST_NAME JOB
---------- -------ALLEN
SALESMAN
SMITH
CLERK
WARD
SALESMAN
JONES
MANAGER
MARTIN
SALESMAN
BLAKE
MANAGER
CLARK
MANAGER
...
...
...
...
...
...

Copyright Oracle Corporation, 1999. Tous droits rservs.

Index cl inverse
Contrairement un index B-Tree standard, un index cl inverse inverse les octets de
chaque colonne indexe (sauf l'identificateur ROWID) tout en conservant l'ordre des
colonnes. Lorsque les enregistrements sont insrs dans une cl croissante, telle qu'un
numro d'employ gnr par le systme, des goulets d'tranglement au niveau des
entres/sorties de l'index peuvent se produire, car toutes les mises jour de l'index
ont lieu dans le mme emplacement de l'arborescence d'indexation. Les index cl
inverse rpartissent les mises jour de l'index dans l'ensemble de l'arborescence
en inversant la valeur de la cl d'index.
Lors de l'insertion du numro d'employ 7698 dans la table, par exemple, la valeur
de cl 8967 est stocke dans l'index. Lors de l'insertion du numro d'employ suivant
(7782), l'entre d'index 2877 est cre, ce qui permet de rpartir la charge globale sur
plusieurs blocs d'indexation.
Les index entre inverse sont utiles lors des interrogations contenant des prdicats
d'galit. Les cls adjacentes au niveau lexical n'tant pas stockes les unes ct des
autres dans un index cl inverse, vous ne pouvez pas utiliser de plage de valeurs
pour effectuer des recherches l'aide de ce type d'index.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-7

Chapitre 12 : Grer les index


.....................................................................................................................................................

Crer des index bass sur une fonction

Amliorent considrablement les interrogations.


CREATE
CREATE INDEX
INDEX summit.item_quantity_to_deliver_idx
summit.item_quantity_to_deliver_idx
ON
summit.item(quantity
ON summit.item(quantity -- quantity_shipped);
quantity_shipped);

Les interrogations utilisant des expressions


peuvent utiliser l'index.
SELECT
SELECT ord_id,
ord_id, item_id
item_id
FROM
ITEM
FROM ITEM
WHERE
WHERE (quantity
(quantity -- quantity_shipped)
quantity_shipped) >> 0;
0;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Index bass sur une fonction


Les index bass sur une fonction permettent d'valuer efficacement des instructions
dont les clauses WHERE contiennent des fonctions. Vous pouvez crer un index bas
sur une fonction pour matrialiser dans l'index les expressions effectuant de nombreux
calculs et viter au serveur Oracle d'avoir calculer la valeur des expressions lors du
traitement des instructions SELECT et DELETE. Toutefois, lors du traitement des
instructions INSERT et UPDATE, le serveur Oracle doit toujours valuer la fonction
pour traiter l'instruction.
Les index bass sur une fonction peuvent tre crs sous forme d'index B-Tree ou
d'index bitmap.

.....................................................................................................................................................
12-8
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Index bitmap
Table

Fichier 3
Bloc 10
Bloc 11
Bloc 12

Index

cl
<Blue,
<Green,
<Red,
<Yellow,

ROWID
ROWID
de dbut de fin
10.0.3,
10.0.3,
10.0.3,
10.0.3,

12.8.3,
12.8.3,
12.8.3,
12.8.3,

bitmap
1000100100010010100>
0001010000100100000>
0100000011000001001>
0010001000001000010>

Copyright Oracle Corporation, 1999. Tous droits rservs.

Index bitmap
Dans certains cas, les index bitmap offrent plus d'avantages que les index B-Tree :
lorsqu'une table contient des millions de lignes et que les colonnes de cl ont une
faible cardinalit, c'est--dire qu'elles contiennent peu de valeurs distinctes. Par
exemple, il est prfrable d'utiliser des index bitmap plutt que des index B-Tree
pour les colonnes Sexe et Situation familiale d'une table contenant des
enregistrements de passeport.
lorsque les interrogations utilisent souvent une combinaison de plusieurs
conditions WHERE impliquant l'oprateur OR,
lorsque les colonnes sont en lecture seule ou qu'elles ne sont pas souvent
mises jour.
Structure d'un index bitmap
Un index bitmap comporte galement une structure B-Tree, mais le nud feuille
stocke un bitmap de chaque valeur de cl la place d'une liste d'identificateurs
ROWID. Chaque bit du bitmap correspond un identificateur ROWID possible et, si
le bit est dfini, cela implique que la ligne ayant le descripteur ROWID correspondant
contient la valeur de cl.
Comme le montre le graphique, le nud feuille d'un index bitmap contient les
lments suivants :
un en-tte d'entre, contenant le nombre de colonnes et les informations de
verrouillage,
des valeurs de cl correspondant la longueur et la valeur de chaque colonne de
cl (dans l'exemple, la cl n'est constitue que d'une seule colonne, et la valeur de
la premire entre est Blue),
.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-9

Chapitre 12 : Grer les index


.....................................................................................................................................................

Structure d'un index bitmap (suite)


l'identificateur ROWID de dbut qui, dans l'exemple, contient le numro de
fichier 3, le numro de bloc 10 et le numro de ligne 0,
l'identificateur ROWID de fin qui, dans l'exemple, contient le numro de bloc 12
et le numro de ligne 8,
un segment bitmap constitu d'une chane de bits (le bit est dfini lorsque la ligne
correspondante contient la valeur de cl, et n'est pas dfini lorsque la ligne ne la
contient pas. Le serveur Oracle utilise une technique de compression brevete pour
stocker les segments bitmap).
L'identificateur ROWID de dbut correspond l'identificateur ROWID de la premire
ligne vers laquelle pointe le segment bitmap, c'est--dire que le premier bit du bitmap
correspond l'identificateur ROWID, le second bit du bitmap correspond la ligne
suivante du bloc, et l'identificateur ROWID de fin pointe vers la dernire ligne de la
table couverte par le segment bitmap. Les index bitmap utilisent des identificateurs
ROWID restreints.
Utiliser un index bitmap
L'index B-Tree permet de rechercher les nuds feuille qui contiennent les segments
bitmap d'une valeur donne de la cl. L'identificateur ROWID de dpart et les
segments bitmaps permettent de rechercher les lignes contenant la valeur de la cl.
Lorsque la colonne de cl est modifie dans la table, les bitmaps doivent tre modifis.
Cette opration verrouille les segments bitmap correspondants. Du fait que les verrous
sont appliqus sur l'ensemble du segment bitmap, une ligne couverte par le bitmap ne
peut pas tre mise jour par d'autres transactions tant que la premire transaction n'est
pas termine.

.....................................................................................................................................................
12-10
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Comparer les index B-Tree


et bitmap

B-Tree

Bitmap

Pour colonnes de forte cardinalit

Pour colonnes de faible cardinalit

Mises jour des colonnes de cl


utilisant relativement peu de
ressources

Mises jour des colonnes de cl


consommant davantage de
ressources

Inefficaces pour les interrogations Efficaces pour les interrogations


utilisant des prdicats OR
utilisant des prdicats OR
Utiles pour environnement OLTP

Utiles pour les data warehouses

Copyright Oracle Corporation, 1999. Tous droits rservs.

Comparer les index B-Tree et bitmap


Les index bitmap sont plus compacts que les index B-Tree lorsqu'ils sont utiliss
avec des colonnes de faible cardinalit.
Les mises jour des colonnes de cl d'un index bitmap consomment davantage de
ressources, car les bitmaps utilisent le verrouillage de niveau segment bitmap, alors
que dans les index B-Tree, les verrous se trouvent sur les entres correspondant des
lignes de la table.
Les index bitmap peuvent tre utiliss pour excuter des oprations telles que
Bitmap OR, c'est--dire que le serveur Oracle peut utiliser deux segments bitmap pour
excuter une opration OR sur le bit et obtenir le bitmap correspondant. Ceci permet
d'utiliser efficacement les bitmaps dans des interrogations qui utilisent le prdicat OR.
En rsum, les index B-Tree peuvent tre mieux adapts un environnement OLTP
pour indexer les tables dynamiques, alors que les index bitmap peuvent tre utiles pour
les environnements de data warehouse dans lesquels des interrogations complexes
sont utilises dans des tables statiques volumineuses.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-11

Chapitre 12 : Grer les index


.....................................................................................................................................................

Crer des index


Crer des index B-Tree normaux

CREATE INDEX summit.employee_last_name_idx


ON summit.employee(last_name)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0
MAXEXTENTS 50)
TABLESPACE indx;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Crer des index B-Tree normaux


Vous pouvez crer un index dans le compte de l'utilisateur propritaire de la table
ou dans un compte diffrent, bien que celui-ci soit gnralement cr dans le mme
compte que celui de la table.
Syntaxe
Utilisez la commande suivante pour crer un index B-Tree :
CREATE [ UNIQUE ]INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ NOSORT ]

.....................................................................................................................................................
12-12
Oracle DBA : Architecture et administration

Crer des index


.....................................................................................................................................................

Syntaxe (suite)
o :
UNIQUE
schema
index
table
column
ASC/ DESC
TABLESPACE
PCTFREE

INITRANS

MAXTRANS

Storage-clause

LOGGING

NOLOGGING

NOSORT

dfinit un index unique


(non unique par dfaut),
correspond au propritaire
de l'index/de la table,
est le nom de l'index,
est le nom de la table,
est le nom de la colonne,
est indiqu pour la compatibilit syntaxique
avec les autres bases de donnes,
dfinit le tablespace de cration de l'index,
indique l'espace rserv dans chaque
bloc (pourcentage de l'espace total moins
l'en-tte de bloc) au moment de la cration
pour l'insertion de nouvelles entres d'index,
dfinit le nombre d'entres de transaction
pralloues dans chaque bloc
(la valeur par dfaut et minimale est 2),
limite le nombre d'entres de transaction
pouvant tre alloues chaque bloc
(la valeur par dfaut est 255),
correspond la clause qui dtermine
l'allocation des extents (ensembles de
blocs contigus) l'index,
indique que la cration de l'index et
les oprations suivantes sur l'index sont
consignes dans le fichier de journalisation
(redo log) (valeur par dfaut),
indique que la cration de l'index et certains
types de chargement de donnes ne sont pas
consigns dans le fichier de journalisation,
indique que les lignes sont stockes dans la
base de donnes en ordre croissant et que
le serveur Oracle n'a donc pas les trier lors
de la cration de l'index.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-13

Chapitre 12 : Grer les index


.....................................................................................................................................................

Syntaxe (suite)
Remarque :
Si le paramtre MINIMUM EXTENT du tablespace est dfini, les tailles d'extent
de l'index sont arrondies au multiple suprieur.
Si la clause LOGGING ou NOLOGGING n'est pas dfinie, l'attribut de
journalisation de l'index correspond par dfaut celui du tablespace
contenant l'index.
Le paramtre PCTUSED ne peut pas tre dfini pour un index. Etant donn que
les entres d'index doivent tres stockes dans l'ordre exact, l'utilisateur ne peut
pas contrler les insertions dans un bloc d'index.
Si le mot-cl NOSORT est utilis lorsque les donnes ne sont pas tries sur la cl,
l'instruction se termine par une erreur. Cette opration est susceptible d'chouer si
plusieurs oprations LMD ont t excutes sur la table.
Dans la mesure du possible, le serveur Oracle utilise les index existants pour
crer un nouvel index. C'est le cas lorsque la cl du nouvel index correspond
la premire partie de la cl d'un index existant.

.....................................................................................................................................................
12-14
Oracle DBA : Architecture et administration

Crer des index


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour crer un index


1 Dmarrez Schema Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Schema Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Slectionnez Object>Create.
4 Slectionnez Index dans la liste des valeurs, puis cliquez sur OK.
5 Entrez les informations General, Storage et Options dans la fentre de proprits.
6 Cliquez sur Create.
Schema Manager permet galement de dfinir automatiquement les paramtres de
stockage et d'utilisation de bloc en fonction d'une estimation du volume initial, du
taux d'augmentation de la taille, des insertions dans la table et de l'ordre d'insertion
des lignes.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-15

Chapitre 12 : Grer les index


.....................................................................................................................................................

Crer des index : instructions

Equilibrez les interrogations et les oprations LMD.

N'activez pas la journalisation sur les index


volumineux (NOLOGGING).

Dfinissez une valeur PCTFREE leve si les


nouvelles valeurs de cl sont susceptibles de se
trouver dans la plage en cours.

Placez les index dans des tablespaces distincts.


Utilisez des tailles d'extent uniformes : multiple
de cinq blocs ou taille MINIMUM EXTENT pour le
tablespace.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Instructions de cration des index


Tenez compte des points suivants lors de la cration d'un index :
Les index acclrent les interrogations et ralentissent les oprations LMD.
Utilisez toujours un nombre d'index limit sur les tables volatiles.
Placez les index dans des tablespaces distincts ; ne les placez pas dans des
tablespaces qui contiennent des segments d'annulation, des segments temporaires
et des tables.
Pour limiter la fragmentation, utilisez quelques tailles d'extent standard
correspondant un multiple de 5 DB_BLOCK_SIZE.
Vous pouvez amliorer considrablement les performances des index
volumineux en ne gnrant pas d'informations de journalisation. Utilisez
la clause NOLOGGING pour crer des index volumineux.
Les entres d'index tant plus petites que les lignes qu'elles indexent, les blocs
d'index tendent contenir plus d'entres. En consquence, la valeur INITRANS
doit gnralement tre plus leve pour les index que pour les tables
correspondantes.
Index et paramtre PCTFREE
Le paramtre PCTFREE d'un index fonctionne diffremment de celui d'une table. Ce
paramtre n'est utilis que lors de la cration de l'index pour rserver de l'espace pour
les entres d'index insrer dans le mme bloc d'index. Les entres d'index ne sont pas
mises jour. La mise jour d'une colonne de cl provoque la suppression logique de
l'entre d'index et l'insertion des donnes.

.....................................................................................................................................................
12-16
Oracle DBA : Architecture et administration

Crer des index


.....................................................................................................................................................

Index et paramtre PCTFREE (suite)


Affectez une valeur faible au paramtre PCTFREE pour les index de colonne dont la
valeur augmente de manire squentielle, comme dans le cas d'un numro de facture
gnr par le systme. Dans ce cas, de nouvelles entres d'index sont toujours ajoutes
aux entres existantes, et il est inutile d'insrer une nouvelle entre entre deux entres
d'index existantes.
Lorsque la colonne indexe d'une ligne insre peut prendre n'importe quelle valeur,
c'est--dire que la nouvelle valeur peut tre comprise dans la plage actuelle des
valeurs, affectez une valeur plus leve au paramtre PCTFREE. Vous pouvez
procder ainsi, par exemple, s'il s'agit d'un index sur la colonne des codes client d'une
table de facturation. Dans ce cas, utilisez l'quation suivante pour dfinir la valeur du
paramtre PCTFREE :
Maximum number of rows Initial number of rows
---------------------------------------------------------------------------------------------------------------------------- 100
Maximum number of rows

La valeur maximale fait rfrence une priode spcifique, comme par exemple
une anne.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-17

Chapitre 12 : Grer les index


.....................................................................................................................................................

Crer des index cl inverse

CREATE UNIQUE INDEX summit.orders_id_idx


ON summit.orders(id) REVERSE
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0
MAXEXTENTS 50)
TABLESPACE indx;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
Utilisez la commande suivante pour crer un index cl inverse :
CREATE [ UNIQUE ]INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
REVERSE

La commande de cration d'un index cl inverse est similaire celle d'un index
standard, sauf que cette commande utilise le mot-cl REVERSE. Notez que le mot-cl
NOSORT ne peut pas tre utilis avec les index cl inverse.

.....................................................................................................................................................
12-18
Oracle DBA : Architecture et administration

Crer des index


.....................................................................................................................................................

Crer des index bitmap


Utilisez le paramtre CREATE_BITMAP_AREA_SIZE
pour dfinir la quantit de mmoire alloue la
cration du bitmap.
CREATE BITMAP INDEX orders_region_id_idx
ON summit.orders(region_id)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0
MAXEXTENTS 50)
TABLESPACE indx;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
Utilisez la commande suivante pour crer un index bitmap :
CREATE BITMAP INDEX [schema.] index
ON [schema.] table
(column [ ASC | DESC ] [ , column [ASC | DESC ] ] ...)
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ NOSORT ]

Notez qu'un index bitmap ne peut tre unique.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-19

Chapitre 12 : Grer les index


.....................................................................................................................................................

CREATE_BITMAP_AREA_SIZE
Le paramtre d'initialisation CREATE_BITMAP_AREA_SIZE dtermine l'espace
qui sera utilis pour stocker les segments bitmap en mmoire. La valeur par dfaut
est de 8 Mo. Une valeur suprieure peut acclrer la cration de l'index. Si le nombre
d'lments par colonne est peu lev, dfinissez une valeur faible. Par exemple, si
seulement deux lments sont utiliss, exprimez la valeur en kilo-octets et non en
mgaoctets. En rgle gnrale, plus le nombre d'lments utiliss est lev, plus la
quantit de mmoire ncessaire est importante pour obtenir des performances
optimales.

.....................................................................................................................................................
12-20
Oracle DBA : Architecture et administration

Crer des index


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour crer un index bitmap


1 Dmarrez Schema Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Schema Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Slectionnez Object>Create.
4 Slectionnez Index dans la liste des valeurs, puis cliquez sur OK.
5 Entrez les informations General, Storage et Options dans la fentre
de proprits et slectionnez l'option Bitmap sous l'onglet General.
6 Cliquez sur Create.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-21

Chapitre 12 : Grer les index


.....................................................................................................................................................

Rorganiser les index


Modifier les paramtres
de stockage des index

ALTER INDEX summit.employee_last_name_idx


STORAGE(NEXT 400K
MAXEXTENTS 100);

Copyright Oracle Corporation, 1999. Tous droits rservs.

Modifier les paramtres de stockage des index


Vous pouvez modifier certains paramtres de stockage et d'utilisation des blocs l'aide
de la commande ALTER INDEX.
Syntaxe
ALTER INDEX [schema.]index
[ storage-clause ]
[ INITRANS integer ]
[ MAXTRANS integer ]

La modification des paramtres de stockage sur un index a le mme impact que sur
une table. En rgle gnrale, la modification porte sur l'augmentation du paramtre
MAXEXTENTS de l'index.
Vous pouvez modifier les paramtres d'utilisation des blocs pour garantir un niveau
plus lev de simultanit d'accs aux donnes des blocs d'un index.

.....................................................................................................................................................
12-22
Oracle DBA : Architecture et administration

Rorganiser les index


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour modifier les paramtres


de stockage
1 Dmarrez Schema Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Schema Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Indexes.
4 Dveloppez le nom d'utilisateur (ou schma).
5 Slectionnez l'index.
6 Modifiez les valeurs de l'onglet Storage de la fentre de proprits. Notez que cette
mthode ne permet pas de modifier le nombre minimal d'extents.
7 Cliquez sur Apply.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-23

Chapitre 12 : Grer les index


.....................................................................................................................................................

Allouer et librer de l'espace


pour les index

ALTER
ALTER INDEX
INDEX summit.orders_region_id_idx
summit.orders_region_id_idx
ALLOCATE
ALLOCATE EXTENT
EXTENT (SIZE
(SIZE 200K
200K
DATAFILE
'/DISK6/indx01.dbf');
DATAFILE '/DISK6/indx01.dbf');

ALTER
ALTER INDEX
INDEX summit.orders_id_idx
summit.orders_id_idx
DEALLOCATE
DEALLOCATE UNUSED;
UNUSED;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Allouer manuellement de l'espace un index


Il peut tre ncessaire d'ajouter des extents un index avant d'effectuer un grand
nombre d'insertions dans une table. L'ajout d'extents empche l'augmentation
dynamique de la taille des index qui affecte les performances.
Librer manuellement de l'espace dans un index
Utilisez la clause DEALLOCATE de la commande ALTER INDEX pour librer
l'espace inutilis au-dessus du repre high-water mark d'un index.
Syntaxe
Utilisez la commande suivante pour allouer de l'espace un index ou en librer :
ALTER INDEX [schema.]index
{ALLOCATE EXTENT ([SIZE integer [K|M]]
[ DATAFILE 'filename' ])
| DEALLOCATE UNUSED [KEEP integer [ K|M ] ] }

Les rgles d'allocation ou de libration manuelle d'espace l'aide de ces commandes


sont identiques celle d'une table.
Remarque : l'espace d'indexation est libr lorsque la table de l'index est tronque.
Lorsqu'une table est tronque, son index l'est aussi.

.....................................................................................................................................................
12-24
Oracle DBA : Architecture et administration

Rorganiser les index


.....................................................................................................................................................

Reconstruire un index
Utilisez la commande ALTER INDEX pour :

placer l'index dans un tablespace diffrent,


amliorer l'utilisation de l'espace en retirant
les entres supprimes,
transformer un index cl inverse en index
B-Tree normal et rciproquement.
ALTER
ALTER INDEX
INDEX summit.orders_region_id_idx
summit.orders_region_id_idx REBUILD
REBUILD
TABLESPACE
indx02;
TABLESPACE indx02;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Reconstruire un index
La reconstruction d'un index prsente les caractristiques suivantes :
L'index est reconstruit en utilisant un index existant comme source de donnes.
Aucun tri n'est ncessaire lors de la reconstruction d'un index partir d'un index
existant, ce qui permet d'amliorer les performances.
L'ancien index est supprim aprs la cration du nouvel index. Lors de la
reconstruction, un espace suffisant doit exister dans le tablespace de l'ancien index
et dans celui du nouvel index.
Le nouvel index ne contient pas d'entres supprimes. En consquence, l'index
utilise l'espace de manire plus efficace.
Les interrogations peuvent continuer utiliser l'index existant pendant que l'index
est en cours de reconstruction.
Cas de reconstruction d'index
Reconstruisez un index dans les cas suivants :
L'index existant doit tre transfr vers un tablespace diffrent ; cette opration
peut tre ncessaire si l'index se trouve dans le mme tablespace que la table ou
que des objets doivent tre redistribus sur les disques.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-25

Chapitre 12 : Grer les index


.....................................................................................................................................................

Cas de reconstitution d'index (suite)


Un grand nombre d'entres ont t supprimes de l'index. En rgle gnrale, c'est
le cas des index glissants, tels qu'un index sur les numros de commande d'une
table dans laquelle les commandes excutes sont supprimes et les nouvelles
commandes portant des numros plus levs sont ajoutes la table. Si d'anciennes
commandes sont en attente, il peut exister des blocs feuille ne contenant que
quelques entres supprimes.
Un index normal existant doit tre converti en index cl inverse. Cela peut tre
le cas lors de la migration d'applications partir d'une version antrieure du
serveur Oracle.
La table de l'index a t transfre vers un autre tablespace l'aide de la commande
ALTER TABLE ... MOVE TABLESPACE.
Syntaxe
Utilisez la commande suivante pour reconstruire un index :
ALTER INDEX [schema.] index REBUILD
[ TABLESPACE tablespace ]
[ PCTFREE integer ]
[ INITRANS integer ]
[ MAXTRANS integer ]
[ storage-clause ]
[ LOGGING| NOLOGGING ]
[ REVERSE | NOREVERSE ]

La commande ALTER INDEX ... REBUILD ne permet pas de convertir un index


bitmap en index B-Tree et rciproquement. Le mot-cl REVERSE ou NOREVERSE
ne s'applique qu'aux index B-Tree.

.....................................................................................................................................................
12-26
Oracle DBA : Architecture et administration

Rorganiser les index


.....................................................................................................................................................

Reconstruire les index "online"

Vous pouvez reconstruire les index en limitant le


verrouillage de la table.
ALTER INDEX summit.orders_id_idx REBUILD ONLINE;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Reconstruire un index "online"


La cration ou la reconstruction d'un index peut prendre beaucoup de temps,
notamment s'il s'agit d'une table trs volumineuse. Avant Oracle8i, il tait ncessaire,
lors de la cration ou de la reconstruction d'un index, de verrouiller la table et
d'interdire les oprations LMD simultanes.
Oracle8i permet de crer ou de reconstruire des index sans interdire les oprations
simultanes sur la table de base, mais il est recommand de ne pas excuter de longues
oprations LMD au cours de cette procdure.
Remarque : il existe toujours des verrous LMD, ce qui implique que vous ne pouvez
pas excuter d'autres oprations LDD lors de la reconstruction "online" d'un index.
Restrictions
Vous ne pouvez pas reconstruire l'index d'une table temporaire.
Vous ne pouvez pas reconstruire l'ensemble d'un index partitionn. Vous devez
reconstruire chaque partition ou sous-partition.
Vous ne pouvez pas non plus librer l'espace inutilis.
Vous ne pouvez pas modifier la valeur du paramtre PCTFREE de l'index.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-27

Chapitre 12 : Grer les index


.....................................................................................................................................................

Fusionner les index

Avant la fusion

Aprs la fusion

ALTER
ALTER INDEX
INDEX summit.orders_id_idx
summit.orders_id_idx COALESCE;
COALESCE;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fusionner les index


Lorsqu'un index est fragment, vous pouvez reconstruire l'index ou le fusionner. Avant
d'effectuer l'une ou l'autre de ces oprations, vous devez en connatre les avantages et
les inconvnients et choisir celle qui correspond le mieux la situation.
S'il existe des blocs feuille d'index B-Tree qui peuvent tre librs pour tre rutiliss,
vous pouvez fusionner ces blocs feuille l'aide de la commande SQL suivante :
SQL> ALTER INDEX summit.orders_id_idx COALESCE;

.....................................................................................................................................................
12-28
Oracle DBA : Architecture et administration

Supprimer des index


.....................................................................................................................................................

Supprimer des index


Supprimer des index

Supprimez un index avant d'effectuer des


chargements en masse et recrez-le.

Supprimez les index peu utiliss et crez-les


lorsque cela est ncessaire.

Supprimez les index non valides et recrez-les.


DROP
DROP INDEX
INDEX summit.deptartment_name_idx;
summit.deptartment_name_idx;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Cas de suppression d'un index


Vous pouvez supprimer un index dans les cas suivants :
lorsque l'index n'est plus utile aux applications,
avant d'excuter des chargements en masse. La suppression des index avant des
chargements importants de donnes et leur recration aprs les chargements :
amliorent les performances du chargement,
permettent d'utiliser plus efficacement l'espace d'indexation.
lorsque lindex est utilis priodiquement, il n'est pas ncessaire de le conserver,
notamment s'il s'agit d'un index de table volatile (cela s'applique gnralement aux
systmes OLTP dans lesquels des interrogations intermdiaires sont gnres en
fin d'anne ou de trimestre pour collecter des informations ncessaires aux bilans),
lorsque l'index obtient l'attribut INVALID la suite d'une dfaillance de l'instance
au cours de certaines oprations, telles que le chargement ; dans ce cas, vous devez
supprimer l'index et le recrer,
lorsque l'index est endommag.
Syntaxe
Utilisez la commande suivante pour supprimer un index :
DROP INDEX [schema.] index

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-29

Chapitre 12 : Grer les index


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour supprimer un index


1 Dmarrez Schema Manager et connectez-vous directement la base de donnes :
Start>Programs>Oracle - EMV2 Home>DBA Management Pack
>Schema Manager
2 Entrez les informations de connexion, puis cliquez sur OK.
3 Dveloppez le dossier Indexes.
4 Dveloppez le nom d'utilisateur (ou schma).
5 Slectionnez l'index.
6 Slectionnez Object>Remove.
7 Slectionnez Yes dans la bote de dialogue.
Remarque : vous ne pouvez pas supprimer un index s'il sert mettre en oeuvre
une contrainte d'intgrit active. Les contraintes sont expliques dans le chapitre
"Grer l'intgrit des donnes".

.....................................................................................................................................................
12-30
Oracle DBA : Architecture et administration

Obtenir des informations sur les index


.....................................................................................................................................................

Obtenir des informations sur les index


Obtenir des informations sur les index

DBA_INDEXES

DBA_IND_COLUMNS

OWNER
INDEX_NAME
INDEX_TYPE
TABLE_OWNER
TABLE_NAME
UNIQUENESS
TABLESPACE_NAME
LOGGING
STATUS

INDEX_OWNER
INDEX_NAME
TABLE_OWNER
TABLE_NAME
COLUMN_NAME
COLUMN_POSITION
COLUMN_LENGTH

Copyright Oracle Corporation, 1999. Tous droits rservs.

Vues pour obtenir des informations sur les index


Les vues DBA_INDEXES et DBA_IND_COLUMNS du dictionnaire de donnes
fournissent des informations sur les index et les colonnes indexes.
Vrifier les index et leur validit
Utilisez la commande suivante pour vrifier le nom, le type et le statut des index de
l'utilisateur SUMMIT :
SQL> SELECT index_name, tablespace_name, index_type,
2 uniqueness, status
3 FROM dba_indexes
4 WHERE owner='SUMMIT'
INDEX_NAME
TABLESPACE_NAME
INDEX_TYPE UNIQUENES
----------------------------------- --------EMPLOYEE_LAST_.. INDX
NORMAL
NONUNIQUE
ORDERS_ID_IDX
INDX
NORMAL
UNIQUE
ORDERS_REGION_.. INDX02
BITMAP
NONUNIQUE
3 rows selected.

STATUS
-----VALID
VALID
VALID

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-31

Chapitre 12 : Grer les index


.....................................................................................................................................................

Vrifier les index et leur validit (suite)


La colonne INDEX_TYPE indique s'il s'agit d'un index bitmap ou d'un index standard.
Lancez l'interrogation suivante pour obtenir la liste de tous les index cl inverse :
SQL> SELECT o.object_name
2 FROM dba_objects o
3 WHERE owner='SUMMIT'
4 AND o.object_id IN (SELECT i.obj#
5 FROM ind$ i
6 WHERE BITAND(i.property,4) = 4);
OBJECT_NAME
----------------ORDERS_ID_IDX
1 row selected.

Rechercher des colonnes dans un index


L'interrogation suivante permet d'obtenir la liste de tous les index de l'utilisateur
SUMMIT et indique les tables et les colonnes sur lesquels les index sont construits :
SQL> SELECT index_name, table_owner, table_name, column_name
2 FROM dba_ind_columns
3 WHERE index_owner = 'SUMMIT'
4 ORDER BY index_name, column_position;
INDEX_NAME
TABLE_OWNER
TABLE_NAME
COLUMN_NAME
----------------------------- -----------------------EMPLOYEE_LAST_NAME.. SUMMIT
EMPLOYEE
LAST_NAME
ORDERS_ID_IDX
SUMMIT
ORDERS
ID
ORDERS_REGION_ID..
SUMMIT
ORDERS
REGION_ID
3 rows selected.

.....................................................................................................................................................
12-32
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

crer diffrents types d'index,


rorganiser les index,
supprimer des index,
obtenir des informations partir du dictionnaire
de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
12-33

Chapitre 12 : Grer les index


.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des performances
Tables/vues du dictionnaire
de donnes

Rfrence
CREATE_BITMAP_AREA_SIZE
Aucune
DBA_INDEXES
DBA_IND_COLUMNS
DBA_OBJECTS
IND$
INDEX_STATS
Commandes
CREATE INDEX
CREATE UNIQUE INDEX
CREATE BITMAP INDEX
CREATE INDEX ... REVERSE
ALTER INDEX ... STORAGE
ALTER INDEX ... INITRANS ... MAXTRANS
ALTER INDEX ... ALLOCATE EXTENT
ALTER INDEX ... DEALLOCATE UNUSED
ALTER INDEX ... REBUILD
ALTER INDEX ... REBUILD ... REVERSE
ALTER INDEX ... REBUILD ... NOREVERSE
ANALYZE INDEX ... VALIDATE STRUCTURE
DROP INDEX
Procdures et fonctions de package Aucune

.....................................................................................................................................................
12-34
Oracle DBA : Architecture et administration

13
.................................

Grer l'intgrit
des donnes

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre vous pourrez :

mettre en uvre les contraintes d'intgrit


des donnes,

grer les contraintes d'intgrit,


obtenir du dictionnaire de donnes des
informations sur les contraintes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
13-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Intgrit des donnes

Donnes

Dclencheur de
base de donnes

Contrainte
d'intgrit

Code d'application

Table

Copyright Oracle Corporation, 1999. Tous droits rservs.

Mthodes garantissant l'intgrit des donnes


L'intgrit des donnes garantit que les donnes d'une base de donnes respectent
certaines rgles. Vous disposez de trois mthodes principales pour garantir l'intgrit
des donnes :
code d'application,
dclencheurs de base de donnes,
contraintes d'intgrit dclaratives.
Le choix de la mthode utiliser pour appliquer ces rgles relve de la conception de
la base de donnes et incombe son concepteur. L'administrateur de base de donnes
est le premier concern par la mise en uvre de la mthode choisie par le concepteur
et par l'quilibrage entre le besoin de performances et l'intgrit des donnes.
Le code d'application peut tre mis en uvre sous forme de procdures stockes dans
la base de donnes ou sous forme d'applications excutes sur le client. Le prsent
chapitre porte sur l'utilisation des dclencheurs de base de donnes et sur les
contraintes d'intgrit.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-3

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Dclencheurs de base de donnes


Les dclencheurs de base de donnes sont des programmes PL/SQL qui s'excutent
lorsqu'un vnement donn, tel que l'insertion ou la mise jour d'une colonne, se
produit sur une table. Vous pouvez activer ou dsactiver les dclencheurs, c'est--dire
que vous pouvez les dfinir pour qu'ils s'excutent lorsque l'vnement se produit, ou
pour qu'ils ne s'excutent pas, mme s'ils sont dfinis. Les dclencheurs de base de
donnes ne sont gnralement crs que pour appliquer une rgle complexe ne
pouvant tre dfinie sous la forme d'une contrainte d'intgrit.
Remarque : les dclencheurs de base de donnes sont expliqus dans d'autres
cours Oracle.
Contraintes d'intgrit
Les contraintes d'intgrit constituent le mcanisme par excellence pour appliquer des
rgles, car :
elles amliorent les performances,
elles sont simples dclarer et modifier, dans la mesure o elles ncessitent
peu de code,
elles centralisent les rgles,
elles sont souples (actives ou dsactives),
elles sont entirement documentes dans le dictionnaire des donnes.
Les sections suivantes expliquent le fonctionnement des contraintes d'intgrit et leur
mise en uvre par le serveur Oracle.

.....................................................................................................................................................
13-4
Oracle DBA : Architecture et administration

Contraintes d'intgrit
.....................................................................................................................................................

Contraintes d'intgrit
Types de contrainte
Contrainte

Description

NOT NULL

Indique qu'une colonne ne peut contenir


aucune valeur NULL.

UNIQUE

Dfinit comme tant unique une colonne ou


un groupe de colonnes.

PRIMARY KEY

Dfinit une colonne ou un groupe de


colonnes comme cl primaire de la table.

FOREIGN KEY

Dfinit une colonne ou un groupe de


colonnes comme cl trangre dans une
contrainte d'intgrit rfrentielle.

CHECK

Dfinit une condition que chaque ligne de la


table doit satisfaire.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Types de contrainte
Comme le montre la diapositive, il existe cinq types de contrainte d'intgrit
dclarative.
Bien que les contraintes NOT NULL et CHECK ne ncessitent aucune attention
particulire de la part de l'administrateur de base de donnes, les contraintes de cl
primaire, de cl unique et de cl trangre doivent tre gres pour garantir une
disponibilit optimale et des performances acceptables.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-5

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Etats des contraintes


Disabled
Novalidate

Disabled
Validate

Enabled
Novalidate

Enabled
Validate

=
=
Nouvelles
donnes

Donnes existantes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Etats des contraintes


Une contrainte d'intgrit peut avoir l'un des tats suivants :
Disabled Novalidate,
Disabled Validate,
Enabled Novalidate ou Enforced,
Enabled Validate.
Disabled Novalidate Une contrainte ayant l'tat Disabled Novalidate n'est pas
vrifie, bien que la dfinition de la contrainte existe toujours dans le dictionnaire
de donnes. Les donnes de la table et les nouvelles donnes entres ou mises jour
peuvent ne pas tre conformes aux rgles dfinies par la contrainte. Il s'agit de l'tat
normal d'une contrainte de traitement de transaction "online".
Disabled Validate Lorsqu'une contrainte a cet tat, la modification des colonnes
auxquelles s'applique la contrainte n'est pas autorise. En outre, l'index de la contrainte
est supprim et la contrainte est dsactive.
Pour une contrainte unique, cet tat permet de charger efficacement les donnes d'une
table non partitionne dans une table partitionne en utilisant l'option EXCHANGE
PARTITION de la commande ALTER TABLE.
Remarque : les tables partitionnes ne sont pas tudies dans ce cours.

.....................................................................................................................................................
13-6
Oracle DBA : Architecture et administration

Contraintes d'intgrit
.....................................................................................................................................................

Etats des contraintes (suite)


Enabled Novalidate (Enforced) Cet tat de contrainte interdit l'entre des donnes
qui violent les rgles de la contrainte. Toutefois, la table peut contenir des donnes
non valides, c'est--dire qui violent la contrainte. En gnral, il s'agit d'un tat
intermdiaire qui garantit que toutes les nouvelles donnes ont t vrifies avant
d'tre acceptes dans la table.
Enabled Validate Lorsqu'une contrainte a cet tat, cela implique que toutes les
donnes de la table sont conformes la contrainte. En outre, cet tat empche d'entrer
des donnes non valides dans la table. Il s'agit de l'tat normal d'une contrainte de
traitement de transaction "online".
Lorsqu'une contrainte passe de l'tat Disabled l'tat Enabled Validate, la table est
verrouille et la conformit de toutes les donnes de la table est vrifie. Cette
situation peut provoquer le report de l'excution d'oprations LMD, telles que le
chargement de donnes. Il est donc conseill de faire d'abord passer la contrainte de
l'tat Disabled l'tat Enable Novalidate, puis l'tat Enable Validate.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-7

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Contraintes diffres

Instruction LMD

Vrification des contraintes


non diffres

VALIDATION
Vrification des
contraintes diffres

Copyright Oracle Corporation, 1999. Tous droits rservs.

Contraintes diffres
Vous pouvez dfinir le point d'une transaction partir duquel une contrainte sera
vrifie en dfinissant la contrainte de manire approprie.
Contraintes non diffres ou immdiates
Les contraintes non diffres, galement appeles contraintes immdiates, sont
appliques la fin de chaque instruction LMD. Une violation de contrainte annule
la transaction. Si une contrainte provoque une action, telle qu'une suppression en
cascade, on considre que l'action fait partie de l'instruction qui l'a dclenche.
Une contrainte dfinie comme ne pouvant tre diffre ne peut pas tre modifie
pour tre applique la fin d'une transaction.
Contraintes diffres
Les contraintes diffres ne sont vrifies que lorsqu'une transaction est valide.
Si une violation de contrainte est dtecte lors de la validation, l'ensemble de la
transaction est annul. Ces contraintes s'avrent trs utiles lorsque les lignes parent
et les lignes enfant d'une relation de cl trangre sont entres simultanment, comme
dans le cas d'un systme de traitement des commandes o les articles et la commande
sont entrs simultanment.

.....................................................................................................................................................
13-8
Oracle DBA : Architecture et administration

Contraintes d'intgrit
.....................................................................................................................................................

Contraintes diffres (suite)


Pour qu'une contrainte puisse tre diffre, elle doit tre dfinie lors de sa cration
comme pouvant tre diffre. Une contrainte dfinie comme pouvant tre diffre peut
tre indique comme suit :
Initially immediate : indique qu'il s'agit par dfaut d'une contrainte immdiate, sauf
indication contraire explicite.
Initially deferred : indique que, par dfaut, la contrainte ne doit tre applique qu'
la fin de la transaction.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-9

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Dfinir des contraintes comme tant


immdiates ou diffres
Utilisez la commande ALTER SESSION ou SET
CONSTRAINTS pour dfinir le mode de la contrainte.

ALTER SESSION
SET CONSTRAINT[S] =
{IMMEDIATE|DEFERRED|DEFAULT};

Copyright Oracle Corporation, 1999. Tous droits rservs.

Modifier l'application des contraintes


Bien que le mode d'application par dfaut d'une contrainte pouvant tre diffre soit
dfini et stock dans le dictionnaire de donnes, les applications peuvent modifier la
contrainte pour qu'elle fonctionne en diffr ou en immdiat. Pour cela, il faut utiliser
la commande ALTER SESSION ou SET CONSTRAINT :
ALTER SESSION
SET CONSTRAINT[S] =
{IMMEDIATE|DEFERRED|DEFAULT}
SET CONSTRAINT[S]
{constraint [, constraint ]...
|ALL
}
{IMMEDIATE|DEFERRED}

.....................................................................................................................................................
13-10
Oracle DBA : Architecture et administration

Contraintes d'intgrit
.....................................................................................................................................................

Cl primaire et cl unique
Oui
Cl active ?

Un index
Oui
est-il disponible ?
Utiliser un
index existant

Non

La contrainte
peut-elle tre
diffre ?
Non
Ne pas utiliser
l'index

Oui

Non
Crer un index
unique

Copyright Oracle Corporation, 1999. Tous droits rservs.

Crer un index
non unique

Appliquer des contraintes de cl primaire et de cl unique


Les contraintes de cl primaire et de cl unique sont appliques en utilisant des index.
Vous pouvez contrler l'emplacement et le type de l'index utilis pour appliquer ces
contraintes.
Le serveur Oracle utilise la procdure suivante pour mettre en uvre les contraintes
de cl primaire et de cl unique :
Si la contrainte est dsactive, aucun index n'est ncessaire.
Si la contrainte est active et que les colonnes de la contrainte forment la premire
partie d'un index, l'index est utilis pour appliquer la contrainte.
Si la contrainte est active et que les colonnes de la contrainte ne correspondent
pas au dbut d'un index, un index portant le nom de la contrainte est cr selon
les rgles suivantes :
S'il s'agit d'une cl pouvant tre diffre, un index non unique est cr dans
la colonne de la cl.
S'il s'agit d'une cl ne pouvant pas tre diffre, un index unique est cr.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-11

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Considrations sur les cls trangres


Action souhaite

Solution

Supprimer la table mre

Contraintes en cascade

Tronquer la table mre

Dsactiver ou supprimer la
cl trangre

Supprimer un
tablespace contenant
la table mre

Utiliser la clause CASCADE


CONSTRAINTS

Eviter de verrouiller la
table enfant lors
d'oprations LMD dans
la table mre

Crer un index sur la cl trangre

Excuter des oprations


LMD dans la table enfant

Mettre en ligne le tablespace


contenant l'index de la cl parent

Copyright Oracle Corporation, 1999. Tous droits rservs.

Remarques sur l'utilisation des contraintes de cls trangres


Vous devez tenir compte de plusieurs lments pour grer des tables dans une relation
de cl trangre.
LDD impliquant la table mre
La cl trangre doit tre supprime avant la table mre. Utilisez la commande
suivante pour excuter les deux actions l'aide d'une seule instruction :
DROP TABLE table CASCADE CONSTRAINTS

Vous ne pouvez pas tronquer la table mre sans supprimer ou dsactiver la cl


trangre.
Vous devez supprimer la cl trangre pour pouvoir supprimer le tablespace
contenant la table mre. Pour ce faire, utilisez la commande suivante :
DROP TABLESPACE tablespace INCLUDING CONTENTS
CASCADE CONSTRAINTS

.....................................................................................................................................................
13-12
Oracle DBA : Architecture et administration

Contraintes d'intgrit
.....................................................................................................................................................

Oprations LMD sur les tables dans une relation de cl trangre


Si l'option DELETE CASCADE n'est pas utilise lors de la suppression des lignes de
la table mre, le serveur Oracle doit vrifier dans la table enfant qu'il n'y a pas de ligne
contenant la cl trangre correspondante. De mme, la cl parent ne peut tre mise
jour que si l'ancienne cl ne figure dans aucune ligne enfant. Si la cl trangre de la
table enfant ne contient pas d'index, le serveur Oracle verrouille la table enfant et
interdit les modifications pour garantir l'intgrit rfrentielle. Si la table contient un
index, l'intgrit rfrentielle est conserve en verrouillant les entres d'index et en
vitant d'utiliser des verrous plus restrictifs sur la table enfant. Si les deux tables
doivent tre mises jour simultanment par des transactions diffrentes, crez un
index dans les colonnes de la cl trangre.
Lorsque les donnes sont insres ou que la colonne de la cl trangre de la table
enfant est mise jour, le serveur Oracle vrifie l'index de la table mre utilise pour
appliquer la cl rfrence. Par consquent, l'opration n'aboutit que si le tablespace
contenant l'index est "online". Notez que le tablespace contenant la table mre ne
doit pas ncessairement tre "online" pour excuter des oprations LMD sur la
table enfant.
Remarque : outre les avantages dcrits ci-dessus, il est recommand de crer des
index dans les colonnes de la cl trangre, car cela apporte d'autres avantages en
matire de performances.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-13

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Mettre en uvre des contraintes


Dfinir les contraintes lors de
la cration d'une table
CREATE TABLE summit.employee(
id NUMBER(7)
CONSTRAINT employee_id_pk PRIMARY KEY
DEFERRABLE
USING INDEX
STORAGE(INITIAL 100K NEXT 100K)
TABLESPACE indx,
last_name VARCHAR2(25)
CONSTRAINT employee_last_name_nn NOT NULL,
dept_id NUMBER(7))
TABLESPACE data;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dfinir des contraintes lors de la cration d'une table


Vous pouvez dfinir une contrainte lorsque vous crez une table ou lorsque vous
la modifiez.
Syntaxe : contrainte de colonne
Lors de la cration de la table, vous pouvez crer la contrainte en utilisant la syntaxe
suivante pour dfinir la colonne :
column datatype [CONSTRAINT constraint]
in_line_constraint
[defer_spec]

.....................................................................................................................................................
13-14
Oracle DBA : Architecture et administration

Mettre en uvre des contraintes


.....................................................................................................................................................

Syntaxe : contrainte de colonne (suite)


in_line_constraint :==
{[NOT] NULL
|PRIMARY KEY [USING INDEX index_clause]
|UNIQUE
[USING INDEX index_clause]
|REFERENCES [schema.]table [(column)]
[ON DELETE CASCADE]
|CHECK
(condition)
}
defer_spec :==
[NOT DEFERRABLE|DEFERRABLE [INITIALLY {IMMEDIATE|DEFERRED}]
]
[DISABLE|ENABLE [VALIDATE|NOVALIDATE]]

CONSTRAINT

USING INDEX

DEFERRABLE

NOT DEFERRABLE

identifie la contrainte d'intgrit par le nom


constraint stock dans le dictionnaire de
donnes,
indique que les paramtres dfinis dans
index-clause doivent tre utiliss pour
l'index auquel fait appel le serveur
Oracle afin d'appliquer une contrainte
de cl unique ou primaire (l'index porte
le mme nom que la contrainte),
indique que la vrification de la
contrainte peut tre reporte la fin de
la transaction l'aide de la commande
SET CONSTRAINT(S),
indique que la contrainte est vrifie
la fin de chaque instruction LMD
(une contrainte NOT DEFERRABLE
ne peut pas tre diffre par les sessions
ou par les transactions. NOT
DEFERRABLE est utilis par dfaut).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-15

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Syntaxe : contrainte de colonne (suite)


INITIALLY IMMEDIATE
indique qu'au dbut de chaque
transaction, la contrainte doit, par
dfaut, tre vrifie la fin de chaque
instruction LMD (si aucune clause
INITIALLY n'est dfinie, INITIALLY
IMMEDIATE est utilis par dfaut),
INITIALLY DEFERRED
indique qu'il s'agit d'une contrainte
DEFERRABLE et que, par dfaut, elle
n'est vrifie qu' la fin de chaque
transaction,
dsactive la contrainte d'intgrit
DISABLE
(lorsqu'une contrainte d'intgrit est
dsactive, le serveur Oracle ne
l'applique pas).

.....................................................................................................................................................
13-16
Oracle DBA : Architecture et administration

Mettre en uvre des contraintes


.....................................................................................................................................................

Syntaxe : contrainte de table


Vous pouvez galement crer la contrainte de table l'aide de la syntaxe suivante :
[CONSTRAINT constraint]
out_of_line_constraint
out_of_line_constraint :==
{PRIMARY KEY (column [, column ]... )
[USING INDEX index_clause]
|UNIQUE
(column [, column ]... )
[USING INDEX index_clause]
|FOREIGN KEY (column [, column ]... )
REFERENCES [schema.]table [(column [, column ]... )]
[ON DELETE CASCADE]
|CHECK
(condition)
}
[defer_spec]

Remarque :
Il est recommand d'adopter une convention d'appellation standard pour les
contraintes, notamment avec les contraintes CHECK, puisque vous pouvez
crer plusieurs fois la mme avec des noms diffrents.
Dans les cas suivants, vous devez utiliser des contraintes de table :
lorsqu'une contrainte s'applique plusieurs colonnes,
lorsqu'une table est modifie pour ajouter des contraintes autres que
NOT NULL.
Dfinir des contraintes aprs la cration d'une table : exemple
ALTER TABLE summit.employee
ADD(CONSTRAINT employee_dept_id_fk FOREIGN KEY(dept_id)
REFERENCES summit.department(id)
DEFERRABLE INITIALLY DEFERRED);

Remarque : la clause EXCEPTIONS, dcrite dans la section "Activer les contraintes"


du prsent chapitre, peut tre utilise pour identifier les lignes qui violent une
contrainte ajoute l'aide de la commande ALTER TABLE.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-17

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Instructions de dfinition des contraintes

Contraintes primaires et uniques :


Placez les index dans des tablespaces
distincts.
Utilisez des index non uniques si les
chargements en masse sont frquents.

Cls trangres d'autorfrencement :


Dfinissez ou activez les cls trangres aprs
le chargement initial.
Diffrez la vrification des contraintes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Instructions de dfinition des contraintes


Tenez compte des points suivants pour dfinir des contraintes :
Placez les index utiliss pour appliquer les contraintes de cl primaire et de cl
unique dans un tablespace diffrent de celui de la table. Pour ce faire, vous pouvez
soit dfinir la clause USING INDEX, soit crer la table et l'index, puis modifier la
table pour ajouter ou activer la contrainte.
Si les donnes sont souvent charges en masse dans une table, il est prfrable de
dsactiver les contraintes, de charger les donnes, puis de ractiver les contraintes.
Si vous utilisez un index unique pour appliquer une contrainte de cl primaire ou
de cl unique, cet index doit tre supprim lorsque vous dsactivez la contrainte.
Dans une telle situation, vous pouvez amliorer les performances en utilisant un
index non unique pour appliquer des contraintes de cl primaire ou de cl unique.
Pour ce faire, crez une cl pouvant tre diffre, ou crez l'index avant de dfinir
ou d'activer la cl.
Si une table contient une cl trangre d'autorfrencement, utilisez l'une des
mthodes suivantes pour charger les donnes :
Dfinissez ou activez la cl trangre aprs le premier chargement de donnes.
Dfinissez la contrainte comme pouvant tre diffre.
La seconde mthode s'avre trs utile lorsque des donnes sont charges
frquemment.

.....................................................................................................................................................
13-18
Oracle DBA : Architecture et administration

Grer les contraintes


.....................................................................................................................................................

Grer les contraintes


Activer les contraintes

Enable
NOVALIDATE

Ne verrouille pas la
table.

Les cls primaires et


uniques doivent utiliser
des index non uniques.

ALTER
ALTER TABLE
TABLE summit.department
summit.department
ENABLE
ENABLE NOVALIDATE
NOVALIDATE CONSTRAINT
CONSTRAINT dept_pk;
dept_pk;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Activer les contraintes


Une contrainte dsactive peut tre active de deux manires : l'aide de l'option
enable NOVALIDATE ou enable VALIDATE.
Enable NOVALIDATE
L'activation d'une contrainte de non-validation est beaucoup plus rapide que
l'activation d'une contrainte de validation, car si la contrainte peut tre diffre, il n'y
a pas de dtection de violation de contrainte sur les donnes existantes. Si vous utilisez
cette option pour activer une contrainte, il n'est pas ncessaire de verrouiller la table.
Utilisez cette mthode lorsque de nombreuses oprations LMD sont excutes sur la
table, comme c'est le cas dans un environnement OLTP.
Syntaxe
Utilisez la commande suivante pour activer une contrainte de non-validation :
ALTER TABLE [ schema. ] table
ENABLE NOVALIDATE {CONSTRAINT constraint
| PRIMARY KEY
| UNIQUE ( column [, column ] ... ) }
[ USING INDEX index_clause ]

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-19

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Restrictions
La clause USING INDEX ne s'applique qu'aux contraintes de cl primaire ou de cl
unique cres comme contraintes pouvant tre diffres, et seulement si l'une des
conditions suivantes est vraie :
les contraintes n'ont pas t actives lors de leur cration,
les contraintes ont t dsactives et l'index a t supprim.
Toutefois, si vous devez crer l'index, cette mthode d'activation de contrainte ne
procure aucun avantage particulier par rapport la mthode d'activation de la
validation, car le serveur Oracle verrouille la table pour crer l'index.
Remarque : la dsactivation des contraintes est dcrite dans le cours Introduction
to SQL and PL/SQL.

.....................................................................................................................................................
13-20
Oracle DBA : Architecture et administration

Grer les contraintes


.....................................................................................................................................................

Activer les contraintes

Enable
VALIDATE

Verrouille la table.

Ncessite des donnes


de table valides.

Peut utiliser des index


uniques ou non uniques.

ALTER
ALTER TABLE
TABLE summit.employee
summit.employee
ENABLE
ENABLE VALIDATE
VALIDATE CONSTRAINT
CONSTRAINT emp_dept_fk;
emp_dept_fk;

Copyright Oracle Corporation, 1999. Tous droits rservs.

Enable VALIDATE
L'activation d'une contrainte de validation dclenche une dtection de violation de
contrainte sur les donnes existantes. Cette action est effectue par dfaut lorsqu'une
contrainte est active. Si la dtection est lance alors que la contrainte est dsactive,
les effets sont les suivants :
La table est verrouille et aucune modification n'est applique tant que la
validation des donnes existantes n'est pas termine.
Le serveur Oracle cre un index s'il n'en existe pas dans les colonnes d'index. Il
cre un index unique lors de l'activation d'une contrainte de cl primaire ou de cl
unique ne pouvant tre diffre. Il cre un index non unique pour une contrainte
de cl primaire ou de cl unique pouvant tre diffre.
Si cette commande est excute lorsqu'une contrainte est en vigueur, la table n'a pas
besoin d'tre verrouille durant la validation. La contrainte applique vrifie qu'aucune
donne insre lors de la validation ne viole ces rgles. Les avantages sont les
suivants :
Toutes les contraintes sont actives simultanment.
Chaque contrainte est excute en interne et en parallle.
Les oprations simultanes sur la table sont rendues possibles.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-21

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Syntaxe
Utilisez la commande suivante pour activer une contrainte de validation :
ALTER TABLE [ schema. ] table
ENABLE [ VALIDATE ]{CONSTRAINT constraint
| PRIMARY KEY
| UNIQUE ( column [, column ] ... ) }
[ USING INDEX index_clause ]
[ EXCEPTIONS INTO [ schema. ] table ]

Remarque :
VALIDATE est l'option par dfaut. Il est inutile de la dfinir pour activer une
contrainte dsactive.
Si des donnes de la table violent la contrainte, l'instruction est annule et la
contrainte reste dsactive.
L'utilisation de la clause EXCEPTIONS est dcrite dans la section suivante.

.....................................................................................................................................................
13-22
Oracle DBA : Architecture et administration

Grer les contraintes


.....................................................................................................................................................

Utiliser la table EXCEPTIONS

1. Crez la table EXCEPTIONS (utlexcpt.sql).


2. Excutez la commande ALTER TABLE avec
la clause EXCEPTIONS.
3. Utilisez l'interrogation imbrique sur la table
EXCEPTIONS pour rechercher les lignes
contenant des valeurs non valides.
4. Rectifiez les erreurs.
5. Rexcutez la commande ALTER TABLE pour
activer la contrainte.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Identifier une violation de contrainte due aux lignes


La clause EXCEPTIONS permet d'identifier les lignes qui violent une contrainte
active. Pour identifier les violations de contrainte, les rectifier et ractiver une
contrainte, procdez comme suit :
1 Si la table d'exceptions n'a pas encore t cre, excutez le script utlexcpt.sql
du rpertoire ADMIN :
SQL> @?/rdbms/admin/utlexcpt
Statement processed.
SQL> DESCRIBE exceptions
Name
-------------------------ROW_ID
OWNER
TABLE_NAME
CONSTRAINT

Null?
Type
------- ---------------UNDEFINED
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(30)

Sous Windows NT, ce script se trouve dans le rpertoire


%ORACLE_HOME%\RDBMS\ADMIN.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-23

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Identifier une violation de contrainte due aux lignes (suite)


2 Excutez la commande ALTER TABLE en utilisant la clause EXCEPTIONS :
SQL> ALTER TABLE summit.employee
2 ENABLE VALIDATE CONSTRAINT employee_dept_id_fk
3 EXCEPTIONS INTO system.exceptions;
ALTER TABLE summit.employee
*
ORA-02298: cannot enable (summit.EMP_DEPT_FK) - parent keys not
found

Si la table d'exceptions n'est pas qualifie avec le nom du propritaire,


elle doit appartenir au propritaire de la table en cours de modification.
Des lignes sont insres dans la table d'exceptions. Si vous rexcutez la
commande, tronquez la table d'exceptions pour supprimer toutes les
lignes existantes.
3 Identifiez les donnes non valides en lanant une sous-interrogation sur la table
EXCEPTIONS :
SQL> SELECT rowid, id, last_name, dept_id
2 FROM summit.employee
3 WHERE ROWID in (SELECT row_id
4 FROM exceptions)
5 FOR UPDATE;
ROWID
ID
LAST_NAME
------------------------------------AAAAeyAADAAAAA1AAA
1003
Pirie
1 row selected.

DEPT_ID
-------50

4 Corrigez les erreurs de donnes :


SQL> UPDATE summit.employee
2 SET id=10
3 WHERE rowid='AAAAeyAADAAAAA1AAA';
1 row processed.
SQL> COMMIT;
Statement processed.

.....................................................................................................................................................
13-24
Oracle DBA : Architecture et administration

Grer les contraintes


.....................................................................................................................................................

Identifier une violation de contrainte due aux lignes (suite)


5 Tronquez la table exceptions et ractivez la contrainte :
SQL> TRUNCATE TABLE exceptions;
Statement processed.
SQL> ALTER TABLE summit.employee
2 ENABLE VALIDATE CONSTRAINT employee_dept_id_fk
3 EXCEPTIONS INTO system.exceptions;
Statement processed.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-25

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Obtenir des informations sur les contraintes


Obtenir des informations sur les contraintes
DBA_CONSTRAINTS

DBA_CONS_COLUMNS

OWNER
CONSTRAINT_NAME
CONSTRAINT_TYPE
TABLE_NAME
SEARCH_CONDITION
R_OWNER
R_CONSTRAINT_NAME
DELETE_RULE
STATUS
DEFERRABLE
DEFERRED
VALIDATED
GENERATED
BAD
RELY
LAST_CHANGE

OWNER
CONSTRAINT_NAME
TABLE_NAME
COLUMN_NAME
POSITION

Copyright Oracle Corporation, 1999. Tous droits rservs.

Contraintes et statut
Lancez l'interrogation suivante pour obtenir le nom, le type et le statut de toutes les
contraintes de la table EMPLOYEE de l'utilisateur SUMMIT :
SQL> SELECT constraint_name, constraint_type, deferrable,
2

deferred, validated

FROM dba_constraints

WHERE owner='SUMMIT'

AND table_name='EMPLOYEE';

CONSTRAINT_NAME C

DEFERRABLE

DEFERRED

VALIDATED

---------------- -

---------------

-----------

----------

EMPLOYEE_DEPT.. R

DEFERRABLE

DEFERRED

VALIDATED

EMPLOYEE_ID_PK

DEFERRABLE

IMMEDIATE

VALIDATED

SYS_C00565

NOT DEFERRABLE

IMMEDIATE

VALIDATED

3 rows selected.

.....................................................................................................................................................
13-26
Oracle DBA : Architecture et administration

Obtenir des informations sur les contraintes


.....................................................................................................................................................

Contraintes et statut (suite)


Le tableau suivant montre les colonnes non explicites de la vue
DBA_CONSTRAINTS.
Nom

Description

CONSTRAINT_TYPE

Le type de la contrainte est P, U, R ou C selon qu'il s'agit


respectivement d'une contrainte de cl primaire, de cl
unique, de cl trangre ou dune contrainte CHECK.
Les contraintes NOT NULL
sont stockes sous forme de contraintes CHECK.

SEARCH_CONDITION

Indique la condition dfinie pour une contrainte CHECK.

R_OWNER
R_CONSTRAINT_NAME

Indique le propritaire et le nom de la contrainte rfrence


pour les cls trangres.

GENERATED

Indique si le nom de contrainte a t gnr par le systme


(les valeurs acceptes sont "USER NAME" et
"GENERATED NAME").

BAD

Indique que la contrainte doit tre rcrite pour viter


certaines situations, telles que les problmes de
compatibilit avec l'an 2000 (ceci peut arriver, car les
versions antrieures d'Oracle autorisaient les annes
2 chiffres dans les contraintes CHECK).

RELY

Si cet indicateur est dfini, il est utilis dans l'optimiseur.

LAST_CHANGE

Date de la dernire activation ou dsactivation de la


contrainte.

Colonnes des contraintes


Pour obtenir les colonnes des contraintes de la table EMPLOYEE de l'utilisateur
SUMMIT, lancez l'interrogation suivante :
SQL>
2
3
4
5
6
7
8

SELECT c.constraint_name, c.constraint_type,


cc.column_name
FROM dba_constraints c, dba_cons_columns cc
WHERE c.owner='SUMMIT'
AND c.table_name='EMPLOYEE'
AND c.owner = cc.owner
AND c.constraint_name = cc.constraint_name
ORDER BY cc.position;

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-27

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Colonnes des contraintes (suite)


CONSTRAINT_NAME
--------------------EMPLOYEE_DEPT...
EMPLOYEE_ID_PK
SYS_C00565
3 rows selected.

C
R
P
C

COLUMN_NAME
--------------DEPT_ID
ID
LAST_NAME

Rechercher les relations entre les cls primaires et les cls trangres
Pour obtenir les cls trangres de la table EMPLOYEE de l'utilisateur SUMMIT et
les contraintes parent, lancez l'interrogation suivante :
SQL> SELECT c.constraint_name AS "Foreign Key",
2 p.constraint_name AS "Referenced Key",
3 p.constraint_type,
4 p.owner,
5 p.table_name
6 FROM dba_constraints c, dba_constraints p
7 WHERE c.owner='SUMMIT'
8 AND c.table_name='EMPLOYEE'
9 AND c.constraint_type='R'
10 AND c.r_owner=p.owner
11 AND c.r_constraint_name = p.constraint_name;
Foreign Key
Referenced Key
C OWNER
TABLE_NAME
------------------------- ---------------------EMPLOYEE_DEPT.. DEPT_PK
P SUMMIT
DEPARTMENT
1 row selected.

.....................................................................................................................................................
13-28
Oracle DBA : Architecture et administration

Synthse
.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

mettre en uvre l'intgrit des donnes,


utiliser une stratgie approprie de cration
et de gestion des contraintes,
obtenir des informations du dictionnaire de
donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
13-29

Chapitre 13 : Grer l'intgrit des donnes


.....................................................................................................................................................

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des performances
Vues du dictionnaire de donnes
Commandes

Procdures et fonctions de
package

Rfrence
Aucun
Aucune
DBA_CONSTRAINTS
DBA_CONS_COLUMNS
CREATE TABLE ... CONSTRAINT
ALTER TABLE ADD CONSTRAINT ...
EXCEPTIONS INTO
ALTER TABLE ... DISABLE CONSTRAINT
ALTER TABLE ... ENABLE NOVALIDATE
CONSTRAINT
ALTER TABLE ... ENABLE VALIDATE
CONSTRAINT ... EXCEPTIONS INTO
Aucune

.....................................................................................................................................................
13-30
Oracle DBA : Architecture et administration

14
.................................

Charger les donnes

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Objectifs
Objectifs

A la fin de ce chapitre vous pourrez :

charger les donnes en utilisant l'insertion par


chargement direct,

charger les donnes dans les tables Oracle l'aide


de l'utilitaire SQL*Loader :
par chemin conventionnel,
par chemin direct.

Copyright Oracle Corporation, 1999. Tous droits rservs.

.....................................................................................................................................................
14-2
Oracle DBA : Architecture et administration

Prsentation
.....................................................................................................................................................

Prsentation
Prsentation
Autres
applications

SQL*Loader

Export

Base de
donnes
Oracle

Import
Base de
donnes
Oracle

Insertion par chargement direct

Copyright Oracle Corporation, 1999. Tous droits rservs.

Charger les donnes


Vous pouvez procder de diffrentes manires pour charger les donnes dans les
tables d'une base de donnes Oracle. Le prsent chapitre porte sur les mthodes
de chargement suivantes :
insertion par chargement direct,
utilitaire SQL*Loader,
utilitaires Export et Import.
Insertion par chargement direct
Utilisez la mthode d'insertion par chargement direct pour copier les donnes d'une
table vers une autre au sein d'une mme base de donnes. Cette mthode acclre les
oprations d'insertion en passant outre le cache de tampons (buffer cache) et en
crivant directement les donnes dans les fichiers de donnes.
Utilitaire SQL*Loader
SQL*Loader est un utilitaire qui permet de charger des donnes de fichiers externes
dans des tables Oracle. Il offre un moyen de migrer des donnes partir d'autres
systmes vers la base de donnes Oracle.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-3

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Utilitaires Export et Import


L'utilitaire Export permet aux utilisateurs d'extraire des informations et des donnes
du dictionnaire de donnes d'une base de donnes Oracle et de les transfrer vers un
fichier du systme d'exploitation au format binaire Oracle. Les fichiers gnrs par
l'utilitaire Export peuvent tre lus par l'utilitaire Import dans la mme base de donnes
Oracle ou dans une autre base de donnes Oracle. Les utilitaires Export et Import sont
dcrits dans le chapitre suivant.

.....................................................................................................................................................
14-4
Oracle DBA : Architecture et administration

Charger des donnes l'aide de la mthode d'insertion par chargement direct


.....................................................................................................................................................

Charger des donnes l'aide de la mthode d'insertion


par chargement direct
Utiliser l'insertion par chargement direct
INSERT
INSERT /*+APPEND
/*+APPEND */
*/ INTO
INTO scott.emp
scott.emp
NOLOGGING
NOLOGGING
SELECT
SELECT ** FROM
FROM scott.old_emp;
scott.old_emp;
Processus
serveur

Table EMP

Bloc utilis
Espace libre aprs suppression

Repre high-water mark


Blocs utiliss par les lignes insres

Copyright Oracle Corporation, 1999. Tous droits rservs.

Syntaxe
L'insertion par chargement direct peut tre excute en utilisant le conseil (hint)
APPEND, comme indiqu dans la commande suivante :
INSERT /*+APPEND */ INTO [ schema. ] table
[ [NO]LOGGING ]
sub-query;

o :

schema
table
sub-query

correspond au propritaire de la table,


est le nom de la table,
est la sous-interrogation qui permet
de slectionner les colonnes et les
lignes insrer.
Les insertions par chargement direct ne sont possibles qu'en utilisant la commande
INSERT INTO SELECT. La commande INSERT INTO VALUES ne permet pas de les
excuter. L'insertion par chargement direct peut tre utilise tant dans les tables
partitionnes que dans celles non partitionnes. Ce type d'insertion gre les index et
applique toutes les contraintes actives. Il permet galement d'autres utilisateurs de
modifier simultanment d'autres lignes de la table.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-5

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Mode LOGGING
Lorsque vous effectuez une insertion l'aide de l'option LOGGING (option par
dfaut), l'opration gnre des entres de journalisation (redo log entries), ce qui
permet de rcuprer toutes les donnes en cas d'incident.
Si vous utilisez l'option NOLOGGING, les modifications apportes aux donnes ne
seront pas enregistres dans le tampon de journalisation (redo log buffer). Toutefois,
un nombre minimal d'informations de journalisation est gnr lorsque l'opration met
jour le dictionnaire de donnes. Le mode NOLOGGING est utilis si l'attribut
correspondant a t affect la table.
Si plusieurs modifications "online" des donnes de la table sont susceptibles de se
produire simultanment, il est conseill de dfinir l'attribut NOLOGGING avant de
charger les donnes et de rinitialiser l'attribut en indiquant LOGGING une fois le
chargement des donnes termin.
Autres considrations
L'insertion par chargement direct des donnes permet d'autres transactions de
modifier la table simultanment.
Toutes les donnes insres l'aide de cette mthode sont charges au-dessus du
repre high-water mark. Si la table contient un grand nombre de blocs dont des lignes
ont t supprimes, de l'espace peut tre perdu et le balayage complet de la table peut
tre plus long.

.....................................................................................................................................................
14-6
Oracle DBA : Architecture et administration

Charger des donnes l'aide de la mthode d'insertion par chargement direct


.....................................................................................................................................................

Insertions par chargement


direct en parallle
ALTER
ALTER SESSION
SESSION ENABLE
ENABLE PARALLEL
PARALLEL DML;
DML;
INSERT
/*+PARALLEL(scott.emp,2)
INSERT /*+PARALLEL(scott.emp,2) */
*/
INTO
scott.emp
NOLOGGING
INTO scott.emp NOLOGGING
SELECT
SELECT ** FROM
FROM scott.old_emp;
scott.old_emp;
Processus
esclave

Processus
esclave

Table EMP

Bloc utilis
Espace libre aprs suppression

Repre high-water mark


Segments temporaires

Copyright Oracle Corporation, 1999. Tous droits rservs.

Insertions par chargement direct en parallle


Vous pouvez effectuer des insertions par chargement direct en parallle en procdant
de l'une des manires suivantes :
l'aide du conseil PARALLEL dans l'instruction INSERT, comme indiqu
dans l'exemple,
en crant la table ou en la modifiant pour dfinir la clause PARALLEL.
Lorsque vous effectuez des insertions par chargement direct en parallle, le serveur
Oracle utilise plusieurs processus, appels processus esclaves d'interrogation en
parallle, pour insrer les donnes dans la table. Des segments temporaires sont
allous pour stocker les donnes insres par chaque processus esclave. Lorsque la
transaction est valide, les extents (ensembles de blocs contigus) de chaque segment
sont intgrs la table dans laquelle les enregistrements sont insrs.
Remarque :
Vous devez excuter la commande LMD ALTER SESSION ENABLE
PARALLEL au dbut de la transaction.
Un objet modifi par insertion par chargement direct en parallle ne peut pas tre
interrog ou modifi de nouveau dans la mme transaction.
Pour plus d'informations sur les insertions par chargement direct en parallle, reportezvous Oracle8i Reference, "Parallel Execution".

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-7

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Charger les donnes l'aide de l'utilitaire SQL*Loader


SQL*Loader
Fichier de
contrle

Fichier de
paramtres
(facultatif)
Rebut

Fichiers de
donnes

SQL*Loader
Traitement des champs
Accept
Slection d'enregistrement
Slectionn

Fichier
de rebut
(facultatif)

Rejet

Fichier
enreg.
refuss

Serveur Oracle

Rejet
Insr
Fichier
journal
Fichiers de
base de donnes

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fonctions de l'utilitaire SQL*Loader


L'utilitaire SQL*Loader charge les donnes des fichiers externes dans les tables d'une
base de donnes Oracle. Caractristiques de l'utilitaire SQL*Loader :
Un ou plusieurs fichiers en entre peuvent tre utiliss.
Plusieurs enregistrements en entre peuvent tre combins pour former un
enregistrement de chargement logique.
Les fichiers en entre peuvent avoir une longueur fixe ou variable.
Les donnes en entre peuvent avoir n'importe quel format : caractre, binaire,
dcimal condens, date et dcimal non condens.
Les donnes peuvent tre charges partir de diffrents types de support, tels
que des disques, des bandes ou des canaux nomms.
Les donnes peuvent tre charges simultanment dans plusieurs tables.
Des options sont disponibles pour ajouter des donnes aux tables ou remplacer
des donnes existantes.
Les fonctions SQL peuvent tre appliques aux donnes en entre avant le
stockage de la ligne dans la base de donnes.
Les valeurs de colonne peuvent tre gnres automatiquement en fonction de
rgles. Par exemple, une valeur de cl squentielle peut tre gnre et stocke
dans une colonne.
Les donnes peuvent tre charges directement dans la table sans utiliser le cache
de tampons de la base de donnes.

.....................................................................................................................................................
14-8
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Fichiers utiliss par l'utilitaire SQL*Loader


L'utilitaire SQL*Loader utilise les fichiers suivants :
Fichier de contrle : dfinit le format d'entre, les tables de sortie et les conditions
facultatives permettant de ne charger qu'une partie des enregistrements de fichiers
de donnes en entre.
Fichiers de donnes : contiennent les donnes au format dfini dans le fichier
de contrle.
Fichier de paramtres : fichier facultatif permettant de dfinir les paramtres
de ligne de commande du chargement des donnes.
Fichier journal : cr par l'utilitaire SQL*Loader et contenant l'enregistrement
du chargement des donnes.
Fichier des enregistrements refuss : utilis par l'utilitaire pour crire les
enregistrements rejets lors du chargement des donnes (cette situation peut
se produire lorsque l'utilitaire valide les enregistrements en entre ou lorsque
le serveur Oracle insre les enregistrements).
Fichier de rebut : cr, si ncessaire, pour stocker tous les enregistrements qui
ne rpondent pas aux critres de slection.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-9

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Chargement des donnes par chemin


conventionnel et par chemin direct
Instance
SGA Zone de mmoire
partage

Insertion
tableau

Gestion
d'extents

Conventionnel
Chemin direct

Table

Enregistrement
des donnes
Espace utilis uniquement par
le chargement des donnes
par chemin conventionnel
Copyright Oracle Corporation, 1999. Tous droits rservs.

Repre highwater mark

Mthodes de chargement des donnes


L'utilitaire SQL*Loader permet de charger les donnes de deux manires :
par chemin conventionnel,
par chemin direct.
Charger les donnes par chemin conventionnel
Le chargement des donnes par chemin conventionnel cre un tableau contenant les
lignes insrer et utilise l'instruction SQL INSERT pour charger les donnes. Au
cours du chargement, les enregistrements en entre sont analyss en fonction des
spcifications de champ, et un tableau d'enregistrements est cr et insr dans la
table dfinie dans le fichier de contrle. Les enregistrements qui ne respectent pas
les spcifications de champ sont rejets, ainsi que ceux qui ne correspondent pas
aux critres de slection.
Vous pouvez utiliser le chargement par chemin conventionnel pour charger des
donnes tant dans les tables incluses dans un cluster que dans celles non incluses
dans un cluster. La gnration des informations de journalisation est contrle par
l'attribut de journalisation de la table charge.

.....................................................................................................................................................
14-10
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Charger les donnes par chemin direct


Le chargement des donnes par chemin direct cre des blocs de donnes en mmoire et
les enregistre directement dans les extents allous la table en cours de chargement.
Aucune entre de journalisation n'est cre si la base de donnes ne fonctionne pas
en mode ARCHIVELOG. Le chargement des donnes par chemin direct utilise les
spcifications de champ pour crer des blocs de donnes Oracle complets et crit les
blocs directement dans les fichiers de donnes Oracle. Cette mthode n'utilise pas le
cache de tampons de la base de donnes et accde la mmoire SGA uniquement pour
grer les extents et ajuster le repre high-water mark.
Le chargement des donnes par chemin direct est gnralement plus rapide que le
chargement des donnes par chemin conventionnel, mais ne convient pas pour toutes
les situations. La section suivante prsente une comparaison des deux mthodes et
contient des exemples dcrivant les situations dans lesquelles celles-ci peuvent tre
utilises.
Remarque : le script catldr.sql, fourni par Oracle, cre des vues utilises pour
le chargement des donnes par chemin direct. Ce script est appel automatiquement
lorsque le script catalog.sql est excut.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-11

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Comparaison du chargement par chemin


conventionnel et du chargement par
chemin direct
Chargement par chemin
conventionnel

Chargement par chemin direct

Utilise COMMIT pour rendre


les modifications permanentes.

Utilise les enregistrements de donnes.

Entres de journalisation
toujours gnres.

Gnre des informations de journalisation


uniquement dans certaines conditions.

Applique toutes les contraintes.

Utilise les cls primaires, uniques


et NON NULL.

Active les dclencheurs INSERT.

N'active pas les dclencheurs INSERT.

Peut charger les donnes dans des


tables incluses dans un cluster.

Ne peut pas charger les donnes dans


des tables incluses dans un cluster.

Les autres utilisateurs peuvent


modifier les tables.

Les autres utilisateurs ne peuvent pas


modifier les tables.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Mthode d'enregistrement des donnes


Le chargement des donnes par chemin conventionnel utilise une instruction SQL
et des instructions COMMIT sur la base de donnes pour enregistrer les donnes.
L'insertion d'un tableau d'enregistrements est suivie d'une opration de validation.
Chaque chargement de donnes peut faire appel plusieurs transactions.
Le chargement des donnes par chemin direct enregistre les donnes pour crire les
blocs de donnes dans les fichiers de donnes Oracle. Les diffrences existant entre
un enregistrement de donnes et une validation sont les suivantes :
Lors d'un enregistrement de donnes, seuls les blocs de base de donnes complets
sont crits dans la base de donnes.
Les blocs sont crits aprs le repre high-water mark de la table.
Le repre est dplac aprs l'enregistrement des donnes.
Les ressources internes ne sont pas libres la suite de l'enregistrement
des donnes.
Un enregistrement de donnes ne met pas fin la transaction.
Les index ne sont pas mis jour chaque enregistrement de donnes.

.....................................................................................................................................................
14-12
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Journaliser les modifications


Le chargement des donnes par chemin conventionnel gnre des entres de
journalisation comme n'importe quelle instruction LMD. Aucune entre de
journalisation du chargement n'est cre si :
la base de donnes fonctionne en mode NOARCHIVELOG,
la base de donnes fonctionne en mode ARCHIVELOG et que la journalisation est
dsactive. Vous pouvez dsactiver la journalisation en affectant la table l'attribut
NOLOGGING ou l'aide de la clause UNRECOVERABLE du fichier de contrle.
Appliquer les contraintes
Lors d'un chargement des donnes par chemin conventionnel, toutes les contraintes
actives sont appliques comme s'il s'agissait d'une opration LMD.
Lors d'un chargement des donnes par chemin direct, les contraintes sont traites
comme suit :
Les contraintes NOT NULL sont vrifies lors de la cration des tableaux.
La cl trangre et les contraintes CHECK sont dsactives et peuvent tre
ractives la fin du chargement en utilisant les commandes appropries dans
le fichier de contrle. Les contraintes de cl trangre sont dsactives, car elles
font rfrence d'autres lignes ou d'autres tables ; les contraintes CHECK sont
dsactives, car elles peuvent utiliser des fonctions SQL. Si vous ne devez insrer
qu'un petit nombre de lignes dans une table volumineuse, utilisez le chargement
des donnes par chemin conventionnel.
Les contraintes de cl primaire et de cl unique sont vrifies au cours du
chargement et la fin du chargement, et peuvent tre dsactives en cas de
violation.
Activer les dclencheurs INSERT
Les dclencheurs INSERT sont activs pendant le chargement des donnes par
chemin conventionnel ; en revanche, ils sont dsactivs avant l'excution d'un
chargement des donnes par chemin direct et ractivs la fin du chargement.
Ils peuvent rester dsactivs si un objet rfrenc n'est pas accessible la fin
du chargement. Utilisez le chargement des donnes par chemin conventionnel
pour charger les donnes dans les tables avec des dclencheurs INSERT.
Charger les donnes dans une table incluse dans un cluster
Vous ne pouvez pas utiliser le chargement des donnes par chemin direct pour charger
des lignes dans une table incluse dans un cluster. Vous ne pouvez charger une table
incluse dans un cluster qu'avec le chargement des donnes par chemin conventionnel.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-13

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Verrouiller
Lorsqu'un chargement des donnes par chemin direct est en cours, les autres
transactions ne peuvent pas modifier les tables en cours de chargement, sauf lorsque
plusieurs sessions de chargement des donnes par chemin direct en parallle sont
utilises simultanment. Le chargement des donnes par chemin direct en parallle
est dcrit dans la section suivante.

.....................................................................................................................................................
14-14
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Chargement des donnes par chemin


direct en parallle
Segments temporaires
load1.dat
load1.ctl

load2.dat
load2.ctl

SQL*Loader
SQL*Loader
SQL*Loader

load3.dat
load3.ctl

Table

Repre highwater mark


Copyright Oracle Corporation, 1999. Tous droits rservs.

Chargement des donnes par chemin direct en parallle


Le chargement des donnes par chemin direct en parallle permet l'utilisation de
plusieurs sessions simultanes pour charger les donnes dans une mme table.
Squence des oprations
Utilisez diffrents fichiers de donnes en entre pour chaque session de chargement
des donnes par chemin direct en parallle. Lorsque vous utilisez plusieurs sessions
de chargement des donnes par chemin direct en parallle, le chargement s'effectue
comme suit :
1 Chaque session utilise un segment temporaire pour charger les donnes partir
des fichiers de donnes en entre. Ces segments temporaires sont crs dans le
tablespace contenant la table en cours de chargement. Si le tablespace contient
plusieurs fichiers de donnes, l'utilisateur peut, pour chacune des sessions, dfinir
le fichier de donnes dans lequel le segment temporaire doit tre cr. L'utilisateur
peut galement dfinir les paramtres de stockage des segments. Par dfaut, les
segments ont les mmes attributs que la table en cours de chargement.
2 Le dernier extent de chaque segment temporaire est supprim pour librer l'espace
inutilis une fois la session termine.
3 Tous les segments temporaires sont combins pour former un seul segment la fin
du chargement.
4 Le segment temporaire rsultant est alors ajout au segment de la table.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-15

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Restrictions
Les restrictions suivantes s'appliquent au chargement des donnes par chemin direct en
parallle :
Les index ne sont pas grs par le chargement. Les index sont supprims avant
le chargement en parallle et recrs la fin du chargement.
L'intgrit rfrentielle, les contraintes CHECK et les dclencheurs doivent tre
dsactivs et ractivs manuellement.
Les lignes ne peuvent tre ajoutes qu'aux donnes existantes, car les chargements
ne sont pas coordonns. Si des donnes de la table doivent tre remplaces,
tronquez manuellement la table avant d'effectuer le chargement en parallle.

.....................................................................................................................................................
14-16
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Utiliser SQL*Loader
$sqlldr
$sqlldr scott/tiger
scott/tiger \\
>> control=ulcase6.ctl
control=ulcase6.ctl \\
>> log=ulcase6.log
log=ulcase6.log direct=true
direct=true
ulcase6.ctl
SQL*Loader

Table EMP

Copyright Oracle Corporation, 1999. Tous droits rservs.

ulcase6.log

Ligne de commande
Utilisez la commande suivante sous UNIX ou Windows NT pour charger les donnes :
$sqlldr [keyword=]value [ [ [,] keyword=]value ] ...

o :

keyword

correspond l'un des mots-cls dcrits


dans la section suivante,
correspond la valeur du mot-cl.

value
Remarque :
Si aucun mot-cl n'est indiqu, les valeurs doivent tre dfinies dans l'ordre
appropri. Toutefois, il est prfrable d'utiliser les mots-cls.
Comme le montre la diapositive, vous pouvez dfinir les premires valeurs sans
mot-cl, et les autres valeurs avec des mots-cls.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-17

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Utiliser Oracle Enterprise Manager pour charger les donnes


1 Dmarrez la console Oracle Enterprise Manager :
Start>Programs>Oracle - EMV2 Home>Oracle Enterprise Management
>Enterprise Manager Console
2 Entrez les paramtres Administrator, Password et Management Server. Cliquez sur
OK pour vous connecter la console.
3 Dveloppez le dossier Databases.
4 Slectionnez la base de donnes de travail, cliquez avec le bouton droit de la souris
pour afficher le menu contextuel, puis slectionnez Data Management>Load.
5 Entrez le nom du fichier de contrle dans la page Control File, puis cliquez
sur Next.
6 Entrez le nom des autres fichiers dans la page Data Files, puis cliquez sur Next.
7 Dfinissez les options de chargement de la page Load Method, puis cliquez
sur Next.

8 Dfinissez une planification dans la page Scheduling, puis cliquez sur Finish.
9 Vrifiez les options de la page Summary, puis cliquez sur OK.

.....................................................................................................................................................
14-18
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Mots-cls de ligne de commande


Un certain nombre de mots-cls et d'options de chargement couramment utiliss
indiquer dans la page 3 de l'assistant Data Manager Wizard sont dcrits ci-dessous.
Mot-cl

Signification

USERID

Nom utilisateur et mot de passe Oracle. Si le mot de passe n'est pas


indiqu, un message s'affiche pour le demander l'utilisateur.

CONTROL

Nom du fichier de contrle.

LOG

Nom du fichier journal de travail ; par dfaut, il correspond au nom du


fichier de contrle et porte l'extension log.

BAD

Nom du fichier qui stocke les enregistrements rejets ; par dfaut, il


correspond au nom du fichier de contrle et porte l'extension bad.

DATA

Nom des fichiers de donnes en entre.

DISCARD

Nom du fichier de rebut facultatif dans lequel les enregistrements non


slectionns sont stocks.

DISCARDMAX

Nombre maximum d'enregistrements non slectionns ; par dfaut,


contient tous les enregistrements non slectionns. Utilisez ce paramtre
par mesure de scurit pour interrompre le chargement si les fichiers en
entre ne sont pas les bons.

SKIP

Nombre d'enregistrements ignorer ; utilis principalement pour


poursuivre un chargement ayant chou. N'utilisez cette option que si le
chargement porte sur une seule table ou pour ignorer le mme nombre
d'enregistrements pour toutes les tables charger.

LOAD

Dfinit le nombre d'enregistrements charger aprs avoir ignor les


enregistrements dfinis par le paramtre SKIP.

ERRORS

Nombre maximum d'enregistrements refuss.

ROWS

Dfinit le nombre de lignes du tableau crer avant chaque insertion


l'aide du chargement des donnes par chemin conventionnel. Pour le
chargement des donnes par chemin direct, ce paramtre dfinit le
nombre approximatif de lectures de lignes en entre de chaque
enregistrement de donnes. Le chargement des donnes par chemin
direct cre des blocs complets, puis rejette les enregistrements refuss et
les lignes non valides avant l'enregistrement des donnes.

BINDSIZE

Dfinit, pour le chargement des donnes par chemin conventionnel, le


nombre maximum d'octets utiliser pour crer un tableau de lignes
insrer dans chaque appel de base de donnes (si vous dfinissez
galement le paramtre ROWS, l'utilitaire SQL*Loader cre le nombre
de lignes dfini par le paramtre ROWS en fonction de la limite impose
par le paramtre BINDSIZE).

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-19

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Mots-cls de ligne de commande (suite)


Mot-cl

Signification

DIRECT

L'utilitaire SQL*Loader fait appel au chargement des donnes par


chemin direct si vous affectez la valeur TRUE au paramtre. Sinon, cest
le chargement des donnes par chemin conventionnel (option par dfaut)
qui est utilis.

PARFILE

Dfinit le nom du fichier qui contient tous les paramtres de chargement


(les paramtres dfinis dans la ligne de commande remplacent ceux du
fichier de paramtres).

PARALLEL

Ce paramtre, qui ne s'applique qu'au chargement des donnes par


chemin direct, indique que plusieurs chargements des donnes par
chemin direct peuvent tre excuts en parallle.

FILE

Dfinit le fichier dans lequel les segments temporaires du chargement


des donnes par chemin direct en parallle doivent tre crs.

Ce paramtre peut galement tre dfini dans le fichier de contrle.


Remarque : la prsente section ne contient pas tous les paramtres que vous pouvez
dfinir. Pour plus d'informations, reportez-vous Oracle8i Utilities, "SQL*Loader
Command-Line Reference".

.....................................................................................................................................................
14-20
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

SQL*Loader : fichiers d'entre

Le fichier de paramtres contient les options


de chargement.

Le fichier de donnes contient les


enregistrements d'entre.

Le fichier de contrle contient les instructions


de chargement.

LOAD DATA
INFILE 'ulcase6.dat'
INSERT
INTO TABLE emp
(empno POSITION(01:04) INTEGER
EXTERNAL NULLIF empno=BLANKS,
...
)
Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichier de paramtres
Vous pouvez utiliser le fichier de paramtres pour dfinir les paramtres de
chargement. Stockez tous les paramtres couramment utiliss dans un fichier
de paramtres. Ce fichier dfinit les paramtres de la manire suivante :
KEYWORD=VALUE

Fichier de contrle
Un fichier de contrle contient les lments suivants :
le nom des fichiers de donnes en entre, l'aide de la clause INFILE,
la composition d'un enregistrement logique partir d'un enregistrement physique
dans les fichiers de donnes en entre, l'aide de clauses telles que
CONCATENATE et CONTINUEIF,
les spcifications de champ, y compris leur position, les types de donnes
et les spcifications des dlimiteurs, l'aide de la clause FIELDS,
les noms de table, l'aide de la clause INTO TABLE,
la mthode de chargement : les donnes peuvent tre charges dans une table
vierge, insres aprs la suppression ou la troncature des enregistrements existants,
ou encore ajoutes aux donnes existantes,
les enregistrements ignorer pour chaque table, l'aide de la clause
CONTINUE_LOAD,
les conditions utiliser pour la slection des enregistrements charger, l'aide
de la clause WHEN,
les colonnes charger,

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-21

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Fichier de contrle (suite)


les rgles de gnration des valeurs de colonne, l'aide de clauses telles
que RECNUM et SYSDATE, et de l'application de fonctions SQL,
les oprations de colonne, telles que la suppression et le remplacement des zros
par des marqueurs NULL,
les paramtres de chargement, l'aide de la clause OPTIONS,
les spcifications de stockage des segments temporaires crs lors d'un chargement
des donnes par chemin direct en parallle,
les commentaires prcds de "--",
d'autres options de chargement des donnes par chemin direct, telles que :
SINGLEROW pour grer les index ligne par ligne,
REENABLE pour activer la fin du chargement les contraintes dsactives,
SORTED_INDEXES pour indiquer si les donnes doivent tre prtries,
UNRECOVERABLE pour supprimer la gnration de donnes de
journalisation.
Remarque :
Le mot-cl NOLOGGING de dfinition de l'attribut NOLOGGING de la table
est quivalent l'option UNRECOVERABLE du fichier de contrle.
Vous pouvez galement stocker les donnes dans les fichiers de contrle en
dfinissant INFILE * et en utilisant BEGINDATA pour marquer le dbut des
donnes. Si vous utilisez cette option, tous les enregistrements situs aprs
BEGINDATA seront considrs comme des donnes.
Le rpertoire UNIX $ORACLE_HOME/rdbms/demo et le rpertoire Windows NT
%ORACLE_HOME%\RDBMS80\LOADER contiennent des exemples d'options de
chargement et de fichiers de contrle. Le chapitre "SQL*Loader Case Studies"
du manuel, Oracle8i Utilities, explique ces exemples en dtail.
Les commandes de fichier de contrle sont dcrites en dtail dans le chapitre
"SQL*Loader Control File Reference" du manuel Oracle8i Utilities.
Fichier de donnes
Le fichier de donnes contient les enregistrements traiter au format dfini dans
le fichier de contrle.

.....................................................................................................................................................
14-22
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

Contenu du fichier journal

Informations d'en-tte

Informations de table : spcifications de


table et de colonne

Informations de fichier de donnes :


enregistrements traits

Informations de chargement de table :


erreurs et refus

Statistiques rcapitulatives

Informations gnrales : paramtres et


noms de fichier

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichiers journaux
Le fichier journal est obligatoire, et le chargement s'arrte s'il ne peut pas tre cr
faute de place ou d'autorisation. Le fichier journal contient :
des informations d'en-tte, telles que la date du chargement et le numro de
version du logiciel,
des informations gnrales, telles que :
le nom de tous les fichiers d'entre et de sortie,
les arguments de ligne de commande,
des informations de table, telles que :
les noms de table,
les conditions et la mthode de chargement,
les informations de champs et de colonnes,
les informations de fichiers de donnes indiquant les enregistrements rejets
et refuss, ainsi que la cause,

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-23

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Fichiers journaux (suite)


des informations de chargement des tables, telles que :
le nombre de lignes charges,
le nombre de lignes qui auraient pu tre charges, mais qui ont t rejetes
la suite d'erreurs de donnes,
le nombre de lignes refuses,
le nombre de lignes dont les champs correspondants sont tous NULL,
des statistiques rcapitulatives indiquant :
l'espace allou au tableau,
les statistiques de chargement de tous les fichiers de donnes,
le dbut et la fin du chargement,
la dure du chargement,
le temps CPU total comprenant la dure de toutes les entres/sorties des
fichiers, mais pas le temps CPU des processus d'arrire-plan.

.....................................................................................................................................................
14-24
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

SQL*Loader : autres fichiers de sortie

Fichier des enregistrements refuss


enregistrements rejets,
format identique celui des fichiers
de donnes.

Fichier de rebut
enregistre les fichiers non conformes,
format identique celui des fichiers
de donnes.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Fichier des enregistrements refuss


Le fichier des enregistrements refuss contient les enregistrements qui ont t rejets
lors du traitement pour l'une des raisons suivantes :
les enregistrements en entre contiennent des erreurs, telles qu'un nombre
insuffisant de champs ou des champs mal formats,
certaines lignes n'ont pas pu tre insres la suite, par exemple, d'une violation
de contrainte.
Les enregistrements du fichier des enregistrements refuss ont le mme format que
les enregistrements en entre. Aprs correction des erreurs, vous pouvez utiliser les
enregistrements pour recharger les donnes.
Fichier de rebut
Le fichier de rebut contient des donnes au mme format que les fichiers de donnes
en entre. Il est utile pour charger des donnes de manire slective dans des tables
de base de donnes, soit dans diffrentes bases, soit diffrents instants.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-25

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

SQL*Loader : instructions d'utilisation

Utilisez un fichier de paramtres pour dfinir les


options de ligne de commande les plus utilises.

Placez les donnes dans le fichier de contrle


uniquement pour un petit chargement non
rptitif.

Amliorez les performances :

en allouant un espace suffisant,

en triant les donnes sur l'index


le plus volumineux,

en dfinissant des fichiers diffrents


pour les segments temporaires du
chargement en parallle.
Copyright Oracle Corporation, 1999. Tous droits rservs.

Instructions d'utilisation de l'utilitaire SQL*Loader


Les instructions suivantes vous permettent de rduire le nombre d'erreurs et
d'amliorer les performances lorsque vous utilisez l'utilitaire SQL*Loader :
Faites appel un fichier de paramtres pour dfinir les options de ligne de
commande couramment utilises. Par exemple, si vous chargez toutes les semaines
les donnes dans un data warehouse, toutes les options, l'exception des noms de
fichier, peuvent tre identiques.
Sparer le fichier de contrle du fichier de donnes permet de rutiliser les fichiers
de contrle pour plusieurs sessions de chargement.
Prallouer l'espace en fonction du volume de donnes attendu permet, lors du
chargement, d'viter l'allocation dynamique d'extents et d'amliorer la vitesse
du chargement.
Lorsque vous faites appel au chargement des donnes par chemin direct, des
segments temporaires sont utiliss pour gnrer des index pour les nouvelles
donnes. Ces index sont fusionns avec les index existants la fin du chargement.
En triant les donnes en entre sur les cls de l'index le plus volumineux, vous
pouvez rduire l'espace de tri.
Avec le chargement des donnes par chemin direct en parallle, vous pouvez
dfinir l'emplacement des segments temporaires utiliss pour insrer les donnes.
Pour chaque session de chargement, dfinissez un fichier de base de donnes
diffrent pour obtenir des performances optimales.

.....................................................................................................................................................
14-26
Oracle DBA : Architecture et administration

Charger les donnes l'aide de l'utilitaire SQL*Loader


.....................................................................................................................................................

SQL*Loader : dpannage

Espace insuffisant pour la table ou l'index.

Dtection, lors d'un chargement des donnes


par chemin direct, de cls en double dans un
index unique, dans une cl primaire ou dans
une cl unique.

BINDSIZE doit contenir plusieurs lignes.

Dfaillance de l'instance lors du chargement.


Vous utilisez la clause SORTED INDEXES et
les donnes ne sont pas dans l'ordre dfini.

Nombre d'erreurs suprieur la limite dfinie.


Nombre de refus suprieur la limite dfinie.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Dpannage de l'utilitaire SQL*Loader


Lorsqu'un chargement se termine de faon anormale, toutes les donnes charges
jusqu' l'apparition de l'incident sont gnralement valides. Aprs avoir rsolu le
problme, procdez comme suit pour mener bien le chargement :
Si les donnes sont charges dans une seule table ou que le nombre
d'enregistrements traits est identique pour toutes les tables, utilisez le paramtre
de ligne de commande SKIP pour poursuivre le chargement.
Si un grand nombre de tables a t charg et que le nombre d'enregistrements
traits n'est pas identique pour toutes les tables, utilisez l'option
CONTINUE_LOAD dans le fichier de contrle pour dfinir le nombre
d'enregistrements ignorer pour chaque table.
Recherchez les index inutilisables. Un index est inutilisable si l'index de la table
n'est pas cohrent. Supprimez les index incohrents et recrez-les la fin du
chargement.
Rsolution des problmes
Espace insuffisant : un chargement peut s'arrter si le serveur Oracle n'est pas
parvenu allouer un espace suffisant aux tables charger. Dans ce cas, recherchez
l'origine du problme (espace disque insuffisant, fichiers saturs ou limite
MAXEXTENTS atteinte) et corrigez le problme.
Echec de l'instance : recherchez l'origine de l'erreur, corrigez l'erreur, redmarrez
l'instance et poursuivez le chargement.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-27

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Rsolution des problmes (suite)


Ordre des donnes incorrect : les donnes sont charges, mais l'index est
inutilisable. Supprimez les index inutilisables et recrez-les.
Doublon de valeurs dans une cl primaire, dans une colonne unique ou dans un
index unique : cette situation n'arrte pas le chargement, mais peut dsactiver les
contraintes ou rendre les index inutilisables. En cas d'erreurs de contrainte, utilisez
une table d'exceptions pour intercepter les erreurs et les corriger. Si un index
unique est inutilisable, vous devrez dtecter les erreurs : essayez de crer une
contrainte unique sur la colonne indexe, interceptez les erreurs dans une table
d'exceptions et corrigez-les.
Valeur BENDSIZE trop faible : utilisez une valeur plus leve et chargez
les donnes.
Nombre d'erreurs suprieur la limite dfinie : cette erreur se produit lorsque le
chargement est interrompu parce que le nombre d'enregistrements non valides est
suprieur la valeur ERRORS. En gnral, cette erreur se produit lorsque les
fichiers de donnes en entre que vous utilisez sont incorrects. Vrifiez-les et
utilisez les bons fichiers.
Le nombre d'enregistrements refuss est suprieur au nombre dfini : cette
erreur se produit lorsqu'un chargement est interrompu parce que le nombre
d'enregistrements refuss est suprieur la valeur DISCARDMAX. En gnral,
cette erreur se produit lorsque les fichiers de donnes en entre que vous utilisez
sont incorrects. Vrifiez-les et utilisez les bons fichiers.
Remarque : la clause SORTED INDEXES ne s'applique qu'au chargement des
donnes par chemin direct. Pour plus d'informations sur la syntaxe et l'utilisation,
reportez-vous au chapitre "SQL*Loader Control File Reference" du manuel
Oracle8i Utilities.

.....................................................................................................................................................
14-28
Oracle DBA : Architecture et administration

Charger les donnes par chemin direct


.....................................................................................................................................................

Charger les donnes par chemin direct


API de chargement par chemin direct
Client

Serveur

Donnes

Appels OCI

Formateur
de bloc

Table
Copyright Oracle Corporation, 1999. Tous droits rservs.

Charger les donnes par chemin direct avec l'interface OCI


(Oracle Call Interface)
L'interface de chargement des donnes par chemin direct permet une application OCI
(Oracle Call Interface) d'accder au moteur de chargement des donnes par chemin
direct du serveur de base de donnes Oracle pour excuter les fonctions de l'utilitaire
Oracle SQL*Loader. Cette fonction permet de charger les donnes de fichiers externes
dans une table Oracle.
L'interface OCI de chargement des donnes par chemin direct permet de charger
plusieurs lignes en chargeant un flux de chemin direct contenant les donnes de
plusieurs lignes.
Une opration de chargement des donnes par chemin direct ncessite que l'objet
charger soit verrouill pour empcher les oprations LMD sur l'objet.
Notez que les interrogations ne sont pas verrouilles et qu'elles peuvent tre effectues
lorsque l'objet est en cours de chargement.
L'interface de chargement des donnes par chemin direct prsente les mmes
limitations que l'utilitaire SQL*Loader.

.....................................................................................................................................................
Oracle DBA : Architecture et administration
14-29

Chapitre 14 : Charger les donnes


.....................................................................................................................................................

Synthse
Synthse

Ce chapitre vous a permis d'apprendre :

utiliser l'insertion par chargement direct


pour copier des tables,

utiliser SQL*Loader pour charger des


donnes,

utiliser le mode de chargement des donnes


par chemin direct lorsque cela est ncessaire.

Copyright Oracle Corporation, 1999. Tous droits rservs.

Pour rfrence
Contexte
Paramtres d'initialisation
Vues dynamiques des performances
Vues du dictionnaire de donnes
Commandes
Procdures et fonctions de package

Rfrence
Aucun
Aucune
Aucune
sqlldr ou sqlload
Aucune

.....................................................................................................................................................
14-30
Oracle DBA : Architecture et administration