Vous êtes sur la page 1sur 205

Oracle 11g

Exploitation

Auteur : Clotilde Attouche


Socit TELLORA
Version 1.2
Du 6 Mai 2010

Document Tellora

Page 1/205

Exploitation Oracle 11g


www.tellora.fr

Sommaire
1

Prsentation .......................................................................................................... 7
1.1

Les produit Database proposes par Oracle.......................................................... 8

1.2

Notion de Grid Computing ................................................................................ 9

1.2.1

La gestion ASM (gestionnaire de fichiers : Automatic Storage Management) ......... 10

1.2.2

Les composants dvelopps par Oracle pour le Grid Computing ............................. 11

1.2.3

Outils de dveloppement ........................................................................................ 11

1.3
2

Rgles de nommage dans Oracle Database ...................................................... 11

La documentation ................................................................................................ 12
2.1

Le support oracle .......................................................................................... 12

Notion de schma ................................................................................................ 14

Le dictionnaire de donnes .................................................................................. 15


4.1

Les tables et vues statiques ........................................................................... 15

4.2

Les tables et vues dynamiques de performance ................................................ 16

Outils dadministration ........................................................................................ 17


5.1

Loutil SQL*Plus ............................................................................................ 17

5.1.1

Environnement de travail ........................................................................................ 18

5.1.2

Quelques commandes SQL*Plus ............................................................................. 18

5.2

Loutil iSQL*Plus ........................................................................................... 19

5.3

Le Database Control et le Grid control ............................................................. 20

Larchitecture OFA ............................................................................................... 23

Installation Oracle ............................................................................................... 25


7.1

Pr-requis matriel ....................................................................................... 25

7.2

Installation du client...................................................................................... 27

Architecture Oracle .............................................................................................. 28


8.1

Connexion utilisateur..................................................................................... 30

8.1.1

La PGA (Program Global Area) ................................................................................ 30

8.1.2

La SGA: System Global Area .................................................................................... 30

8.2

Le fichier de paramtres (init.ora ou SPFILE.ORA)............................................. 32

8.3

Les processus darrire plan ........................................................................... 33

8.4

La base de donnes ...................................................................................... 34

8.4.1

Les fichiers de donnes........................................................................................... 34

Utilisateurs et connexion la base de donnes .................................................... 36


9.1

Syntaxe pour la connexion classique ............................................................... 36

9.2

Syntaxe pour la connexion spciale SYSDBA ou SYSOPER .................................. 36

9.3

Les connexions SYSDBA et SYSOPER ............................................................... 37

9.4

Le fichier de mots de passe ............................................................................ 37

9.5

Les variables denvironnement ....................................................................... 38

10

Dmarrer & Arrter une base de donnes ......................................................... 39

10.1

Dmarrer la base de donnes ......................................................................... 40

10.2

Modifier la disponibilit de la base de donnes .................................................. 41

10.3

Arrter la base de donnes ............................................................................ 42

10.4

Ouvrir la base de donnes en mode RESTRICT ................................................. 43

Document Tellora

Page 2/205

Exploitation Oracle 11g


www.tellora.fr
10.5

Mettre linstance dans un tat QUIESCE ........................................................... 44

10.6

Vues du dictionnaire de donnes ..................................................................... 44

11

Gestion de linstance et SPFILE ......................................................................... 46

11.1

Crer le fichier du paramtre SPFILE ............................................................... 46

11.2

Exporter un fichier de paramtres serveur SPFILE ............................................. 47

11.3

Modifier des paramtres de linstance ou du SPFILE .......................................... 48

11.4

Vues du dictionnaire de donnes ..................................................................... 49

12

Jeux de caractres et paramtres NLS .............................................................. 50

12.1

Introduction ................................................................................................. 50

12.2

Migration de jeux de caractres ...................................................................... 53

12.2.1

Migration du jeu de caractres par EXPORT/IMPORT ............................................ 54

Vues du dictionnaire de donnes ................................................................................... 55


13

Crer une base de donnes ............................................................................... 56

13.1

Prsentation du script de cration de la base .................................................... 57

13.2

Prsentation de loutil DBCA ........................................................................... 60

13.3

Valeurs des paramtres ................................................................................. 63

13.4

Vues du dictionnaire de donnes ..................................................................... 66

13.5

EMCA : Cration de lOEM repository (Database Control) ................................... 66

14

Automatiser le dmarrage de la base ................................................................ 69

14.1

Sous unix .................................................................................................... 69

14.2

Sous Windows .............................................................................................. 69

15

Accder une base distante.............................................................................. 71

15.1

Configuration cot serveur ............................................................................. 72

15.2

Configuration cot client ................................................................................ 74

15.3

Changer de machine automatiquement............................................................ 75

15.4

EZCONNECT ................................................................................................. 75

15.5

Bases distantes et database Links ................................................................... 76

16

Scuriser la base de donnes ........................................................................... 78

16.1

Le fichier de contrle ..................................................................................... 78

16.2

Protection du fichier de contrle...................................................................... 80

16.2.1

Multiplexer le fichier de contrle ........................................................................... 81

16.3

Vues du dictionnaire de donnes ..................................................................... 82

16.4

Protection des fichiers de Redo Log ................................................................. 82

17

16.4.1

Dimensionner les fichiers de Redo Log .................................................................. 83

16.4.2

Multiplexer les fichiers de Redo Log ...................................................................... 84

16.4.3

Ajouter un groupe de Redo Log ............................................................................. 85

16.4.4

Dplacer les fichiers de Redo Log .......................................................................... 85

16.4.5

Supprimer un groupe de fichiers redo log .............................................................. 86

16.4.6

Supprimer un membre dun groupe de redo log ..................................................... 86

16.4.7

Forcer le basculement du groupe courant .............................................................. 87

16.4.8

Trouver des informations sur les fichiers Redo Log ............................................... 88

Gestion du stockage .......................................................................................... 90

17.1

Notion de tablespace ..................................................................................... 90

17.2

Organisation du stockage dans un tablespace ................................................... 92

17.3

Notion de BIGFILE ou de SMALLFILE ............................................................... 94

18

Tablespaces permanents ................................................................................... 96

18.1

Crer un tablespace permanent ...................................................................... 96

Document Tellora

Page 3/205

Exploitation Oracle 11g


www.tellora.fr
18.2

Agrandir un tablespace .......................................................................................... 97

18.2.2

Passer un tablespace OFFLINE ou ONLINE : .......................................................... 98

18.2.3

Passer un tablespace READ ONLY ou READ WRITE : .............................................. 98

18.2.4

Dplacer un fichier de donnes .............................................................................. 99

18.2.5

Renommer un tablespace .................................................................................... 100

18.2.6

Supprimer un tablespace ..................................................................................... 102

18.2.7

Crer un tablespace avec une taille de bloc non standard .................................... 103

18.2.8

Le cryptage des donnes dun tablespace (nouveaut 11g) ................................. 103

18.2.9

Tablespace de travail par dfaut .......................................................................... 104

18.2.10

19

Modifier un tablespace permanent................................................................... 97

18.2.1

Vues du dictionnaire de donnes ....................................................................... 105

Tablespaces SYSTEM & SYSAUX ...................................................................... 106

19.1

Tablespace SYSTEM .................................................................................... 106

19.2

Tablespace SYSAUX .................................................................................... 106

20

19.2.1

Avantages du tablespace SYSAUX ........................................................................ 107

19.2.2

Dlocaliser les occupants du tablespace SYSAUX................................................. 107

Tablespace UNDO ............................................................................................ 109

20.1

Fonctionnement du tablespace UNDO ............................................................ 111

20.2

Positionner les paramtres de gestion automatique ......................................... 112

20.3

Crer un tablespace UNDO ........................................................................... 112

20.4

Changer de tablespace UNDO actif ................................................................ 113

20.4.1

Crer un tablespace UNDO aprs cration de la base ........................................... 113

20.4.2

Changer de tablespace UNDO pendant lactivit de la base.................................. 114

20.5
20.5.1

Dimensionner le tablespace UNDO ....................................................................... 116

20.5.2

Supprimer un tablespace UNDO ........................................................................... 117

20.6
21

Administrer un tablespace UNDO .................................................................. 115

Vues du dictionnaire de donnes ................................................................... 117

Tablespaces temporaires................................................................................. 120

21.1

Crer un tablespace temporaire .................................................................... 122

21.2

Groupes de tablespaces temporaires ............................................................. 122

21.3

Administrer les tablespaces temporaires ........................................................ 123

21.3.1

Agrandir un tablespace temporaire ...................................................................... 124

21.3.2

Modifier la clause AUTOEXTEND :......................................................................... 124

21.3.3

Modifier la taille dun fichier temporaire .............................................................. 125

21.3.4

Rtrcir un tablespace temporaire (Nouveauts 11g) ......................................... 125

21.3.5

Supprimer un tablespace temporaire ................................................................... 126

21.4

Dfinir un tablespace temporaire par dfaut ................................................... 126

21.5

Vues du dictionnaire de donnes ................................................................... 127

22

Monitoring de lutilisation dun tablespace ...................................................... 128

22.1
23

Configuration des seuils de tablespace........................................................... 129

Mmoire dynamique et performances ............................................................. 131

23.1

La notion de granule ................................................................................... 131

23.2

Gestion automatique du partage de la mmoire en 10g ................................... 131

23.2.1

Principes de tuning de la SGA .............................................................................. 132

23.2.2

SGA_TARGET et le Database Control (OEM) ......................................................... 133

23.2.3

Configuration manuelle de SGA_TARGET ............................................................. 134

23.2.4

Comportement des paramtres Auto-tuned ......................................................... 134

23.2.5

Comportement des paramtres Manuels .............................................................. 135

23.2.6

Redimensionner SGA_TARGET ............................................................................. 136

Document Tellora

Page 4/205

Exploitation Oracle 11g


www.tellora.fr
23.2.7

23.3
23.3.1

Dsactiver la gestion automatique de la mmoire en version 11g ....................... 137

23.3.2

La vue dynamique V$MEMORY_TARGET_ADVICE ................................................. 137

23.3.3

Nouveau cache en version 11g : result_cache ..................................................... 137

23.4

Loptimiseur Oracle ..................................................................................... 137

23.4.1

Les optimiseurs RBO et CBO ................................................................................ 138

23.4.2

Prsentation du SQL Tuning Advisor .................................................................... 139

23.4.3

Impacte sur les Statistiques ................................................................................ 140

23.5

Loptimiseur Oracle et la gestion des statistiques ............................................ 141

23.5.1

Statistiques sur les tables .................................................................................... 141

23.5.2

Interprter les statistiques gnres sur les tables ............................................. 143

23.5.3

Statistiques sur les index ..................................................................................... 144

23.5.4

Problmes dtects sur les index......................................................................... 145

23.6
23.6.1
23.6.2

23.7

24

Dsactiver la gestion automatique de la mmoire en version 10g ....................... 136

Gestion automatique de la mmoire en 11g ................................................... 136

Outil de collecte des statistiques ................................................................... 145


GATHER_STATS_JOB............................................................................................ 146
Modifier lexcution des statistiques .................................................................... 147

Automatic Database Diagnostic Monitor (ADDM) ............................................. 147

23.7.1

Mthode danalyse utilise par ADDM .................................................................. 149

23.7.2

Rsultats de lanalyse ADDM dans le grid Control ................................................ 150

23.7.3

Recommandations dADDM .................................................................................. 151

23.7.4

Nouvelles vues en version 11g pour ADDM .......................................................... 151

23.7.5

Exemple de gnration de rapport ADDM ............................................................ 152

Prsentation de lutilitaire DATA Pump ........................................................... 157

24.1

Oprations dIMPORT et dEXPORT du DATA Pump .......................................... 158

24.2

Avantages de lexport et de limport DATA Pump: ............................................. 159

24.3

Le mode intractif du DATA Pump ................................................................. 160

24.3.1

24.4

25

Commandes du mode interactif ........................................................................... 160

Mthode dextraction des donnes avant et aprs data pump ........................... 161

24.4.1

Mthode direct path (chemin direct) du data pump ............................................... 161

24.4.2

Donnes conduisant un accs utilisant des tables externes : ............................... 162

Export/Import Data Pump .............................................................................. 163

25.1

Fichiers supports par les outils DATA Pump .................................................... 163

25.2

Paramtres le lexport et de limport DATA Pump ............................................ 164

25.2.1

Paramtres communs .......................................................................................... 164

25.2.2

Paramtres de lEXPORT DATA Pump ................................................................... 166

25.2.3

Paramtres de lIMPORT DATA Pump ................................................................... 166

25.3

Filtrer les donnes exporter ....................................................................... 166

25.4

Exemples dexport et dimport DATA Pump..................................................... 168

25.4.1

Estimation de la taille de lExport ........................................................................ 168

25.4.2

Exports Parallliss ............................................................................................. 168

25.4.3

Import Paralllis ................................................................................................ 169

25.4.4

Export de schma ................................................................................................ 169

25.4.5

25.5

Import de schma................................................................................................ 170

Remarques et modes opratoires .................................................................. 170

25.5.1

Export et jeux de caractres ................................................................................ 170

25.5.2

Remarques sur les dpendances entre les objets ................................................ 171

25.5.3

Export de niveau tablespace ................................................................................ 171

25.6

Vues du dictionnaire de donnes de DATA Pump .............................................. 172

Document Tellora

Page 5/205

Exploitation Oracle 11g


www.tellora.fr
26

SQL*Loader ..................................................................................................... 174

26.1

Fichier de paramtres .................................................................................. 175

26.2

Le fichier de contrle ................................................................................... 177

26.3

Exemples de chargements ........................................................................... 178

26.3.1

Exemples de fichiers de contrle : Longueur variable enregistrements ............... 179

26.3.2 Exemples de fichiers de contrle : Longueur fixe avec limination


denregistrements ............................................................................................................. 180
26.3.3

Chargement dans deux tables .............................................................................. 180

26.3.4

Chargement dans deux tables avec utilisation dune colonne FILLER ................... 181

26.4

Chargement de donnes LOB ....................................................................... 182

26.5

Chargement de formats XML ........................................................................ 182

27

Stratgie de Sauvegardes et Restaurations ..................................................... 185

27.1

Les modes NOARCHIVELOG et ARCHIVELOG .................................................. 186

27.1.1

Le mode NOARCHIVELOG ..................................................................................... 187

27.1.2

Le mode ARCHIVELOG ......................................................................................... 187

27.1.3

Mettre la base en mode ARCHIVELOG ...................................................................... 188

27.1.4

Les paramtres du processus ARCH ....................................................................... 188

27.2

Passer la base en mode ARCHIVELOG............................................................ 189

27.3

Administrer le processus ARCH ...................................................................... 190

27.3.1

28

Forcer larchivage de faon priodique ................................................................ 190

Sauvegardes ................................................................................................... 192

28.1

Sauvegarde base arrte ............................................................................. 193

28.2

Sauvegarde base en ligne ............................................................................ 194

28.2.1

Sauvegarde du fichier de contrle ....................................................................... 194

28.3

Sauvegarde partielle dun tablespace ONLINE.................................................. 195

28.4

Sauvegarde de tous les tablespaces de la base ONLINE ................................... 196

28.5

Vues du dictionnaire de donnes ................................................................... 197

28.6

Stratgie recommande par Oracle ............................................................... 198

28.7

Recover Manager (RMAN) ............................................................................ 198

28.8

Le Flash Back ............................................................................................. 200

29

Restaurations .................................................................................................. 201

29.1
29.1.1

La commande RECOVER .............................................................................. 201


Exemples de restaurations................................................................................... 202

Document Tellora

Page 6/205

Exploitation Oracle 11g


www.tellora.fr

Prsentation

La version oracle database 11g release 2 est disponible depuis septembre 2010.
La version 11.2 pour Windows est disponible depuis avril 2010.
Cette nouvelle release contient loutil de dveloppement rapide APEX (Oracle Application Expresse).
Un serveur http est galement intgr dans la base de donnes. Il utilise la technologie WebDAV et est
implment sous le nom de XML DB. Il est nomm par Oracle Embedded PL/SQL Gateway .
Oracle Database 11g reprsente la nouvelle gnration de la gestion des informations en entreprise, qui
permet de faire face aux exigences quimposent la croissance rapide des volumes de donnes,
lvolution constante de lenvironnement et la ncessit de fournir une qualit de service maximale tout
en rduisant et en contrlant les cots informatiques. Oracle 11g offre une performance amliore du
stockage sur fichiers, des fonctionnalits renforces pour la scurit, dimportantes amliorations de
performances pour Oracle XML DB, et des fonctions nouvelles pour lOLAP et le datawarehouse.
Oracle Database 11g reste centr sur le grid computing : il permet de constituer des matrices de
serveurs et de systmes de stockage conomiques, capables de traiter les donnes de faon rapide,
fiable et volutive, en supportant les environnements les plus exigeants, quil sagisse de
datawarehouse, de transactionnel ou de gestion de contenus.
Oracle 11g multiplie les outils de gestion et introduit de nouvelles fonctionnalits dauto gestion et
dautomatisation. Automatic SQL, Partitioning Advisor ou Support Workbench accompagnent les
administrateurs pour amliorer les performances et les informer le plus rapidement possible des
incidents.
Ainsi
Oracle Flashback Transaction permet de revenir plus facilement sur une erreur de transaction et de
dpendances.
Parallel Backup and Restore augmente les performances des sauvegardes sur les grosses bases de
donnes.
Hot Patching permet dappliquer les mises jour sans arrter les bases.
Data Recovery Advisor accompagne les administrateurs pour dterminer intelligemment les plans de
secours.
Oracle Fast Files adopte un comportement proche des systmes de gestion de fichiers, ce qui est un
gage de performances avec les objets de type LOBs (Large Objects) ou les fichiers contenant du texte,
des images, des donnes XML ou encore les objets tridimensionnels.
Oracle XML DB permet de stocker et manipuler nativement les donnes XML. Le langage XML se
rvle lourd , et avec cette approche Oracle 11g limite la dgradation de ses performances. De
mme la base supporte les interfaces standard XQuery, Java Specification Requests (JSR)-170 et
SQL/XML.
Oracle Transparent Data Encryption permet de crypter les donnes des tables, des index ou encore les
donnes stockes de type LOB.Cubes OLAP apporte des fonctionnalits de datawarehouse (fermes de
donnes), Oracle 11g embarque les cubes OLAP pour visualiser les informations stockes, ce qui
autorise le dveloppement de requtes au format SQL.
Continuous Query Notification notifie immdiatement les changements apports dans la base de
donnes.
avec Query Result Caches, requtes et fonctionnalit de la base ou dapplications tierces sont places
en cache afin doptimiser leur accs.

Document Tellora

Page 7/205

Exploitation Oracle 11g


www.tellora.fr

Database Resident Connection Pooling est destin aux applications qui ne sont pas multithreades (en
multithreaded server : MTS), par exemple pour certains systmes Web, Oracle 11g permet de crer des
pools de connexions en multithreaded server (MTS).

1.1 Les produit Database proposes par Oracle


Les diffrents produits dOracle DATABASE sont proposs en trois gammes
 Enterprise Edition - La gamme pour les grosses applications critiques de lentreprise, intgrant des
options supplmentaires telles que le partitionnement des tables.

 Standard Edition - La gamme destine des serveurs possdant 4 processeurs et ne proposant que
loption RAC/ASM.

 Standard Edition ONE - la gamme destine aux serveurs biprocesseurs, sans option.
 Personal Edition - La gamme pour lutilisateur indpendant (dveloppeur, consultant, ), elle utilise un
noyau Enterprise Edition.

Quatre nouvelles options apparaissent dans Oracle Database 11g Enterprise Edition
 Oracle Real Application Testing
 Oracle Advanced Compression
 Oracle Total Recall
 Oracle Active Data Guard
Oracle Real Application Testing aide ses clients rduire les dlais, les risques et les cots de test
de ses modifications de leur environnement informatique, de faon contrle et conomique. Outil de
tests et de gestion des changements, cet outil est bienvenu l o les infrastructures et environnements
sont plus que jamais multiples.
Oracle Advanced Compression intgre de nouveaux mcanismes de compression applicables tous
les types de donnes permettant datteindre des taux de compression de 2x ou 3x, et parfois plus.
Associ de nouveaux mcanismes de partitionnement, Oracle Advanced Compression permet de
dployer dans la base de donnes des stratgies de gestion du cycle de vie des informations, sans avoir
modifier les applications, afin de rduire encore plus les besoins de stockage.
Oracle Total Recall permet de conserver et de retrouver les historiques des donnes modifies, mais
aussi den simplifier laccs. Les administrateurs peuvent intervenir plus tt dans les processus, ce qui
apporte une nouvelle dimension de temps dans la gestion des donnes, comme le tracking (suivi, en
temps rel des flux dinformations), les audits ou le respect des rgles.
Oracle active DATA GUARD porte la protection des donnes jusquaux risques de dfaillances des
systmes et de dsastres. Lapplication permet simultanment dcrire et rcuprer les donnes dune
base de donnes, ce qui augmente les performances et apporte une solution conomique de Disaster
Recovery. Oracle Active Data Guard peut tre employ pour amliorer la performance des bases de
donnes de production en transfrant vers une base de donnes physique secondaire des oprations
requrant beaucoup de ressources, telles que certaines requtes ou les sauvegardes. Cette solution
amliore fortement le retour sur investissement pour une base de donnes physique de secours, car
celle-ci peut tre utilise la fois pour la protection en cas de panne gnrale et pour lamlioration de
la qualit de service de lenvironnement de production.

Document Tellora

Page 8/205

Exploitation Oracle 11g


www.tellora.fr

1.2 Notion de Grid Computing


A partir de la version 10g, la base de donnes intgre la notion de Grid Computing (rseau distribu
dordinateurs htrognes en grille).
Le but du Grid est de crer des pools de ressources :

 de stockage
 de serveurs
Le Grid Computing autorise un accs transparent et volutif (en termes de capacit de traitement et de
stockage), un rseau distribu dordinateurs htrognes.

Oracle 11g permet ces machines dintroprer ; lensemble tant considr


comme une seule ressource unifie.
- Chaque ressource est vue comme un service !

Il est possible de mettre en place des rseaux grille nationaux, voire mondiaux.
Ainsi chaque nouveau systme peut tre rapidement mis disposition partir du pool de composants

Exemple dapplication en Grid Computing


Les deux applications prsentes ci-dessous, Facturation et Comptabilit se partagent des ressources de
deux serveurs.

 Chacune peut tre hberge sur nimporte lequel dentre eux et les fichiers de base de donnes peuvent
se trouver sur nimporte quel disque.

Document Tellora

Page 9/205

Exploitation Oracle 11g


www.tellora.fr

1.2.1

La gestion ASM (gestionnaire de fichiers : Automatic Storage


Management)

La nouvelle fonctionnalit Automatic Storage Management (ASM) permet la base de donnes de grer
directement les disques bruts, elle limine le besoin pour un gestionnaire de fichiers de grer la fois
des fichiers de donnes et des fichiers de journaux.
LASM rpartit automatiquement toutes les donnes de bases de donnes entre tous les disques,
dlivrant le dbit le plus lev sans aucun cot de gestion.
Au fur et mesure de lajout et de labandon de disques, lASM actualise automatiquement la rpartition
des donnes.

Pour utiliser ASM vous devez dmarrer une instance appele ASM instance qui doit tre dmarre
avant de dmarrer linstance de votre propre base de donnes.
Les instances ASM ne montent pas de base de donnes (ensemble de fichiers constituant la base) mais
gre les metadatas requises pour rendre les fichiers ASM disponibles nimporte quelle instance de base
de donnes.
Les deux, instance ASM et instance ordinaire ont accs au contenu des fichiers. Communicant avec
linstance ASM seulement pour connatre le layout des fichiers utiliss.

Document Tellora

Page 10/205

Exploitation Oracle 11g


www.tellora.fr

1.2.2

Les composants dvelopps par Oracle pour le Grid Computing

 Real Application cluster (RAC) : Supporte lexcution dOracle sur un cluster dordinateurs qui utilisent un
logiciel de cluster indpendant de la plate forme assurant la transparence de linterconnexion.

 Automatic Storage Management (ASM) : Regroupe des disques de fabricants diffrents dans des
groupes disponibles pour toute la grille. ASM simplifie ladministration car au lieu de devoir grer de
nombreux fichiers de bases de donnes, on ne gre que quelques groupes de disques.

 Oracle Ressource Manager : Permet de contrler lallocation des ressources des nuds de la grille
 Oracle Scheduler : Contrle la distribution des jobs aux nuds de la grille qui disposent de ressources
non utilises.

 Oracle Streams : Transfre des donnes entre les nuds de la grille tout en assurant la synchronisation
des copies. Reprsente la meilleure mthode de rplication.

1.2.3

Outils de dveloppement

Oracle offre laccs un choix doutils et processus de dveloppement, avec de nouvelles fonctionnalits
comme Client Side Caching, Binary XML, un nouveau compilateur Java, lintgration native avec Microsoft
Visual Studio 2005 pour les applications .NET , Oracle Application Express pour les outils de migration,
ou encore SQL Developer pour coder rapidement les routines SQL et PL/SQL.

1.3 Rgles de nommage dans Oracle Database


Un nom de structure Oracle doit respecter les rgles suivantes :

 30 caractres maximums
 Doit commencer par une lettre
 Peut contenir des lettres, des chiffres et certains caractres spciaux (_$#)
 Nest pas sensible la casse
 Ne doit pas tre un mot rserv Oracle

Document Tellora

Page 11/205

Exploitation Oracle 11g


www.tellora.fr

La documentation

La documentation Oracle est consultable partir du serveur : http://www.oracle.com

Elle est galement consultable partir du serveur : http://tahiti.oracle.com

2.1 Le support oracle


Le site Metalink est le site de hotline en ligne : : http://metalink.oracle.com remplac par
support.oracle.com
On y trouve des rsolutions derreurs rfrences, des patchs et des scripts dadministration.

Document Tellora

Page 12/205

Exploitation Oracle 11g


www.tellora.fr

Document Tellora

Page 13/205

Exploitation Oracle 11g


www.tellora.fr

Notion de schma

Le terme SCHMA dsigne lensemble des objets qui appartiennent un utilisateur, ces objets sont
prfixs par le nom de lutilisateur qui les a crs. Il sagit dune notion logique dsignant la totalit des
objets crs par un utilisateur.
Cest ainsi que la base Oracle peut faire la diffrence entre la table AVION appartenant lutilisateur
BETTY (BETTY.AVION) et la table avion appartenant lutilisateur CHARLY (CHARLY.AVION).

Chacun des utilisateurs propritaire des objets tous les droits sur ces
objets !

En gnral on indique sous le terme de schma, lensemble des tables et des index dune mme
application.
Les schmas dexemple fournis par Oracle sont dcrits dans la documentation Oracle Database Sample
Schmas.
Ces schmas peuvent tre installs lors de la cration de la base de donnes (appele par dfaut ORCL)
au moment de linstallation des binaires dOracle.

Principaux types dobjets de schma :

 Tables et index
 Directory
 Vues, squences et synonymes
 Programmes PL/SQL (procdures, fonctions, packages, triggers)

Document Tellora

Page 14/205

Exploitation Oracle 11g


www.tellora.fr

Le dictionnaire de donnes

Cest un ensemble de tables et de vues qui donne des informations sur le contenu dune base de
donnes.
Il contient :

 Les structures de stockage


 Les utilisateurs et leurs droits
 Les objets (tables, vues, index, procdures, fonctions, )


Il appartient lutilisateur SYS et est stock dans le tablespace SYSTEM.


Sauf exception, toutes les informations sont stockes en MAJUSCULE.

Il est cr lors de la cration de la base de donnes, et mis jour par Oracle lorsque des ordres DDL
(Data Dfinition Langage) sont excuts, par exemple CREATE, ALTER, DROP
Le dictionnaire de donnes charg en mmoire est utilis par Oracle pour traiter les commandes SQL.

4.1 Les tables et vues statiques


Les vues statiques sont bases sur de vraies tables stockes dans le tablespace SYSTEM, et sont
accessibles uniquement quand la base est ouverte.

Les vues statiques sont caractrises par leur prfixe :

 USER_* : Informations sur les objets qui appartiennent lutilisateur


 ALL_* : Information sur les objets auxquels lutilisateur a accs (les siens et ceux sur lesquels il a reu des
droits)

 DBA_* : Information sur tous les objets de la base


Derrire le prfixe, le reste du nom de la vue est reprsentatif de linformation accessible, au pluriel.

Document Tellora

Page 15/205

Exploitation Oracle 11g


www.tellora.fr

4.2 Les tables et vues dynamiques de performance


Ces tables sont bases sur des informations en mmoire ou extraites du fichier de contrle.
Elles donnent des informations sur le fonctionnement de la base de donnes, notamment sur les
performances. Elles sont remises zro si on arrte la base de donnes.
Elles sont accessibles mme lorsque la base nest pas compltement ouverte (MOUNT)

Les vues dynamiques de performance sont :


Prfixes par V$
Derrire le prfixe, le reste du nom de la vue est reprsentatif de linformation accessible
V$INSTANCE
V$DATABASE
V$SGA
V$DATABASE
V$PARAMETER

Les vues DICTIONARY et DICT_COLUMNS donnent la description de toutes


les tables et vues du dictionnaire (statiques et dynamiques).
- la liste complte des vues statiques est obtenue par la requte :
SELECT view_name
FROM ALL_VIEWS
WHERE ALL_VIEWS like DBA*_%
escape
;

Document Tellora

Page 16/205

Exploitation Oracle 11g


www.tellora.fr

Outils dadministration

Trois outils sont prsents pour administrer une base de donnes Oracle

 SQL*Plus (sqlplus), interface daccs la base de donnes en mode commande


 iSQL*Plus, peut tre utilis en application indpendante ou connect un rfrentiel Oracle Management
Server (OMS)

 Oracle Enterprise Manager (OEM), appel Grid Control ou Database Control.


o
o

Database control est cr la cration dune base oracle et ne permet dadministrer


graphiquement que cette base de donnes.
Grid control est un outil qui permet dadministrer une ferme de bases de donnes (oracle ou non
oracle).

5.1 Loutil SQL*Plus


Outil ligne de commande nomm SQLPLUS.
SQLPLUS [ connexion ] [ @fichier_script [argument [,]] ]

Il permet de saisir et dexcuter des ordres SQL ou du code PL/SQL et dispose en plus dun certain
nombre de commandes.

sans connexion
C:\> SQLPLUS /NOLOG

avec connexion
C:\> SQLPLUS system/tahiti@tahiti

avec connexion et lancement dun script sur la ligne de commande


C:\> SQLPLUS system/tahiti@tahiti @info.sql

sous dos --------------set ORACLE_SID=TAHITI

connection sans fichier de mots de passe


SQL> connect /as sysdba
Connect.
SQL> show user
USER est SYS

sous unix --------------Export ORACLE_SID=TAHITI

Connexion avec un fichier de mots de passe


SQL> connect sys/secret as sysdba
Connect.
SQL> show user
USER est SYS
SQL>

Document Tellora

Page 17/205

Exploitation Oracle 11g


www.tellora.fr

5.1.1

Environnement de travail

SQL*PLUS est avant tout un interprteur de commandes SQL. Il est galement fortement interfac
avec le systme dexploitation. Par exemple, sous UNIX, on pourra lancer des commandes UNIX sans
quitter sa session SQL*PLUS.
Un SGBDR est une application qui fonctionne sur un systme dexploitation donn. Par consquent, il faut
se connecter au systme avant douvrir une session ORACLE. Cette connexion peut tre implicite ou
explicite.
Pour lancer SQL Plus sans se connecter une base de donnes utilisez la commande :
C:\> sqlplus

5.1.2

/nolog

Quelques commandes SQL*Plus

SQL*Plus est un outil compos de commandes de mise en forme et daffichage :

 COL

ADRESSE

 COL

PRIXUNIT FORMAT

 CLEAR

FORMAT

A20, formater laffichage dune colonne ADRESSE sur 20 caractres


99.99, formater laffichage dune colonne PRIXUNIT

COL, r-initialiser la taille des colonnes par dfaut

 SET LINESIZE 100, reformater la taille de la ligne 100 caractres


 SET

PAUSE

 SHOW

ON, afficher un rsultat page par page

USER, visualiser le user sous lequel on est connect

 CONNECT , se connecter linstance


 User/MotPass@adresseServeur , permet de changer de session utilisateur
 CLEAR

SCREEN, r-initialiser lcran

 SET SQLPROMPT TEST> , afficher le prompt SQL en : TEST>


 DESC Nom_Table, afficher la structure dune table ou dune vue
 SPOOL nomfichier.txt, permet dactiver un fichier de format texte dans lequel on retrouvera les
commandes et rsultats affichs dans SQL Plus

 SPOOL OFF, permet de dsactiver le spool ouvert prcdemment


 @ nom_ficher, permet dexcuter le contenu dun fichier sql
 /, r-active la dernire commande
 SET ECHO ON/OFF, affiche ou non le texte de la requte ou de la commande excuter
 SAVE nom_ficher [append|create|replace], permet de sauvegarder le contenu du buffer courant
dans un fichier .sql

 TIMING ON|OFF, provoque laffichage dinformations sur le temps coul, le nombre dE/S aprs chaque
requte

 TI ON|OFF, provoque laffichage de lheure avec linvite de commande


 TERM [ON|OFF], supprime tout laffichage sur le terminal lors de lexcution dun fichier

Document Tellora

Page 18/205

Exploitation Oracle 11g


www.tellora.fr

 VER [ON|OFF], provoque laffichage des lignes de commandes avant et aprs chaque substitution de
paramtre

 SQL }, spcifie le caractre } comme tant le caractre de continuation dune commande SQL*Plus
 SUFFIX txt, spcifie lextension par dfaut des fichiers de commande SQL*Plus

5.2 Loutil iSQL*Plus


Outil Internet daccs une base de donnes Oracle, permettant dcrire des requtes SQL (dune faon
plus ou moins graphique).

Par dfaut, seule la connexion en tant quutilisateur normal (non SYSDBA ou SYSOPER) est autorise.
Par contre, la connexion en tant quutilisateur SYSDBA ou SYSOPER est protge par une authentification
au niveau du serveur HTTP
Pour lautoriser, il faut au choix :

 Ajouter des entres (utilisateur / mot de passe) laide de lutilitaire htpasswd dans un fichier
dauthentification du serveur HTTP (dfini par dfaut dans le fichier de configuration isqlplus.conf :
ORACLE_HOME\sqlplus\admin\iplusdba.pw

 Dsactiver lauthentification du serveur HTTP pour ce type de connexion


(directive <Location /isqlplusdba> dans le fichier de configuration isqlplus.conf)

Lors dune connexion SYSDBA ou SYSOPER, lURL est modifie en :

 http://serveur[:port]/isqlplusdba

Document Tellora

Page 19/205

Exploitation Oracle 11g


www.tellora.fr

5.3 Le Database Control et le Grid control


partir de la version 10g la base de donnes Oracle sest dirige vers le WEB pour fournir une nouvelle
version dEntreprise Manager la place de celui de la 9i bas sur java possdant une apparence
Windows; ainsi que des variantes selon lutilisation Dbcontrol pour une seule Base de donnes ou grid
control pour centraliser la gestion de plusieurs bases cibles.
Le Grid Control est la console graphique qui permet dadministrer un ensemble de bases de donnes sur
des serveurs distants, appel ferme de bases de donnes .
Le Database Contrle est en ralit un sous ensemble du Grid Control, correspondant ladministration
de la base de donnes choisie.
Contrairement au Grid Control, le Database Control est inclus dans linstallation standard.
Il contient un rfrentiel et est cr aprs la cration de la base de donnes.
Cette console permet dadministrer directement la base de donnes :

 Arrt/Dmarrage, gestion du stockage, gestion des utilisateurs, gestion des schmas,


 Remonte dalerte, de planification de tche, de sauvegarde/restauration, dexport/import,
Aprs cration dune base de donnes Oracle, le Database Control peut tre affich sur demande dans le
navigateur.

Document Tellora

Page 20/205

Exploitation Oracle 11g


www.tellora.fr

Prsentation du database control

En cas de besoin, lutilitaire Entreprise Manager Configuration Assistant (EMCA) peut tre utilis pour
crer lenvironnement du Database Control pour cette nouvelle base.
EMCA [ -r | -x <SID> ]

 Sans option

lutilitaire cre lenvironnement complet du Database Control.

le rfrentiel nest pas cr

-x <SID>

supprime lenvironnement du Database control

Si vous utilisez successivement [ -x ] puis [ -r ] vous pouvez recrer lenvironnement tout en conservant
le rfrentiel existant.
D:\cours_Admin10G>emca -x TAHITI
EMCA dmarr Sat Mar 19 12:57:58 CET 2005
La configuration dEnterprise Manager a russi.
EMCA arrt Sat Mar 19 12:57:58 CET 2005

Document Tellora

Page 21/205

Exploitation Oracle 11g


www.tellora.fr

Configuration du database contrle en fin de cration de la base de donnes


connect SYS/&&sysPassword as SYSDBA
startup ;
host C:\app\oracle\product\11.2.0\dbhome_1\bin\emca.bat -config dbcontrol db -silent DB_UNIQUE_NAME tahiti -PORT 1521 -EM_HOME C:\app\oracle\product\11.2.0\dbhome_1 -LISTENER
LISTENER -SERVICE_NAME tahiti -SID tahiti -ORACLE_HOME
C:\app\oracle\product\11.2.0\dbhome_1 -HOST localhost -LISTENER_OH
C:\app\oracle\product\11.2.0\dbhome_1 -LOG_FILE
C:\app\oracle\admin\tahiti\scripts\emConfig.log;
spool off

Document Tellora

Page 22/205

Exploitation Oracle 11g


www.tellora.fr

Larchitecture OFA

OFA, Oracle Flexible Architecture, est un ensemble de recommandations sur larborescence et le


nommage des fichiers du serveur contenant les produits et les bases de donnes en tenant compte de la
possibilit davoir plusieurs bases de donnes et plusieurs versions dOracle par plate-forme
Un des avantages est de sparer les produits Oracle des fichiers des bases de donnes.
La norme de la version 11g est prsente page suivante.

Le rpertoire /app/oracle/oradata/orcl/ contient les fichiers de la base de donnes orcl


Le rpertoire /app/oracle/admin/orcl/ contient les rpertoires destins aux exports Data Pump
ou non de la base de donnes ainsi quau fichier de paramtre utilis lors de la cration de la base de
donnes orcl .

 /app/oracle/admin/orcl/
 Adump
 Dpdump
 pfile

le rpertoire /app/oracle/diag/ contient les rpertoires

 /app/oracle/diag/rdbms/orcl/orcl/
 Alert
dans lequel est stock le fichier des alertes en format xml
 cdump
 hm
 incident
 incpkg
 ir
 lck
contient un ensemble de fichiers vide reprsentant des
locks
 metadata contient un ensemble de fichiers binaires .ams
 stage
 sweep
 trace
contient un ensemble de fichiers de traces de linstance
 /app/oracle/flash_recovery_area/orcl/ contient les fichiers de controle
multiplexes, et un repertoire ONLINELOG destine aux fichiers de flashback.

Document Tellora

Page 23/205

Exploitation Oracle 11g


www.tellora.fr

Le rpertoire /app/oracle/product/11.2.0/dbhome_1 contient les rpertoires des binaires


doracle. On y retrouve les rpertoires

 BIN




qui contient les binaires doracle et certains outils comme


sqlplus.exe .
Database
qui contient sous Windows les fichiers de mot de passe et SPFILE ainisi
quun sous rpertoire darchive de Redo Log lorsque larchivage est activ
Dbs
qui contient sous unix, les fichiers de mot de passe et SPFILE ainsi
quun sous rpertoire darchive de Redo Log lorsque larchivage est activ
NETWORK
qui contient le listener et tnsnames.ora

Document Tellora

Page 24/205

Exploitation Oracle 11g


www.tellora.fr

Installation Oracle

Linstalleur OUI (Oracle Universal Installeur) est un outil dinstallation Oracle compatible OFA (Oracle
flexible Architecture).

7.1 Pr-requis matriel


Une installation standard peut tre effectue sur une machine avec 1 Go de RAM et 1 Go de swap
(mmoire virtuelle) en supplment vous pouvez utiliser le produit avec des composants suprieurs.
Selon votre activit, quand vous installez Oracle, linstallation standard peut tre effectue en moins de
20 minutes.
Sous Unix, bien suivre les pr-requis demands pour chaque version Unix.
Il faut toujours se rfrer la documentation Oracle spcifique la plate-forme.

 Installation Guide & Release Notes


Un cran de synthse est affich, permettant de vrifier linstallation.
Linstallation de Oracle Database 11g automatise la plupart des vrifications de pr-requis pour
linstallation.

Si vous choisissez de crer une base de donnes pendant linstallation dOracle, vous devrez rpondre
quelques questions permettant de configurer votre base de donnes.

 Nom de la base de donnes, par dfaut = ORCL


 Jeu de caractres dfinir


A partir de la version 11g, la casse utilise pour les


mots de passe est sensitive !

Document Tellora

Page 25/205

Exploitation Oracle 11g


www.tellora.fr

Document Tellora

Page 26/205

Exploitation Oracle 11g


www.tellora.fr

7.2 Installation du client


Cette installation permet dinstaller, au minimum, les fichiers ncessaires pour accder une base
Oracle du rseau (Couche Oracle Net.
Linstallation dun client Oracle peut intgrer galement :

 Des outils dinterrogation ou dadministration


 Des produits pour le dveloppement
Linstallation seffectue avec OUI (Oracle Universal Installer) selon les principales tapes suivantes :

 Dsignation de lemplacement de linstallation (Oracle Home)


 Type dinstallation
o

Administrateur, installation de tous les composants

Runtime, qui ne contient que Oracle Net, SQL*Plus et les drivers JDBC),

Instant Client, ou client instantan, installation minimale qui ne propose que les
bibliothques ncessaires aux applications OCI (Oracle Call Interface)

Personnalis permet de choisir les composants installer.

 Affichage dun cran de synthse permettant de confirmer linstallation

Rappel
LOCI (Oracle Call Interface) est une application de programmation dinterface (API) qui permet un
dveloppeur dapplications dutiliser une procdure naturelle, dun langage de troisime gnration ou
dappels de fonctions, pour avoir accs au serveur de base de donnes dOracle pour contrler toutes les
phases de lexcution de lexpression de SQL. OCI fournit une bibliothque standard de bases de
donnes et des fonctions de recherche sous la forme de bibliothques dynamiques en phase dexcution,
ORA, DLL qui peuvent tre lies par lapplication.

Document Tellora

Page 27/205

Exploitation Oracle 11g


www.tellora.fr

Architecture Oracle

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

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


 Dun ensemble de processus darrire plan ayant chacun un rle bien prcis
 Dun ensemble de processus serveur chargs de traiter les requtes des utilisateurs
La base de donnes est lensemble des fichiers qui permettent de grer les donnes de la base.
Une base de donnes est constitue de :

 Un fichier de contrle, contenant les informations sur tous les autres fichiers de la base (nom,
emplacement, taille).

 Fichiers de Redo Log, contenant lactivit des sessions connectes la base. Ce sont des journaux de
transactions de la base. Ils sont organiss en groupe possdant le mme nombre de membres.

Et ventuellement, de fichiers de Redo Log archivs contenant les archives danciens fichiers de Redo
Log.
Dun ou plusieurs fichiers de donnes qui contiennent les donnes des tables de la base.

Document Tellora

Page 28/205

Exploitation Oracle 11g


www.tellora.fr

Une instance est lensemble des processus darrire-plan (background process) et de zones mmoire qui
sont alloues au dmarrage de la base de donnes, pour permettre lexploitation des donnes.
Une instance ne peut ouvrir quune seule base de donnes la fois et dans la grande majorit des cas,
une base de donnes est ouverte par une seule instance.
Nanmoins, moyennant la mise en uvre de loption RAC (Oracle Real Application Clusters), permettant
dutiliser Oracle sur des serveurs en cluster, une base de donnes peut tre ouverte par plusieurs
instances situes sur des nuds distincts dun cluster de serveurs ; cette option est intressante pour la
haute disponibilit mais elle est relativement complexe mettre en uvre.

En dehors des processus de linstance, il existe des processus utilisateurs correspondant lapplication
utilise par lutilisateur pour se connecter la base de donnes (SQL*Plus, un progiciel, un logiciel
spcifique, ).
Dans une architecture client/serveur, ces processus utilisateurs sont situs sur le poste de lutilisateur et
communiquent avec le serveur travers le rseau grce la couche Oracle Net.

Document Tellora

Page 29/205

Exploitation Oracle 11g


www.tellora.fr

8.1 Connexion utilisateur


Lorsquun utilisateur se connecte la base de donnes, il ouvre une session.
Les processus utilisateur sont alors pris en charge par les Processus serveur qui sont chargs de traiter
les requtes des utilisateurs, notamment de charger dans le Database Buffer Cache les donnes
ncessaires.
Le processus serveur communique (localement ou travers le rseau) avec un processus utilisateur
correspondant lapplication de lutilisateur.
Dans la configuration par dfaut, Oracle lance un processus serveur ddi chaque utilisateur
(dedicated server configuration)
Mais Oracle peut tre configur en multithreaded server (MTS) de manire avoir des processus
serveur partags par plusieurs processus utilisateur.

Utilisateur
Utilisateur
Utilisateur
Utilisateur

Serveur
Serveur
Serveur
Serveur

Linstance
Linstance est dimensionne par un ensemble de paramtres stocks dans le fichier de paramtres
systme SPFILE<SID>.ora, celui-ci a t cr la cration de la base de donnes partir dun fichier de
paramtres caractre : PFILE<SID>.ora.

 <SID> correspond au nom de linstance


8.1.1

La PGA (Program Global Area)

Mmoire prive des diffrents processus distribue au moment de la connexion dun client.
Pour un processus serveur, la PGA contient :






Une zone de tri (alloue dynamiquement lors dun tri)


Des informations sur la session
Des informations sur le traitement des requtes de la session
Les variables de session

Dans une configuration multithreaded, une partie de la PGA est en fait stocke dans la SGA (dans la
Large Pool ou ventuellement dans la Shared Pool).
A partir de la version 9i, la PGA devient dynamique et est configure par le paramtre
PGA_AGGREGATE_TARGET.

8.1.2

La SGA: System Global Area

Cette zone de mmoire partage par les diffrents processus de linstance est alloue au dmarrage de
linstance et est libre lors de larrt de celle-ci.

Document Tellora

Page 30/205

Exploitation Oracle 11g


www.tellora.fr

Les principaux composants de la SGA sont :

 SPA : Shared Pool Area : zone de partage des requtes et du dictionnaire Oracle.
La Shared Pool Area est la partie de la SGA qui est utilise par Oracle pour partager les requtes (Library
Cache) et le dictionnaire de donnes (Dictionary Cache) entre les diffrents processus.
La Shared Pool est globalement dimensionne par le paramtre SHARED_POOL_SIZE ; la rpartition entre
le Library Cache et le Dictionary Cache est assure par Oracle.
Dimensionne par le paramtre SHARED_POOL_SIZE .
 Database Buffer Cache : Le Database Buffer Cache est un cache de donnes qui joue le mme rle que
la Shared Pool mais pour les donnes de la base.
Les donnes de la base ne sont accessibles, en lecture ou en mise jour, quaprs avoir t charges
dans le Database Buffer Cache.
Dans la pratique, le Database Buffer Cache ayant une taille finie, Oracle utilise un algorithme LRU (Least
Recently Used) pour grer le cache : en cas de manque de place, Oracle supprime du cache les donnes
utilises le moins rcemment.
Gnralement, augmenter la taille du Database Buffer Cache amliore les performances.
La taille du bloc (DB_BLOCK_SIZE) tant fixe la cration de la base, la taille du Database Buffer Cache
est dfinie par la valeur du paramtre DB_BLOCK_BUFFERS qui fixe le nombre de buffers en mmoire,
chaque buffer ayant une taille gale DB_BLOCK_SIZE.
Le paramtre DB_BLOCK_BUFFERS est typiquement compris entre un millier (pour une petite base de test)
et plusieurs dizaines/centaines de milliers doctets.
Dimensionn par le paramtre DB_CACHE_SIZE.

 Redo Log Buffer : Le Redo Log Buffer stocke les informations sur les modifications apportes la base,
avant leur criture dans un fichier de Redo Log.
Lcriture dans le Redo Log Buffer est squentielle (les modifications de plusieurs transactions se
mlangent) et circulaire (quand le buffer est plein, il repart au dbut aprs avoir t crit sur disque dans
les fichiers de Redo Log).
Dimensionn par le paramtre LOG_BUFFER.
 Large Pool ( partir de la Version 8), Ajout en version 8 lextrieur du pool partag pour procurer de
lespace spcifique aux oprations parallles, lusage de la configuration MTS et du module RMAN. En
version 10g, la mise en uvre de lASM utilise le Large Pool. Oracle conseille de le dimensionner 100
Mo dans ce cas.
Dimensionne par le paramtre LARGE_POOL_SIZE.
 Java Pool ( partir de la Version 8), zone rserve aux programmes Java.
Dimensionn par le paramtre JAVA_POOL_SIZE.
Linstallation des composants Java impose que cette zone soit configure, les instructions Java sy
excutent.

 Streams Pool ( partir de la Version 10), zone rserve notamment lors de la rplication de donnes
entre bases de donnes distantes.
Dimensionn par le paramtre STREAMS_POOL_SIZE.
 Reserved Area ( partir de la version 7.3), zone rserve destine lenregistrement dobjets SQL de
grande taille (y compris des packages, des procdures et des fonctions).
Dimensionne par le paramtre SHARED_POOL_RESERVED_SIZE.
 Nouveaut 11g : result_cache
Ce cache est un nouveau composant de la SGA et est utilis par Oracle pour initialiser le paramtre
MEMORY_TARGET.
Par dfaut ce paramtre est positionn une valeur gale 128K.
Ces diffrentes zones mmoires sont configures laide du paramtre contenu dans le fichier de
paramtres SPFILE.
En dehors de la SGA, chaque processus possde une zone de mmoire prive appele PGA (Program
Global Area).

Document Tellora

Page 31/205

Exploitation Oracle 11g


www.tellora.fr

La version 11g, offre la possibilit dautomatiser la gestion de linstance


grce aux paramtres MEMORY_TARGET et MEMORY_MAX_SIZE.

La vue dynamique V$MEMORY_TARGET_ADVICE


Cette vue dynamique de performances, permet de suivre lallocation dynamique et visualiser les
diffrentes valeurs de lallocation dynamique de la mmoire.
Cette vue contient les colonnes :

 Memory size : taille relle de la mmoire totale alloue linstance


 Size_factor : coefficient de taille
 Estd_db_time : taille de linstance utilise en mmoire en moyenne par rapport aux facteurs size-factor et
time_factor.

 Time_factor : coefficient de temps


 Version :
Select * from v$memory_target_advice ;

La vue V$MEMORY_DYNAMIC_COMPONENTS, permet de visualiser les diffrentes valeurs de chaque pool,


entre autre la shared_pool, le database buffer cache, le large pool, etc
Select component, current_size, min_size, max_size
from v$memory_dynamic_components ;

8.2 Le fichier de paramtres (init.ora ou SPFILE.ORA)


Au dmarrage, linstance lit un fichier de paramtres qui contient des paramtres dinitialisation.
Ce fichier est gr par le DBA.
Les paramtres dinitialisation permettent notamment linstance :

 Dallouer la mmoire souhaite aux diffrentes structures de la SGA


 De trouver le nom et lemplacement des fichiers de contrle de la base

Il existe 2 types de paramtres, les paramtres dynamiques et les paramtres statiques.


Les paramtres dynamiques sont modifiables sans avoir besoin darrter la base de donnes.
Les vues V$SYSTEM_PARAMETER et V$SYSTEM_PARAMETER2 (idem V$SYSTEM_PARAMETER avec une
mise en forme des paramtres) permettent de connaitre la valeur des paramtres de linstance en cours
de fonctionnement.

Document Tellora

Page 32/205

Exploitation Oracle 11g


www.tellora.fr

Rgles :

 Les paramtres sont spcifis sous la forme nom_paramtre = valeur


 Tous les paramtres sont optionnels et ont une valeur par dfaut
 Des commentaires peuvent tre inclus et commencent par le caractre #
 La valeur peut tre spcifie entre des guillemets doubles si elle contient des caractres spciaux (gal,
espace, )

 Les valeurs multiples sont spcifies entre parenthses, spares par des virgules

8.3 Les processus darrire plan


Il est important de distinguer les processus darrire plan des autres processus.
Ils sont indpendants de la connexion des utilisateurs. Ils sont lancs au dmarrage de linstance et
arrts lors de larrt de linstance.
Ils ralisent des oprations sur linstance et sur la base de donnes, comme lcriture des fichiers de
donnes, la rcupration de la base de donnes ou la rsolution des erreurs.
Certains processus aident augmenter les performances globales du systme.
Principaux processus :

 Database Writer (DBWRn) : crit sur disque les donnes modifies dans le Database Buffer Cache. Les
informations de la base de donnes manipules par les sessions transitent par ce cache ddi cet
usage.

 Log Writer (LGWR) : crit sur disque le contenu du Redo Log Buffer dans les fichiers Redo.
 Checkpoint (CKPT) : enregistre les checkpoints dans len-tte des fichiers de donnes. Lorsque quun
Checkpoint a lieu, toutes les informations qui se trouvent en mmoire sont enregistres sur disque
lemplacement prvu. Cet vnement correspond un jalon permettant la restauration des donnes
jusqu ce point prcis dans le temps. CKPT peut son tour dclencher DBWR et LGWR.

 Process Monitor (PMON) : charg du nettoyage lors du plantage dun processus utilisateur. Il libre les
ressources de sessions qui se sont mal termines.

 System Monitor (SMON) : restauration de linstance aprs un arrt anormal. Cest le gardien de la
cohsion des donnes. Une instance cohrente est tablie chaque fois que la base est dmarre.

 Job Queue Coordinator (CJQ) : utilis par le Scheduler, il gnre les processus pour excuter les jobs
planifis qui se trouvent dans la file dattente interne dOracle.
Les utilisateurs peuvent crer des jobs et les soumettre ce coordinateur.
JOB_QUEUE_PROCESSES > 0 permet de dfinir le nombre de jobs soumis en simultan.

 Memory Manager (MMAN) : il agit comme un distributeur de mmoire et coordonne la taille alloue aux
diffrents composants.

 Memory Monitor (MMON) : programme et dclenche ADDM (LAutomatic Database Diagnostic Monitor)
qui effectue des analyses pour dterminer des problmes potentiels.

Selon la configuration du serveur, dautres processus darrire plan peuvent tre prsents :

 Archiver (ARCn) : en base archive il archive des fichiers de Redo Log chaque fois quun fichier Redo
est plein.

 Recover (RECO) : gre les bases de donnes distribues.


 Dispatcher (Dnnnn) : prsent en serveur partag.

Document Tellora

Page 33/205

Exploitation Oracle 11g


www.tellora.fr

 Global Cache service (LMS) : prsent en option RAC (Real Application Cluster).
 Job Queue (SNPn) : processus charg de rafrachir les snapshots ou dexcuter priodiquement des
tches programmes avec le package DBMS_JOB.

8.4 La base de donnes


La base de donnes est lensemble des fichiers qui permettent de grer les donnes stockes dans de la
base de donnes.
Une base de donnes est constitue de :

 Un fichier de contrle, contenant les informations sur tous les autres fichiers de la base (nom,
emplacement, taille).

 Fichiers de Redo Log, contenant lactivit des sessions connectes la base. Ce sont des journaux de
transactions de la base. Ils sont organiss en groupe possdant le mme nombre de membres.

Et ventuellement, de fichiers de Redo Log archivs contenant les archives danciens fichiers de Redo
Log.
Dun ou plusieurs fichiers de donnes qui contiennent les donnes proprement dites, elle contient la
cration de la base de donnes au minimum :

Tablespace SYSTEM, contenant le dictionnaire de donnes.


Tablespace SYSAUX, cest le tablespace auxiliaire du tablespace SYSTEM contenant des
fonctions Oracle ou des donnes utilises par des outils tels que le rfrentiel dOEM (Oracle Enterprise
Manager), places avant dans un tablespace OEM_REPOSITORY, situes aujourdhui dans le
tablespace SYSAUX.


Tablespace Temporaire TEMP, rcuprant les segments temporaires utiliss par les requtes
SQL de la base de donnes.

Tablespace UNDO, rcuprant la version prcdente des donnes en cours de modification par
les transactions se droulant sur la base.




Tablespace USERS, tablespace de travail par dfaut des utilisateurs.


Un fichier de paramtres binaire SPFILE<SID>.ORA, contenant les paramtres de dmarrage de
linstance et dautres valeurs qui dterminent lenvironnement dans lequel elle sexcute.
-- Cr partir dun fichier de paramtres caractre (INIT<SID>.ora)
Un fichier de mots de passe, contenant le mot de passe du privilge SYSDBA.

8.4.1

Les fichiers de donnes

Ils contiennent les donnes proprement dites de la base (tables et index notamment).
Ils sont logiquement regroups en tablespaces.
Un tablespace est une unit logique de stockage compose dun ou plusieurs fichiers physiques.
La quasi totalit des oprations dadministration relatives au stockage seffectue en travaillant sur le
tablespace et non sur le fichier de donnes.
Dans la pratique, une base comportera donc dautres fichiers de donnes appartenant dautre
tablespaces.

Document Tellora

Page 34/205

Exploitation Oracle 11g


www.tellora.fr

Les fichiers de donnes sont dcoups en blocs dune taille dfinie la cration de la base (2 ko, 4 ko, 8
ko, ). La taille du bloc oracle est dfinie par le paramtre DB_BLOC_SIZE.
Lespace occup par un objet dans un tablespace est dsign par le terme gnrique de segment.
Un segment appartient un tablespace et est constitu dextents.
Un extent est un ensemble de blocs contigus dans un fichier de donnes.

Dans limage prsente ci-dessus nous voyons que la table Pays objet logique stock dans le tablespace
DATA est constitue de 3 extents ;

 2 extents sont stocks dans le fichier DATA01.DBF


 1 extent est stock dans le fichier DATA02.DBF.

Document Tellora

Page 35/205

Exploitation Oracle 11g


www.tellora.fr

Utilisateurs et connexion la base de donnes

A la cration dune base de donnes un ensemble dutilisateurs sont crs, dont SYSTEM et SYS.
SYSTEM est lutilisateur que lon prfrera pour crer les objets de schma tels que les users, les
tables ou les index, (SYSTEM est un utilisateur qui a des privilges dba).
Lutilisateur SYS (super utilisateur) sera utilis avec le privilge SYSDBA, pour effectuer des tches
dadministration lourdes telles que dmarrage ou arrt de base de donnes, modification de
paramtres systmes, restauration de base, bref tout ce qui concerne la structure mme de la base de
donnes ou de linstance.

- Utiliser un autre compte SYSTEM pour


ladministration courante (objets de schmas).
- Rserver le compte SYS pour les connexions AS
SYSDBA
- Ne jamais crer dobjets dans le schma SYS
(autres que ceux du dictionnaire)

9.1 Syntaxe pour la connexion classique


La connexion dun utilisateur quelconque une base de donnes oracle se fait en suivant la syntaxe :
CONNECT utilisateur/mot_de_passe@service_OracleNet

SQLPLUS /nolog
SQL> Connect CHARLY/monpass@bora
Connect.
SQL> Connect SYSTEM/manager@bora
Connect.

9.2 Syntaxe pour la connexion spciale SYSDBA ou SYSOPER


Avec une identification par le systme dexploitation
CONNECT / AS { SYSDBA | SYSOPER }

$ Export ORACLE_SID=TAHITI
$ sqlplus /nolog
SQL> Connect /as sysdba
Connect.

Document Tellora

Page 36/205

Exploitation Oracle 11g


www.tellora.fr

Avec une identification par un fichier de mot de passe


CONNECT utilisateur/mot_de_passe AS { SYSDBA | SYSOPER }

SQL> Connect SYS/secret as sysdba


Connect.

9.3 Les connexions SYSDBA et SYSOPER


SYSDBA : permet toutes les oprations lourdes dadministration (cration, arrt, dmarrage,
restauration, ).
SYSOPER : mme droits que SYSDBA, lexception de la cration de la base et des restaurations
partielles.
Sur un serveur Unix ou Windows, on va vrifier que la variable denvironnement est bien positionne
avant de se connecter la base de donnes.

Sassurer que linstance souhaite est bien dsigne


par la variable denvironnement ORACLE_SID, et se
connecter en SYSDBA

Sous DOS
C:\>set oracle_sid=TAHITI
C:\>sqlplus /nolog
SQL > CONNECT /AS SYSDBA

Sous UNIX
Export ORACLE_SID=TAHITI
Echo ORACLE_SID
TAHITI
SQLPLUS /nolog
SQL> Connect /as sysdba
Connect.

9.4 Le fichier de mots de passe


Autrefois cr avec lutilitaire ORAPWD, il est aujourdhui cr automatiquement lors de la cration de la
base de donnes avec loutil dbca.
Ce fichier protge le compte SYS associ au privilge SYSDBA permettant une administration lourde
(cration, dmarrage, arrt, restaurations).

orapwd file=<fichier> password=<mot de passe> [entries=<valeur>]

Document Tellora

Page 37/205

Exploitation Oracle 11g


www.tellora.fr

rem *** Cration du fichier de mots de passe ***


C> REM orapwd
FILE=/app/oracle/product/11.2.0/dbhome_1/database/PWDtahiti.ORA

PASSWORD=secret ENTRIES=10
Mettre le paramtre REMOTE_LOGIN_PASSWORDFILE EXCLUSIVE
Se connecter au systme dexploitation.
Lancer loutil dadministration et se connecter, en tant que SYS laide du mot de passe dfini avec le
privilge SYSDBA ou SYSOPER.
CONNECT sys/mot_de_passe AS { SYSDBA | SYSOPER }

SQLPLUS /nolog
SQL> Connect SYS/secret@bora as SYSDBA
Connect.

9.5 Les variables denvironnement


Ces variables doivent tre positionnes avant le lancement de loutil SQL*Plus en mode commande,
sous le systme dexploitation.

Set ORACLE_SID=orcl
Sqlplus /NOLOG
Connect as sysdba

Exemple sous unix

export ORACLE_SID=orcl
echo ORACLE_SID
orcl
Sqlplus /NOLOG
Connect as sysdba

Les principales variables denvironnement sont






ORACLE_HOME = dfinie lemplacement du noyau Oracle C:\oracle\product\11.2.0\dbhome_1


ORACLE_BASE = dfinie lemplacement des bases oracle C:\app\oracle
ORACLE_SID = dsigne le nom de linstance sur laquelle on veut se positionner
NLS_LANG = langage du systme dexploitation FRENCH_FRANCE.WE8MSWIN1252

Document Tellora

Page 38/205

Exploitation Oracle 11g


www.tellora.fr

10

Dmarrer & Arrter une base de donnes

Une instance peut tre dmarre avec 3 niveaux successifs de disponibilit de la base :

Pour rendre une base accessible tous les utilisateurs, il faut dmarrer une instance et ouvrir la base
avec cette instance.
Il y a trois tapes dans le processus de dmarrage :

 Dmarrage de linstance
 Montage de la base
 Ouverture de la base
Un fichier de paramtres SPFILE est lu lors du dmarrage de linstance. Il permet de configurer les
paramtres de linstance.
SQL> startup
Instance ORACLE lance.
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Base de donnes monte.
Base de donnes ouverte.
SQL>

135338868
453492
117440512
16777216
667648

bytes
bytes
bytes
bytes
bytes

Document Tellora

Page 39/205

Exploitation Oracle 11g


www.tellora.fr

De mme, il y a trois tapes dans le processus darrt :

 Fermeture de la base
 Dmontage de la base
 Arrt de linstance
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

10.1

Dmarrer la base de donnes

Dans SQL*Plus, la commande STARTUP permet de dmarrer une instance et de lui associer une base de
donnes avec le niveau de disponibilit souhait.

STARTUP [NOMOUNT | MOUNT [nom_base] | OPEN [nom_base]]


[RESTRICT] [PFILE=nom_fichier]
;

- NOMOUNT | MOUNT | OPEN : niveau de disponibilit souhait


- nom_base : nom de la base monter ou ouvrir
- RESTRICT : restreint laccs la base aux utilisateurs ayant le privilge RESTRICTED SESSION
- PFILE : nom du fichier de paramtres utiliser

Sassurer que linstance souhaite est bien dsigne


par la variable denvironnement ORACLE_SID, et se
connecter en SYSDBA.

Taper la commande STARTUP avec les options souhaites, puis dmarrer une instance sans associer de
base (en vue den crer une nouvelle ou de recrer le fichier de contrle) :

 Dmarrer une instance ltat MOUNT pour effectuer certaines tches dadministration :
SQL> startup mount
ORACLE instance started.
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.

159383552
788204
141293844
16777216
524288

bytes
bytes
bytes
bytes
bytes

Document Tellora

Page 40/205

Exploitation Oracle 11g


www.tellora.fr

 Dmarrer avec un fichier de paramtres caractre (PFILE)


SQL> startup pfile=D:\cours_admin10G\inittahiti02.ora;
ORACLE instance started.
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.
Database opened.

10.2

159383552
788204
141293844
16777216
524288

bytes
bytes
bytes
bytes
bytes

Modifier la disponibilit de la base de donnes

Si linstance a t dmarre dans un niveau intermdiaire (NOMOUNT ou MOUNT), il est possible de la faire
passer au niveau suprieur grce la commande SQL ALTER DATABASE :

 NOMOUNT  MOUNT
ALTER DATABASE MOUNT;

 MOUNT  OPEN
ALTER DATABASE OPEN;

La commande SQL ALTER DATABASE ne permet pas de revenir un niveau


infrieur.
Pour cela, il faut arrter la base et la redmarrer avec le niveau souhait.

SQL> shutdown immediate


Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 159383552
Fixed Size
788204
Variable Size
141293844
Database Buffers
16777216
Redo Buffers
524288
SQL>
SQL> alter database mount;
Base de donnes modifie.
SQL> alter database open;
Base de donnes modifie.

bytes
bytes
bytes
bytes
bytes

Document Tellora

Page 41/205

Exploitation Oracle 11g


www.tellora.fr

Pour forcer la base redmarrer vous pouvez utiliser la commande :


STARTUP FORCE

SQL> startup force


ORACLE instance started.
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.
Database opened.
SQL>

10.3

159383552
788204
141293844
16777216
524288

bytes
bytes
bytes
bytes
bytes

Arrter la base de donnes

Dans SQL*Plus, la commande SHUTDOWN permet darrter linstance et la base de donnes.


SHUTDOWN [NORMAL | IMMEDIATE | TRANSACTIONNAL | ABORT]

- NORMAL : Oracle attend que tous les utilisateurs soient dconnects (pas de nouvelle connexion
autorise) puis ferme proprement la base.
- IMMEDIATE : Oracle dconnecte tous les utilisateurs (en effectuant un ROLLBACK des ventuelles
transactions en cours) puis ferme proprement la base.
- TRANSACTIONNAL : Oracle attend que toutes les transactions en cours se terminent avant de
dconnecter les utilisateurs (pas de nouvelle transaction autorise) puis ferme et dmonte proprement
la base.
- ABORT : Oracle dconnecte tous les utilisateurs (sans effectuer de ROLLBACK des ventuelles
transactions en cours) puis ferme brutalement la base ; une restauration de linstance sera ncessaire
lors du prochain dmarrage.

Lancer loutil dadministration et se connecter AS SYSDBA, en sassurant que linstance souhaite est
correctement dsigne.

SQL> connect /@tahiti as sysdba


Connect.
SQL> select instance_name from v$instance;
INSTANCE_NAME
Tahiti

Document Tellora

Page 42/205

Exploitation Oracle 11g


www.tellora.fr

10.4

Ouvrir la base de donnes en mode RESTRICT

Pour ouvrir la base en mode restreint, il suffit douvrir la base en prcisant la clause : ENABLE
RESTRICTED SESSION.
Lorsque vous avez plac linstance en mode RESTRICTED SESSION vous pouvez effectuer des tches
dadministration en tant seul connect.

Pour ouvrir la base en mode RESTRICT il faut avoir les privilges system :
CREATE SESSION et RESTRICTED SESSION

Pour ouvrir linstance en mode RESTRICT, excutez la commande :


STARTUP RESTRICT

SQL> startup restrict


ORACLE instance started.
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Database mounted.
Database opened.

159383552
788204
141293844
16777216
524288

bytes
bytes
bytes
bytes
bytes

SQL> select instance_name,logins from v$instance;


INSTANCE_NAME
LOGINS
---------------- ---------tahiti
RESTRICTED

Puis pour repasser linstance en mode NORMAL, utilisez la commande :


ALTER SYSTEM DISABLE RESTRICTED SESSION ;

SQL> ALTER SYSTEM DISABLE RESTRICTED SESSION ;


System altered.
SQL> select instance_name,logins from v$instance;
INSTANCE_NAME
LOGINS
---------------- ---------tahiti
ALLOWED

Document Tellora

Page 43/205

Exploitation Oracle 11g


www.tellora.fr

10.5

Mettre linstance dans un tat QUIESCE

Oracle 9i permet de mettre linstance dans un tat QUIESCE o seule lactivit de SYS et SYSTEM est
autorise pour raliser des manipulations sur la base de donnes en vitant les accs concurrents.
Les autres utilisateurs ne peuvent pas travailler mme sils possdent un rle DBA ou le privilge
SYSDBA.
Oracle laisse les sessions actives (requtes en cours) se terminer avant de passer linstance dans ltat
QUIESCE (ce qui peut tre long).
Pendant ce temps, aucune session inactive ne peut devenir active (pas de nouvelle requte autorise).
Pendant que linstance est en tat QUIESCE, les demandes de connexion ou les nouvelles requtes sont
mises en attente sans message (la session parat bloque).
La colonne ACTIVE_STATE de la vue V$INSTANCE donne ltat de la base de donnes :

 NORMAL = linstance autorise tous les utilisateurs travailler.


 QUIESCING = linstance est en train de passer dans ltat QUIESCE, elle attend que les sessions actives
deviennent inactives.

 QUIESCED = linstance est dans ltat QUIESCE

Ncessite que la fonctionnalit de gestion des plans de ressource soit active


(Database Ressource Manager). Positionner le paramtre
RESOURCE_MANAGER_PLAN = nom du plan (INTERNAL_PLAN qui est le plan
par dfaut).

SQL> alter system quiesce restricted;


alter system quiesce restricted
*
ERREUR la ligne 1 :
ORA-25507: le gestionnaire de ressources na pas t continuellement actif

Mettre linstance dans ltat QUIESCE

ALTER SYSTEM QUIESCE RESTRICTED;

Arrt de ltat QUIESCE


ALTER SYSTEM UNQUIESCE;

10.6

Vues du dictionnaire de donnes

Au niveau du dictionnaire de donnes, pour trouver des informations sur les bases identifies sur un
serveur, consultez les vues suivantes qui sont accessibles un utilisateur de type administrateur.

V$INSTANCE : informations sur linstance


V$DATABASE : informations sur la base
V$SGA : informations sur la SGA
V$PARAMETER : informations sur les paramtres actifs

Document Tellora

Page 44/205

Exploitation Oracle 11g


www.tellora.fr

V$VERSION : informations sur la version dOracle


V$OPTION : informations sur les options disponibles
DATABASE_PROPERTIES : informations sur les proprits par dfaut de la base de donnes
DATABASE_SUMMARY : informations de la base sur les service dclars, le nom du serveur, et le
characterset.

NLS_DATABASE_PARAMETERS : paramtre NLS de la base


V$MEMORY_DYNAMIC_COMPONENTS, permet de visualiser les diffrentes valeurs de chaque pool, entre
autre la shared_pool, le database buffer cache, le large pool, etc
Select component, current_size, min_size, max_size
from v$memory_dynamic_components ;

La vue dynamique V$MEMORY_TARGET_ADVICE


Cette vue dynamique de performances, permet de suivre lallocation dynamique et visualiser les
diffrentes valeurs de lallocation dynamique de la mmoire.

Cette vue contient les colonnes :

 Memory size : taille relle de la mmoire totale alloue linstance


 Size_factor : coefficient de taille
 Estd_db_time : taille de linstance utilise en mmoire en moyenne par rapport aux facteurs size-factor et
time_factor.

 Time_factor : coefficient de temps


 Version :
Select * from v$memory_target_advice ;

Document Tellora

Page 45/205

Exploitation Oracle 11g


www.tellora.fr

11

Gestion de linstance et SPFILE

Au dmarrage, linstance lit un fichier de paramtres binaire SPFILE qui contient des paramtres
dinitialisation. Ce fichier est gr par le DBA.
Il sagit dun rfrentiel centralis des paramtres dinitialisation de linstance au dmarrage de la base
de donnes en binaire qui permet deffectuer des modifications de paramtres pendant le
fonctionnement de linstance (sans avoir besoin darrter la base de donnes.

Rgles concernant lcriture des paramtres :







Les paramtres sont spcifis sous la forme nom_paramtre = valeur


Tous les paramtres sont optionnels et ont une valeur par dfaut
Des commentaires peuvent tre inclus et commencent par le caractre #
La valeur peut tre spcifie entre des guillemets doubles si elle contient des caractres spciaux (gal,
espace, )
Les valeurs multiples sont spcifies entre parenthses, spares par des virgules

Ces paramtres sont pris en compte directement en mmoire (paramtres dynamiques) ou uniquement
dans le SPFILE (paramtres statiques). Dans dernier ce cas il faut arrter puis redmarrer la base de
donnes pour que la modification soit prise en compte par linstance.

11.1

Crer le fichier du paramtre SPFILE

Un fichier de paramtres serveur peut tre export au format texte par lordre SQL :
CREATE SPFILE [ = nom_pfile ] FROM PFILE [ = nom_spfile ]
;

Cette action ncessite une connexion SYSDBA ou SYSOPER.

se connecter as sysdba
SQL> connect /@tahiti as sysdba
Connect.

crer le fichier de paramtres SPFILE


SQL> create spfile from pfile=d:\tahiti\pfile\inittahiti.ora;
Fichier cr.

Dans loptique de lutilisation dun fichier de paramtres commun plusieurs instances (par exemple en
RAC), ceux-ci peuvent tre spcifis sous la forme : instance.paramtre , le symbole * dsignant
nimporte quelle instance (*_SHARDE_POOL_SIZE).

 Cest cette syntaxe qui est utilise lors de lexport dun fichier SPFILE.

Document Tellora

Page 46/205

Exploitation Oracle 11g


www.tellora.fr

11.2

Exporter un fichier de paramtres serveur SPFILE

Le fichier gnr peut tre utilis des fins de simple consultation ou de modification, pour crer le
SPFILE partir du PFILE (init<SID>.ora) modifi ou pour effectuer des dmarrages particuliers.
CREATE PFILE [ = nom_pfile ] FROM SPFILE [ = nom_spfile ]
;

Exporter le fichier de paramtres SPFILE


SQL> create pfile
from spfile ;
File created.

Le fichier INITorcl.ORA est gnr dans le rpertoire ORACLE_HOME/database sous Windows et


dans le rpertoire ORACLE_HOME/dbs sous unix.

INITorcl.ORA
orcl.__db_cache_size=96468992
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__oracle_base=C:\app\oracle#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=146800640
orcl.__sga_target=281018368
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=163577856
orcl.__streams_pool_size=4194304
*.audit_file_dest=C:\app\oracle\admin\orcl\adump
*.audit_trail=db
*.compatible=11.2.0.0.0
*.control_files=C:\app\oracle\oradata\orcl\control01.ctl,
C:\app\oracle\flash_recovery_area\orcl\control02.ctl
*.db_block_size=8192
*.db_domain=26.1.15
*.db_name=orcl
*.db_recovery_file_dest=C:\app\oracle\flash_recovery_area
*.db_recovery_file_dest_size=4039114752
*.diagnostic_dest=C:\app\oracle
*.dispatchers=(PROTOCOL=TCP) (SERVICE=orclXDB)
*.local_listener=LISTENER_ORCL
*.memory_target=425721856
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile=EXCLUSIVE
*.undo_tablespace=UNDOTBS1

Les colonnes ISSES_MODIFIABLE et ISSYS_MODIFIABLE de la vue V$PARAMETER donnent des informations


sur le type de paramtre.

 La colonne ISSES_MODIFIABLE vaut TRUE ou FALSE selon que le paramtre est modifiable ou non au
niveau de la session.

 La colonne ISSYS_MODIFIABLE vaut FALSE si le paramtre nest pas modifiable au niveau du systme,
et DEFERRED ou IMMEDIATE selon quil est modifiable en diffr ou immdiatement.

Document Tellora

Page 47/205

Exploitation Oracle 11g


www.tellora.fr

SQL> set pagesize 100


SQL> col name format A16
SQL> col value format A40
SQL> select name, value, isses_modifiable, issys_modifiable
2
from v$parameter
3
where name=control_files
4
or name=shared_pool_size
5
or name=sort_area_size
6 order by name;
NAME
VALUE
ISSES ISSYS_MOD
---------------- ---------------------------------------- ----- --------control_files
D:\Oracle\oradata\TAHITI\control01.ctl, FALSE FALSE
D:\Oracle\oradata\TAHITI\control02.ctl
shared_pool_size 16777216
FALSE IMMEDIATE
sort_area_size
65536
TRUE DEFERRED

11.3

Modifier des paramtres de linstance ou du SPFILE

Lordre SQL ALTER SYSTEM permet de modifier dynamiquement la valeur des paramtres dinitialisation.
ALTER SYSTEM SET paramtre = valeur [] [ COMMENT = texte ]
[ DEFERRED ] [ SCOPE = MEMORY | SPFILE | BOTH ]
;

- Paramtre : nom du paramtre


- Valeur : valeur attribue au paramtre
- COMMENT = texte : commentaire associ la modification du paramtre. Insr dans le fichier de
paramtres serveur si ce dernier est la cible de la modification (voir la clause SCOPE).
- DEFERRED : si prsent, indique que la modification ne concerne que les futures sessions, pas celles
actuellement connectes. Na de sens que si la mmoire est la cible de la modification (voir la clause
SCOPE). Peut tre obligatoire pour certains paramtres.
- SCOPE : dfinit la cible de la modification.
- MEMORY : la mmoire seulement
- SPFILE : le fichier de paramtres serveur seulement
- BOTH : les deux

Modification dun paramtre uniquement en mmoire


SQL> SELECT value FROM v$parameter WHERE name = shared_pool_size;
VALUE
167772168
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE = 80M
2
SCOPE = memory;
Systme modifi.

Document Tellora

Page 48/205

Exploitation Oracle 11g


www.tellora.fr

11.4

Vues du dictionnaire de donnes

Plusieurs vues du dictionnaire permettent de visualiser les paramtres :

V$PARAMETER = valeur actuelle des paramtres.


V$PARAMETER2 = identique V$PARAMETER mais avec un affichage sur plusieurs lignes des paramtres
qui ont une liste de valeurs (comme le paramtre CONTROL_FILES par exemple).

V$SPPARAMETER = contenu actuel du fichier de paramtres serveur actif. (le contenu de la vue est vide si
linstance nutilise pas de fichier de paramtres serveur). Donne la valeur du paramtre situ dans le
SPFILE.

SHOW parameter SGA : cette commande affiche tous les parametres contenant le mot SGA dans
SQL*Plus

La vue dynamique V$SYSTEM_PARAMETER


Cette vue dynamique de performances, permet de la valeur des paramtres de linstance.
Cette vue contient les colonnes :

 NAME : Nom du paramtre (en minuscule)


 VALUE : valeur du paramtre
 DISPLAY_VALUE : valeur du paramtre avec mise en forme laffichage
 ISDEFAULT : TRUE si le paramtre est gal sa valeur par dfaut, FALSE autrement.
 ISSES_MODIFIABLE : TRUE si le paramtre nest pas modifiable au niveau de la session, FALSE sinon
 ISSYS_MODIFIABLE : FALSE si le paramtre nest pas modifiable au niveau du systme, et DEFERRED
sil est modifiable en diffr et IMMEDIATE sil est modifiable immdiatement.

 ISMODIFIED : indique si le paramtre a t modifi depuis le dmarrage de linstance.


 ISDEPRECATED : TRUE si le paramtre est dprci.

Document Tellora

Page 49/205

Exploitation Oracle 11g


www.tellora.fr

12

Jeux de caractres et paramtres NLS

12.1

Introduction

NLS a pour fonction dadapter automatiquement la langue locale les utilitaires de base de donnes et
les messages derreur, lordre de tri, la date, lheure, les conventions montiques, numriques et
calendaires.
Les oprations lies la langue sont gres par un certain nombre de paramtres cot client et cot
serveur.
Le serveur et le client peuvent se trouver des emplacements diffrents.
Au cas o chacun dentre eux utilise des caractres diffrents, ORACLE fait automatiquement la
conversion.
Caractristiques du NLS :










Prise en charge de la langue


Prise en charge du territoire
Prise en charge du jeu de caractres
Tri linguistique
Prise en charge des messages
Formats date et heure
Formats numriques
Formats montaires

Jeux de caractres de la base et jeu de caractres national


Le jeu de caractres est cr la cration de la base de donnes par la commande :
CREATE DATABASE

clause CARACTER SET


clause NATIONAL CARACTER SET

Les jeux de caractre de la base de donnes et le jeu de caractres national (client + serveur) doivent
tre trs proches.
Une base oracle possde 2 jeux de caractres :

 Jeu de caractres standard : Pour les types SQL : CHAR, VARCHAR et LOB
 Jeu de caractres national : Pour les types SQL : NCHAR, NVARCHAR et NLOB

A partir de la version 9i, le jeu de caractres national doit imprativement tre un jeu de caractres
UNICODE.

 2 valeurs possibles : UTF8 et AL16UTF16

Document Tellora

Page 50/205

Exploitation Oracle 11g


www.tellora.fr

La commande ALTER SESSION permet de modifier le comportement de la session en cours, on peut


changer les caractres NLS de la session :

 ALTER SESSION SET NLS_LANGUAGE=FRENCH ;


 ALTER SESSION SET NLS_TERRITORY=FRANCE ;
 ALTER SESSION SET NLS_DATE_FORMAT= DD.MM.RRRR ;
 ALTER SESSION SET NLS_TIMESTAMP_FORMAT=DD.MM.RRRR HH24:MI:SSXFF ;
 ALTER SESSION SET NLS_LANGUAGE=FRENCH_FRANCE.WE8MSWIN1252;
La globalisation NLS (National Langage Support) permet

 le support du traitement des donnes dans les diffrentes reprsentations de caractres utiliss par le
matriel

 La transparence de la diffrence des jeux de caractres entre le serveur et le client


 Le support doprations dpendantes de la langue de lutilisateur final permettant de les spcifier par
session : messages du serveur, format des dates et des nombres, ou encore tris alphabtiques

 La variable denvironnement NLS_LANG qui dfinit lencodage de caractres dun terminal client :
o

Les donnes transmises entre le client et le serveur sont automatiquement converties

Lencodage de la base de donnes doit tre un ensemble de niveau suprieur ou quivalent pour
tous les encodages clients

Si le jeu de caractres du client est diffrent de celui du serveur alors une conversion est opre dans
les 2 sens, mais il est conseill davoir le mme jeu de caractres sur le client et le serveur, car si un
caractre utilis na pas de correspondant dans le jeu de caractres en face, alors une perte
dinformation est invitable.
La variable denvironnement NLS_LANG sur le client joue un rle dterminant dans la conversion des
caractres.
Le jeu de caractres national a t ajout partir de la version 8i.
Une base oracle possde 2 jeux de caractres :

 Jeu de caractre standard


Pour les types SQL : CHAR, VARCHAR et LOB

 Jeu de caractres national


Pour les types SQL : NCHAR, NVARCHAR et NLOB
A partir de la version 9i, le jeu de caractres national doit imprativement tre un jeu de caractres
UNICODE.

 2 valeurs possibles : UTF8 et AL16UTF16


La globalisation NLS (National Langage Support) permet :

 le support du traitement des donnes dans les diffrentes reprsentations de caractres utiliss par le
matriel.

 La transparence de la diffrence des jeux de caractres entre le serveur et le client


 Le support doprations dpendantes de la langue de lutilisateur final permettant de les spcifier par
session : messages du serveur, format des dates et des nombres, ou encore tris alphabtiques.

Document Tellora

Page 51/205

Exploitation Oracle 11g


www.tellora.fr

Paramtres par dfaut :


23/05/08
page: 1

OPTIONS PAR DEFAUT DE LA BASE DE DONNEES

Option
----------------------------------DICT.BASE
DEFAULT_TEMP_TABLESPACE
DEFAULT_PERMANENT_TABLESPACE
DEFAULT_TBS_TYPE
NLS_LANGUAGE
NLS_TERRITORY
NLS_CURRENCY
NLS_ISO_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_CHARACTERSET
NLS_CALENDAR
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_SORT
NLS_TIME_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_COMP
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CONV_EXCP
NLS_NCHAR_CHARACTERSET
NLS_RDBMS_VERSION
GLOBAL_DB_NAME
EXPORT_VIEWS_VERSION
DBTIMEZONE

Valeur
--------------------------------------------2
TEMP
USERS
SMALLFILE
AMERICAN
AMERICA
$
AMERICA
.,
WE8MSWIN1252
GREGORIAN
DD-MON-RR
AMERICAN
BINARY
HH.MI.SSXFF AM
DD-MON-RR HH.MI.SSXFF AM
HH.MI.SSXFF AM TZR
DD-MON-RR HH.MI.SSXFF AM TZR
$
BINARY
BYTE
FALSE
AL16UTF16
10.2.0.1.0
NSKEPP.REGRESS.RDBMS.DEV.US.ORACLE.COM
8
00:00

Extrait du fichier de paramtres :


nls_calendar
nls_comp
nls_currency
nls_date_format
nls_date_language
nls_dual_currency
nls_iso_currency
nls_language
nls_length_semantics
nls_nchar_conv_excp
nls_numeric_characters
nls_sort
nls_territory
nls_time_format
nls_timestamp_format
nls_timestamp_tz_format
nls_time_tz_format

AMERICAN
BYTE
FALSE
AMERICA

Document Tellora

Page 52/205

Exploitation Oracle 11g


www.tellora.fr

Certains paramtres influencent lutilisation des index par loptimiseur :


NLS_SORT : dtermine le traitement des chanes de caractres dans les tris :

 Pas deffet sur les tris des index


 Pas deffet sur les tris internes doracle (suppressions des doublons par exemple)
NLS_COMP : dtermine le comportement lors des oprations de comparaison des chanes de
caractres :

 BINARY
 ANSI
 LINGUISTIC

12.2

Migration de jeux de caractres

Faites attention lors de la migration de jeux de caractres car une colonne dfinie avec une longueur
convenable dans un jeu de caractres peut tre tronque dans un autre jeu de caractres.
Il faut vrifier que le paramtre NLS_LANG de la base a le mme jeu de caractres du systme
dexploitation du client.

 Faire une sauvegarde de la base avant une migration de jeu de caractres


Loutil CSSCAN excut sous le systme dexploitation permet dafficher les problmes possibles de la
base de donnes convertir. Le rsultat des problmes affichs par loutil peut ncessiter lintervention
du support Oracle.
Linstallation de loutil csscan ncessite lexcution sous SYS du script :

?/rdbms/admin/csminst.sql

C:\oracle>csscan help=y
Character Set Scanner v2.1 : Release 10.2.0.0.0 - Production on Lun. Nov. 10 12:
12:51 2008
Copyright 1982, 2005, Oracle. All rights reserved.
You can let Scanner prompt you for parameters by entering the CSSCAN
command followed by your username/password:
Example: CSSCAN SYSTEM/MANAGER
Or, you can control how Scanner runs by entering the CSSCAN command
followed by various parameters. To specify parameters, you use keywords:
Example: CSSCAN SYSTEM/MANAGER FULL=y TOCHAR=utf8 ARRAY=1024000 PROCESS=3
Keyword
Default Prompt Description
---------- ------- ------ ------------------------------------------------USERID
yes
username/password
FULL
N
yes
scan entire database
USER
yes
owner of tables to be scanned
TABLE
yes
list of tables to scan
COLUMN
yes
list of columns to scan
EXCLUDE
list of tables to exclude from scan
TOCHAR
yes
new database character set name
FROMCHAR
current database character set name
TONCHAR
new national character set name
FROMNCHAR
current national character set name
ARRAY
1024000 yes
size of array fetch buffer
PROCESS
1
yes
number of concurrent scan process

Document Tellora

Page 53/205

Exploitation Oracle 11g


www.tellora.fr

MAXBLOCKS
CAPTURE
N
SUPPRESS
FEEDBACK
BOUNDARIES
LASTRPT
N
LOG
scan
PARFILE
PRESERVE
N
LCSD
N
LCSDDATA
LOSSY
HELP
N
QUERY
N
---------- ------Scanner terminated
C:\oracle>

split table if block size exceed MAXBLOCKS


capture convertible data
maximum number of exceptions logged for each table
report progress every N rows
list of column size boundaries for summary report
generate report of the last database scan
base file name of report files
parameter file name
preserve existing scan results
no
enable language and character set detection
no
define the scope of the detection
show help screen (this screen)
select clause to scan subset of tables or columns
------ ------------------------------------------------successfully.

La migration peut se faire par EXPORT/IMPORT ou en utilisant le script CSALTER, condition que le
nouveau jeu de caractres soit un sur-ensemble de lancien.
Le script csalter.plb remplace linstruction SQL :

 ALTER DATABASE CHARACTER SET nouveau_jeu_de_caractres ;

12.2.1

Migration du jeu de caractres par EXPORT/IMPORT

Vrifiez la convertibilit du jeu de caractres avec CSSCAN. En effet, celui-ci peut rapporter un problme
de troncature de certaines colonnes de la base.

Mode opratoire :
 Exportation de la base de donnes.
 Cration dune nouvelle base de donnes dans le jeu de caractres dsir.
 Recration de tables si ncessaire avec des colonnes plus grandes pour les donnes tronques
 IMPORT des donnes dans la nouvelle base de donnes.

la variable NLS_LANGS doit avoir une valeur qui


correspond au jeu de caractres de la base source
dans les 2 phases.

Document Tellora

Page 54/205

Exploitation Oracle 11g


www.tellora.fr

Vues du dictionnaire de donnes


Les vues du dictionnaire de donnes intressantes sont :

DATABASE_PROPERTIES : informations sur les proprits par dfaut de la base de donnes


NLS_DATABASE_PARAMETERS : valeurs par dfaut des paramtres NLS utiliss par la base de

donnes (inclus les 2 jeux de caractres et la version de la base).


NLS_INSTANCE_PARAMETERS : valeurs des paramtres utiliss par linstance.
NLS_SESSION_PARAMETERS : valeurs des paramtres utiliss par la session.
V$NLS_PARAMETERS : valeurs des paramtres utiliss par la session (incluent les 2 jeux de
caractres de la base)

V$NLS_VALID_VALUE : liste des valeurs valident pour certains paramtres.

Document Tellora

Page 55/205

Exploitation Oracle 11g


www.tellora.fr

13

Crer une base de donnes

La naissance dune base de donnes Oracle se fait lors de la conception de celle-ci.


Toute erreur ce niveau verra la base de donnes afflige par des dgradations de performances
importantes. Et souvent seule une nouvelle conception permettra une optimisation relle de celle-ci.
Le processus complet de cration dune nouvelle base de donnes pour une application comporte les
tapes suivantes :

 Conception du modle conceptuel de donnes (MCD)


 Conception du modle logique puis physique de donnes (MLD et MPD)
 Cration de la base proprement dite (prsent dans ce chapitre)
Les diffrentes tapes de la cration de la base de donnes proprement dite sont :

 Crer les rpertoires sur les disques


 Prparer un nouveau fichier de paramtres init<SID>.ora
 Crer un fichier de paramtres serveur partir du fichier init<SID>.ora
 positionner ORACLE_SID , au nom de linstance
 Sous Windows uniquement, crer le service associ linstance en utilisant loutil ORADIM (qui gre les
services rattachs aux instances des bases oracle)

 Dmarrer linstance en tat NOMOUNT


 Crer la base en excutant lordre CREATE DATABASE
 Installer le dictionnaire de donnes et packages destins au bon fonctionnement de la base de donnes
 Remplir la base de donnes avec les objets de schma destin aux applications
- Cration des structures de stockage adaptes (tablespaces)
- Cration du compte Oracle qui va contenir les objets de lapplication (utilisateur propritaire des objets
applicatifs)
- Cration des objets de lapplication dans ce compte Oracle
- Cration des utilisateurs finaux de lapplication
- Sauvegarde de la base de donnes

A partir de la version 10g, il faut utiliser DBCA pour


crer une base de donnes.
- cest bien plus facile et surtout scuris !
- vous pouvez aussi gnrer les scripts de cration
de la base puis les excuter !

Document Tellora

Page 56/205

Exploitation Oracle 11g


www.tellora.fr

13.1

Prsentation du script de cration de la base

set verify off


ACCEPT sysPassword CHAR PROMPT Enter new password for SYS: HIDE
ACCEPT systemPassword CHAR PROMPT Enter new password for SYSTEM: HIDE
ACCEPT sysmanPassword CHAR PROMPT Enter new password for SYSMAN: HIDE
ACCEPT dbsnmpPassword CHAR PROMPT Enter new password for DBSNMP: HIDE
host C:\app\oracle\product\11.2.0\dbhome_1\bin\orapwd.exe
file=C:\app\oracle\product\11.2.0\dbhome_1\database\PWDtahiti.ora force=y
OLD_UMASK=umask
umask 0027
mkdir C:\app\oracle\admin\tahiti\dpdump
mkdir C:\app\oracle\admin\tahiti\pfile
mkdir C:\app\oracle\cfgtoollogs\dbca\tahiti
mkdir C:\app\oracle\flash_recovery_area
mkdir C:\app\oracle\flash_recovery_area\tahiti
mkdir C:\app\oracle\oradata\tahiti
mkdir C:\app\oracle\product\11.2.0\dbhome_1\database
umask ${OLD_UMASK}
set ORACLE_SID=tahiti
set PATH=%ORACLE_HOME%\bin;%PATH%
C:\app\oracle\product\11.2.0\dbhome_1\bin\oradim.exe -new -sid TAHITI -startmode manual spfile
C:\app\oracle\product\11.2.0\dbhome_1\bin\oradim.exe -edit -sid TAHITI -startmode auto srvcstart system
C:\app\oracle\product\11.2.0\dbhome_1\bin\sqlplus /nolog
@C:\app\oracle\admin\tahiti\scripts\tahiti.sql

Creation de la base
SET VERIFY OFF
connect SYS/&&sysPassword as SYSDBA
set echo on
spool C:\app\oracle\admin\tahiti\scripts\CreateDB.log append
startup nomount pfile=C:\app\oracle\admin\tahiti\scripts\init.ora;
CREATE DATABASE tahiti
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
USER SYS IDENTIFIED BY &&sysPassword
USER SYSTEM IDENTIFIED BY &&systemPassword
DATAFILE C:\app\oracle\oradata\tahiti\system01.dbf SIZE 700M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE C:\app\oracle\oradata\tahiti\sysaux01.dbf SIZE 600M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
C:\app\oracle\oradata\tahiti\temp01.dbf SIZE 20M REUSE
AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE UNDOTBS1 DATAFILE C:\app\oracle\oradata\tahiti\undotbs01.dbf
SIZE 200M REUSE
AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
LOGFILE
GROUP 1 (C:\app\oracle\oradata\tahiti\redo01.log) SIZE 51200K,
GROUP 2 (C:\app\oracle\oradata\tahiti\redo02.log) SIZE 51200K,
GROUP 3 (C:\app\oracle\oradata\tahiti\redo03.log) SIZE 51200K
;
spool off

creation du tablespace USERS


SET VERIFY OFF
connect SYS/&&sysPassword as SYSDBA
set echo on

Document Tellora

Page 57/205

Exploitation Oracle 11g


www.tellora.fr

spool C:\app\oracle\admin\tahiti\scripts\CreateDBFiles.log append


CREATE SMALLFILE TABLESPACE USERS LOGGING DATAFILE
C:\app\oracle\oradata\tahiti\users01.dbf SIZE 5M REUSE AUTOEXTEND ON NEXT
UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER DATABASE DEFAULT TABLESPACE USERS;
spool off

1280K MAXSIZE

creation du dictionnaire de donnes


SET VERIFY OFF
connect SYS/&&sysPassword as SYSDBA
set echo on
spool C:\app\oracle\admin\tahiti\scripts\CreateDBCatalog.log append
@C:\app\oracle\product\11.2.0\dbhome_1\rdbms\admin\catalog.sql;
@C:\app\oracle\product\11.2.0\dbhome_1\rdbms\admin\catblock.sql;
@C:\app\oracle\product\11.2.0\dbhome_1\rdbms\admin\catproc.sql;
@C:\app\oracle\product\11.2.0\dbhome_1\rdbms\admin\catoctk.sql;
@C:\app\oracle\product\11.2.0\dbhome_1\rdbms\admin\owminst.plb;
connect SYSTEM/&&systemPassword
@C:\app\oracle\product\11.2.0\dbhome_1\sqlplus\admin\pupbld.sql;
connect SYSTEM/&&systemPassword
set echo on
spool C:\app\oracle\admin\tahiti\scripts\sqlPlusHelp.log append
@C:\app\oracle\product\11.2.0\dbhome_1\sqlplus\admin\help\hlpbld.sql helpus.sql;
spool off

Aprs la cration de la base de donnes et du dictionnaire de donnes vous pouvez installer des
modules supplmentaires qui vous permettrons de grer des bases stockant des donnes relatives
internent ou autorisant le datamining.
Ces scripts sont dtaills ci-dessous :
@C:\app\oracle\admin\tahiti\scripts\JServer.sql
@C:\app\oracle\admin\tahiti\scripts\context.sql
@C:\app\oracle\admin\tahiti\scripts\xdb_protocol.sql
@C:\app\oracle\admin\tahiti\scripts\ordinst.sql
@C:\app\oracle\admin\tahiti\scripts\interMedia.sql
@C:\app\oracle\admin\tahiti\scripts\cwmlite.sql
@C:\app\oracle\admin\tahiti\scripts\labelSecurity.sql
@C:\app\oracle\admin\tahiti\scripts\emRepository.sql
@C:\app\oracle\admin\tahiti\scripts\apex.sql
@C:\app\oracle\admin\tahiti\scripts\owb.sql
@C:\app\oracle\admin\tahiti\scripts\netExtensions.sql
@C:\app\oracle\admin\tahiti\scripts\lockAccount.sql
@C:\app\oracle\admin\tahiti\scripts\postDBCreation.sql

Document Tellora

Page 58/205

Exploitation Oracle 11g


www.tellora.fr

Document Tellora

Page 59/205

Exploitation Oracle 11g


www.tellora.fr

13.2

Prsentation de loutil DBCA

Document Tellora

Page 60/205

Exploitation Oracle 11g


www.tellora.fr

ATTENTION, partir de la version 11g, les mots de


passe sont sensibles la casse.

Document Tellora

Page 61/205

Exploitation Oracle 11g


www.tellora.fr

Document Tellora

Page 62/205

Exploitation Oracle 11g


www.tellora.fr

13.3

Valeurs des paramtres

Les paramtres utiliss dans le fichier SPFILE sont modifiables. Ils reprsentent les valeurs suivantes :

 DB_NAME
Nom de la base (jusqu 8 caractres)
Gnralement gal au nom de linstance (ORACLE_SID)

 DB_DOMAIN
Localisation logique de la base sur le rseau (jusqu 128 caractres)
Permet Oracle de construire le nom global de la base = DB_NAME.DB_DOMAIN
Important si la base appartient un systme distribu (ou est susceptible de ltre)
Valeur par dfaut : WORLD
DB_DOMAIN = PARIS.ORA.FR

 CONTROL_FILES
Emplacement des fichiers de contrle de la base
En spcifier au minimum 2, si possible sur des disques diffrents (dans lidal, un par disque)
CONTROL_FILES = C:\ORACLE\PRODUCT\10.1.0\ORADATA\TAHITI\CONTROL01.CTL,
D:\ORACLE\PRODUCT\10.1.0\ORADATA\TAHITI\CONTROL02.CTL

 NLS_LANGUAGE
Langage par dfaut de linstance, utilis pour les messages, la date et lheure. La valeur par dfaut est
drive du paramtre NLS_LANG.
NLS_LANGUAGE = french

 NLS_TERRITORY
Territoire par dfaut de linstance, utilis pour la numrotation des jours et des semaines. Dtermine
galement la valeur par dfaut des formats de date, des sparateurs numriques et des symboles
montaires.
NLS_TERRITORY = France

 DB_BLOCK_SIZE
Taille en octets dun bloc de donnes (compris entre 2 ko et 32 ko)
Doit tre un multiple de la taille de bloc du systme dexploitation
Ne peut pas tre modifi ultrieurement sans recrer la base
DB_BLOCK_SIZE = 8192

 COMPATIBLE
Paramtre de compatibilit, prend la valeur 11.2.0.0 par dfaut.
compatible = 11.2.0.0

 DIAGNOSTIC_DEST
Apparu en version 11, ce paramtre dfinit la destination des fichiers de trace gnrs par la base de
donnes.
diagnostic_dest=C:\app\oracle

Document Tellora

Page 63/205

Exploitation Oracle 11g


www.tellora.fr

 MEMORY_TARGET
Apparu en version 11, si ce paramtre a une valeur diffrente de zro, la gestion automatique de la
mmoire est active. Dans ce cas les paramtres SGA_TARGET et PGA_AGREGATE sont dprcis.
Oracle aura une rserve de mmoire vive en cas de besoin.
memory_target=425721856

 MEMORY_MAX_SIZE
Apparu en version 11, ce paramtre dlimite la taille totale de la SGA et de la PGA utilise par linstance
sur le serveur. Il doit tre adapt MEMORY_TARGET.
memory_max_size=425721856

 REMOTE_LOGIN_PASSWORDFILE
A positionner selon la stratgie adopte pour lidentification SYSDBA
NONE = pas de fichier de mots de passe identification par lOS
EXCLUSIVE = utilisation dun fichier de mots de passe ddi une base
SHARED = utilisation dun fichier de mots de passe partag entre plusieurs bases
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

 UNDO_TABLESPACE
Permet de spcifier le nom du tablespace contenant les segments dannulation.
Si le nom du tablespace spcifi ne correspond pas au nom du tablespace UNDO de la base une erreur
apparatra dans le fichier des alertes.
Valeur par dfaut : chaque base de donnes contient 0 ou plusieurs espaces disque logiques
dannulation. En mode SMU, un seul espace disque logique de ce type est affect chaque
instance ORACLE.
UNDO_TABLESPACE = UNDOTBS

 PROCESSES
Permet de limiter le nombre de processus simultans sur le serveur.
Pour connatre le nombre de processus darrire plan utilisez la vue V$BGPROCESS.

 OPEN_CURSOR
Nombre maximum de curseurs ouverts en simultan. Compter 1 pour chaque session ouverte en
simultane et un pour chaque utilisateur interne Oracle comme SYSMAN ou DBSNMP. .
Ouvrir un grand nombre de curseurs vite une erreur de dpassement et na aucune incidence sur la base.
OPEN_CURSOR = 500

CURSOR_SHARING = EXACT

Description : ce paramtre contrle les instructions SQL qui peuvent partager le mme curseur.
Plage de valeurs :
FORCE : oblige les instructions ne diffrant que par certains littraux partager un curseur, moins que
les littraux ne modifient le sens de linstruction.
EXACT : seules les instructions SQL identiques partagent un curseur.
Valeur par default : EXACT

Document Tellora

Page 64/205

Exploitation Oracle 11g


www.tellora.fr

 STATISTICS_LEVEL
Niveau de collecte des statistiques sur la base de donnes et le systme utiliss.
Valeurs possibles : BASIC, TYPICAL (par dfaut), ALL
BASIC dsactive la gestion automatique des statistiques
TYPICAL permet de bnficier des fonctionnalits de la gestion automatique de la version 10g
ALL collecte davantage de statistiques mais a un impact sur les performances

CLUSTER_DATABASE_INSTANCES = 1
Description : nombre dinstances actuellement configures comme lments de la base de donnes de
cluster. Ce paramtre permet de dfinir la taille des structures SGA, qui dpend du nombre dinstances
configures. Lattribution dune valeur approprie ce paramtre optimisera lutilisation de la mmoire
SGA. Plusieurs paramtres sont calculs via ce nombre.
Plage de valeurs : toute valeur non nulle
Valeur par dfaut : 1

CLUSTER_DATABASE = FALSE
Description : paramtrer CLUSTER_DATABASE sur TRUE pour activer loption Real Application Clusters.
Plage de valeurs : TRUE | FALSE
Valeur par dfaut : FALSE

 DB_RECOVERY_FILE_DEST
Emplacement de la zone de rcupration rapide (flash recovery area). Si ce paramtre est spcifi, il faut
spcifier le paramtre DB_RECOVERY_FILE_DEST_SIZE .
DB_RECOVERY_FILE_DEST = d:\oracle\Flash_recovery_area

 DB_RECOVERY_FILE_DEST_SIZE
Taille maximum autorise des fichiers stocks dans la zone de rcupration rapide, dfinie en octets, Ko
(K), Mo (M) ou en Go (G).
DB_RECOVERY_FILE_DEST_SIZE = 30G

 AUDIT_FILE_DEST = {ORACLE_BASE}\ADMIN\{DB_UNIQUE_NAME}\ADUMP
Description : chaque connexion SYSDBA ou INTERNAL la base de donnes gnre un fichier daudit
dans ce rpertoire (UNIX uniquement).
Plage de valeurs : tout nom de rpertoire valide
Valeur par dfaut : ORACLE_HOME/rdbms/audit

AUDIT_TRAIL = DB
Description : active ou dsactive loption daudit de la base de donnes. Les enregistrements daudit sont
crits dans la table SYS.AUD$ lorsque le paramtre a la valeur TRUE ou DB, ou dans un fichier du
systme dexploitation lorsque le paramtre a la valeur OS.
Plage de valeurs : NONE | FALSE | DB | TRUE | OS
Valeur par dfaut : NONE

CORE_DUMP_DEST

= ?\RDBMS\TRACE
Description : nom de rpertoire, indiquant lemplacement de vidage de la mmoire (sous UNIX). Plage de
valeurs : tout nom de rpertoire valide
Valeur par dfaut : ORACLE_HOME/dbs

Document Tellora

Page 65/205

Exploitation Oracle 11g


www.tellora.fr

13.4

Vues du dictionnaire de donnes

Les vues du dictionnaire de donnes intressantes sont :

V$INSTANCE : informations sur linstance


V$DATABASE : informations sur la base de donnes
V$VERSION : informations sur la version Oracle utilise par la base de donnes
DATABASE_PROPERTIES : informations sur les proprits par dfaut de la base de donnes

13.5

EMCA : Cration de lOEM repository (Database Control)

La plupart du temps linstallation dentreprise manager se fait lors de la cration de la base (si vous
nopter pas pour le grid control), mais vous pouvez toujours laisser linstallation dentreprise manager
aprs la cration de la base.
Pour linstaller il y a plusieurs mthodes soit loutil graphique DBCA, soit un programme en ligne de
commande EMCA (Entreprise Manager Configuration Assistant) cest celui dont nous allons parler.
la syntaxe gnrale de loutil EMCA est :
Emca operation mode flag parameters

Vous pouvez voire la liste complte en tapant :


>emca h

Pour crer votre console dadministration la cration de la base tapez :


$ emca -config dbcontrol db -repos create
STARTED EMCA at jun 06, 2010 9:21:39 PM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright 2003, 2005, Oracle. All rights reserved.
Enter the following information:
Database SID: db10
Listener port number: 1521
Password for SYS user: change_on_install
Password for DBSNMP user: manager
Password for SYSMAN user: manager
Email address for notifications (optional):
Outgoing Mail (SMTP) server for notifications (optional):
----------------------------------------------------------------You have specified the following settings
Database ORACLE_HOME ................ /u01/app/oracle/product/10.2.0/db_1
Database hostname ................ dbserver
Listener port number ................ 1521
Database SID ................ db10
Email address for notifications ...............
Outgoing Mail (SMTP) server for notifications ...............
-----------------------------------------------------------------

Document Tellora

Page 66/205

Exploitation Oracle 11g


www.tellora.fr

Do you wish to continue? [yes(Y)/no(N)]: Y


jun 06, 2010 10:00:12 PM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at
/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/db10/emca_2010-01-06_09-2139-PM.log.
jun 06, 2010 10:00:15 PM oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creating the EM repository (this may take a while) ...
jun 06, 2010 10:05:51 PM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully created
jun 06, 2010 10:06:01 PM oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Starting Database Control (this may take a while) ...
jun 06, 2010 10:07:49 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control started successfully
jun 06, 2010 10:07:49 PM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> The Database Control URL is http://dbserver:1158/em <<<<<<<<<<<
Enterprise Manager configuration completed successfully
FINISHED EMCA at jun 06, 2010 10:07:49 PM

Vous devez fournir quelques informations comme le SID le port listener.., cela prends quelques minutes
et vous pouvez suivre les diffrentes tapes de cration,
Une fois le programme termin noter ladresse URL qui apparait :

 http(s)://nommachine:port/em) est lancer la avec votre navigateur


Pour recrer la console il suffit de changer lordre CREATE par RECREATE dans la commande prcdente.
Si vous tes voulez dsinstaller la DB Console, utilisez la commande suivante:
$ emca -deconfig dbcontrol db -repos drop
STARTED EMCA at jun 06, 2006 9:53:55 PM
EM Configuration Assistant, Version 10.2.0.1.0 Production
Copyright 2003, 2005, Oracle. All rights reserved.
Enter the following information:
Database SID: db10
Listener port number: 1521
Password for SYS user: change_on_install
Password for SYSMAN user: manager
Do you wish to continue? [yes(Y)/no(N)]: Y
jun 06, 2006 9:54:15 PM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at
/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/db10/emca_2006-01-06_09-5355-PM.log.
jun 06, 2006 9:54:16 PM oracle.sysman.emcp.util.DBControlUtil stopOMS
INFO: Stopping Database Control (this may take a while) ...
jun 06, 2006 9:54:35 PM oracle.sysman.emcp.EMReposConfig dropRepository
INFO: Dropping the EM repository (this may take a while) ...
jun 06, 2006 9:56:48 PM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully dropped
Enterprise Manager configuration completed successfully
FINISHED EMCA at jun 06, 2006 9:56:48 PM

Document Tellora

Page 67/205

Exploitation Oracle 11g


www.tellora.fr

Pour vrifier le statut de la DB Console :


>emctl status dbconsolequi fournit le statut de la console web.

Et :
>emctl status agentpour le status de lagent dentreprise manager

Vous pouvez arrter la console avec :


>emctl stop dbconsole

Ou la dmarrer avec :
>emctl start dbconsole

Document Tellora

Page 68/205

Exploitation Oracle 11g


www.tellora.fr

14

Automatiser le dmarrage de la base

Automatiser le dmarrage et larrt de la base lors du dmarrage ou de larrt du systme dpend de la


plate-forme.

14.1

Sous unix

Dans le fichier /etc/oratab, mettre une entre pour chaque instance avec le format suivant :
<ORACLE_SID>:<ORACLE_HOME>:{Y|N}

TAHITI:/u01/app/oracle/product/10.1.0.3.:Y

Au dmarrage et larrt, le systme appelle les scripts dbstart et dbshut qui lisent le fichier oratab
pour identifier les bases dmarrer ou arrter, ces scripts peuvent ventuellement tre appels
manuellement pour dmarrer ou arrter les bases configures Y dans oratab.

14.2

Sous Windows

Pour dmarrer automatiquement une base au dmarrage du systme, il faut :

 Mettre le service (OracleService<SID>) associ linstance en dmarrage automatique


 Sassurer que dans la base de registre (HKEY_LOCAL_MACHINE\ SOFTWARE\ORACLE\HOMEx),
ORA_<SID>_AUTOSTART est TRUE

 ORA_<SID>_PFILE chemin + nom du fichier de paramtres texte standard, vide ou inexistant pour un
fichier de paramtres serveur. Pour dmarrer avec un autre fichier de paramtres serveur, utilisez la
technique du fichier de paramtres texte contenant un paramtre SPFILE

Problmes lis au fichier de paramtres serveur SPFILE :

 Si le paramtre ORA_<SID>_PFILE contient une valeur errone, linstance ne redmarre pas.


 Si le paramtre ORA_<SID>_PFILE est vide ou nexiste pas, la squence de recherche dun fichier de
paramtres texte ou serveur seffectue en suivant la squence du startup.

spfile<SID>.ora

spfile.ora (!)

init<SID>.ora
Pour arrter automatiquement une base lors de larrt du systme, il faut :

 Sassurer que dans la base de registre :


HKEY_LOCAL_MACHINE\ SOFTWARE\ORACLE\HOMEx, ORA_<SID>_SHUTDOWN est TRUE
et ajuster ventuellement ORA_<SID>_SHUTDOWNTYPE et ORA_<SID>_SHUTDOWN_TIMEOUT

Document Tellora

Page 69/205

Exploitation Oracle 11g


www.tellora.fr

Document Tellora

Page 70/205

Exploitation Oracle 11g


www.tellora.fr

15

Accder une base distante

Oracle Net permet des produits Oracle situs sur des machines diffrentes de communiquer entre eux.
Ainsi Oracle Net rend le rseau transparent et permet le transfert de donnes entre les 2 machines.

Oracle Net a pour objectif de rendre le rseau transparent pour les


applications.
- Oracle Net doit tre install sur chaque machine du rseau.

Le processus dcoute LISTENER plac sur le serveur (cot instance de base de donnes) permet la
connexion des clients linstance. Celle-ci est vue comme un service (paramtre SERVICES_NAME)
dans linstance). Le LISTENER est configur via le fichier LISTNER.ORA.
Plusieurs mthodes de connexions peuvent tre utilises :

 Locale : le fichier TNSNAMES.ORA est configur sur le poste client et se charge de la rsolution du
service Oracle Net.

 Simplifie, (easy connect naming), permettant une connexion via ladresse du service travers le rseau
TCP/IP.

 LDAP (directory naming), un annuaire LDAP se charge de la rsolution du nom de service. Cette mthode
ncessite un produit tiers.

Document Tellora

Page 71/205

Exploitation Oracle 11g


www.tellora.fr

15.1

Configuration cot serveur

Pour permettre un client de se connecter une base de donnes distante, il faut dabord configurer le
LISTENER.
Le LISTENER se matrialise par un service (Oracle<NomHome>TNSListener) sur plate-forme Windows ou
par un processus (tnslsnr) sur plate-forme Unix.
Il est configur par le fichier listener.ora.
Les instances enregistrent automatiquement leur(s) service(s) auprs du processus dcoute. Celui-ci
est dclar grce au paramtre SERVICE_NAMES.
Le listener peut couter plusieurs emplacements (protocoles diffrents, ou variantes du mme
protocole par exemple 2 ports en TCP/IP), et peut couter pour plusieurs bases de donnes et
ventuellement pour des versions dOracle diffrentes.
Pour que des postes distants puissent se connecter la base il faut que le LISTENER soit lanc.
Le LISTENER est utilis la premire connexion dun utilisateur. Aprs la connexion, un arrt et un
redmarrage du LISTENER ne dconnecte pas les utilisateurs dj connects.

Le LISTENER sadministre grce loutil LSNRCTL :


C:\>LSNRCTL
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 13-AOT -2006 02:
26:41
Copyright 1991, 2005, Oracle. All rights reserved.
Bienvenue LSNRCTL, tapez aide pour plus dinformations.
LSNRCTL>

Document Tellora

Page 72/205

Exploitation Oracle 11g


www.tellora.fr

LSNRCTL permet notamment darrter et de dmarrer le LISTENER.


En cas de problme de connexion partir dun poste client, vrifier que le LISTENER est bien lanc (ne
pas hsiter le redmarrer).
La configuration ct serveur consiste configurer le LISTENER, cest dire indiquer comment et pour
quelles bases il coute.
Cette configuration peut se faire en modifiant directement le fichier Listener.ora ou en utilisant
lassistant Oracle Net.

Listener.ora
# listener.ora Network Configuration File:
C:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = TELLORA01)(PORT = 1521))
)
)

Les principales commandes rattaches au LISTENER lsnrctl sont les suivantes :

 Start = dmarrer le listener


 Stop = arrter le listener
 Status = obtenir le statut du listener
 Reload = rinitialiser le listener
 Exit = sortir de lsnrctl
 Save_config = cre une sauvegarde du fichier listener.ora puis met jour le fichier avec les paramtres
modifis laide de lsnrctl.

 Services = affiche les services disponibles ainsi que lhistorique de connexion.


 Help = affiche une liste doptions de commande de lutilitaire lsnrctl.
 Quit = quitter lutilitaire et revenir linvite du systme dexploitation.
 Version = affiche des informations de version sur le listener.
 Show = affiche les valeurs courantes des paramtres.
 Set password mot_de_passe = permet de se connecter au listener via un mot de passe.

Document Tellora

Page 73/205

Exploitation Oracle 11g


www.tellora.fr

Pour vrifier lexcution du LISTENER, sous le systme dexploitation excuter la commande :


Microsoft Windows XP [version 5.1.2600]
Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrateur>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.1.0.3.0 - Production on 23-MARS -2005 10:48:46
Copyright 1991, 2004, Oracle. All rights reserved.
Welcome to LSNRCTL, type help for information.
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
Alias
LISTENER
Version
TNSLSNR for 32-bit Windows: Version 10.1.0.3.0 - Production
Start Date
23-MARS -2005 10:48:26
Uptime
0 days 0 hr. 0 min. 24 sec
Trace Level
off
Security
ON: Local OS Authentication
SNMP
OFF
Listener Parameter File
D:\oracle\product\10.1.0\Db_1\network\admin\listener.ora
Listener Log File
D:\oracle\product\10.1.0\Db_1\network\log\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ATTOUCHE)(PORT=1521)))
Services Summary...
Service orcl has 1 instance(s).
Instance orcl, status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

15.2

Configuration cot client

La configuration cot client se fait en modifiant le fichier tnsname.ora, et en lui ajoutant laccs la
nouvelle instance.
Il se trouve dans le rpertoire :

 D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN
# tnsnames.ora Network Configuration File:
C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
TAHITI =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = TELLORA01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = tahiti)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

Document Tellora

Page 74/205

Exploitation Oracle 11g


www.tellora.fr

Le fichier tnsname.ora ne contient aucune information relative au poste client,


il est donc possible den crer un et de le diffuser sur dautres postes.

15.3

Changer de machine automatiquement

Si vous avez install une base de donnes de secoure, vous pouvez autoriser le changement de machine
de faon automatique. Pour cela, mettre dans le Tnsnames ladresse de la nouvelle machine ou est
mont le Data Guard.
En cas de panne, la bascule se fait sans que lutilisateur sen aperoive, et sans intervention de
ladministrateur au niveau du TNSNAMES.ORA, par contre il faudra que ladministrateur passe le Data
Guard en base primaire grce un Switchover.

TAHITI =
(DESCRIPTION =
(LOAD_BALANCE = OFF)
pour le RAC
(FAILOVER = ON)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = poste01)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = poste02)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = tahiti)
)
)

15.4

pour le Data Guard

EZCONNECT

En version Oracle 10g vous pouvez vous connecter sans tnsname.ora grce ezconnect :
Il suffit de configurer le ficher sqlnet.ora.

 C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\sqlnet.ora
# sqlnet.ora Network Configuration File:
C:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
# This file is actually generated by netca. But if customers choose to
# install Software Only, this file wont exist and without the native
# authentication, they will not be able to connect to the database on
NT.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

Document Tellora

Page 75/205

Exploitation Oracle 11g


www.tellora.fr

connect USER/MotPasse@//[host]:[port]/[service_name]

Se connecter en tapant la commande :

Sqlplus /nolog

connexion traditionnelle via le tnsnames


SQL> connect system/tahiti@tahiti
Connect.
SQL>
C:\Documents and Settings\ATTOUCHE Clotilde>hostname
TELLORA01

dans SQLPLUS

connexion via ezconnect


SQL> connect system/tahiti@//tellora01:1521/tahiti
Connect.

15.5

Bases distantes et database Links

Le Database Link est un lien qui permet laccs des objets situs dans une base de donnes distante.
Il est configur partir dOracle Net et correspond au service oracle Net dfini dans le listener.
create
[ public ] database link
[ connect to nom_user identified
using
chaine_de_connection

nom_lien
by mot_passe ]

Le nom de lutilisateur de connexion prcis doit tre dclar dans la base de donnes distante.
La chane de connexion est dclare dans le listener.ora sur une base pour permettre laccs de
celle-ci la base distante, et dans le fichier tsname.ora .
Le fichier listener.ora permet aux postes client daccder au serveur Oracle via Oracle Net.
Le fichier tsname.ora permet au serveur Oracle daccder une autre machine via Oracle Net.

Exemples
create public database link dli_classe
using calan_tcp_LYCE;
drop database link dli_classe ;
create database link dli_clastest.world
connect to admindba identified by oracle
using caladan_tcp_LYCE;

Document Tellora

Page 76/205

Exploitation Oracle 11g


www.tellora.fr

Le tsname.ora
caladan_tcp_LYCE=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.150.160.106)
(PORT=1521))
(CONNECT_DATA=(SID=LYCE)))

Utilisation dun DB LINK


Exemples dutilisation dun DB_Link pour faire des insertions sur un site distant.

insert
values
insert
values

into
(97,
into
(98,

clo01.classe@dli_classe
tyty7, 2);
clo01.classe@dli_classe
tyty8t, 2);

Document Tellora

Page 77/205

Exploitation Oracle 11g


www.tellora.fr

16

Scuriser la base de donnes

Assurer la scurit des donnes est une des tches principales de ladministrateur.
Cette scurit est assure par la mise en uvre dune protection des fichiers sensibles de la base de
donnes :

 Fichiers de contrle
 Fichiers de redo log

16.1

Le fichier de contrle

Lorsquune instance est lance pour ouvrir une base de donnes, le fichier de contrle est le premier
fichier ouvert, il permet ensuite linstance de localiser et douvrir les autres fichiers de la base de
donnes. Si on perd le fichier de control, la base de donnes reste ltat NOMOUNT, et ne pourra pas
souvrir.
Le fichier de contrle est automatiquement mis jour par Oracle lors de chaque modification de la
structure de la base de donnes (ajout ou dplacement de fichier, ).
Un fichier de contrle contient les informations suivantes :

Le nom et lidentifiant de la base de donnes

Le nom et lemplacement des fichiers de donnes et des fichiers Redo Log

Le nom des tablespaces

La date et lheure de cration de la base de donnes

Le numro de squence du journal courant

Des informations relatives au point de synchronisation

Lhistorique du journal

Les informations de sauvegarde de lutilitaire Recovery Manager

Lors de sauvegardes faites avec lutilitaire Recovery Manager (RMAN), certaines vues du dictionnaire et
certaines commandes RMAN permettent dinterroger le fichier de contrle pour connatre ltat des
sauvegardes ralises.
Quand RMAN sauvegarde une base de donnes (appele base de donnes cible) des informations sont
toujours consignes dans le fichier de contrle de la base cible. Pour limiter la taille des fichiers de
contrle, les anciennes entres de sauvegarde sont crases aprs un certain nombre de jour. Ce
nombre de jours limit est dfini par le paramtre CONTROL_FILE_RECORD_KEEP_TIME. Par dfaut ce
nombre de jour est gal 7, soit une semaine. Il doit tre augment lorsque RMAN utilise le fichier de
contrle de la base cible (15 jours).
Si le fichier de contrle est trop petit il faudra le recrer en utilisant une trace du fichier de contrle.
Les fichiers de contrle doivent tre sauvegards lors de chaque sauvegarde complte ou partielle de la
base de donnes, de plus entre deux sauvegardes normales , il est conseill de sauvegarder le
fichier de contrle aprs toute restructuration importante de la base (ajout/dplacement de fichiers de
donnes ou de redo log).

Document Tellora

Page 78/205

Exploitation Oracle 11g


www.tellora.fr

Pour effectuer une sauvegarde du fichier de contrle, utiliser lordre SQL : ALTER DATABASE
ALTER DATABASE BACKUP CONTROLFILE TO
to [ nouveau_nom | trace ] [ reuse ]
;

- Le paramtre TRACE gnre un script dans les fichiers traces utilisateur (diagnostic_dest ) .
- Cette trace peut tre intressante dans certaines situations.

Trace du fichier de control


optimum_ora_1396.trc
*** 2004-06-14 10:46:04.000
# The following are current System-scope REDO Log Archival related
# parameters and can be included in the database initialization file.
#
# LOG_ARCHIVE_DEST=
# LOG_ARCHIVE_DUPLEX_DEST=
#
# LOG_ARCHIVE_FORMAT=ARC%S.%T
# REMOTE_ARCHIVE_ENABLE=TRUE
# LOG_ARCHIVE_MAX_PROCESSES=2
# STANDBY_FILE_MANAGEMENT=MANUAL
# STANDBY_ARCHIVE_DEST=%ORACLE_HOME%\RDBMS
# FAL_CLIENT=
# FAL_SERVER=
#
# LOG_ARCHIVE_DEST_1=LOCATION=D:\oracle9\ora92\RDBMS
# LOG_ARCHIVE_DEST_1=MANDATORY NOREOPEN NODELAY
# LOG_ARCHIVE_DEST_1=ARCH NOAFFIRM SYNC
# LOG_ARCHIVE_DEST_1=NOREGISTER NOALTERNATE NODEPENDENCY
# LOG_ARCHIVE_DEST_1=NOMAX_FAILURE NOQUOTA_SIZE NOQUOTA_USED
# LOG_ARCHIVE_DEST_STATE_1=ENABLE
#
# Below are two sets of SQL statements, each of which creates a new
# control file and uses it to open the database. The first set opens
# the database with the NORESETLOGS option and should be used only if
# the current versions of all online logs are available. The second
# set opens the database with the RESETLOGS option and should be used
# if online logs are unavailable.
# The appropriate set of statements can be copied from the trace into
# a script file, edited as necessary, and executed when there is a
# need to re-create the control file.
#
#
Set #1. NORESETLOGS case
#
# The following commands will create a new control file and use it
# to open the database.
# Data used by the recovery manager will be lost. Additional logs may
# be required for media recovery of offline data files. Use this
# only if the current version of all online logs are available.
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE OPTIMUM NORESETLOGS NOARCHIVELOG

SET STANDBY TO MAXIMIZE PERFORMANCE


MAXLOGFILES 32
MAXLOGMEMBERS 5
MAXDATAFILES 128
MAXINSTANCES 16
MAXLOGHISTORY 1815
LOGFILE
GROUP 1 (
D:\ORACLE9\ORADATA\OPTIMUM\REDO01A.LOG,
D:\ORACLE9\ORADATA\OPTIMUM\REDO01B.LOG
) SIZE 10M,
GROUP 2 (
D:\ORACLE9\ORADATA\OPTIMUM\REDO02A.LOG,
D:\ORACLE9\ORADATA\OPTIMUM\REDO02B.LOG
) SIZE 10M,
GROUP 3 (
D:\ORACLE9\ORADATA\OPTIMUM\REDO03A.LOG,
D:\ORACLE9\ORADATA\OPTIMUM\REDO03B.LOG

Document Tellora

Page 79/205

Exploitation Oracle 11g


www.tellora.fr

) SIZE 10M

STANDBY LOGFILE
DATAFILE
D:\ORACLE9\ORADATA\OPTIMUM\SYSTEM01.DBF,
D:\ORACLE9\ORADATA\OPTIMUM\UNDOTBS01.DBF,
D:\ORACLE9\ORADATA\OPTIMUM\ELEVE01.DBF,
D:\ORACLE9\ORADATA\OPTIMUM\INDX01.DBF,
D:\ORACLE9\ORADATA\OPTIMUM\OPDEF01.DBF
CHARACTER SET WE8ISO8859P15
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;
# Commands to add tempfiles to temporary tablespaces.
# Online tempfiles have complete space information.
# Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE D:\ORACLE9\ORADATA\OPTIMUM\TEMP01.DBF
SIZE 10485760 REUSE AUTOEXTEND OFF;
# End of tempfile additions.
#

La modification des paramtres dfinis dans le


fichier de contrle oblige la recration de celui-ci !

16.2

Protection du fichier de contrle

La premire action est le multiplexage du fichier de contrle. Il sagit de faire une copie du fichier de
contrle qui sera maintenue en miroir par Oracle.

Si la copie du fichier de contrle nest pas juge


cohrente par Oracle, une erreur se produira au
redmarrage.
Le fichier de contrle doit tre multiplex pour des raisons de scurit :

 Sans fichier de contrle, la base ne peut pas dmarrer


 Au moins deux fichiers de contrle, si possible sur des disques diffrents (et dans la pratique, un par
disque)

Document Tellora

Page 80/205

Exploitation Oracle 11g


www.tellora.fr

16.2.1

Multiplexer le fichier de contrle

Faire fonctionner la base avec au moins deux fichiers de contrle, si possible sur des disques diffrents
(et dans la pratique, un par disque).
Le multiplexage peut tre mise en uvre lors de la cration de la base :

 Spcifier la liste des fichiers de contrle souhaits dans le paramtre CONTROL_FILES avant dexcuter
lordre SQL CREATE DATABASE

Mais il peut aussi tre mise en uvre ultrieurement :

 Arrter la base proprement (pas ABORT !)


 Dupliquer un fichier de contrle existant vers une nouvelle destination
 Mentionner le nouveau fichier de contrle dans le paramtre CONTROL_FILES
 Redmarrer la base de donnes
La taille du fichier de contrle est dtermine par Oracle.
Protger les fichiers de contrle est une opration simple. En plus ce sont de petits fichiers, donc on
peut en avoir plusieurs copies sans problme.

MODE OPERATOIRE
 Exporter le fichier de paramtres serveur
CREATE PFILE FROM SPFILE
 Modifier le fichier SPFILE
ALTER SYSTEM ... SCOPE=SPFILE
 Arrter la base
SHUTDOWN IMMEDIATE
 Recopier le fichier de contrle vers le nouvel emplacement
 Ouvrir la base
STARTUP

Modifier les paramtres CONTROL_FILES dans le fichier de paramtres serveur (base


ouverte)
ALTER SYSTEM SET control_files = C:\oracle\oradata\tahiti\controlfile01.ctl,
D:\tahiti\controlfile02.ctl
SCOPE = SPFILE ;/

Arrter la base de donnes


Shutdown immediate ;

Dupliquer le fichier de contrle par une commande du systme dexploitation (base


ferme)
HOST COPY C:\oracle\oradata\tahiti\controlfile01.ctl
D:\tahiti\controlfile02.ctl

Redmarrer la base de donnes


Startup

Document Tellora

Page 81/205

Exploitation Oracle 11g


www.tellora.fr

16.3

Vues du dictionnaire de donnes

Interroger les vues :

 V$CONTROLFILE
 V$PARAMETER
Select name
From v$controlfile ;
NAME
/DISK1/control01.con
/DISK2/control02.con
select value
from v$parameter
where name = control_file ;

Pour obtenir des informations sur les diffrentes sections des fichiers de contrle, interrogez la vue
dynamique sur les performances : V$CONTROLFILE_RECORD_SECTION
Select type, record_size, records_total, record used
From v$controlfile_record_section
Where type = DATAFILE ;

La colonne record_total correspond au paramtre MAXDATAFILES de la commande CREATE


DATABASE .

16.4

Protection des fichiers de Redo Log

Les fichiers de Redo Log enregistrent toutes les modifications apportes la base.
Ils sont organiss en groupes composs dun ou plusieurs membres. Oracle les utilise de manire
circulaire, les informations sauvegardes sont donc par dfaut priodiquement crases. Au minimum la
base de donnes a besoin de 2 groupes.
Ils sont utiliss pour la restauration de la base aprs un arrt anormal de celle-ci.
Ils peuvent tre rappliqus une sauvegarde de fichier de donnes, pour rejouer toutes les
modifications survenues entre la sauvegarde et un incident ayant endommag le fichier (cest la
restauration de mdia).
LGWR crit en parallle dans chaque membre dun mme groupe.
Si un groupe de Redo Logs comporte plusieurs membres et quun des membres est indisponible, la base
de donnes peut continuer fonctionner.
Mettre au minimum deux ou trois membres par groupe.

Document Tellora

Page 82/205

Exploitation Oracle 11g


www.tellora.fr

Quelques possibilits sont apparues avec la version 9i :

 Possibilit de forcer larchivage de faon priodique


Grce au paramtre ARCHIVE_LAG_TARGET

 Possibilit de garantir une dure maximale de restauration dinstance en cas darrt anormal
Grce au paramtre FAST_START_MTTR_TARGET
 Possibilit dutiliser plusieurs destinations darchivage
Grce au paramtre LOG_ARCHIVE_DEST_n, n valant de 1 10
Disponible uniquement avec ldition Entreprise

16.4.1

Dimensionner les fichiers de Redo Log

Lobjectif est davoir :

 Un basculement de fichier redo log toutes les 20 30 minutes environ.


 Aucune attente lors dun basculement de fichier de Redo Log li un checkpoint ou a un archivage non
termin.

Dans le fichier des alertes de linstance surveillez la frquence des messages

 Relatif au basculement de fichiers redo log


Sat Mar 08 07:05:17 2003
Thread 1 advanced to log sequence 7

ET

 Relatif aux attentes lors dun basculement de fichiers de redo log


Sat Mar 08 07:06:48 2003
Thread 1 cannot allocate new log, sequence 8
Checkpoint not complete
Sat Mar 08 07:07:59 2003
Thread 1 cannot allocate new log, sequence 9
All online logs needed archiving

Document Tellora

Page 83/205

Exploitation Oracle 11g


www.tellora.fr

Recommendations:
En cas de basculement trop rapide il faut augmenter la taille des fichiers de redo log.
En cas dattente frquente lors dun basculement il faut ajouter un groupe de fichiers de redo log.
Si la base est en Archivelog, il faut prvoir un minimum de 3 groupes de Redo Logs.
Si la base possde un DATA Guard prvoir un quatrime groupe de redo Logs, voir un cinquime
groupe.
Si la base est monte en RAC (bases en cluster), prvoir 2 groupes de Redo Logs par nud.

Les oprations dadministration qui peuvent tre effectues sur les fichiers de redo log sont :

 Ajouter un nouveau groupe de fichiers de redo log permet damliorer la disponibilit des fichiers de redo
log pour LGWR (en augmentant la dure dun cycle complet de rotation).

 Multiplexer les membres de Redo Log pour scuriser la base de donnes


 Dplacer les fichiers de redo log
 Supprimer un groupe de fichiers de redo log, peut tre utilis dans une opration daugmentation de la
taille des fichiers de redo log (ajout dun nouveau groupe plus gros puis suppression dun ancien).

 Supprimer un membre dun groupe de fichiers de redo log


 Forcer le basculement du groupe courant au suivant peut tre effectu avant les sauvegardes des archives
de Redo Logs.

16.4.2

Multiplexer les fichiers de Redo Log

Le multiplexage des fichiers de redo log peut tre mis en uvre lors de la cration de la base de
donnes. Il consiste dupliquer les membres de Redo Log dun mme groupe.
Il est possible de spcifier plusieurs membres pour chaque groupe list dans la clause LOGFILE de
lordre SQL CREATE DATABASE
Il peut aussi tre mis en uvre aprs cration de la base de donnes, en utilisant de lordre SQL ALTER
DATABASE.
ALTER DATABASE
ADD LOGFILE MEMBER nom_fichier [,] TO GROUP numro
;

ALTER DATABASE
ADD LOGFILE MEMBER f:\oracle\oradata\HERMES\redo01.log TO GROUP 1;

Remarques :
 La taille du fichier na pas besoin dtre spcifie ; le nouveau fichier a forcment la mme taille que les
autres membres du groupe

 Normalement, tous les groupes doivent avoir le mme nombre de membres

Document Tellora

Page 84/205

Exploitation Oracle 11g


www.tellora.fr

16.4.3

Ajouter un groupe de Redo Log

Pour ajouter un nouveau groupe la base de donnes utilisez lordre SQL ALTER DATABASE :
ALTER DATABASE
ADD LOGFILE [GROUP numro] spcification_fichier_redo [,]
;

spcification_fichier_redo
(nom_fichier [,]) [ SIZE valeur [K|M] ] [REUSE]

Sauf opration daugmentation de la taille des fichiers de redo log, le nouveau groupe a normalement la
mme taille que les anciens.

Exemple
ALTER DATABASE
ADD LOGFILE
GROUP 4 (d:\oracle\oradata\HERMES\redo04.log,
e:\oracle\oradata\HERMES\redo04.log) SIZE 10240K;

ATTENTION
On ne peut pas modifier la taille des fichiers de Redo Log, il faut ajouter des groupes ayant une taille
souhaite et supprimer les anciens groupes.
Supprimer un groupe nest pas possible si cest le groupe courant. Dans ce cas, la commande
permettant de forcer un SWITCH de fichier de Redo Log peut alors tre utilise pour viter dattendre.
Le SWITCH permettra de changer de groupe.

16.4.4

Dplacer les fichiers de Redo Log

Lorsque lon dplace un fichier de Redo Log il faut suivre le mode opratoire ci-dessous et veiller
recopier le fichier dans le nouvel emplacement avant deffectuer la commande RENAME FILE.
Oracle ne sest pas crer de fichiers ni dplacer des fichiers ou encore crer des rpertoires !

Exemple
Connect / as sysdba
Shutdown immediate
Startup mount
C:\> host copy e:\oracle\oradata\tahiti\redo04.log
g:\oracle\oradata\tahiti\redo04.log
Alter database
Rename file e:\oracle\oradata\tahiti\redo04.log
to g:\oracle\oradata\tahiti\redo04.log ;
Alter database open ;
Suppression de lancien fichier laide dune commande du systme dexploitation.

Document Tellora

Page 85/205

Exploitation Oracle 11g


www.tellora.fr

MODE OPERATOIRE
 Arrter la base de donnes
SHUTDOWN IMMEDIATE
 Dplacer les fichier de Redo Log vers le nouvel emplacement
COPIER .. +.. COLLER
 Monter la base
STARTUP MOUNT
 Indiquer Oracle le nouvel emplacement
ALTER DATABASE RENAME FILE
 Ouvrir la base
ALTER DATABASE OPEN

16.4.5

Supprimer un groupe de fichiers redo log

La base doit avoir au moins 3 groupes de fichiers de redo log pour pouvoir en supprimer un (il doit en
rester au moins 2).
Le groupe courant (celui dans lequel LGWR est en train dcrire) ne peut pas tre supprim.
En mode ARCHIVELOG, un groupe pas encore archiv ne peut pas tre supprim.
Les fichiers concerns ne sont pas physiquement supprims par Oracle, il faudra le faire aprs en
utilisant une commande du systme dexploitation.

Utiliser lordre SQL ALTER DATABASE :


ALTER DATABASE
DROP LOGFILE GROUP numro
;

Exemple
ALTER DATABASE
DROP LOGFILE

16.4.6

GROUP 4;

Supprimer un membre dun groupe de redo log

Le groupe concern doit avoir au moins 2 membres pour pouvoir en supprimer un (il doit en rester au
moins un).
Un membre du groupe courant (celui dans lequel LGWR est en train dcrire) ne peut pas tre supprim.
En mode ARCHIVELOG, un membre dun groupe pas encore archiv ne peut pas tre supprim.
Les fichiers concerns ne sont pas physiquement supprims par Oracle.
Pour supprimer tous les membres dun groupe il faut supprimer le groupe.

Document Tellora

Page 86/205

Exploitation Oracle 11g


www.tellora.fr

Si un membre est corrompu, Oracle lui donne un statut invalide dans le dictionnaire de donnes
mais ne le signale pas par un message affich lcran.
Pour dtecter quun membre est invalide, il faut consulter le fichier des Alertes.
Si un membre dun groupe est perdu, il faut le supprimer pour mettre jour le dictionnaire de donnes.

Utiliser lordre SQL ALTER DATABASE :


ALTER DATABASE
DROP LOGFILE MEMBER nom_fichier [,]
;

Exemple
ALTER DATABASE
DROP LOGFILE

16.4.7

MEMBER e:\oracle\oradata\HERMES\redo01.log;

Forcer le basculement du groupe courant

Le basculement dun groupe courant peut tre utilis lorsque lon a besoin deffectuer une suppression
de groupe ou lorsque lon veut gnrer une archive avant deffectuer une sauvegarde (la base de
donnes doit alors tre en ARCHIVELOG).
Utiliser lordre SQL ALTER SYSTEM :
ALTER SYSTEM SWITCH LOGFILE
;

Si les SWITCH sont trop frquents, ce nest pas bon pour les performances.
La vue V$LOG_HISTORY peut tre utilise pour analyser la frquence de SWITCH des fichiers de Redo
Log (colonne FIRST_TIME).

Le basculement manuel provoque les mmes vnements quun basculement automatique

 Checkpoint : point de reprise


 Archivage (si larchivage est activ)

Le paramtre FAST_START_MTTR_TARGET peut tre utilis pour obliger la base effectuer des points
de reprise rgulirement. En effet ce paramtre indique un nombre maximum de secondes pour le
redmarrage de linstance aprs un arrt anormal.
Le positionnement de ce paramtre permet linstance dajuster des points de reprises de manire
pouvoir rejouer lactivit perdue sur la base en respectant les valeurs du paramtre. Attention ne pas
avoir de points de reprises trop frquents ce qui dgraderait les performances.

Document Tellora

Page 87/205

Exploitation Oracle 11g


www.tellora.fr

16.4.8

Trouver des informations sur les fichiers Redo Log

Plusieurs vues du dictionnaire permettent dobtenir des informations sur les fichiers de redo log :






V$LOG : informations sur les groupes


V$LOGFILE : informations sur les membres
V$LOG_HISTORY : informations sur lhistorique des fichiers de redo log
V$INSTANCE__RECOVERY : informations sur les temps estims de restauration dinstance.

V$LOG
GROUP#
SEQUENCE#
MEMBERS
ARCHIVED
STATUS

FIRST_CHANGE#
FIRST_TIME

Numro du groupe
Numro de squence du groupe (sincrmente
chaque SWITCH).
Nombre de membres
Groupe archiv (yes, no)
Statut du groupe
Unused : groupe jamais utilis
Current : groupe courant
Active : groupe encore ncessaire en cas de
restauration dinstance (checkpoint non
termin)
Inactive : groupe plus ncessaire pour une
restauration dinstance (checkpoint termin)
Plus petit numro SCN (numro de
transaction) crit dans le groupe
Date et heure du plus petit numro SCN

V$LOG_ FILE
GROUP#
STATUS

MEMBER

Numro du groupe
Statut du groupe
Invalide : fichier inaccessible
Stale : fichier incomplet (statut des nouveaux
membres)
Deleted : fichier supprim
Colonne vide : fichier utilis
Nom complet du fichier membre

Document Tellora

Page 88/205

Exploitation Oracle 11g


www.tellora.fr

$LOG_ HISTORY
SEQUENCE#

Numro de squence du groupe archiv


Plus petit numro SCN (numro de
transaction) crit dans le groupe archiv
Plus grand numro SCN (numro de
transaction) crit dans le groupe archiv
Date et heure du plus petit numro SCN

FIRST_CHANGE#
NEXT_CHANGE#
FIRST_TIME

$INSTANCE_ RECOVERY
TARGET_MTTR
ESTIMATED_MTTR
OPTIMAL_LOGFILE_SIZE

Objectif rel de dure de rcupration de


linstance recalcule par Oracle.
Dure de rcupration actuelle (tient compte
de lactivit de la base)
Taille optimale de groupes de Redo Logs en Mo

Document Tellora

Page 89/205

Exploitation Oracle 11g


www.tellora.fr

17

Gestion du stockage

Dans ce chapitre, nous allons faire le lien entre les structures logiques dOracle et ces fichiers.
Nous allons tudier comment Oracle stocke les donnes des tables et des index dans les fichiers et
comment ces donnes sont gres physiquement sur le disque.

17.1

Notion de tablespace

Un tablespace est une unit logique de stockage compose dun ou de plusieurs fichiers physiques.
Les fichiers de donnes sont dcoups en blocs dune taille dfinie la cration de la base de donnes
(2 ko, 4 ko, 8 ko, etc ). La taille des blocks Oracle correspondent un multiple du block gr par le
systme dexploitation.
La taille dun bloc Oracle correspond au paramtre DB_BLOCK_SIZE.

Lespace occup par un objet dans un tablespace est dsign par le terme de
segment.

Il y a 4 types de segments grs dans une base Oracle :

 Les segments de table = espace occup par les tables


 Les segments dindex = espace occup par les index
 Les segments dannulation = espace temporaire utilis pour stocker les informations permettant dannuler
une transaction (ROLLBACK).

 Les segments temporaires = espace temporaire utilis lors dun tri dans une requte.
La rgle est dutiliser plusieurs tablespaces afin de sparer les diffrents objets de la base et dassurer
de meilleures performances la base de donnes. Cela permettra galement doffrir une plus grande
souplesse dans les tches dadministration.
Chaque type de segment est stock dans un tablespace qui lui est propre. Ainsi on pourra garantir un
minimum de performances.
Ainsi on mettra les tables et les index dans des tablespaces ddis aux tables ou aux index, les
segments temporaires dans des tablespaces temporaires et les segments dannulation dans le
tablespace UNDO.
Lespace utilis par les objets sur le disque est appel segment (comme les tables par exemple).
A lintrieur dun tablespace, le stockage est organis en segments comportant un ou plusieurs extents
(ensemble de bloc Oracle contigus de taille DB_BLOCK_SIZE dans un fichier de donnes).
Lorsquun segment est cr dans un tablespace, Oracle lui alloue un premier extent dans un des fichiers
du tablespace. Lorsque ce premier extent est plein, Oracle alloue un deuxime extent au segment et
ainsi de suite.

Document Tellora

Page 90/205

Exploitation Oracle 11g


www.tellora.fr

Les extents complmentaires allous au segment sont dans le tablespace dorigine du segment, mais
pas forcment cte cte ni forcment dans le mme fichier. Lorsquun segment est supprim, les
extents quil occupe sont librs et rendus disponibles pour dautres segments.

Des crations/suppressions frquentes de donnes appartenant un segment ou de segments dans un


tablespace conduisent souvent une fragmentation de lespace disponible dans ce tablespace.
La clause de stockage permet de grer la taille du segment sa cration, puis lors de son volution.
La clause de stockage est cre au moment de la cration de lobjet puis peut tre modifie.
Syntaxe :
Storage (INITIAL
NEXT
MINEXTENTS valeur
MAXEXTENTS valeur
PCTINCREASE valeur
)

valeur
valeur

- INITIAL taille du premier extent cr la cration de lobjet


- NEXT

taille des extents suivants

- MINEXTENTS nombre minimum dextents crs la cration de lobjet


- MAXEXTENTS nombre maximum dextents crs pendant la vie de lobjet
- PCTINCREASE pourcentage daugmentation de la taille dun extent par rapport au prcdent.

La clause de stockage peut tre modifie aprs cration de lobjet !

Document Tellora

Page 91/205

Exploitation Oracle 11g


www.tellora.fr

Exemple
-- ============================================================

Table : EMPLOYE
-- ============================================================
create table EMPLOYE
(
ID_EMP
INTEGER
not null,
NOM
VARCHAR2(30)
not null,
SALAIRE
NUMBER(4)
not null,
EMPLOI
VARCHAR2(20)
null
,
EMP_ID_EMP
INTEGER
null
,
constraint PK_EMPLOYE primary key (ID_EMP)
using index
tablespace INDX
)
Tablespace tbs_local_uniform
Storage (initial 400K
next 100K
minextents 2
pctincrease 0
)
/

Le tablespace est le plus petit niveau de sauvegarde & restauration.


Le STRIPING consiste avoir 1 tablespace rparti sur plusieurs disques (le
tablespace est alors compos de plusieurs datafiles).

Il est conseill de rpartir les diffrents tablespaces sur des disques diffrents afin dviter les
contentions sur les entres /sorties.

Directives
 Ne rien mettre dans les tablespace SYSTEM et SYSAUX.
 En plus des tablespaces UNDO, TEMP, et USERS, (penser au suivi des tables et aux sauvegardes car le
tablespace est lunit de stockage) crer :
- Plusieurs tablespaces pour les tables
- Plusieurs tablespaces pour les index

 En cas dutilisation de RAID, prfrez le RAID 1 (Miroring).


 En cas dutilisation de RAID 5 , Beaucoup moins bon pour Oracle, vous pouvez mettre les fichiers de
Redo Log sur des disques sans RAID pour viter les contentions.

17.2

Organisation du stockage dans un tablespace

A partir de la 9i, les tablespaces sont grs localement et plus par le dictionnaire de donnes. La gestion
des extents est gre par Oracle et la clause de stockage nest plus spcifie la cration du
tablespace.
Un des objectifs des tablespaces grs localement est doptimiser lutilisation de lespace dans les
tablespaces et dviter le phnomne de fragmentation de lespace disponible.

Document Tellora

Page 92/205

Exploitation Oracle 11g


www.tellora.fr

Oracle tente dallouer cte cte des extents de mme taille. Oracle optimise ainsi le stockage et les
performances.

EXTENT MANAGEMENT
DICTIONARY | LOCAL [ AUTOALLOCATE | UNIFORM [ SIZE valeur [K|M] ] ]
[ SEGMENT SPACE MANAGEMENT AUTO ]

Attention la taille minimum accepte par Oracle en UNIFORM SIZE est de 5 blocs.

tablespace gr localement avec des extents uniformes


CREATE TABLESPACE tbs_uniform
DATAFILE C:\app\guest\oradata\BORA\tbs_uniform.dbf SIZE 10M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K

tablespace gr localement avec des extents grs par Oracle


CREATE TABLESPACE tbs_auto
DATAFILE C:\app\guest\oradata\BORA\tbs_auto.dbf SIZE 10M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;

Les informations relatives la gestion des espaces (extent libre/allou) sont enregistres dans un
bitmap, dans len-tte de chaque fichier de donnes :

 Chaque bit du bitmap correspond un extent


 Vaut 0 ou 1 selon que lextent est libre ou allou

La Bitmap permet didentifier les extents adjacents libres.

Gestion automatique des extents par Oracle :


 3 blocs pour len-tte de fichier plus la taille dun extent
 Taille de lextent :
- valeur explicite ou par dfaut de la clause SIZE pour un tablespace UNIFORM
- 64 Ko, 1M, 8M pour un tablespace AUTOALLOCATE

La taille dextents initialement choisis pour un segment dpend de la taille du segment spcifie lors de
sa cration.

- 64Ko pour les segments de moins de 1Mo


- 1Mo pour les segments de moins de 64Mo
- 8Mo pour les segments de moins de 1024Mo

Document Tellora

Page 93/205

Exploitation Oracle 11g


www.tellora.fr

Exemple
Si la table suivante est cre dans un tablespace gr localement avec des extents UNIFORMES de 128
Ko
-- ============================================================

Table : EMPLOYE
-- ============================================================
create table EMPLOYE
(
ID_EMP
INTEGER
not null,
NOM
VARCHAR2(30)
not null,
SALAIRE
NUMBER(4)
not null,
EMPLOI
VARCHAR2(20)
null
,
EMP_ID_EMP
INTEGER
null
,
constraint PK_EMPLOYE primary key (ID_EMP)
using index
tablespace INDX
)
Tablespace tbs_local_uniform
Storage (initial 400K
next 100K
minextents 2
pctincrease 0
)
/

Oracle alloue (400 + 100) /128 = 3,5 arrondi lentier suprieur = 4 extents de 128 Ko pour la table.
Si la mme table est cre dans un tablespace gr localement avec une gestion automatique des
extents Oracle alloue (400 + 100)/64 = 7,8 arrondi lentier suprieur = 8 extents de 64 Ko pour la
table.

En version 10.2 et en version 11g, la clause Segment Space Management est


positionne AUTO par dfaut.
Elle indique une gestion des segments dont len-tte est gr par Bitmap.
-- La Free List disparat !

17.3

Notion de BIGFILE ou de SMALLFILE

A partir de la version 10g, Oracle introduit la notion de BIGFILE et de SMALLFILE.


La valeur SMALLFILE dtermine une gestion de petits fichiers (pouvant contenir au maximum 1022
fichiers dun taille de 222 blocks = 32Go).alors que la valeur BIGFILE dtermine la gestion dun seul
fichier de taille trs importante (plus de 4 milliards de blocs) et sont prconiss pour lutilisation en ASM.
Si aucun type de fichier nest prcis au moment de la cration dun tablespace, la valeur de la proprit
DEFAULT_TBS_TYPE est prise par dfaut.

Document Tellora

Page 94/205

Exploitation Oracle 11g


www.tellora.fr

SQL> -- Afficher les tablespaces dfinis par dfaut


SQL> set pagesize 200
SQL> set linesize 200
SQL> col property_value format A30
SQL> col property_name format A30
SQL> select property_value, property_name
2 from database_properties
3 where property_name like DEFAULT%
4 /
PROPERTY_VALUE
TEMP
USERS
SMALLFILE

PROPERTY_NAME
DEFAULT_TEMP_TABLESPACE
DEFAULT_PERMANENT_TABLESPACE
DEFAULT_TBS_TYPE

La modification de cette option se fait par la commande :


ALTER DATABASE SET DEFAULT { SMALLLFILE | BIGFILE } TABLESPACE
/

La proprit BIGFILE ou SMALLFILE peut tre spcifie la cration du tablespace :


CREATE BIGFILE TABLESPACE TBS_GROS
DATAFILE :\app\oracle\oradata\BORA\DATA_GROS.DBF
SIZE 20G
/

Les recommandations doracle vis--vis du stockage sont Strip and Mirror Everything (SAME).
Soit le RAID 1 = Raid 0 (STRIP) pour les performances + Raid 1 (MIROR) pour la scurit.

Document Tellora

Page 95/205

Exploitation Oracle 11g


www.tellora.fr

18

Tablespaces permanents

Les tablespaces permanents sont utiliss pour stocker des objets permanents tels que les tables ou les
index. Cest lunit logique de stockage dune base Oracle, et donc le plus petit lment de sauvegarde.

18.1

Crer un tablespace permanent

Lordre SQL CREATE TABLESPACE permet de crer un tablespace :


CREATE [ BIGFILE | SMALLFILE ] TABLESPACE Ts_nom
DATAFILE nom_fichier [ SIZE valeur [K|M|G|T] ] [REUSE]
AUTOEXTEND { OFF | ON [ NEXT valeur [K|M|G|T] ]
[ MAXSIZE { UNLIMITED | valeur [K|M|G|T] } ] }
EXTENT MANAGEMENT
LOCAL { AUTOALLOCATE | UNIFORM [ SIZE valeur [K|M|G|T] ] }
SEGMENT SPACE MANAGEMENT
{ MANUAL | AUTO }
[ DEFAULT [COMPRESS [ FOR {ALL | DIRECT_LOAD} OPERATIONS] | NOCOMPRESS] storage ]
[ BLOCKSIZE valeur (K) ]
[ LOGGING | NOLOGGING ]
[ FORCE LOGGING ]
[ FLASHBACK { ON | OFF } ]
[ ONLINE | OFFLINE ]
;

- DATAFILE = spcification (emplacement, taille, ) dun (ou plusieurs) fichier(s) de donnes pour le
tablespace, la taille peut tre spcifie en octets (pas de symbole), en Ko (symbole K) ou en Mo
(symbole M) ou en Gigas (G) ou en terra pour les tablespace de type BIGFILE uniquement.
- AUTOEXTEND = indique si le fichier de donnes peut (ON) ou non (OFF) grandir lorsque tout lespace
initialement allou est occup.
- NEXT = espace minimum allou lors dune extension
- MAXSIZE = taille maximum du fichier, ventuellement non limite (UNLIMITED)
- EXTENT MANAGEMENT = permet de dfinir le mode de gestion des extents lintrieur du tablespace.
- SEGMENT SPACE MANAGEMENT = permet de dfinir le mode de gestion de lespace libre des segments
lintrieur du tablespace.
- DEFAULT [ COMPRESSE | NOCOMPRESS ] = permet de dfinir un mode de compression
automatique des segments dans le tablespace, permettant de rduire lespace disque. Attention, cette
compression se fait au dtriment des temps des performances.
- LOGGING | NOLOGGING = enregistre les segments dans les Redo Log si LOGGING (par dfaut) est
dfini.
- FORCE LOGGING = oblige lenregistrement des segments dans les Redo Log mme si la clause
NOLOGGING est dfinie.
- FLASHBACK { ON | OFF } = indique si le tablespace participe aux oprations de flashback (ON).
- ONLINE | OFFLINE = indique si le tablespace est accessible (ON) ou non (OFF).
- COMPRESS | NOCOMPRESS = compression des donnes contenues dans le tablespace et possibilit
de crer une clause de stockage par dfaut pour les segments crs sans clause de stockage.

Document Tellora

Page 96/205

Exploitation Oracle 11g


www.tellora.fr

Dune manire gnrale toutes les syntaxes peuvent tre spcifies en octets (pas de symbole), en kilo
octets (K), en mga octets (M), en giga octet (G) ou encore Terra octet (T).

18.2

Modifier un tablespace permanent

Un certain nombre de manipulations sont effectues durant la vie de ces tablespaces :







Allouer de lespace supplmentaire un tablespace


Passer un tablespace OFFLINE/ONLINE
Dplacer le(s) fichier(s) de donnes
Passer un tablespace READ ONLY/READ WRITE
Renommer un tablespace

Ces oprations seffectuent avec la commande SQL :

 ALTER TABLESPACE ou ALTER DATABASE.


18.2.1

Agrandir un tablespace

Ajouter un fichier de donnes


Il est possible dagrandir un tablespace par lajout dun fichier de donnes.
ALTER TABLESPACE nom
ADD DATAFILE spcification_fichier_data [,]
;

ALTER TABLESPACE data


ADD DATAFILE :\app\guest\oradata\BORA\data02.dbf SIZE 100M
AUTOEXTEND ON NEXT 100M MAXSIZE 500M;

Modifier la taille du fichier rattach au tablespace


Modifier la taille dun fichier de donnes, la hausse ou la baisse dans la limite du dernier extent
occup dans le fichier de donnes.
ALTER DATABASE
DATAFILE nom_complet [,] RESIZE valeur [K|M]
;

Loption RESIZE peut tre utilise la hausse mais aussi la baisse en fonction de lemplacement du
dernier objet cr ou modifi, dans le tablespace, visible dans la vue DBA_EXTENTS, sinon il y a affichage
dun message derreur.
Cette option peut tre lance pendant que des utilisateurs travaillent sur la base. Elle a pour effet de
modifier la taille du fichier immdiatement.

ALTER DATABASE
DATAFILE C:\app\oracle\oradata\BORA\data02.dbf RESIZE 800M;

Document Tellora

Page 97/205

Exploitation Oracle 11g


www.tellora.fr

Modifier la clause AUTO EXTEND


Loption AUTOEXTEND ON a pour effet de permettre au fichier de stendre lorsquil est plein et quun
nouvel objet est cr.
La clause AUTOEXTEND OFF annule une clause AUTOEXTEND ON.
ALTER DATABASE
DATAFILE nom_complet [,]
AUTOEXTEND [ON|OFF]
;

dsactivation de la clause autoextend


ALTER DATABASE
DATAFILE C:\app\oracle\oradata\BORA\data01.dbf
AUTOEXTEND OFF;

activation (ou modification) de la clause autoextend


ALTER DATABASE
DATAFILE C:\app\oracle\oradata\BORA\data02.dbf
AUTOEXTEND ON NEXT 200M MAXSIZE 800M;

18.2.2

Passer un tablespace OFFLINE ou ONLINE :

Les clauses ONLINE ou OFFLINE permettent dactiver ou de dsactiver un tablespace. Les objets
contenus dans le tablespace ne sont plus accessibles par les utilisateurs si la clause OFFLINE est utilise.
ALTER TABLESPACE nom_complet
ONLINE | OFFLINE
;

ALTER

ALTER

18.2.3

dsactivation
TABLESPACE data OFFLINE;
activation
TABLESPACE data ONLINE;

Passer un tablespace READ ONLY ou READ WRITE :

Le tablespace en READ ONLY ne permet plus lcriture dans les objets quil contient.
ALTER TABLESPACE nom_complet
READ ONLY | READ WRITE
;

ALTER

ALTER

dsactivation
TABLESPACE data READ ONLY;
activation
TABLESPACE data READ WRITE;

Document Tellora

Page 98/205

Exploitation Oracle 11g


www.tellora.fr

18.2.4

Dplacer un fichier de donnes

Cette action est possible par un ALTER TABLESPACE ou un ALTER DATABASE RENAME FILE.
Le ALTER DATABASE est particulirement utile pour dplacer le tablespace SYSTEM qui ne peut pas tre
mis OFFLINE.

Le tablespace concern doit tre OFFLINE ou la base


en tat MOUNT dans le cas du ALTER DATABASE.

Les commandes ne manipulent pas physiquement le fichier ;


Elles se contentent de mettre jour le dictionnaire Oracle et les fichiers de contrle, de plus le fichier
doit tre renomm + copi + dplac avant de passer la commande.

ALTER TABLESPACE nom


RENAME DATAFILE ancien_nom_complet
TO nouveau_nom_complet
;

Le mode opratoire ci-dessous doit tre appliqu pour effectuer ce genre dopration.

MODE OPERATOIRE
 Mettre le tablespace OFFLINE
ALTER TABLESPACE nom_ts OFFLINE ;
 Dplacer les fichiers vers le nouvel emplacement
COPIER .. +.. COLLER
 Indiquer Oracle le nouvel emplacement
ALTER TABLESPACE RENAME FILE ancien_nom
TO nouveau_nom ;
 Mettre le tablespace ONLINE
ALTER TABLESPACE nom_ts ONLINE ;

Dplacer un fichier de donnes

Passer le tablespace OFFLINE


Sql> alter tablespace data OFFLINE ;

Dplacer le fichier du tablespace par une commande du systme dexploitation (copy)

Excuter la commande : alter tablespace


Sql> alter tablespace data
Sql>
rename datafile C:\app\guest\oradata\BORA\data01.dbf
Sql>
to e:\oracle\oradata\BORA\data01.dbf ;

Remettre le tablespace ONLINE

Document Tellora

Page 99/205

Exploitation Oracle 11g


www.tellora.fr

Sql> alter tablespace data01 ONLINE;

Le mode opratoire ci-dessous doit tre appliqu pour effectuer ce genre dopration sur le tablespace
SYSTEM qui contient le dictionnaire de donnes et ne peut pas tre mis OFFLINE.

MODE OPERATOIRE
 Arrter la base
SHUTDOWN IMMEDIATE
 Dplacer les fichiers vers le nouvel emplacement
COPIER .. +.. COLLER
 Dmarrer la base ltat MOUNT
STARTUP MOUNT
 Indiquer Oracle le nouvel emplacement
ALTER DATABASE RENAME FILE ancien_nom
TO nouveau_nom
 Ouvrir la base
ALTER DATABASE OPEN

Dplacer le tablespace systme


Le mettre ltat MOUNT
Sql> Connect / as sysdba
Sql> Shutdown immediate
Sql> Startup mount
Dplacer le fichier du tablespace systme par une commande du systme dexploitation
(copy)
Excuter la commande : alter database rename file
Sql> alter database
Sql> rename file C:\app\oracle\oradata\BORA\systeme01.dbf
Sql>
to D:\app\oracle\oradata\BORA\systeme01.dbf ;
Ouvrir la base
Sql> alter database open;

18.2.5

Renommer un tablespace

A partir de la version 10g, il est possible de changer le nom dun tablespace en utilisant une requte
SQL ou OEM. Quand vous renommez un tablespace, Oracle met jour toutes les rfrences au nom du
tablespace dans le dictionnaire de donnes, le fichier de contrle et les en-ttes de fichiers du
tablespace concern.

Document Tellora

Page 100/205

Exploitation Oracle 11g


www.tellora.fr

Lidentifiant du tablespace nest pas chang. Si le tablespace savre tre le tablespace par dfaut dun
utilisateur, alors le tablespace renomm apparat toujours comme tant le tablespace par dfaut de
lutilisateur.
Les en-ttes de fichiers ne peuvent tre changs que si le tablespace est mis dans un mode READ WRITE
(quand cest possible).
Vous pouvez renommer la fois des tablespaces permanents et temporaires.
ALTER TABLESPACE ancien_nom RENAME TO nouveau_nom ;

SQL> -- Renommer le tablespace DATABIS en DATA


SQL> ALTER TABLESPACE databis RENAME TO data
2 /
Tablespace altered.

Si vous recrez le fichier de contrle, les records de tablespace dans le nouveau fichier de contrle
sont construits partir des informations des fichiers associs au tablespace.
Si vous utilisez des sauvegardes pour la restauration, les records de tablespace construits pourraient
reflter les anciens noms du tablespace car la sauvegarde a t effectue avant que le tablespace soit
renomm.
La restauration en utilisant des sauvegardes de fichiers de donnes contenant des anciens noms de
tablespace nest pas un problme. Si un fichier de sauvegardes dont les en-ttes contiennent lancien
nom du tablespace est restaur aprs avoir t renomm, len-tte de fichier possde le nouveau nom
du tablespace aprs restauration.

Il nest pas possible de renommer les tablespaces


SYSTEM, SYSAUX ou UNDO. Le changement
affecterait la fois la mmoire et le SPFILE

Si un seul datafile du tablespace renommer est OFFLINE ou si le tablespace est OFFLINE, alors le
tablespace ne peut pas tre renomm.
Avant la version 10g, si vous vouliez rorganiser et migrer un Tablespace DATA gr par le
dictionnaire en un tablespace gr localement avec des extents uniformes,
vous deviez appliquer le mode opratoire ci-dessous :

 Crer un autre ts DATABIS ,


 Copier tous les objets de DATA vers DATABIS
 Supprimer DATA
 Recrer DATA avec une gestion locale des extents,
 Copier tous les objets de DATABIS vers DATA ,
 Supprimer DATABIS .

Document Tellora

Page 101/205

Exploitation Oracle 11g


www.tellora.fr

En utilisant la fonctionnalit de renommage dun tablespace, vous pouvez simplifier ce mode


opratoire :

 Crer un ts DATABIS gr localement


 Copier tous les objets de DATA vers DATABIS
 Supprimer DATA
 Renommer DATABIS en DATA
Le tablespace ne peut tre renomm que si vous avez dj supprim le tablespace portant lancien nom.

Comme Oracle ne renomme pas les fichiers dun tablespace, il faut faire
attention aux noms des fichiers associs au tablespace. Faites attention la
mthode qui consistait nommer les fichiers dun tablespace du mme nom
suivi de numros car aprs renommage , ces noms deviennent obsoltes.

Cette fonctionnalit est utiliser en cas de migration de oracle 8i vers une version oracle 10g.

18.2.6

Supprimer un tablespace

Lordre SQL DROP TABLESPACE permet de supprimer un tablespace.


DROP TABLESPACE nom [ INCLUDING CONTENTS [ AND DATAFILES ]
[ CASCADE CONSTRAINTS ] ]
;

Si le tablespace contient des segments, la clause INCLUDING CONTENTS est ncessaire.


La clause CASCADE CONSTRAINTS permet en plus dignorer les contraintes dintgrit rfrentielle dfinies
sur des tables hors du tablespace et qui rfrencent les cls primaires des tables lintrieur du
tablespace.
A partir de la 9i, la clause AND DATAFILES permet de supprimer les fichiers physiquement.
Un message est crit dans le fichier des alertes de linstance pour chaque fichier supprim.

Alter tablespace data OFFLINE ;


DROP TABLESPACE data INCLUDING CONTENTS and DATAFILES;

Ne pas oublier de mettre le tablespace OFFLINE


avant de le supprimer.

Document Tellora

Page 102/205

Exploitation Oracle 11g


www.tellora.fr

18.2.7

Crer un tablespace avec une taille de bloc non standard

La taille de bloc standard dun tablespace correspond la taille dfinie par le paramtre DB_BLOCK_SIZE
lors de la cration de la base de donnes. Cette taille ne peut plus tre modifie par la suite (pendant
toute la vie de la base de donnes).

 elle est utilise pour le tablespace SYSTEM et les tablespaces crs la cration de la base tels que
SYSAUX, UNDO, TEMP ou USERS

A partir dOracle 9i, il est possible dutiliser plusieurs tailles de bloc dans la base de donnes.
Jusqu 5 autres tailles de bloc peuvent tre utilises.
Les valeurs permises sont 2 ko, 4 ko, 8 ko, 16 ko et 32 ko (certaines plates-formes sont plus
restrictives), elles sont utilises lors de la cration des autres tablespaces.
Pour les utiliser, il suffit de configurer des sous-caches correspondants dans le Database Buffer Cache.

Un tablespace ne peut pas tre cr avec une taille de


bloc non standard si le cache correspondant nest pas
configur auparavant (DATABASE BUFFER CACHE).

La colonne BLOCK_SIZE de la vue DBA_TABLESPACES donne la taille de bloc utilise par les tablespaces
Cette possibilit dutiliser plusieurs tailles de bloc est surtout intressante pour la fonctionnalit de
transport de tablespace.
Ainsi un tablespace ayant une taille de bloc de 4 ko peut tre transporte dans une base utilisant des
blocs de 8 ko.
La taille de bloc dun tablespace ne peut pas tre modifie sans recrer le tablespace.

18.2.8

Le cryptage des donnes dun tablespace (nouveaut 11g)

La version 11g permet de crypter la totalit des donnes contenues dans un tablespace. Cette option de
la base de donnes est disponible en version Enterprise Edition et est payante.
Elle permet dutiliser un algorithme de cryptage disponible dans la base de donnes.

Il existe diffrents algorithme de cryptage :

 3DES168
 AES128 (par dfaut)
 AES192
 AES256

Document Tellora

Page 103/205

Exploitation Oracle 11g


www.tellora.fr

Pour utiliser un algorithme de cryptage il faut le prciser au moment de la cration du tablespace :


Create tablespace my_secure_tbs
Datafile /oracle/oradata/Tahiti/my_secure_tbs01.dbf size 100M
Encryption using 3DES168 default storage (encrypt) ;

Si vous utilisez lalgorithme par dfaut il nest pas ncessaire de prciser lalgorithme :
Create tablespace my_secure_tbs
Datafile /oracle/oradata/Tahiti/my_secure_tbs01.dbf size 100M
Encryption default storage (encrypt) ;

En version 11g, si on utilise le cryptage des donnes dun tablespace, il faut


faire attention ce que les donnes cryptes ne soient pas plus longues que
la taille des colonnes dfinies pour les tables !
par exemple une colonne dfinie en VARCHAR(4000) peut avoir un contenu
non crypt 3899 et il devient suprieur 4000 lorsquil est crypt.

Le cryptage des donnes dans un tablespace a des consquences significatives sur les performances de
la base de donnes. Il faut donc manipuler cette option de la base de donnes avec prcaution.

18.2.9

Tablespace de travail par dfaut

Chaque utilisateur de la base de donnes possde un tablespace permanent pour stocker des donnes
permanentes et un tablespace temporaire pour les donnes temporaires (tris),
Oracle vous permet de dfinir un tablespace permanent par dfaut qui est automatiquement utilis
chaque fois quun nouvel utilisateur est cr sans tablespace spcifique permanent.
Le nouveau concept dun tablespace permanent par dfaut ne sapplique pas aux USERS system (SYS,
SYSTEM, OUTLN). Ces USERS utilisent toujours le tablespace SYSTEM comme leur tablespace permanent.

Vous ne pouvez pas supprimer un tablespace


dsign comme tablespace permanent par dfaut.
Vous devez dabord rassigner un autre tablespace
aux utilisateurs en tant que tablespace par dfaut
puis supprimer lancien tablespace par dfaut.

Il est possible de modifier le tablespace permanent par dfaut de la base de donnes. Le changement
prend effet pour les nouveaux objets ou utilisateurs crs aprs la commande ALTER DATABASE.
Aprs lexcution de cette commande tous les utilisateurs non SYSTEM sont rattachs au tablespace
newusers .

ALTER DATABASE DEFAULT TABLESPACE newusers ;

Document Tellora

Page 104/205

Exploitation Oracle 11g


www.tellora.fr

SQL> alter database default tablespace users


2 /
Database altered.
SQL> -- Afficher les tablespaces par dfinis par dfaut
SQL> select property_value, property_name
2 from database_properties
3 where property_name like DEFAULT%
4 /
PROPERTY_VALUE
------------------------TEMP
USERS
SMALLFILE

PROPERTY_NAME
----------------------------------DEFAULT_TEMP_TABLESPACE
DEFAULT_PERMANENT_TABLESPACE
DEFAULT_TBS_TYPE

18.2.10 Vues du dictionnaire de donnes


Plusieurs vues du dictionnaire permettent dobtenir des informations sur les tablespaces et les fichiers
de donnes :

DBA_TABLESPACES : informations sur les tablespaces


DBA_DATA_FILES : informations sur les fichiers de donnes
V$TABLESPACE : informations sur les tablespaces ( partir du fichier de contrle)
V$DATAFILE : informations sur les fichiers de donnes ( partir du fichier de contrle)
V$SYSAUX_OCCUPANTS : informations sur les objets des occupants stocks dans le tablespace SYSAUX.
DBA_FREE_SPACE : informations sur lespace disponible lintrieur dun tablespace, un tablespace qui
na pas dextent libre na pas de ligne dans DBA_FREE_SPACE.
DBA_SEGMENTS : informations sur les segments allous lintrieur dun tablespace
DBA_EXTENTS : informations sur les extents allous lintrieur dun tablespace

Document Tellora

Page 105/205

Exploitation Oracle 11g


www.tellora.fr

19

Tablespaces SYSTEM & SYSAUX

19.1

Tablespace SYSTEM

Le tablespace SYSTEM est le tablespace qui contient le dictionnaire de donnes.


Le dictionnaire de donnes est install la cration de la base de donnes dans le tablespace SYSTEM
par lutilisateur SYS.
Pour des raisons de performance et de taille de stockage, le tablespace SYSTEM ne contient plus dautres
occupants partir de la version Oracle 10g. Ces occupants sont placs dans le tablespace SYSAUX.

19.2

Tablespace SYSAUX

Le tablespace SYSAUX est un tablespace auxiliaire au tablespace SYSTEM.


Des composants utilisaient dans les versions antrieures dOracle le tablespace SYSTEM ou leur propre
tablespace. Depuis la version 10g, ces composants utilisent le tablespace SYSAUX comme destination par
dfaut pour stocker leurs donnes.

Ce tablespace est obligatoire et doit tre cr au moment de la cration de la base de donnes ou de


son upgrade.
Ce tablespace SYSAUX est dfini avec les attributs :

 Permanent
 Read Write
 Extent Management Local
 Segment Space Management Auto
Comme pour le tablespace SYSTEM, il est possible de crer vos propres tables lintrieur du tablespace
SYSAUX ce qui est vivement dconseill.
Ce nouveau tablespace fournit un emplacement centralis pour toutes les mtas data auxiliaires de
la base de donnes qui ne rsident pas dans le tablespace SYSTEM. Il rduit ainsi le nombre de
tablespaces crs par dfaut.

Document Tellora

Page 106/205

Exploitation Oracle 11g


www.tellora.fr

Le tablespace SYSAUX nest pas un tablespace transportable.

Vous ne devez pas supprimer ou renommer le


tablespace SYSAUX.
Si le tablespace SYSAUX nest pas disponible
(ENABLE) certaines fonctionnalits de la base de
donnes ne fonctionneront plus.

19.2.1

Avantages du tablespace SYSAUX

 Rduction du nombre de tablespaces :


Plusieurs fonctionnalits dOracle ncessitent un tablespace spcifique pour stocker les donnes. Le plus
souvent un tablespace spar est cr. En consquence, les DBA se retrouvent dans lobligation de grer
un grand nombre de tablespaces. Le tablespace SYSAUX est le tablespace par dfaut pour ces produits
Oracle en utilisant le tablespace SYSAUX, le travail du dba est simplifi.
 Rduction de la charge sur le tablespace SYSTEM :
Certains produits ou fonctionnalits Oracle utilisent le tablespace SYSTEM comme tablespace par dfaut
pour stocker les donnes. De ce fait, les performances de la base sont dgrades cause dun large
volume de donnes dans le tablespace SYSTEM. De plus, cela peut affecter la disponibilit de la base
cause des risques de corruption et de manque despace disque au fur et mesure que celui-ci grandit.
 Gestion simplifie du RAC :
Pour les utilisateurs du RAC avec des raw devices (priphrique), un raw device doit tre allou pour
chaque tablespace cr. Grer un grand nombre de raw device peut tre difficile. Regrouper ces
tablespaces dans le tablespace SYSAUX rduit le nombre de raw device quun DBA doit allouer.
Le tablespace SYSAUX peut tre modifi avec la commande ALTER TABLESPACE . Il ny a pas de
changement de syntaxe pour le tablespace SYSAUX.
Vous pouvez raliser des tches dadministration classiques telles que : ajouter des fichiers de donnes
au tablespace SYSAUX.
Vous devez avoir le privilge SYSDBA pour modifier le tablespace SYSAUX.

19.2.2

Dlocaliser les occupants du tablespace SYSAUX

Aprs la cration vous pouvez surveiller lutilisation de lespace de chaque occupant lintrieur du
tablespace SYSAUX en utilisant la console OEM. Si vous dtectez quun composant prend trop despace
dans le tablespace SYSAUX, vous pouvez dplacer loccupant dans un tablespace diffrent.

Dplacer les donnes dOLAP


du tablespace sysaux vers le nouveau tablepsace CWMLITE.

Select occupant_name, space_usage_kbytes


From v$sysaux_occupants ;

Document Tellora

Page 107/205

Exploitation Oracle 11g


www.tellora.fr

Select occupant_name, schema_name, move_procedure


From v$sysaux occupants ;
Exec WKSYS.MOVE_WK(CWMLITE);
Exec WKSYS.MOVE_WK(SYSAUX);

La seconde requte est utilise pour dterminer quelle procdure doit tre utilise pour dplacer
loccupant correspondant hors du tablespace SYSAUX. Cette procdure gre les deux directions, entrant
et sortant du tablespace SYSAUX.

 Les procdures fonctionnent base ONLINE.


Les occupants suivants ne peuvent pas tre dplacs :

 STREAMS, SMC, STATSPACK, ORDIM, ORDIM/PLUGINS, ORDIM/SQLMM, JOB_SCHEDULER.

Document Tellora

Page 108/205

Exploitation Oracle 11g


www.tellora.fr

20

Tablespace UNDO

Depuis la version 9i, le tablespace UNDO permet la gestion automatique des segments dannulation.
Cette fonctionnalit est appele Automatic Undo Management (AUM) ou encore System Managed Undo
(SMU).

Utiliser la gestion MANUELLE des rollbacks


segments en version 11g peut provoquer de graves
problmes de performance !

Un segment dannulation est un segment utilis pour stocker la version prcdente ( image avant )
des donnes en cours de modification dans une transaction qui nest pas encore valide (non
COMMITe).






Permet lannulation de la transaction (ROLLBACK)


Permet la lecture cohrente (mme version des donnes lues dans un SELECT)
Certaines fonctionnalits de FLASHBACK
En cas de RECOVER pour annuler des modifications non commites

Si la transaction est valide (COMMIT), lespace sera libr, par contre si elle est annule (ROLLBACK) la
version prcdente des donnes sera rcrite.
La lecture cohrente est le fait que les donnes en cours de modification ne sont pas vues par les autres
utilisateurs tant que la transaction nest pas valide.
Lorsquun utilisateur interroge une table en cours de modification, Oracle utilise limage avant des
donnes stockes dans les segments dannulation pour lui rpondre.

Document Tellora

Page 109/205

Exploitation Oracle 11g


www.tellora.fr

Avant la version 9i les segments dannulation nexistaient pas, les transactions taient gres par des
rollbacks segments. Les rollbacks segments taient grs par les DBA.
Aujourdhui encore une base de donnes a toujours au moins un rollback segment nomm SYSTEM,
rserv aux transactions qui concernent les objets du tablespace SYSTEM, stock dans le tablespace
SYSTEM. Ce rollback segment est utilis pour les accs au dictionnaire de donnes lors de la cration de
la base de donnes.

Dautres segments dannulation sont ncessaires pour les transactions qui concernent les objets
contenus dans les tablespaces (tables).

Un segment dannulation est stock dans un tablespace,


compos dextents dont les blocs sont chargs dans le Database
Buffer Cache en fonction des besoins.
A partir de la version 9i, le tablespace UNDO remplace les
rollbacks segments. Il contient des segments dannulation grs
par Oracle.

Les segments dannulation sont constitus dextents.


Les modifications apportes aux blocs des segments dannulation dans le Database Buffer Cache sont
enregistrs dans les fichiers du tablespace UNDO si linstance a besoin despace en mmoire vive.
Ils sont galement enregistrs dans les redo Logs. Ainsi, en cas de restauration dinstance ou de
restauration de mdia (restauration dun tablespace), Oracle est en mesure de reconstituer les
segments dannulation et dannuler les modifications dj crites dans les fichiers de donnes pour
annuler les transactions non valides au moment de lincident.
Les extents dun segment dannulation sont utiliss de la faon suivante :

 Les transactions crivent dans lextent courant


 Lorsque lextent courant est plein, les transactions passent au suivant si celui-ci est libre (pas de
transaction active lintrieur)

 Si lextent suivant nest pas libre, un nouvel extent est allou au segment dannulation
Par dfaut, cest Oracle qui alloue les segments dannulation aux transactions en cherchant rpartir les
transactions concurrentes sur les diffrents segments dannulation.
Lorsquune transaction commence utiliser un segment dannulation, elle ne peut pas changer de
segment en cours de droulement. Elle inscrit son identifiant dans len-tte du segment puis utilise les
blocs dont elle a besoin dans le segment.
Lorsque la transaction se termine, elle libre le segment dannulation mais les informations de rollback
ne sont pas supprimes immdiatement.

Ces informations peuvent encore tre utiles pour une lecture cohrente.

 Ces informations sont conserves pendant toute la dure de rtention dfinie par le paramtre
UNDO_RETENTION.

Document Tellora

Page 110/205

Exploitation Oracle 11g


www.tellora.fr

Si le paramtre UNDO_RETENTION est trop faible (900


par dfaut), lerreur snapshot too old
apparat.
 il faut augmenter la dure de rtention !

Un segment dannulation peut contenir plusieurs transactions simultanes, les extents pouvant mme
tre partags entre plusieurs transactions (mais pas les blocs).
Une transaction bloque peut bloquer un extent et obliger le segment grossir alors que dautres
extents sont libres derrire lextent bloqu ; cette situation peut tre dtecte grce la vue
V$TRANSACTION.

Lorsquun segment dannulation grossit et atteint la


limite de la taille du tablespace UNDO, il faut retailler
le tablespace UNDO puis relancer la transaction.

20.1

Fonctionnement du tablespace UNDO

Dans un tablespace dannulation les segments dannulation sont automatiquement grs par Oracle et
lui seul.

 Nomms _SYSSMUnn$
 Dimensionns automatiquement en fonction des besoins (nombre et taille).
 Stendent et rtrcissent en fonction des besoins.
SQL> COL name FOR A10
SQL> SELECT n.name,s.extends,s.shrinks,s.wraps,s.hwmsize,s.writes
2 FROM v$rollstat s,v$rollname n
3 WHERE n.usn = s.usn
4 ORDER BY n.usn
5 /
NAME
EXTENDS
SHRINKS
WRAPS
HWMSIZE
WRITES
---------- ---------- ---------- ---------- ---------- ---------SYSTEM
0
0
0
385024
4520
_SYSSMU1$
0
0
0
1040384
7176
_SYSSMU2$
0
0
0
1171456
108
_SYSSMU3$
0
0
0
1236992
160
_SYSSMU4$
0
0
0
1499136
160
_SYSSMU5$
0
0
0
1302528
160
_SYSSMU6$
0
0
0
253952
236
_SYSSMU7$
0
0
0
319488
54
_SYSSMU8$
0
0
0
450560
54
_SYSSMU9$
0
0
0
1564672
54
_SYSSMU10$
0
0
0
319488
160
11 ligne(s) slectionne(s).

Les segments dannulation stocks dans le tablespace dannulation sont automatiquement activs.

Document Tellora

Page 111/205

Exploitation Oracle 11g


www.tellora.fr

Il est impossible de toucher aux segments dannulation (ajout, suppression, activation,


dimensionnement ), cest Oracle qui les gre.
Lors de la cration du tablespace dannulation, Oracle cre 10 segments dannulation de 2 extents
chacun.
En fonction des besoins, Oracle alloue des extents supplmentaires aux segments dannulation existants
ou cre des segments dannulation supplmentaires (un par un).
Les segments dannulation crs ne sont pas supprims. Sil y a baisse dactivit transactionnelle, Oracle
nen a plus lutilit, il les passe OFFLINE. Si linstance en a besoin ultrieurement, elle les repassera
ONLINE.

20.2

Positionner les paramtres de gestion automatique

La gestion automatique des segments dannulation se fait lors de la cration de la base de donnes.
La gestion automatique des segments UNDO fait appel aux paramtres suivants :

 UNDO_MANAGEMENT : mode gestion souhait pour les informations dannulation (par dfaut TRUE).
 UNDO_RETENTION : dure de rtention/conservation des informations dannulation dans les segments
dannulation (en seconde), 900 par dfaut (soit dheure).

 UNDO_TABLESPACE : nom du tablespace dannulation utiliser, si non spcifi Oracle prend le premier
tablespace UNDO disponible.

SQL> show parameters undo


NAME
TYPE
---------------------- ----------------------------undo_management
string
undo_retention
integer
undo_tablespace
string

VALUE
-------------------AUTO
900
UNDOTBS

Si le paramtre dinitialisation UNDO_MANAGEMENT est positionn AUTO et que la clause UNDO


TABLESPACE nest pas prsente, Oracle cre un tablespace dannulation par dfaut :

 Nomm SYS_UNDOTBS
 Avec un fichier de donnes de 10 Mo, positionn en AUTOEXTEND

20.3

Crer un tablespace UNDO

La cration dun tablespace UNDO se fait lors de la cration de la base de donnes et seffectue grce la
clause UNDO_TABLESPACE de lordre SQL CREATE DATABASE.
Le tablespace dannulation est forcment gr localement, avec une gestion automatique des extents, la
clause EXTENT MANAGEMENT peut tre indique, mais la seule valeur autorise est LOCAL AUTOALLOCATE.

Document Tellora

Page 112/205

Exploitation Oracle 11g


www.tellora.fr

Si un nom a t indiqu dans le paramtre dinitialisation UNDO_TABLESPACE, utilisez le mme nom dans
la clause UNDO TABLESPACE, sinon :

 La base sera bien cre avec le tablespace spcifi dans la clause UNDO TABLESPACE
 Mais Oracle retournera une erreur louverture de celle-ci

20.4
20.4.1

Changer de tablespace UNDO actif


Crer un tablespace UNDO aprs cration de la base

Seffectue grce lordre SQL CREATE UNDO TABLESPACE :

CREATE UNDO TABLESPACE nom


DATAFILE spcification_fichier_data [,]
;

SQL> CREATE UNDO TABLESPACE undotbs_essai


2 DATAFILE C:\app\guest\oradata\BORA\undotbs_essai01.dbf
3 SIZE 10M AUTOEXTEND ON NEXT 20M MAXSIZE 50M
4 /
Tablespace cr.
SQL> select TABLESPACE_NAME,STATUS,SEGMENT_NAME
2 from dba_rollback_segs;
TABLESPACE_NAME
-----------------------------SYSTEM
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI

STATUS
---------------ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE

SEGMENT_NAME
-----------------------------SYSTEM
_SYSSMU1$
_SYSSMU2$
_SYSSMU3$
_SYSSMU4$
_SYSSMU5$
_SYSSMU6$
_SYSSMU7$
_SYSSMU8$
_SYSSMU9$
_SYSSMU10$
_SYSSMU11$
_SYSSMU12$
_SYSSMU13$
_SYSSMU14$
_SYSSMU15$
_SYSSMU16$
_SYSSMU17$
_SYSSMU18$
_SYSSMU19$
_SYSSMU20$

21 ligne(s) slectionne(s).

Document Tellora

Page 113/205

Exploitation Oracle 11g


www.tellora.fr

20.4.2

Changer de tablespace UNDO pendant lactivit de la base

Si la base dispose de plusieurs tablespaces dannulation, il est possible de changer de tablespace actif
en modifiant la valeur du paramtre UNDO_TABLESPACE qui est un paramtre dynamique :
ALTER SYSTEM SET UNDO_TABLESPACE = nouveau_nom [ clause_SCOPE ]
;

Lors dun changement de tablespace UNDO actif, les segments dannulation stocks dans lancien
tablespace dannulation sont dsactivs (passs OFFLINE) et les segments dannulation stocks dans le
nouveau tablespace dannulation sont activs (passs ONLINE).
Le changement de tablespace dannulation actif nattend pas que les transactions en cours se terminent.
Oracle met les segments dannulation utiliss dans le statut PENDING OFFLINE (visible uniquement dans
V$ROLLSTAT), empchant ainsi quils soient utiliss par de nouvelles transactions ; les segments
dannulation sans transaction active sont immdiatement pass OFFLINE.
Les segments dannulation PENDING OFFLINE sont passs dfinitivement OFFLINE lorsquils ne
contiennent plus de transaction active.
Les nouvelles transactions utilisent les segments dannulation du nouveau tablespace dannulation actif.

SQL> alter system set undo_tablespace=undotbs_essai scope=memory;


Systme modifi.
SQL> select TABLESPACE_NAME,STATUS,SEGMENT_NAME
2 from dba_rollback_segs;
TABLESPACE_NAME
-----------------------------SYSTEM
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI
UNDOTBS_ESSAI

STATUS
---------------ONLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
OFFLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE

SEGMENT_NAME
-----------------------------SYSTEM
_SYSSMU1$
_SYSSMU2$
_SYSSMU3$
_SYSSMU4$
_SYSSMU5$
_SYSSMU6$
_SYSSMU7$
_SYSSMU8$
_SYSSMU9$
_SYSSMU10$
_SYSSMU11$
_SYSSMU12$
_SYSSMU13$
_SYSSMU14$
_SYSSMU15$
_SYSSMU16$
_SYSSMU17$
_SYSSMU18$
_SYSSMU19$
_SYSSMU20$

21 ligne(s) slectionne(s).

Document Tellora

Page 114/205

Exploitation Oracle 11g


www.tellora.fr

Si des transactions sont en cours dans lancien tablespace au moment du changement alors :

 Le changement est pris en compte immdiatement : les nouvelles transactions utilisent le nouveau
tablespace dannulation mais Oracle laisse les transactions actuelles se terminer dans lancien

 Les segments dannulation non utiliss de lancien tablespace sont passs OFFLINE
 Les segments dannulation utiliss de lancien tablespace sont marqus PENDING OFFLINE (dans
V$ROLLSTAT)

 Lorsque les transactions sont termines, les segments dannulation utiliss sont dfinitivement passs
OFFLINE

 Lancien tablespace reste ONLINE : il nest simplement plus le tablespace actif pour lannulation (dfini par
le paramtre UNDO_TABLESPACE)

Un tablespace qui contient des segments dannulation ONLINE ou


PENDING OFFLINE ne peut pas tre dsactiv ou supprim.

Bien noter que lancien tablespace dannulation actif reste ONLINE, mais que les segments dannulation
quil contient sont OFFLINE (ils ne peuvent pas tre passs ONLINE la main) ; si besoin, il faut passer
le tablespace dannulation explicitement OFFLINE.
Activer ou dsactiver le tablespace, uniquement sil nest pas le tablespace dannulation actif et sil ne
contient pas de segments dannulation PENDING OFFLINE

Le passage OFFLINE dun tablespace dannulation


actif, ou contenant encore des segments dannulation
PENDING OFFLINE, est interdit.

20.5

Administrer un tablespace UNDO

Seffectue avec les ordres SQL habituels ALTER TABLESPACE ou ALTER DATABASE (pour la gestion des
fichiers de donnes) comme un tablespace permanent ordinaire, mais restreints aux actions suivantes :

 Activer ou dsactiver le tablespace (comme prsent ci-dessus)


 Ajouter un fichier de donnes
 Modifier la taille ou lextension automatique dun fichier de donnes
 Dplacer un fichier de donnes

Document Tellora

Page 115/205

Exploitation Oracle 11g


www.tellora.fr

20.5.1

Dimensionner le tablespace UNDO

Utiliser la vue V$UNDOSTAT pour dimensionner le tablespace dannulation.


Les besoins en espace dannulation sont lis la dure de rtention des informations (paramtre
UNDO_RETENTION).
La quantit totale despace dannulation ncessaire pour satisfaire la dure de rtention peut tre
estime par la formule.

 UNDO_RETENTION * Quantit despace dannulation par seconde


Le paramtre UNDO_RETENTION peut tre dfini en analysant la valeur de la colonne MAXQUERYLEN de la
vue V$UNDOSTAT.

 Donne la dure en seconde de la requte la plus longue sur chaque priode analyse
La quantit despace dannulation par seconde peut tre estime en analysant la valeur de la colonne
UNDOBLKS de la vue V$UNDOSTAT.

 Donne le nombre de blocs dannulation utiliss sur chaque priode analyse


Pour que le calcul soit pertinent, il est important de faire une analyse en pleine charge.

Exemple
3000 blocs utiliss en pleine charge, sur 10 ( Soit 3000 / 600 = 5 blocs par seconde
Dure de rtention = 30 = 1800 seconde ( Soit un besoin de 5 * 1800 = 9000 blocs
Taille de bloc = 4 K0 ( Soit une taille de 4 * 9000 / 1024 = environ 35 Mo
Prendre de la marge ( 50 Mo)

Exemple 2
SQL>
SQL>
SQL>
SQL>
SQL>
SQL>

SET
SET
SET
SET
COL
COL

LINESIZE 75
TRIMSPOOL ON
PAGESIZE 1000
VERIFY OFF
begin_time FOR A11
end_time FOR A11

SQL> -- interrogation de V$UNDOSTAT


SQL> SELECT
2
TO_CHAR(begin_time,DD/MM HH24:MI) begin_time,
3
TO_CHAR(end_time,DD/MM HH24:MI) end_time,
4
undoblks,
5
maxquerylen
6 FROM
7
v$undostat
8 /
BEGIN_TIME
END_TIME
UNDOBLKS MAXQUERYLEN
----------- ----------- ---------- ----------14/08 11:03
14/08 11:09
0
3
14/08 10:53
14/08 11:03
526
77
14/08 10:43
14/08 10:53
601
192
14/08 10:33
14/08 10:43
635
72
14/08 10:23
14/08 10:33
666
147
14/08 10:13
14/08 10:23
609
84

Document Tellora

Page 116/205

Exploitation Oracle 11g


www.tellora.fr

14/08
14/08
14/08
14/08
14/08

10:03
09:53
09:43
09:33
09:23

14/08
14/08
14/08
14/08
14/08

10:13
10:03
09:53
09:43
09:33

618
150
1000
374
2

65
44
17
1
1

11 rows selected.
SQL> -- dure de la requte la plus longue, toutes priodes confondues
SQL> -- * bonne base de dpart pour le paramtre UNDO_RETENTION
SQL> SELECT MAX(maxquerylen) maxquerylen
3 FROM
v$undostat
5 /
MAXQUERYLEN
192
SQL> -- plus grand nombre de blocs dannulation utiliss,
SQL> -- toutes priodes confondues
SQL> SELECT MAX(undoblks) undoblks,
3
MAX(undoblks) / 600 UNDOBLKS/SECONDE
4 FROM
v$undostat
6 /
UNDOBLKS UNDOBLKS/SECONDE
---------- ---------------1000
1,66666667
SQL> -- estimation des besoins minimums en espace dannulation
SQL> SELECT MAX(maxquerylen)*(MAX(undoblks) / 600)*block_size_ko
4 FROM
v$undostat,
6
(SELECT value/1024 block_size_ko FROM v$parameter
7 WHERE name = db_block_size) p
8 GROUP BY block_size_ko
10 /

Taille (ko)

Taille (ko)
1280

20.5.2

Supprimer un tablespace UNDO

Seffectue avec lordre SQL habituel DROP TABLESPACE, la clause INCLUDING CONTENTS est implicite

 les segments dannulation stocks dans le tablespace sont supprims.


Par contre, la clause doit tre mentionne avec loption AND DATAFILES pour supprimer les fichiers de
donnes associs.

20.6

Vues du dictionnaire de donnes

Plusieurs vues du dictionnaire permettent dobtenir des informations sur les tablespaces dannulation et
les segments dannulation :

V$TABLESPACE ou DBA_TABLESPACES : informations sur les tablespaces (dont les tablespaces

dannulation)
DBA_DATA_FILE ou V$DATAFILE : informations sur les fichiers
DBA_FREE_SPACE : espace disponible
DBA_SEGMENTS : liste de segments
DBA_UNDO_EXTENTS : liste des extents allous dans le tablespace dannulation
DBA_ROLLBACK_SEGS : informations sur les segments dannulation et/ou les rollback segments
V$ROLLNAME : liste des segments dannulation et/ou des rollback segments actuellement ONLINE ou
PENDING OFFLINE

Document Tellora

Page 117/205

Exploitation Oracle 11g


www.tellora.fr

V$ROLLSTAT : statistiques sur les segments dannulation et/ou les rollback segments actuellement
ONLINE ou PENDING OFFLINE

V$UNDOSTAT : statistiques sur les informations dannulation


V$TRANSACTION : informations sur les transactions actives
La vue V$UNDOSTAT donne des statistiques sur les informations dannulation gnres sur les dernires
24 heures. La collecte est effectue par plages de 10 minutes ; la vue contient donc 144 lignes, une
pour chaque plage de 10 minutes sur les dernires 24 heures.

La premire ligne de la vue correspond la plage en cours (peut faire moins de 10 minutes). Les
colonnes intressantes de la vue sont les suivantes :








BEGIN_TIME : Date/heure de dbut de la plage


END_TIME : Date/heure de fin de la plage
UNDOBLKS : Nombre de blocs dannulation utiliss en cumul sur la priode
TXNCOUNT : Nombre de transactions totales sur la priode
MAXQUERYLEN : Dure en seconde de la requte la plus longue sur la priode
MAXCONCURRENCY : Nombre maximum de transactions simultanes sur la priode

La vue V$ROLLSTAT est utilise pour loptimisation des rollback segments.


Dans la pratique il faut surveiller le nombre de fois o le rollback segment a d stendre (EXTENTS) par
rapport au nombre de fois o il a pu tourner sans problme (WRAPS)
Si les rollback segments sont bien dimensionns, le ratio EXTENDS/WRAPS est faible.

 Un ratio suprieur 10% indique que les rollback segments sont trop petits.
Plusieurs vues du dictionnaire permettent dobtenir des informations sur les rollback segments :

DBA_ROLLBACK_SEGS : informations sur tous les rollback segments


V$ROLLNAME : liste des rollback segments ONLINE
V$ROLLSTAT : statistiques sur les rollback segments ONLINE
V$TRANSACTION : informations sur les transactions actives

V$ROLLNAME
USN

Numro du segment

NAME

Nom du segment dannulation ou de rollback

Document Tellora

Page 118/205

Exploitation Oracle 11g


www.tellora.fr

V$TRANSACTION
SES_ADDR

Adresse de la session utilisateur qui excute la transaction


une jointure avec V$SESSION permet de rcuprer des
informations sur la session

START_TIME

Date et heure de dmarrage de la transaction (sous forme de


chane)

XIDUSN

Numro du segment dannulation ou de rollback utilis pour la


transaction

V$UNDOSTAT
BEGIN_TIME

Date et heure de dmarrage de la plage

END_TIME

Date et heure de fin de plage

UNDOBLKS

Nombre de blocs dannulation utiliss en cumul sur la priode

TXNCOUNT

Nombre de transactions totales sur la priode

MAXQUERYLEN

Dure en seconde de la requte la plus longue sur la priode

MAXCONCURRENCY

Nombre maximum de transactions simultanes sur la priode

V$ROLLSTAT
USN

Numro du rollback segment

EXTENT

Nombre dextents dans le segment dannulation ou de rollback

RSSIZE

Taille actuelle utile en octet (sans le bloc den-tte) du segment


dannulation ou de rollback

TABLESPACE_NAME

Nom du tablespace

WRITES

Nombre doctets crits dans le segment

OPTSIZE

Valeur OPTIMALE en octet du segment dannulation ou de rollback

HWMSIZE

Plus grande taille jamais atteinte en octet par le segment

SHRINKS

Nombre de fois o le segment a rtrci

WRAPS

Nombre de fois o le segment a tourn (o il est venu rcrire dans


le premier extent sans avoir eu besoin de stendre)

EXTENDS

Nombre de fois o le segment sest tendu (allocation dun nouvel


extent)

AVESHRINK

Taille moyenne en octets des rtrcissements du segment


dannulation ou de rollback.

Document Tellora

Page 119/205

Exploitation Oracle 11g


www.tellora.fr

21

Tablespaces temporaires

Le tablespace temporaire hberge les segments temporaires issus des requtes ou de commandes SQL
telles que :

 select order by
 select group by
 select distinct ...
 les requtes ensemblistes (UNION, MINUS, INTERSECT)
 create INDEX
 gestion des statistiques (DBMS_STATS)
 les jointures par tri-fusion (SORT, MERGE, JOIN)
 les tables temporaires (CREATE GLOBAL TEMPORARY TABLE )

Lorsquune requte ncessite un tri, Oracle tente de faire le tri en mmoire dans la PGA du processus
serveur qui excute la requte. Sil ne peut pas car le tri ne tient pas en mmoire, Oracle le dcoupe en
morceaux et trie chaque morceau en stockant des rsultats intermdiaires sur disque dans des
segments temporaires.
Au bout dun certain temps ces segments temporaires sont supprims par Oracle.

Document Tellora

Page 120/205

Exploitation Oracle 11g


www.tellora.fr

Du point de vue des performances, il est conseill de ddier un


tablespace aux segments temporaires en utilisant le mot cl
TEMPORARY la cration du tablespace.
obligatoire depuis la 9i.
- Evite la fragmentation et optimise les performances !

Exemple
Si 50 users font un tri de 1 Mga chacun, on aura 50 PGA de 1 Mga et si il ny a pas
assez de place mmoire alors oracle utilisera le tablespace temporaire.

Les segments doivent avoir une taille correspondant un multiple de SORT_AREA_SIZE (5 10 fois) +
un bloc den-tte pour les donnes de contrle.
Depuis Oracle9i, le paramtre PGA_AGGREGATE_TARGET permet la gestion dynamique de la PGA et
des paramtres SORT_AREA_SIZE et autres. Depuis la version 9i il est galement possible de dfinir un
tablespace temporaire par dfaut, ds la cration de la base de donnes.
Il est attribu par dfaut aux utilisateurs qui ont t cr sans tablespace temporaires par dfaut (si la
clause TEMPORARY TABLESPACE nest pas prcise dans lordre SQL CREATE USER).

Le tablespace temporaire par dfaut ne peut pas tre supprim.


Si possible, mettre le tablespace temporaire sur un disque part.

Le tablespace temporaire par dfaut ainsi cr est forcment gr localement. Il a une taille de bloc
correspondant au paramtre DB_BLOCK_SIZE.

informations sur les tablespaces par dfaut

SQL> col property_value for A15


SQL> select property_name, property_value
2 from database_properties
3 where property_name like DEFAULT_%
4 /
PROPERTY_NAME
-----------------------------DEFAULT_TEMP_TABLESPACE
DEFAULT_PERMANENT_TABLESPACE
DEFAULT_TBS_TYPE

PROPERTY_VALUE
--------------TEMP
USERS
SMALLFILE

Document Tellora

Page 121/205

Exploitation Oracle 11g


www.tellora.fr

21.1

Crer un tablespace temporaire

Depuis Oracle 8i, un tablespace temporaire peut tre gr localement. Dans ce cas, il utilise des fichiers
temporaires.
Depuis la version 9i, il est possible de dfinir un tablespace temporaire par dfaut la cration de la
base de donnes afin de recueillir les tris des requtes de tous les utilisateurs de la base de donnes.
Il est cr avec lordre SQL CREATE TEMPORARY TABLESPACE.
CREATE [ BIGFILE | SMALLFILE ] TEMPORARY TABLESPACE Ts_nom
TEMPFILE spcification_fichier_temp [,..]
[EXTENT MANAGEMENT LOCAL] [UNIFORM [SIZE valeur [K|M] ] ]
[ TABLESPACE GROUP nom_group ]
;

 spcification_fichier_temp
nom_fichier [ SIZE valeur [K|M|G|T] ] [REUSE]
AUTOEXTEND { OFF|ON [ NEXT valeur [K|M|M|T] ]
[ MAXSIZE { UNLIMITED | valeur [K|M|G|T] } ]
}

- par dfaut la taille des extents est de 1Mo, la clause SIZE peut tre utilise pour spcifier une autre
taille, dans ce cas le mot cl UNIFORM doit tre mentionn.
- BIGFILE, prcise que le fichier est gros mais dans ce cas un seul fichier pourra tre rattach au
tablespace.
- TABLESPACE GROUP, spcifie le groupe dappartenance du tablespace. Si le groupe nexiste pas, il
est cr implicitement. Par dfaut, le tablespace nappartient aucun groupe.

Les fichiers de donnes dun tablespace temporaire gr


localement sont particuliers : Ils sont dits temporaires
TEMPFILE .

SQL> create temporary tablespace ts_essai


2 tempfile C:\app\guest\oradata\BORA\essai_temp.dbf
3 size 5M;
Tablespace created.

21.2

Groupes de tablespaces temporaires

Avant la version 10g, une requte ne pouvait utiliser quun seul tablespace temporaire. Ceci posait des
problmes de performance pour les requtes excutes en parallle (chaque processus serveur sollicite
un accs au tablespace temporaire, do des problmes de contentions et de performances).

Depuis la version Oracle 10g, il est possible de dfinir des groupes de tablespaces temporaires. Le nom
dun groupe peut tre utilis partout o un nom de tablespace temporaire est utilis.

Document Tellora

Page 122/205

Exploitation Oracle 11g


www.tellora.fr

Ils respectent les rgles suivantes :

 Un groupe ne peut pas porter le mme nom quun tablespace temporaire.


 Un groupe est cr lorsquun tablespace est affect au groupe.
 Un groupe est implicitement supprim lorsque le dernier tablespace est retir du groupe.
Vous pouvez changer le groupe dappartenance du tablespace par la commande ALTER TABLESPACE en
prcisant le nouveau nom du groupe auquel il appartient, ou en spcifiant une chane vide, ce qui le
retire du groupe.

ALTER TABLESPACE nom [ GROUP | ]


;

SQL> select * from dba_tablespace_groups ;


no rows selected
SQL> alter tablespace ts_essai tablespace group group_essai
2 /
Tablespace altered.
SQL> select * from dba_tablespace_groups;
GROUP_NAME
TABLESPACE_NAME
-------------------- -----------------------------GROUP_ESSAI
TS_ESSAI
SQL> alter tablespace ts_essai tablespace group ;
Tablespace altered.
SQL> select * from dba_tablespace_groups;
no rows selected

21.3

Administrer les tablespaces temporaires

Ladministration dun tablespace temporaire gr localement seffectue avec les ordres SQL habituels, en
remplaant le mot cl DATAFILE par le mot cl TEMPFILE :

 ALTER TABLESPACE
 ALTER DATABASE pour la gestion des fichiers de donnes
 DROP TABLESPACE pour la suppression

Il existe nanmoins quelques restrictions :


 Un tablespace temporaire ne peut pas tre mis OFFLINE.
 Les fichiers dun tablespace temporaire ne peuvent pas tre dplacs, ils doivent tre supprims puis
recrs.

 Toujours en mode NOLOGGING, les modifications ne sont pas enregistres dans les fichiers de Redo Log
(intressant pour les performances).

 Il ne peut pas tre sauvegard.

Document Tellora

Page 123/205

Exploitation Oracle 11g


www.tellora.fr

21.3.1

Agrandir un tablespace temporaire

Il est possible dajouter un fichier temporaire un tablespace temporaire.


ALTER TABLESPACE nom_ts_temp
ADD TEMPFILE spcification_fichier_temp
;

SQL> alter tablespace ts_essai


2 add tempfile D:\Oracle\product\10.1.0\Oradata\orcl\essai_temp02.dbf
3 size 5M;
Tablespace altered.
SQL> select t.name ts, bigfile, enabled, f.name
2 from v$tablespace t, v$tempfile f
3 where t.ts#=f.ts#
4 UNION
5 select t.name ts, bigfile, enabled, f.name
6 from v$tablespace t, v$datafile f
7 where t.ts#=f.ts#
8 /
TS
---------EXAMPLE
SYSAUX
SYSTEM
TEMP
TS_ESSAI
TS_ESSAI
UNDOTBS1
USERS

BIG
--NO
NO
NO
NO
NO
NO
NO
NO

ENABLED
----------READ WRITE
READ WRITE
READ WRITE
READ WRITE
READ WRITE
READ WRITE
READ WRITE
READ WRITE

NAME
-------------------------------------------------------D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TEMP01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\ESSAI_TEMP.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\ESSAI_TEMP02.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF

8 rows selected.

21.3.2

Modifier la clause AUTOEXTEND :

ALTER DATABASE TEMPFILE nom_complet [, ] clause_autoextend


;

SQL> alter database


2 tempfile D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\ESSAI_TEMP02.DBF
3 autoextend on
4 /
Database altered.
SQL> select file_name, autoextensible, maxbytes, maxblocks
2 from dba_temp_files;

Document Tellora

Page 124/205

Exploitation Oracle 11g


www.tellora.fr

SQL> select file_name, autoextensible, maxbytes, maxblocks


2 from dba_temp_files;
FILE_NAME
------------------------------------------------------D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TEMP01.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\ESSAI_TEMP.DBF
D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\ESSAI_TEMP02.DBF

21.3.3

AUT
MAXBYTES MAXBLOCKS
--- ---------- ---------YES 3,4360E+10
4194302
NO
0
0
YES 3,4360E+10
4194302

Modifier la taille dun fichier temporaire

ALTER DATABASE TEMPFILE nom_complet [, ] RESIZE valeur [L|M]


;

SQL> alter database


2 tempfile D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\ESSAI_TEMP02.DBF
3 resize 2M
4 /
Base de donnes modifie.

21.3.4

Rtrcir un tablespace temporaire (Nouveauts 11g)

Certaines oprations dadministration peuvent demander beaucoup despace temporaire et donc davoir
un tablespace temporaire de trs grande taille.
Pour faire face ce type de besoin, la version 11g propose la commande SHRINK qui permet de rduire
la taille du tablespace ou de lun de ses fichiers :

ALTER TABLESPACE nom_tbs SHRINK SPACE [ KEEP taille [K|M|G|T] ] ;


ALTER TABLESPACE nom_tbs SHRINK TEMPFILE /chemin/nom_fichier.dbf | No_fichier
[ KEEP taille [K|M|G|T] ] ;

- Cette commande permet de rduire la taille du tablespace temporaire ou la taille dun de ses fichiers.
- La clause KEEP permet de prciser une taille minimum concerver pour le tablespace ou le fichier
Exemples
ALTER TABLESPACE temp SHRINK SPACE ;
ALTER TABLESPACE temp SHRINK TEMPFILE /oracle/oradata/orcl/temp01.dbf ;

Il est possible de prciser une quantit despace libre supplmentaire laisse dans le tablespace en
utilisant la clause KEEP pour le tablespace ou le fichier temporaire, mais si la clause KEEP est trop basse
une erreur est retourne.
Sans clause KEEP Oracle tente de librer le maximum despace au niveau du tablespace (de tous les
fichiers rattachs) ou du fichier spcifi.

Document Tellora

Page 125/205

Exploitation Oracle 11g


www.tellora.fr

Exemples
ALTER TABLESPACE temp SHRINK SPACE KEEP 100M ;
ALTER TABLESPACE temp SHRINK
TEMPFILE /oracle/oradata/orcl/temp01.dbf
KEEP 100M ;

21.3.5

Supprimer un tablespace temporaire

Seffectue avec lordre SQL DROP TABLESPACE.


DROP TABLESPACE nom [ INCLUDING CONTENTS [ AND DATAFILES ] ]
;

SQL> drop tablespace ts_essai including contents and datafiles


2 /
Tablespace dropped.

21.4

Dfinir un tablespace temporaire par dfaut

La cration du tablespace temporaire par dfaut peut se faire aprs cration de la base de donnes avec
lordre CREATE TEMPORARY TABLESPACE.
Il faut ensuite dsigner ce tablespace temporaire comme tablespace temporaire par dfaut en utilisant
la commande ci-dessous.

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE nom_tbs


;

Ds laffectation du nouveau tablespace temporaire comme tablespace par dfaut, Oracle mets les
segments de temporaire dans le nouveau tablespace et libre lancien tablespace.
Il est possible de dfinir un groupe de tablespace temporaire par dfaut la place dun tablespace
temporaire par dfaut.

En cas de perte de fichier temporaire


supplmentaire, oracle ouvre la base normalement
mais ne le signale pas directement.
Par contre une erreur est signale dans le fichier de
trace et le fichier des alertes : attention aux
restaurations !

Document Tellora

Page 126/205

Exploitation Oracle 11g


www.tellora.fr

21.5

Vues du dictionnaire de donnes

Plusieurs vues du dictionnaire permettent dobtenir des informations sur les tablespaces et les fichiers
de donnes :

DBA_TABLESPACES : informations sur les tablespaces


V$TABLESPACE : informations sur les tablespaces ( partir du fichier de contrle)
DBA_TABLESPACE_GROUPS : informations sur les groupes de tablespaces.
DBA_TEMP_FILES : informations sur les fichiers de donnes des tablespaces temporaires grs
localement.
V$TEMPFILE : informations sur les fichiers de donnes des tablespaces temporaires grs localement.
V$SORT_SEGMENT : supervision du stockage des segments temporaires.
DATABASE_PROPERTIES : informations sur les proprits par dfaut de la base de donnes, pour le
tablespace temporaire par dfaut, le nom de la proprit est DEFAULT_TEMP_TABLESPACE.
DBA_TEMP_FREE_SPACE : nouvelle vue en version 11g, qui permet de grer plus facilement les
tablespaces temporaires. Elle contient la taille totale utilise pour le tablespace temporaire, ainsi que
lespace temporaire utilis et lespace temporaire disponible.

Select * from dba_temp_free_space ;


TABLESPACE_NAME
TABLESPACE_SIZE
ALLOCATED_SPACE
FREE_SPACE
---------------- ------------------ ------------------ --------------TEMP
18,939,904
4,259,840
14,680,064

Document Tellora

Page 127/205

Exploitation Oracle 11g


www.tellora.fr

22

Monitoring de lutilisation dun tablespace

Les seuils du tablespace sont dfinis comme des pourcentages par rapport la taille du tablespace.
Quand le taux de remplissage du tablespace arrive une de ces 2 limites (voir schma), une alerte
approprie est dclenche ou inhibe.

Les valeurs des seuils critiques et davertissement peuvent tre configures.


Si une valeur de seuil nest pas spcifie, les comportements suivants seront appliqus :

 Les valeurs par dfaut sont 85% de taux de remplissage pour lalerte davertissement et 97% pour le
seuil critique.

 Les alertes sont dsactives par dfaut, les valeurs de seuil sont donc NULL. Ces valeurs peuvent
tre redfinies par la suite, tout moment.

Le process darrire plan MMON vrifie toutes les 10 minutes ces seuils dalertes (dpasss ou
redescendu). Une alerte est dclenche dans chacun de ces cas (dpass ou redescendu)

 Les alertes ne doivent pas tre actives pour les tablespaces en lecture seule (Read-only) ou bien pour
les tablespaces OFFLINE car a na aucun sens.

 Dans les tablespaces temporaires, les valeurs de seuil doivent tre dfinies comme une limite de
lespace utilis dans le tablespace par les sessions.

 Pour le tablespace UNDO, un EXTENT est rutilisable sil ne contient pas des segments UNDO actifs.
Pour le calcul de la violation des seuils, la somme des Extents actifs est considre comme espace
utilis.

 Pour les tablespaces avec des fichiers auto-extensibles, les seuils sont calculs en fonction de la taille
maximale spcifie du fichier ou de la taille maximale supporte par lOS.

Le suivi de ces oprations se fait en utilisant les tables DBA_THRESHOLDS qui contient la configuration des
alertes et DBA_ALERT_HISTORY qui contient lhistorique des alertes.

Document Tellora

Page 128/205

Exploitation Oracle 11g


www.tellora.fr

---

visualiser les alertes min et max dfinies sur les tablespaces

select warning_value,critical_value
from dba_thresholds
where metrics_name=Tablespace Space Usage and
object_name is null
/
select warning_value,critical_value
from dba_thresholds
where metrics_name=Tablespace Space Usage and
object_name=DATA
/
select reason,resolution
from dba_alert_history
where object_name=DATA
/

22.1

Configuration des seuils de tablespace

Vous pouvez utiliser le package DBMS_SEVR_ALERT pour dfinir vos propres valeurs par dfaut pour
lutilisation de lespace dans le tablespace. Les procdures SET_THRESHOLD, et GET_THRESHOLD vous
permettent de le faire.

dfinit un seuil davertissement 80% du taux de remplissage


et un seuil critique 95% pour le tablespace DATA.
Ds que le pourcentage de remplissage est gal ou suprieur 80%
une alerte davertissement est dclenche.
Lalerte critique est dclenche quand le taux de remplissage est
gal ou suprieur 95%;

EXECUTE DBMS_SERVER_ALERT.SET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
Dbms_server_alert.operator_ge, 80 ,
Dbms_server_alert.operator_ge, 95, 1, 1, NULL ,
Dbms_server_alert.object_type_tablespace, DATA
) ;

remet les valeurs par dfaut pour le tablespace appel DATA.


EXECUTE DBMS_SERVER_ALERT.SET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
NULL, NULL, NULL, NULL, 1, 1, NULL,
Dbms_server_alert.object_type_tablespace, DATA
) ;

dsactiver le mcanisme de traage

de lutilisation de lespace pour le tablespace DATA


EXECUTE DBMS_SERVER_ALERT.SET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
Dbms_server_alert.operator_do_not_check, 0 ,
Dbms_server_alert.operator_do_not_check, 0 , 1, 1, NULL ,
Dbms_server_alert.object_type_tablespace, DATA
) ;

dfinir vos propres valeurs de seuil par dfaut

elles deviennent la valeur de mesure Tablespace Space Usage


EXECUTE DBMS_SERVER_ALERT.SET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
Dbms_server_alert.operator_ge, 80 ,
Dbms_server_alert.operator_ge, 95, 1, 1, NULL ,

Document Tellora

Page 129/205

Exploitation Oracle 11g


www.tellora.fr

Dbms_server_alert.object_type_tablespace, NULL
) ;

revenir aux valeurs de 85% et 97% comme valeur de seuil par dfaut
EXECUTE DBMS_SERVER_ALERT.SET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
NULL, NULL, NULL, NULL, 1, 1, NULL,
Dbms_server_alert.object_type_tablespace, NULL
) ;

utilise pour lire les valeurs et les seuils

pour lensemble de la base de donnes


EXECUTE DBMS_SERVER_ALERT.GET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
:wo, :wv, :co, :cv, :op, :cocc, NULL,
Dbms_server_alert.object_type_tablespace, NULL
) ;

utilise pour lire les valeurs et les seuils

pour le tablespace DATA


EXECUTE DBMS_SERVER_ALERT.GET_THRESHOLD
(
Dbms_server_alert.tablespace_pct_full ,
:wo, :wv, :co, :cv, :op, :cocc, NULL,
Dbms_server_alert.object_type_tablespace, DATA
) ;

Document Tellora

Page 130/205

Exploitation Oracle 11g


www.tellora.fr

23

Mmoire dynamique et performances

En version 10g dOracle, Automatic PGA Memory Management est active par dfaut, moins que
PGA_AGGREGATE_TARGET soit explicitement fixe zro ou WORKAREA_SIZE_POLICY soit explicitement
pose MANUAL.
PGA_AGGREGATE_TARGET est par dfaut 20% de la taille de la SGA.
Automatic PGA Memory Management permet de conseiller lutilisateur de faon automatique sur les
problmes de performances de la base de donnes et de proposer des solutions adaptes.
Avec Oracle 9i, tait apparue la notion de granule, ainsi que la possibilit de redimensionner la mmoire
de faon interactive.
Elle peut toujours tre modifie dynamiquement alors que linstance est en cours de fonctionnement :

 Augmente ou diminue
 Sans devoir arrter la base
 En modifiant la valeur des paramtres qui la dimensionnent, par lintermdiaire de lordre SQL ALTER
SYSTEM
En cas daugmentation, la taille maximum de la SGA est dfinie par le paramtre SGA_MAX_SIZE, qui
nest pas dynamique et calcul par dfaut si non spcifi.

La taille de la SGA peut augmenter ou diminuer en fonction des besoins


internes dOracle. Cest notamment le cas au dmarrage o les valeurs des
diffrents paramtres de dimensionnement de la SGA peuvent tre adapts
par Oracle.

23.1

La notion de granule

Un granule est une quantit de mmoire qui peut tre alloue une structure de la SGA :

 Dune taille de 4 Mo si la taille totale de la SGA est infrieure 128 Mo


 Dune taille de 16 Mo autrement
La vue V$SGA_COMPONENT permet de visualiser la taille du granule dune base de donnes.

23.2

Gestion automatique du partage de la mmoire en 10g

La gestion automatique du partage de la mmoire est une amlioration importante dautogestion


dOracle 10g.
Cette fonctionnalit automatise la gestion des structures les plus importantes de mmoire partage
utilise par toutes les instances dune base de donnes Oracle.

Document Tellora

Page 131/205

Exploitation Oracle 11g


www.tellora.fr

Avec Automatic Shared Memory Management quand les jobs OLTP sexcutent, le Buffer Cache
prend la plus grande partie de la mmoire afin davoir une bonne performance dentre/sortie.
Par contre, lorsque le job batch dmarrera plus tard, la mmoire sera automatiquement alloue vers le
Large Pool afin dtre utilise par des oprations parallles de requtes en vitant les erreurs de
dbordement de mmoire (Memory overflow).

23.2.1

Principes de tuning de la SGA

Loutil Automatic Shared Memory Management utilise un nouveau processus darrire plan appel
Memory Manager (MMAN).
MMAN agit comme un distributeur (broker) de mmoire et coordonne la taille alloue aux diffrents
composants de la SGA. Il conserve une trace de la taille des composants et des oprations de
dimensionnement en attente.
MMAN observe le systme et le Workload (travail en cours) afin de dterminer la distribution de mmoire
optimale. Il excute ces vrifications toutes les quelques minutes afin que la mmoire soit toujours
affecte l o on en a besoin.
En absence de gestion automatique du partage mmoire les composants doivent tre dimensionns afin
danticiper leurs besoins en mmoire.
Bas sur les informations extraites du Workload, MMAN excute les actions suivantes :

 Effectue des statistiques priodiques dans larrire plan.


 Utilise divers outils de conseils sur la mmoire.
 Excute des analyses de type What-IF (SI) pour dterminer la meilleure distribution de la mmoire
possible.

 Affecte de la mmoire l o elle en a besoin.


 Sauvegarde la taille des composants pendant les arrts de la base (shutdown) si un SPFILE est utilis.
(La taille peut tre rcupre partir des valeurs existantes avant larrt).

Document Tellora

Page 132/205

Exploitation Oracle 11g


www.tellora.fr

La mmoire est redistribue entre les composants suivants :






DB_CACHE_SIZE
SHARED_POOL_SIZE
LARGE_POOL_SIZE
JAVA_POOL_SIZE

Avant la version 10g, la mmoire additionnelle tait alloue la SGA fixe et la mmoire additionnelle
tait entre 10 et 20Mo.
Le paramtre SGA_TARGET inclut toute la mmoire dans la SGA, comprenant aussi les composants
dimensionns automatiquement ou manuellement ainsi que toutes les allocations internes faites
pendant le dmarrage.

Mettre SGA_TARGET la valeur SGA_MAX_SIZE !

23.2.2

SGA_TARGET et le Database Control (OEM)

Vous pouvez utiliser le Database Control pour configurer le Automatic shared Memory Management
comme indiqu dans le mode opratoire ci-dessous (dans lordre) :

 Cliquez sur longlet Administration


 Slectionner sous le nom de linstance Memory Parameter
 Cliquez longlet SGA
 Cliquez sur le bouton ENABLE pour Automatic shared Memory Management puis saisir la taille
totale de la SGA (en Mo). Cette valeur est affecte SGA_TARGET.

Document Tellora

Page 133/205

Exploitation Oracle 11g


www.tellora.fr

23.2.3

Configuration manuelle de SGA_TARGET

Automatic shared Memory Management se configure avec le paramtre SGA_TARGET.


Si vous spcifiez une valeur diffrente de zro, les 4 pools de mmoire seront dimensionns
automatiquement :

 Database buffer cache (pool par dfaut)


 Shared pool (pool partag)
 Large pool
 Java pool
Si SGA_TARGET = zro (valeur par dfaut), Automatic shared Memory Management est inactiv.
Les paramtres individuels utiliss dans les versions antrieures pour spcifier les tailles des
composants dimensionns automatiquement sont toujours actifs.
Les paramtres dinitialisation qui dimensionnent ces pools sont maintenant appels paramtres Autotuned de la SGA.
Les buffers suivants sont des composants dimensionns manuellement :

 Log buffer
 Autres buffer cache (KEEP/RECYCLE, autres dimensions de blocks associs au buffer cache).
 Streams pool
 SGA fixe et autre allocation interne

En version 10g et 11g le paramtre STATISTICS_LEVEL doit tre positionn


la valeur TYPICAL !

23.2.4

Comportement des paramtres Auto-tuned

Quand SGA_TARGET nest pas dfinie ou est gale zro les paramtres auto-rgls de la SGA se
comportent comme dans les versions prcdentes,

 sauf SHARED_POOL_SIZE qui fait exception.


Les allocations des overhead internes (temps utilis pour le systme lui-mme) pour les mta-donnes
(comme les structures de donnes pour les processus, les sessions, etc..) sont maintenant incluses dans
la valeur du paramtre SHARED_POOL_SIZE.
Par consquent, vous pouvez avoir besoin daugmenter la valeur du paramtre SHARED_POOL_SIZE pour
migrer vers Oracle 10g afin de prendre en compte ces allocations.
Par exemple, si vous utilisiez une valeur de 256 Mo dans une version prcdente et la valeur des
allocations internes tait de 32 Mo en Oracle 10g, vous devrez mettre la valeur de SHARED_POOL_SIZE
288 Mo pour obtenir la mme taille de pool.

Document Tellora

Page 134/205

Exploitation Oracle 11g


www.tellora.fr

calcule de la valeur totale de la Shared Pool


en incluant cet overhead (supplementaire) interne.

SELECT SUM(bytes)/1024/1024
FROM
V$SGASTAT
WHERE pool = shared pool
/

Cette requte permet de dterminer la nouvelle valeur de la Shared Pool en version 10g.
Quand SGA_TARGET est diffrent de 0, les paramtres auto-rgls de la SGA ont une valeur par dfaut
gale zro. Ces composants sont dimensionns par lalgorithme du Automatic shared Memory
Management .
Si leur valeur est diffrente de 0, ces valeurs sont utilises comme une limite infrieure par lalgorithme
dautorglage.
Par exemple si SGA_TARGET = 8 Go et SHARED_POOL_SIZE = 1Go, ceci indique lalgorithme du
Automatic Shared Memory Management de ne jamais baisser la valeur de la Shared Pool en dessous
de 1Go et seules des valeurs suprieures seront acceptes.
Pour dterminer la taille effective des composants auto-rgls de la SGA, utilisez la requte suivante :
SELECT component, current_size/1024/1024
FROM
V$SGA_DYNAMIC_COMPONENTS
/

23.2.5

Comportement des paramtres Manuels

Les paramtres manuels de la SGA sont :







DB_KEEP_CACHE_SIZE
DB_RECYCLE_CACHE_SIZE
DBn_CACHE_SIZE (n= 2,4,8,16,32)
LOG_BUFFER
STREAMS_POOL_SIZE

Ils sont spcifis par lutilisateur et leur taille dtermine la taille de leur composant.
Quand SGA_TARGET a une valeur, la taille totale des paramtres manuels est soustraite cette valeur. Le
reste donne la valeur des composants auto-rgls de la SGA.
Par exemple si SGA_TARGET = 8 Go et DB_KEEP_CACHE_SIZE = 1Go alors la taille totale des 4
composants auto-rgls est limite 7 Go.
Les 7 Go incluent la SGA fixe et le Buffer Log et seulement aprs avoir allou ceci, le reste de la mmoire
est divise entre les composants auto-rgls. La taille du KEEP_CACHE est de 1 Go comme spcifi par le
paramtre.

Vues V$PARAMETER
Quand vous spcifiez une valeur diffrente de zro pour SGA_TARGET et que vous ne spcifiez pas de
valeur pour les paramtres auto-rgls, la valeur de ces paramtres dans la vue V$PARAMETER est 0 et la
valeur de la colonne ISDEFAULT = TRUE.
Si vous avez spcifi une valeur pour au moins un des paramtres auto-rgls, la valeur affiche dans la
vue V$PARAMETER est la valeur que vous avez spcifie pour ce paramtre.

Document Tellora

Page 135/205

Exploitation Oracle 11g


www.tellora.fr

SELECT name, value, isdefault


FROM V$PARAMETER
WHERE name like %size
/

23.2.6

Redimensionner SGA_TARGET

Le paramtre dynamique SGA_TARGET est :

 Dynamique
 Peut tre rduit jusqu la valeur SGA_MAX_SIZE
 Peut tre augment jusqu ce que tous les composants auto_tuned aient atteint leur taille minimale.
La modification du paramtre SGA_TARGET influence automatiquement la taille des autres composants.
Cette modification peut se faire via le Database Control ou une commande ALTER SYSTEM.

23.2.7

Dsactiver la gestion automatique de la mmoire en version 10g

Il est possible de dsactiver le partage de gestion automatique de la mmoire en mettant SGA_TARGET


zro, dans ce cas les valeurs de tous les paramtres auto-dimensionns prennent la taille dfinie en
mmoire des composants correspondants, mme si les utilisateurs ont spcifi des valeurs non nulles
pour ces paramtres.

23.3

Gestion automatique de la mmoire en 11g

La gestion automatique du partage de la mmoire reste une amlioration importante dautogestion


dOracle 11g. Elle permet une gestion automatique de lensemble de la mmoire (SGA et PGA).

 Le paramtre MEMORY_TARGET permet dactiver cette fonctionnalit.


Ce paramtre indique la taille globale de la SGA et de la PGA utilise par oracle.
Les tailles respectives de ces zones peuvent changer en fonction des besoins.
La taille globale que la totalit de la mmoire oracle peut atteindre est donne par le paramtre :

 MEMORY_MAX_TARGET
MEMORY_MAX_TARGET est un paramtre statique alors que MEMORY_TARGET est un paramtre dynamique.
Le processus darrire plan Automatic Memory Management utilise et adapte automatiquement les
paramtres SGA_TARGET et PGA_TARGET pour allouer la mmoire linstance.
Le paramtre MEMORY_MAX_TARGET dfini une valeur maximum de mmoire utilise par Oracle et la
bloque. Il doit obligatoirement avoir une valeur suprieure ou gale la valeur de MEMORY_TARGET.

Document Tellora

Page 136/205

Exploitation Oracle 11g


www.tellora.fr

23.3.1

Dsactiver la gestion automatique de la mmoire en version 11g

Si ces deux paramtres sont positionns zro, la gestion de la mmoire dynamique est dsactive.
Dans ce cas, les valeurs des paramtres SGA_TARGET et PGA_AGREGTE_TARGET sont dsactivs (valeur
zro), et il faut utiliser les anciens paramtres DB_CACHE_SIZE, SHARED_POLL_SIZE, etc..

23.3.2

La vue dynamique V$MEMORY_TARGET_ADVICE

Cette vue dynamique de performances, permet de suivre lallocation dynamique et visualiser les
diffrentes valeurs de lallocation dynamique de la mmoire.
Cette vue contient les colonnes :

 Memory size : taille relle de la mmoire totale alloue linstance


 Size_factor : coefficient de taille
 Estd_db_time : taille de linstance utilise en mmoire en moyenne par rapport aux facteurs size-factor et
time_factor.

 Time_factor : coefficient de temps


 Version :
Select * from v$memory_target_advice ;

La vue V$MEMORY_DYNAMIC_COMPONENTS, permet de visualiser les diffrentes valeurs de chaque pool,


entre autre la shared_pool, le database buffer cache, le large pool, etc
Select component, current_size, min_size, max_size
from v$memory_dynamic_components ;

23.3.3

Nouveau cache en version 11g : result_cache

Ce cache est un nouveau composant de la SGA et est utilis par Oracle pour initialiser le paramtre
MEMORY_TARGET.
Par dfaut ce paramtre est positionn une valeur gale 128K.

23.4

Loptimiseur Oracle

Loptimiseur de requtes SQL permet de gnrer des plans dexcution des requtes performants. Pa
exemple utiliser un index si une table a de nombreuses lignes sera plus rapide que deffectuer un
balayage complet de table (FULL TABLE SCAN).
Pour que loptimiseur de requtes gnre des plans dexcutions optimales, des statistiques doivent tre
gnres sur les objets (tables et index).
Les statistiques donnent loptimiseur des indications sur la volumtrie des objets mais ces statistiques
sont galement utilisent pour connatre la dgradation des objets (fragmentation, profondeur des index)

Document Tellora

Page 137/205

Exploitation Oracle 11g


www.tellora.fr

Autrefois (avant la version 9i), il fallait conserver une trace des objets pour dterminer si une collecte de
statistiques tait ncessaire. Si un objet navait pas de statistiques ou si elles taient primes, des
plans dexcution SQL errons taient gnrs et provoquait une dgradation des performances lors de
lexcution des requtes.

Avec oracle 9i, si la supervision tait utilise, la commande DBMS_STATS, pouvait tre utilise pour
collecter des statistiques.
DBMS_STATS.GATHER_SCHEMA_STATS(schema_name, option=> GATHER AUTO)
;

Cette commande gnrait des statistiques optimises, en incluant des histogrammes, sur les objets pour
lesquels, les statistiques taient considres comme primes. Mais dans ce cas il fallait activer le
monitoring et DBMS_STATS rgulirement.

Avec la version 10g, loutil de statistiques automatise ces taches et vous annonce sil est ncessaire de
gnrer des statistiques ou non.
Cette caractristique rduit la probabilit dexcuter du code SQL non performant caus par des
statistiques inexistantes ou primes.

23.4.1

Les optimiseurs RBO et CBO

Loptimiseur de requtes RBO disparat en version 9i. Cet optimiseur tait bas sur des rgles. Par
exemple rgle 1 si un index existe il faut lutiliser.
RBO existe toujours dans la version 10g mais il nest plus support, c'est--dire quaucun changement de
code na t fait pour RBO et il ny aura plus aucune correction des bugs.

Rappel de la version 9i
Le paramtre OPTIMIZER_MODE configure linstance pour loptimisation syntaxique RBO ou statistique
CBO.

 OPTIMIZER_MODE = CHOOSE (CBO, valeur par dfaut)


 OPTIMIZER_MODE = RULE (RBO)
 OPTIMIZER_MODE = FIRST_ROWS (CBO, avec lobjectif de minimiser le temps de rponse pour
extraire la premire ligne)

 OPTIMIZER_MODE = ALL_ROWS (CBO, avec lobjectif de minimiser le temps de rponse pour extraire
toutes les lignes)

A partir de la version 10g seul loptimiseur CBO est utilis par Oracle. Cest un optimiseur bas sur les
cots. Cet optimiseur tient compte des statistiques gnres dans la base pour gnrer les plans
dexcution des requtes.

 CBO est plus performant


A partir de la version 10g comme Oracle ne supporte que CBO, toutes les applications qui tournent sur
la 10g doivent utiliser cet optimisateur (voir la notice oracle Metalink (189702.1) pour la dcharge du
support technique concernant le RBO). Cette notice fournie des dtails sur labandon du support RBO et la
migration des applications bases sur le RBO vers le CBO.

Document Tellora

Page 138/205

Exploitation Oracle 11g


www.tellora.fr

Voici certaines consquences quil est possible de rencontrer :

 Les valeurs CHOOSE et RULE ne sont plus reconnues comme valeurs pour le paramtre dinitialisation
OPTIMIZER_MODE. Les fonctionnalits de ces valeurs existent toujours mais seront supprimes dans
une version future. Ceci est aussi valable pour les HINTS correspondants au RBO.

 ALL_ROWS est la valeur par dfaut pour le paramtre dinitialisation OPTIMIZER_MODE.


 Les applications qui utilisent RBO doivent migrer vers CBO.
Dans la 1ere release de oracle 9i, le model de cot tait limit seulement par les facteurs I/O. la 9i
introduisait CPU costing pour rendre possible la comptabilisation des oprations CPU-intensive et CPUonly (CPU seule).
Par exemple une des oprations importante de CPU-only est dextraire des donnes du buffer cache.
Aujourdhui CBO a volu et est devenu beaucoup plus performant.
Le SQL Tuning Advisor est une nouvelle fonctionnalit de loptimisateur de requtes depuis la
version 10g, qui automatise lensemble des processus de Tuning du SQL.
En utilisant le nouvel optimiseur de requtes CBO pour faire du Tuning le processus automatique
remplace le Tuning manuel qui est complexe rptitif et consommateur de temps

23.4.2

Prsentation du SQL Tuning Advisor

2 modes de fonctionnement :
 Mode normal  lutilisateur compile le SQL et gnre le plan dexcution.
- le mode normale gnre les plans dexcution qui correspondent la majorit des cas. Sous le
mode normal loptimiseur opre avec des contraintes de temps trs strictes, une fraction de
secondes pour trouver un bon plan dexcution
 Mode Tuning  loptimiseur excute une analyse supplmentaire pour vrifier si le plan dexcution
produit en mode normal peut tre encore amlior.
- Le rsultat de loptimiseur de requte en mode Tuning nest pas un plan dexcution mais une
srie dactions et leurs proratas de bnfice attendus pour produire un plan bien meilleur. Quand
il fonctionne dans le mode Tuning loptimiseur est appel ATO (Automatic Tuning Optimizer). Le
tuning fait par ATO est appel Tuning SQL Automatique .

Le Tuning automatique du SQL est une nouvelle fonctionnalit de loptimisateur de requtes qui
automatise lensemble des processus de Tuning du SQL.
En utilisant le nouvel optimiseur de requtes pour faire du Tuning le processus automatique remplace le
Tuning manuel qui est complexe, rptitif et consommateur de temps.

Les caractristiques du Tuning automatique du SQL sont disponibles via le SQL Tuning Advisor.
Dans le mode Tuning loptimiseur peut prendre plusieurs minutes pour faire le Tuning dune seule
commande. LATO est destin tre utilis pour des requtes SQL complexes avec un haut niveau de
chargements qui ont un impact non trivial sur lensemble de la base.

Le SQL Tuning Advisor est en ralit le conducteur de processus de tuning. Il appelle lATO (Automatic
Tuning Optimizer) pour excuter les 4 types danalyses suivantes :

 Statistics analysis (analyse des statistiques) : ATO vrifie chaque objet dune requte afin didentifier
des statistiques manquantes ou figes (non gnres depuis longtemps) et fournit des
recommandations pour effectuer des statistique significatives. Il collecte aussi des informations

Document Tellora

Page 139/205

Exploitation Oracle 11g


www.tellora.fr

supplmentaires pour fournir les statistiques manquantes ou bien pour corriger les statistiques figes si
les recommandations ne sont pas implmentes.

 SQL Profiling (crer un profile) : ATO vrifie ses propres estimations et collecte des informations
supplmentaires pour corriger des erreurs destimation. Il collecte des informations sous forme de
paramtres personnaliss de loptimiseur comme First rows et All rows en sappuyant sur
lhistorique dexcution de la requte SQL. Il cr un profile SQL en utilisant ces informations et fait des
recommandations pour la cration de ce profil. Quand un profil SQL est cr, il permet loptimiseur de
requtes en mode normal de gnrer un plan ajust.

 Acces path analysis (chemin daccs) : ATO explore si un nouvel index peut tre utilis pour amliorer
dune manire significative laccs chaque table dans une requte et si cest le cas il fait des
recommandations pour la cration de cet index.

 SQL structure Analysis : ATO tente didentifier les commandes SQL qui utilisent de mauvais plans
dexcution et fait des recommandations pour les restructurer. La restructuration suggre peut tre au
niveau syntaxique ou smantique (la table existe, comment y accder).

Le tuning SQL nest pas simplement un des aspects les plus critiques pour la gestion des performances
dune base oracle mais est aussi une des taches les plus difficiles accomplir.
Avec oracle 10g la tache didentification de ces requtes a t automatise via lAutomatic Database
Diagnostic Monitor (ADDM).
Lactivit de tuning SQL reprsente une tache continue car la charge SQL peut changer en fonction des
nouveaux modules applicatifs dploys.

Le SQL Tuning Advisor est un nouvel outil destin remplacer le tuning manuel des requtes SQL.
Les requtes SQL qui consomment beaucoup de ressource (CPU, I/O et espace temporaire de travail)
sont de bons candidats pour SQL Tuning Advisor.

Loutil reoit une ou plusieurs requtes SQL en entre et fourni ensuite les lments suivants :






des conseils sur loptimisation des plans dexcution


les gains estims de performances
la commande effective pour implmenter ces conseils
les rsultats de ce conseil

Vous pouvez choisir daccepter ces conseils et faire le tuning du SQL via loptimiseur oracle.

23.4.3

Impacte sur les Statistiques

Loptimisateur de requtes se base sur les statistiques dun objet pour gnrer des plans dexcution.
Si ces statistiques nexistent pas ou sont figes, loptimiseur na pas linformation ncessaire et peut
gnrer des plans dexcution aberrants.
LATO vrifie chaque objet utilis par une requte afin de dterminer sil y a des statistiques
manquantes ou figes et produit 2 types de rsultats :

 Des informations supplmentaires sous forme de statistiques pour les objets qui nen ont pas et un
facteur dajustement des statistiques pour les objets avec des statistiques obsoltes.

 Des recommandations pour produire des statistiques cohrentes pour des objets sans statistiques ou
possdant des statistiques aberrantes.

Document Tellora

Page 140/205

Exploitation Oracle 11g


www.tellora.fr

23.5

Loptimiseur Oracle et la gestion des statistiques

La version Oracle 10g vous informe automatiquement des performances et ressources attribues aux
problmes de performance.
Les statistiques sont automatiquement gnres par le job GATHER_STATS_JOB. Ce job gnre des
statistiques sur tous les objets de la base de donnes.
Ce job est cr automatiquement la cration de la base et est manag par le scheduler. Il se
dclenche tous les soirs 22H00.

Liste des jobs automatiss.


select owner, job_name, program_name,
schedule_name, enabled
from dba_scheduler_jobs
;
OWNER JOB_NAME
PROGRAM_NAME
SCHEDULE_NAME
ENABL
------ ------------------ ------------------ -------------------------- ----SYS PURGE_LOG
PURGE_LOG_PROG DAILY_PURGE_SCHEDULE
TRUE
SYS GATHER_STATS_JOB GATHER_STATS_PROG MAINTENANCE_WINDOW_GROUP TRUE

GATHER_DATABASE_STATS_JOB_PROC attribue des priorits aux objets de la base de donnes afin que
ceux qui en ont le plus besoin soient traits en priorit.
Si vous devez effectuer des chargements ponctuels de tables, rgnrez manuellement les statistiques
sur ces tables aprs chaque chargement.
Loptimiseur bas sur les cots (CBO) est le seul optimiseur actif dans la version 10G.

CBO travaille en utilisant les statistiques gnres sur


les tables et les index. Alors il est fortement
recommand de ne pas laisser les objets qui sont
souvent modifis sans statistiques.

Ci-dessous sont prsents quelques conseils pour la collecte des statistiques sur le dictionnaire de
donnes. Cette collecte se fait en utilisant le package DBMS_STATS :

 Rgulirement : la mthode recommande est dutiliser soit GATHER_DATABASE_STATS ou


GATHER_SCHEM_STATS, avec le paramtre OPTION = GATHER AUTO.
Naturellement, ceci prsume que la supervision est active.
Avec ce moyen seulement, les objets ranalyser sont traits chaque fois.
La nouvelle procdure GATHER_DICTIONARY_STATS vous permet danalyser le dictionnaire de donnes
aprs un nombre suffisant doprations DDL.
 Cas particuliers : noubliez pas danalyser des objets indpendamment aprs une priode de
chargement caractristique.

23.5.1

Statistiques sur les tables

Depuis la version 10g un job tourne en automatiquement de 22h 6h les jours de la semaines et tout le
week end, pour mettre jour les statistiques des tables et des index de la base de donnes. Cest le job
: GATHER_STATS_JOB.

Document Tellora

Page 141/205

Exploitation Oracle 11g


www.tellora.fr

Le job GATHER_STATS_JOBS lance une procdure interne :

 DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC (similaire la procdure


DBMS_STATS.GATHER_DATABASE_STATS avec option GATHER_AUTO ) mais en prioritisant les
objets de la base de donnes, c'est--dire les objets ayant le plus besoin de statistiques.

Les statistiques mettent jour les colonnes de la vue du dictionnaire de donnes DBA_TABLES et ses
consurs.

DBA_TABLES










NUM_ROWS = Nombre de lignes de la table.


BLOCKS = Nombre de blocs sous la HWM (blocs utiliss).
EMPTY_BLOCKS = Nombre de blocs au dessus de la HWM (blocs inutiliss).
AVG_SPACE = Espace libre moyen en octets dans les blocs occups (sous la HWM).
AVG_ROW_LEN = Longueur moyenne dune ligne en octets, en tenant compte des
informations de contrle (en-tte de lignes et en-tte de colonnes).
CHAIN_CNT = Nombre de lignes chanes ou migres.
SAMPLE_SIZE = Taille de lchantillon utilis en cas danalyse ralise sur la table.
LAST_ANALYZED = Date et heure de la dernire analyse ralise sur la table.

La gestion manuelle de la collecte des STATISTIQUES est faite en utilisant le package DBMS_STATS.
Si vous tes connect comme utilisateur SYS, vous pouvez collecter manuellement des statistiques sur
tous les objets de la base avec la commande :

EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS(ALL) ;

Si vous tes connect comme utilisateur SYSTEM, vous pouvez collecter manuellement des statistiques
sur les objets dun schma ou sur une table avec les commandes :
DBMS_STATS.GATHER_TABLE_STATS(schema,table) ;

DBMS_STATS.GATHER_SCHEMA_STATS(schema) ;

Exemples
Exec dbms_stats.gather_schema_stats(charly);
Exec dbms_stats.gather_table_stats(charly,avion);

Document Tellora

Page 142/205

Exploitation Oracle 11g


www.tellora.fr

23.5.2

Interprter les statistiques gnres sur les tables

Les problmes pouvant tre dtects sont lespace inutilis allou une table et le faible taux
doccupation des blocs.
La gnration de statistiques alimente les colonnes de la vue DBA_TABLES.
La valeur de BLOCKS est toujours exacte mme si les statistiques sont inexactes ou manquantes.

Espace utilis par une table


Espace inutilis allou une table :

 Le nombre de blocs inutiliss allous la table (EMPTY_BLOCKS) est important et la table ne va plus


grossir (ou peu)


Li une clause STORAGE mal adapte

Faible taux doccupation des blocs :


Le rapport (DB_BLOCK_SIZE-AVG_SPACE)/DB_BLOCK_SIZE est faible et les lignes actuelles ne vont pas
grossir et peu de nouvelles lignes vont tre insres :

 Li des valeurs PCTFREE et PCTUSED mal adaptes ou une suppression importante de donnes, pose
un problme de performance dans le parcours complet de la table

Le package DBMS_SPACE
Le package DBMS_SPACE possde plusieurs procdures qui permettent de superviser le stockage dun
segment.
Les principales procdures sont :

 FREE_BLOCKS : informations sur les blocs libres dans un segment dont lespace est gr manuellement.
 SPACE_USAGE : informations sur loccupation des blocs dans un segment dont lespace est gr
automatiquement.

 UNUSED_SPACE : informations sur les blocs inutiliss dun segment.


Ce package possde dautres procdures qui permettent destimer la taille dun segment (table ou
index), ou la tendance de croissance de celui-ci.

liste des blocs vides et occups dans la table AVION de CHARLY


Select t.blocks Occupes, s.blocks Alloues
From dba_tables t, dba_segments s
Where s.segment_name = t.table_name
And s.owner = t.owner
And t.table_name = AVION
And t.owner = CHARLY
;

Document Tellora

Page 143/205

Exploitation Oracle 11g


www.tellora.fr

23.5.3

Statistiques sur les index

Concernant les index et la dgradation de leur structure, le seul lment vraiment significatif est le
nombre de blocs de feuilles qui doivent tre lus.
Plus ce nombre est faible plus le nombre dentres-sorties le sera et plus grande sera la vitesse de
lecture des lignes de tables.

 Plus il y aura dinsertions ou de suppressions dans une table et plus le risque de fragmentation sera lev.
Si les index sont analyss en mme temps que les tables, le niveau de paralllisme qui peut sappliquer
au calcul des statistiques sur les tables ne sapplique pas aux index.
Si ceux-ci doivent tre analyss en parallle, il vaut mieux excuter indpendamment la commande
GATHER_INDEX_STATS.

Exec dbms.stats.gather_schema_stats (
CHARLY,DBMS_STATS.AUTO_SAMPLE_SIZE
)
;
Execute dbms_stats.gather_schema_statistics(clo01,
20,estimate_percent=>20);

Dans lanalyse finale, vrifiez que les statistiques ont t calcules pour tous les index afin dviter des
statistiques incompltes dans la base de donnes.

Il faut savoir quun bloc dindex vide nest pas rutilis tant que lindex nest
pas compact ou reconstruit.

Les statistiques gnres sur les index alimentent les colonnes de la table DBA_INDEXES

DBA_INDEXES








BLEVEL, = Profondeur de larbre au niveau des branches (ne tient pas compte des
feuilles). 0 si le bloc racine est gal au bloc feuille. Valeur exacte mme en ESTIMATE
LEAF_BLOCKS = Nombre de blocs feuilles dans lindex
NUM_ROWS = Nombre de lignes dans lindex
DISTINCT_KEY = Nombre de valeurs distinctes dans lindex
SAMPLE_SIZE = Taille de lchantillon utilis en cas danalyse ESTIMATE
LAST_ANALYZED = Date et heure de la dernire analyse ralise sur lindex

Document Tellora

Page 144/205

Exploitation Oracle 11g


www.tellora.fr

SQL> select INDEX_NAME,BLEVEL,LEAF_BLOCKS,NUM_ROWS


2 from dba_indexes
3 where index_name=PK_AVION
4 ;
INDEX_NAME
BLEVEL LEAF_BLOCKS
NUM_ROWS
-------------------- ---------- ----------- ---------PK_AVION
0
1
3

La hauteur dun index est un lment cl de rduction du nombre dentressorties gnres par cet index.

La gnration de statistiques permet de donner suffisamment dinformations loptimiseur CBO sur les
index.

23.5.4

Problmes dtects sur les index

Deux problmes peuvent tre dtects :

 Faible taux doccupation et/ou profondeur importante de lindex

Profondeur importante de lindex


BLEVEL est lev (suprieur 5).

 Li un PCTFREE mal adapt lors de la cration ou un index trs volatile (beaucoup de mises jour)
 Dgrade les performances de lutilisation de lindex.

23.6

Outil de collecte des statistiques

Pour que loptimiseur de requtes gnre des plans dexcution optimale, des statistiques doivent tre
gnres sur les objets.
Autrefois (avant la version 9i), il fallait conserver une trace des objets pour dterminer si une collecte de
statistiques tait ncessaire. Si un objet navait pas de statistiques ou si elles taient primes, des
plans dexcution SQL errons taient gnrs.
Avec Oracle 9i, si la supervision tait utilise, la commande DBMS_STATS, pouvait tre utilise pour
collecter des statistiques.

DBMS_STATS.GATHER_SCHEMA_STATS(schema_name, option=> GATHER AUTO)


;

Cette commande gnrait des statistiques optimises, en incluant des histogrammes, sur les objets pour
lesquels, les statistiques taient considres comme primes. Mais vous deviez activer le monitoring et
DBMS_STATS rgulirement.

Document Tellora

Page 145/205

Exploitation Oracle 11g


www.tellora.fr

Avec la version 10g, loutil de statistiques automatise ces tches et vous annonce sil est ncessaire de
gnrer des statistiques.
Cette caractristique rduit la probabilit dexcuter du code SQL non performant caus par des
statistiques inexistantes ou primes.

23.6.1

GATHER_STATS_JOB

Par dfaut GATHER_STATS_JOB est cr au moment de la cration de la base de donnes, et excute la


procdure DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC. Il utilise le scheduler.
Deux fentres sont dfinies par dfaut :

 WEEKNIGHT_WINDOW dfinie entre 22H00 et 6H00 tous les jours du lundi au vendredi
 WEEKEND_WINDOW dfinie du samedi midi au Dimanche midi
Un groupe de fentres appeles MAINTENANCE_WINDOW_GROUP est dfini par dfaut pour hberger ces
fentres.
GATHER _STATS_JOB utilise une classe spcifique du scheduler appele AUTO_TASKS_JOB_CLASSE. Cette
classe est cre automatiquement et est associe un groupe de consommateur de ressources appel
AUTO_TASKS_CONSUMER_GROUP.
Pour contrler les ressources utilises par GATHER_STATS_JOB, il suffit de dfinir un plan de gestion de
ressources pour le MAINTENANCE_WINDOW_GROUP qui alloue les ressources pour
lAUTO_TASKS_CONSUMER_GROUP.

Document Tellora

Page 146/205

Exploitation Oracle 11g


www.tellora.fr

Pour que GATHER _STATS_JOB fonctionne correctement, vous devrez vous assurer que la valeur du
paramtre dinitialisation : STATISTIC_LEVEL est gal TYPICAL.

Si GATHER_STATS_JOB dpasse la fentre de temps alloue dfinie par


MAINTENANCE_WINDOW_GROUP, le job continue jusqu ce quil soit termin.

Vous devez gnrer des statistiques manuellement dans les cas suivants :

 Aprs une opration de chargement


 Pour les tables externes
 Pour collecter des statistiques systmes
 Pour les objets en mmoire (fixed objects)
23.6.2

Modifier lexcution des statistiques

Il est possible dajuster le temps douverture des fentres de gestion prdfinies. Par exemple, il est
possible de changer lintervalle de temps ou la frquence de gnration des statistiques. Il est
galement possible dajouter des plans de ressources ces fentres pour contrler les ressources
utilises par GATHER_STATS_JOB.
La page Scheduler Windows saffiche. Dans cette page, apparat une fentre :

 cliquer sur le bouton Edit pour changer les paramtres.


A partir de cette page vous pouvez aussi ouvrir et fermer une fentre slectionne. Pour ce faire,
slectionnez laction correspondante dans la liste droulante de la fentre choisie puis :

 cliquez sur Go .
Le bouton Modifier permet de modifier les paramtres.
Il est possible de dsactiver la collecte automatique des statistiques en allant sur la page Jobs de
longlet Administration puis dsactiver GATHER_STATS_JOB.

23.7

Automatic Database Diagnostic Monitor (ADDM)

LAutomatic Database Diagnostic Monitor (ADDM), est un moteur dautodiagnostic intgr directement
dans la base de donnes Oracle.
LADDM met en uvre les actions suivantes :

 Il regarde lensemble du systme


 Il pose un diagnostic
 puis propose des solutions ou vous envoie vers dautres composants (par exemple le SQL Tuning
Advisor)

Document Tellora

Page 147/205

Exploitation Oracle 11g


www.tellora.fr

ADDM est appel automatiquement par la base Oracle et effectue une analyse pour dterminer les
problmes potentiels principaux du systme dune manire prventive.
ADDM signale limpacte quun problme particulier peut avoir sur le systme global. Si une
recommandation est faite, ADDM prcise lamlioration attendue.
ADDM documente galement les portions du systme qui nont aucun problme.
La mthodologie utilise par ADDM peut tre applique sur tous les types de bases de donnes :

 OLTP
 Data Warehouse
 Environnements mixtes

Par dfaut la base Oracle capte automatiquement des informations statistiques partir de la SGA toutes
les 60 minutes et les stocke dans lAutomatic Workload Repository (AWR) sous forme de snapshots.
Ces snapshots sont stocks sur le disque.

ADDM est programm par le processus MMON pour tourner automatiquement sur chaque instance de la
base afin de dtecter les problmes dune manire prventive.
Chaque fois quun snapshot est cr, ADDM est activ pour faire une analyse de la priode correspondant
aux 2 derniers snapshots. Cette approche supervise dune manire prventive linstance et dtecte les
goulots dtranglement avant quils ne deviennent des problmes consquents.

Document Tellora

Page 148/205

Exploitation Oracle 11g


www.tellora.fr

Les rsultats de chaque analyse ADDM sont stocks dans lAWR (dans le tablespace SYSAUX) et sont aussi
accessibles via le Database Control.
Il est possible dinvoquer manuellement une analyse dADDM sur la priode dfinie entre 2 snapshots
quelconques mme si ADDM analyse la performance de la base Oracle sur la priode dfinie par les 2
derniers snapshots.

23.7.1

Mthode danalyse utilise par ADDM

Lanalyse ADDM utilise une approche Top-Down (de haut en bas) qui se focalise sur lidentification des
goulots dtranglements pour laccs aux ressources.
Ceci est fait principalement en utilisant le nouveau modle de statistiques de temps qui aide
dterminer la quantit de temps utilise dans la base Oracle.
Cette mthode permet ADDM didentifier en premier le problme qui a limpact le plus important sur
toute la base.
En interne, ADDM utilise une structure arborescente pour reprsenter tous les problmes possibles de
tuning. Larbre est bas sur le nouveau modle de statistiques dattente (Wait) utilis par la base
Oracle.
Cet arbre de classification est bas sur des dcades dexpertises dOracle en tuning :

Le nud initial de cet arbre, reprsente les symptmes ; en descendant vers les feuilles, ADDM identifie
les problmes principaux de performance.
ADDM parcourt larbre en utilisant des seuils de temps pour chaque nud. Si le seuil de temps nest pas
dpass pour un nud en particulier, ADDM coupe le sous-arbre correspondant, alors il ne balaie pas
larborescence sous ce nud car si le nud pre ne pose pas de problme, alors les nuds fils non
plus. Cette structure arborescente permet ADDM de dterminer efficacement la zone de recherche pour
une identification rapide des problmes.

Lexcution de lanalyse ADDM a un impact mineur sur le systme et ne prend


pas plus de 3 secondes pour sexcuter.

Document Tellora

Page 149/205

Exploitation Oracle 11g


www.tellora.fr

Exemple
Examiner louverture de sessions (LOGON) dun systme.
Si une des rgles est que le ratio dentre en session ne
seconde, alors en utilisant les donnes du nouveau modle
manire quantitative que les connections (LOGON) prennent
la base oracle.
Ces problmes tant quantifis par ADDM (20% du temps) il
rsoudre, puisque vous connaissez les valeurs quantifies

23.7.2

doit pas dpasser 10 par


temps ADDM peut dterminer dune
20% du temps de lutilisation de
ne vous reste plus qu les
et les impacts sur le systme.

Rsultats de lanalyse ADDM dans le grid Control

Sur la page Automatic Database Diagnostic Monitor (ADDM) sont affichs les rsultats dtaills
de la dernire excution dADDM.
Le Database Time reprsente la somme de temps actif du systme par session dans la base de
donnes pour la priode danalyse.
Un pourcentage spcifique est donn par la colonne Impact pour chaque diagnostic. Cet impact
reprsente le temps consomm par le problme compar au temps total utilis par la base de donnes
pour la priode analyse.
Une liste dicne reprsente le snapshot pour lequel un problme a t identifi. Il est possible de
dtailler dautres diagnostics correspondants dautres snapshots.
Une liste des diagnostics est prsente en bas de page et donne un court rsum de ce quADDM a trouv
comme points damliorations de performance pour linstance analyse.

Document Tellora

Page 150/205

Exploitation Oracle 11g


www.tellora.fr

23.7.3

Recommandations dADDM

Sur la page Performance Finding Details , vous trouverez des recommandations pour rsoudre le
problme correspondant. Les recommandations sont regroupes par catgories comme : Schema, SQL
Tuning, DB Configuration, et beaucoup dautres. La colonne Benefit (%) affiche le temps
dexcution gagn par la base si cette recommandation est implmente.
ADDM prend en compte un certain nombre de changements du systme et ces recommandations peuvent
inclure :

 Des changements Hardware : lajout de CPU ou le changement de la configuration du systme


dentre/sortie.

 La configuration de la base de donnes : changement des valeurs des paramtres dinitialisation.


 Un changement du schma : partitionnement Hash dune table ou dun index ou lutilisation de lASSM
(Automatic Segment Space Management) qui correspond la gestion automatique de la segmentation de
lespace.

 Des changements applicatifs : lutilisation de loption cache pour les squences ou lutilisation de variables
BIND.

Lutilisation dautres outils de conseil est possible : excuter le SQL Tuning Advisor sur la base pendant
une priode de pointe dexcution de requtes SQL ou lexcution du Segment Advisor.

23.7.4

Nouvelles vues en version 11g pour ADDM

En version 11g, ADDM voit apparatre de nouvelles vues du dictionnaire de donnes :

DBA_ADDM_TASK

contient la liste des taches ADDM excutes

DBA_ADDM_INSTANCES

informations sur les instances dans lesquelles ADDM a t excut

DBA_ADDM_FINDING

fournit des informations supplmentaires sur ADDM


et sont excution

DBA_ADDM_FDG_BREAKDOWN

fournit des informations sur les performances de chaque


instance

DBA_ADDM_SYSTEM_DIRECTIVES

informations concernant les directives (paramtres internes)


prdfinies

DBA_ADDM_TASK_DIRECTIVES

informations concernant les directives (paramtres internes)


des tches prdfinies.

Le package DBMS_ADDM est optimis en version 11g.


SQL> -- liste des taches ADVISOR effectues pour une journe donne
SQL>
SQL> select task_id, to_char(created,DD/MM/YYYY HH24:MI:SS) Date Cree,
recommendation_count NB recommendations
2 from dba_advisor_tasks
3 where to_char(created,DD/MM/YYYY HH24:MI:SS) > 30/07/2007 08:00:00
4 order by Date Cree;

Document Tellora

Page 151/205

Exploitation Oracle 11g


www.tellora.fr

TASK_ID Date Cree


NB recommendations
---------- ------------------- -----------------1428 30/07/2007 08:01:02
0
1429 30/07/2007 09:00:58
0
1430 30/07/2007 10:01:05
0
1431 30/07/2007 11:01:02
0
1432 30/07/2007 12:00:58
0
1433 30/07/2007 13:01:05
0
1434 30/07/2007 14:01:01
0
1435 30/07/2007 15:00:08
0
1436 30/07/2007 16:00:14
0
1437 30/07/2007 17:00:16
0
1438 30/07/2007 18:00:12
0
1439 30/07/2007 19:00:14
0
1440 30/07/2007 20:00:20
0
1441 30/07/2007 21:00:17
0
1442 30/07/2007 22:00:03
0
1443 30/07/2007 22:00:23
0
1444 30/07/2007 23:00:25
0
1445 31/07/2007 00:00:26
0
1446 31/07/2007 01:00:28
0
1447 31/07/2007 02:00:29
0
1448 31/07/2007 03:00:31
0
1449 31/07/2007 04:00:32
0
1450 31/07/2007 05:00:29
0
23 ligne(s) slectionne(s).
SQL>
SQL> spool OFF

23.7.5

Exemple de gnration de rapport ADDM

SQL> @addmrpt
Current Instance
DB Id
DB Name
Inst Num Instance
----------- ------------ -------- -----------1885938199 LOWP01
1 LOWP01
Instances in this Workload Repository schema
DB Id
Inst Num DB Name
Instance
Host
------------ -------- ------------ ------------ -----------
1885938199
1 LOWP01
LOWP01
aolfrdb-lm01
.webdb.aol.c
om
Using 1885938199 for database Id
Using
1 for instance number
Specify the number of days of snapshots to choose from
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
Listing the last 3 days of Completed Snapshots
Snap
Instance
DB Name
Snap Id
Snap Started
------------ ------------ --------- -----------------LOWP01
LOWP01
1350 29 Juil. 2007 00:0
1
1351 29 Juil. 2007 01:0
1
0
1352 29 Juil. 2007 02:0
1
0
-----------------liste des taches------------------Snap
Instance
DB Name
Snap Id
Snap Started
------------ ------------ --------- -----------------LOWP01
LOWP01
1378 30 Juil. 2007 04:0
0

Document Tellora

Level
----1

Level
----1

Page 152/205

Exploitation Oracle 11g


www.tellora.fr

1379 30 Juil. 2007 05:0


1
0
1380 30 Juil. 2007 06:0
1
0
1381 30 Juil. 2007 07:0
1
0
1382 30 Juil. 2007 08:0
1
0
1383 30 Juil. 2007 09:0
1
0
1384 30 Juil. 2007 10:0
1
0
1385 30 Juil. 2007 11:0
1
1
1386 30 Juil. 2007 12:0
1
0
1387 30 Juil. 2007 13:0
1
1
1388 30 Juil. 2007 14:0
1
1
1389 30 Juil. 2007 15:0
1
0
1390 30 Juil. 2007 16:0
1
0
Specify the Begin and End Snapshot Ids
Entrez une valeur pour begin_snap : 1382
Begin Snapshot Id specified: 1382
Entrez une valeur pour end_snap : 1384
End
Snapshot Id specified: 1384
Specify the Report Name
The default report file name is addmrpt_1_1382_1384.txt. To use this name,
press <return> to continue, otherwise enter an alternative.
Entrez une valeur pour report_name : rpt_advisor.log
Using the report name rpt_advisor.log
Running the ADDM analysis on the specified pair of snapshots ...
Generating the ADDM report for this analysis ...

Exemple de rapport ADDM


DETAILED ADDM REPORT FOR TASK TASK_1640 WITH ID 1640
Analysis Period: 06-AOT -2007 from 11:00:19 to 15:00:25
Database ID/Instance: 1885938199/1
Database/Instance Names: LOWP01/LOWP01
Host Name: aolfrdb-lm01.webdb.aol.com
Database Version: 10.2.0.1.0
Snapshot Range: from 1553 to 1557
Database Time: 1304 seconds
Average Database Load: ,1 active sessions

FINDING 1: 44% impact (579 seconds)


SQL statements consuming significant database time were found.
RECOMMENDATION 1: SQL Tuning, 24% benefit (310 seconds)
ACTION: Investigate the SQL statement with SQL_ID 6nbtbvs44xdhj for
possible performance improvements.
RELEVANT OBJECT: SQL statement with SQL_ID 6nbtbvs44xdhj
insert into EDITO_IMAGE (LAST_MODIFICATION_DATE, CREATED_BY,
CREATION_DATE, LAST_MODIFIED_BY, CONTENT, MIME_TYPE, AUTHOR,
CATEGORY, CHANNEL, COPYRIGHT, CONTENT_DATE, END_DATE, DESCRIPTION,
KEYWORDS, PROMOTION, PURGE_DATE, REFERENCE_ID, SOURCE, START_DATE,
SUB_CATEGORY, ALT, GALLERY_ID, IMAGE_IN_GALLERY_INDEX, IMAGE_TEXT,
THUMBNAIL_ID, ID) values (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10,
:11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23, :24,
:25, :26)
RATIONALE: SQL statement with SQL_ID 6nbtbvs44xdhj was executed 94
times and had an average elapsed time of 3.2 seconds.
RATIONALE: Waiting for event SQL*Net more data from client in wait
class Network accounted for 93% of the database time spent in
processing the SQL statement with SQL_ID 6nbtbvs44xdhj.

Document Tellora

Page 153/205

Exploitation Oracle 11g


www.tellora.fr

--------------------- suite du rapport ------------------------RECOMMENDATION 3: SQL Tuning, 6,1% benefit (79 seconds)
ACTION: Run SQL Tuning Advisor on the SQL statement with SQL_ID
aqzkzrwtzzfq8.
RELEVANT OBJECT: SQL statement with SQL_ID aqzkzrwtzzfq8 and
PLAN_HASH 3910361669
select this_.ID as ID7_0_, this_.CHILD_TYPE as CHILD2_7_0_,
this_.CHILD_ID as CHILD3_7_0_, this_.PARENT_TYPE as PARENT4_7_0_,
this_.PARENT_ID as PARENT5_7_0_, this_.RELATION as RELATION7_0_ from
CROSS_REFERENCE this_ where (this_.CHILD_TYPE=:1 and
this_.CHILD_ID=:2) and this_.RELATION=:3
RATIONALE: SQL statement with SQL_ID aqzkzrwtzzfq8 was executed 75896
times and had an average elapsed time of 0.001 seconds.
RECOMMENDATION 4: SQL Tuning, 5,5% benefit (72 seconds)
ACTION: Run SQL Tuning Advisor on the SQL statement with SQL_ID
4gnvmykfv138v.
RELEVANT OBJECT: SQL statement with SQL_ID 4gnvmykfv138v and
PLAN_HASH 1107743244
select * from ( select this_.ID as ID0_1_,
this_.LAST_MODIFICATION_DATE as LAST2_0_1_, this_.CREATED_BY as
CREATED1_8_1_, this_.CREATION_DATE as CREATION2_8_1_,
this_.LAST_MODIFIED_BY as LAST3_8_1_, this_.CONTENT as CONTENT10_1_,
this_.MIME_TYPE as MIME2_10_1_, this_.AUTHOR as AUTHOR10_1_,
this_.CATEGORY as CATEGORY10_1_, this_.CHANNEL as CHANNEL10_1_,
this_.COPYRIGHT as COPYRIGHT10_1_, this_.CONTENT_DATE as
CONTENT7_10_1_, this_.END_DATE as END8_10_1_, this_.DESCRIPTION as
DESCRIPT9_10_1_, this_.KEYWORDS as KEYWORDS10_1_, this_.PROMOTION as
PROMOTION10_1_, this_.PURGE_DATE as PURGE12_10_1_, this_.REFERENCE_ID
as REFERENCE13_10_1_, this_.SOURCE as SOURCE10_1_, this_.START_DATE
as START15_10_1_, this_.SUB_CATEGORY as SUB16_10_1_,
this_.AUTHOR_EMAIL as AUTHOR1_25_1_, this_.JOKE_CAT_ID as
JOKE4_25_1_, this_.MODERATION as MODERATION25_1_, this_.TITLE as
TITLE25_1_, jokecatego2_.ID as ID0_0_,
jokecatego2_.LAST_MODIFICATION_DATE as LAST2_0_0_,
jokecatego2_.LOGICAL_ID as LOGICAL1_24_0_, jokecatego2_.NAME as
NAME24_0_ from DIV_JOKE this_ inner join DIV_JOKE_CATEGORY
jokecatego2_ on this_.JOKE_CAT_ID=jokecatego2_.ID where
this_.MODERATION=:1 order by this_.LAST_MODIFICATION_DATE desc )
where rownum <= :2
RATIONALE: SQL statement with SQL_ID 4gnvmykfv138v was executed 7070
times and had an average elapsed time of 0.01 seconds.
RECOMMENDATION 5: SQL Tuning, 3,9% benefit (51 seconds)
ACTION: Run SQL Tuning Advisor on the SQL statement with SQL_ID
869fdws5s7k3w.
RELEVANT OBJECT: SQL statement with SQL_ID 869fdws5s7k3w and
PLAN_HASH 3366950133
select * from ( select showform0_.ID as col_0_0_ from DIV_SHOW
showform0_, RATING rating1_ where rating1_.TARGET_ID=showform0_.ID
group by showform0_.ID order by avg(rating1_.RATE) desc,
count(rating1_.ID) desc ) where rownum <= :1
RATIONALE: SQL statement with SQL_ID 869fdws5s7k3w was executed 7938
times and had an average elapsed time of 0.0064 seconds.
------------------------------suite du rapport ---------------------------RECOMMENDATION 3: SQL Tuning, 5,5% benefit (72 seconds)
ACTION: Run SQL Tuning Advisor on the SQL statement with SQL_ID
4gnvmykfv138v.
RELEVANT OBJECT: SQL statement with SQL_ID 4gnvmykfv138v and
PLAN_HASH 1107743244
select * from ( select this_.ID as ID0_1_,
this_.LAST_MODIFICATION_DATE as LAST2_0_1_, this_.CREATED_BY as
CREATED1_8_1_, this_.CREATION_DATE as CREATION2_8_1_,
this_.LAST_MODIFIED_BY as LAST3_8_1_, this_.CONTENT as CONTENT10_1_,
this_.MIME_TYPE as MIME2_10_1_, this_.AUTHOR as AUTHOR10_1_,
this_.CATEGORY as CATEGORY10_1_, this_.CHANNEL as CHANNEL10_1_,
this_.COPYRIGHT as COPYRIGHT10_1_, this_.CONTENT_DATE as
CONTENT7_10_1_, this_.END_DATE as END8_10_1_, this_.DESCRIPTION as
DESCRIPT9_10_1_, this_.KEYWORDS as KEYWORDS10_1_, this_.PROMOTION as
PROMOTION10_1_, this_.PURGE_DATE as PURGE12_10_1_, this_.REFERENCE_ID
as REFERENCE13_10_1_, this_.SOURCE as SOURCE10_1_, this_.START_DATE
as START15_10_1_, this_.SUB_CATEGORY as SUB16_10_1_,
this_.AUTHOR_EMAIL as AUTHOR1_25_1_, this_.JOKE_CAT_ID as
JOKE4_25_1_, this_.MODERATION as MODERATION25_1_, this_.TITLE as
TITLE25_1_, jokecatego2_.ID as ID0_0_,
jokecatego2_.LAST_MODIFICATION_DATE as LAST2_0_0_,

Document Tellora

Page 154/205

Exploitation Oracle 11g


www.tellora.fr

jokecatego2_.LOGICAL_ID as LOGICAL1_24_0_, jokecatego2_.NAME as


NAME24_0_ from DIV_JOKE this_ inner join DIV_JOKE_CATEGORY
jokecatego2_ on this_.JOKE_CAT_ID=jokecatego2_.ID where
this_.MODERATION=:1 order by this_.LAST_MODIFICATION_DATE desc )
where rownum <= :2
RATIONALE: SQL statement with SQL_ID 4gnvmykfv138v was executed 7070
times and had an average elapsed time of 0.01 seconds.
RATIONALE: Average CPU used per execution was 0.01 seconds.
RECOMMENDATION 4: SQL Tuning, 3,9% benefit (51 seconds)
ACTION: Run SQL Tuning Advisor on the SQL statement with SQL_ID
869fdws5s7k3w.
RELEVANT OBJECT: SQL statement with SQL_ID 869fdws5s7k3w and
PLAN_HASH 3366950133
select * from ( select showform0_.ID as col_0_0_ from DIV_SHOW
showform0_, RATING rating1_ where rating1_.TARGET_ID=showform0_.ID
group by showform0_.ID order by avg(rating1_.RATE) desc,
count(rating1_.ID) desc ) where rownum <= :1
RATIONALE: SQL statement with SQL_ID 869fdws5s7k3w was executed 7938
times and had an average elapsed time of 0.0064 seconds.
RATIONALE: Average CPU used per execution was 0.0064 seconds.
RECOMMENDATION 5: SQL Tuning, 3,5% benefit (46 seconds)
ACTION: Run SQL Tuning Advisor on the SQL statement with SQL_ID
1w27xdpth04w3.
RELEVANT OBJECT: SQL statement with SQL_ID 1w27xdpth04w3 and
PLAN_HASH 979632492
select * from ( select this_.ID as ID0_0_,
this_.LAST_MODIFICATION_DATE as LAST2_0_0_, this_.CREATION_DATE as
CREATION1_1_0_, this_.HIDDEN as HIDDEN3_0_, this_.MODERATED as
MODERATED3_0_, this_.TEXT_CONTENT as TEXT3_3_0_, this_.USER_ID as
USER4_3_0_, this_.TARGET_TYPE as TARGET5_3_0_, this_.TARGET_ID as
TARGET6_3_0_ from REVIEW this_ where this_.TARGET_ID in (select
this0__.ID as y0_ from DIV_MOVIE this0__) and this_.HIDDEN=:1 order
by this_.CREATION_DATE desc ) where rownum <= :2
RATIONALE: SQL statement with SQL_ID 1w27xdpth04w3 was executed 7255
times and had an average elapsed time of 0.0063 seconds.
RATIONALE: Average CPU used per execution was 0.0063 seconds.
FINDING 4: 4,9% impact (64 seconds)
Wait event SQL*Net more data to client in wait class Network was consuming
significant database time.
RECOMMENDATION 1: Application Analysis, 4,9% benefit (64 seconds)
ACTION: Investigate the cause for high SQL*Net more data to client
waits. Refer to Oracles Database Reference for the description of
this wait event.
RECOMMENDATION 2: Application Analysis, 4,9% benefit (64 seconds)
ACTION: Investigate the cause for high SQL*Net more data to client
waits in Service SYS$USERS.
SYMPTOMS THAT LED TO THE FINDING:
SYMPTOM: Wait class Network was consuming significant database time.
(38% impact [491 seconds])
FINDING 5: 3,2% impact (42 seconds)
Soft parsing of SQL statements was consuming significant database time.
RECOMMENDATION 1: Application Analysis, 3,2% benefit (42 seconds)
ACTION: Investigate application logic to keep open the frequently used
cursors. Note that cursors are closed by both cursor close calls and
session disconnects.
RECOMMENDATION 2: DB Configuration, 3,2% benefit (42 seconds)
ACTION: Consider increasing the maximum number of open cursors a session
can have by increasing the value of parameter open_cursors.
ACTION: Consider increasing the session cursor cache size by increasing
the value of parameter session_cached_cursors.
RATIONALE: The value of parameter open_cursors was 700 during the
analysis period.
RATIONALE: The value of parameter session_cached_cursors was 20
during the analysis period.
ADDITIONAL INFORMATION
Wait
Wait
Wait
Wait

class
class
class
class

Application was not consuming significant database time.


Commit was not consuming significant database time.
Concurrency was not consuming significant database time.
Configuration was not consuming significant database time.

Document Tellora

Page 155/205

Exploitation Oracle 11g


www.tellora.fr

Wait class User I/O was not consuming significant database time.
Session connect and disconnect calls were not consuming significant database
time.
Hard parsing of SQL statements was not consuming significant database time.
The analysis of I/O performance is based on the default assumption that the
average read time for one database block is 10000 micro-seconds.
An explanation of the terminology used in this report is available when you
run the report with the ALL level of detail.

Document Tellora

Page 156/205

Exploitation Oracle 11g


www.tellora.fr

24

Prsentation de lutilitaire DATA Pump

Data pump est un nouvel outil qui permet de charger ou dcharger des donnes grande vitesse.
Il peut tre appel via le package PL/SQL, DBMS_DATAPUMP.
Oracle 10g introduit des nouveaux outils :

 De nouvelles commandes pour Export et Import appeles respectivement EXPDP et IMPDP.


 Une interface Web dImport et dExport accessible partir du Database Control.

Document Tellora

Page 157/205

Exploitation Oracle 11g


www.tellora.fr

Les composants du DATA Pump sont :

 Direct Path API (DPAPI) : Oracle 10g supporte une interface de chemin directe qui minimise la conversion
et le processus des donnes au moment du chargement et du dchargement des donnes.

 Services des Tables Externes : DATA Pump utilise le nouveau Driver daccs ORACLE_DATAPUMP qui
fournit des accs en lecture et criture aux tables externes des fichiers qui contiennent des chanes de
caractres binaires.

 Le package DBMS_METADATA est utilis par les processus dexcution pour tout chargement ou
dchargement des mtas-donnes (CLOB, BLOB). Les dfinitions des objets de la base sont stockes en
utilisant XML plutt que SQL.

 Le package DBMS_DATAPUMP inclut lAPI pour les fonctions dImport et Export rapides, ainsi que le
dplacement de donnes de masse et des mta-donnes.

 Le client SQL*LOADER a t intgr avec les tables externes et fournit la migration automatique des
fichiers de contrle du SQL*LOAD vers les paramtres daccs aux tables externes.

 Les clients EXPDP et IMPDP sont des clients lgers qui font appel au package DBMS_DATAPUMP pour
initialiser et grer les oprations du DATA Pump. Mme sils introduisent de nouvelles fonctionnalits, ils
restent compatibles avec les clients import et export antrieurs qui sont toujours disponibles.

 Les applications comme Database Control, la rplication, les tablespaces transportables et les applications
utilisateurs bnficient de cette infrastructure. SQL*Plus peut aussi tre utilis comme un client du
package DBMS_DATAPUMP pour des requtes simples sur ltat des oprations en cours.

24.1

Oprations dIMPORT et dEXPORT du DATA Pump

Limport et lexport du DATA Pump sont de nouveaux outils propres Oracle database 10G.
Ce sont des outils diffrents des outils dimport et dexport classiques mme si les commandes sont
similaires.

 DATA Pump Export est un outil pour dcharger des donnes et des mtadonnes dans des fichiers du
systme dexploitation appel fichiers de dump.

 DATA Pump import est utilis pour charger des donnes et mtadonnes qui sont stockes dans un fichier
de dump vers une base cible.

Le mode de chargement ou de dchargement des outils DATA Pump export et import, est spcifi sur la
ligne de commande en utilisant le paramtre appropri. Les divers modes disponibles sont lists cidessous, ce sont les mmes que ceux des utilitaires dimport et dexport des versions
antrieures :







FULL
toute la base (sauf le dictionnaire de donnes)
SCHEMA
tous les objets dun schma
TABLE
une ou plusieurs tables
TABLESPACE tous les objet contenus dans un tablespace
TABLESPACE Transportable
transport dun tablespace entre bases

Le cur de chaque opration DATA Pump est reprsent par la table : MASTER TABLE (MT) qui est une
table cre dans le schma de lutilisateur qui excute un job DATA Pump.
La table MT est construite pendant lexcution dun job dexport. Par contre, le chargement de la table MT
dans le schma utilisateur en cours est la premire action dune opration dimport via un script, qui est
utilise pour crer la squence de cration de tous les objets imports.

Document Tellora

Page 158/205

Exploitation Oracle 11g


www.tellora.fr

La table MT reprsente llment cl pour pouvoir redmarrer loutil DATA Pump dans le cas de larrt
planifi ou non planifi du job.
La table MT est supprime quand le DATA Pump finit normalement.

24.2

Avantages de lexport et de limport DATA Pump:

 DATA Pump dcide automatiquement quelle est la mthode daccs aux donnes utiliser ; cette mthode
peut tre soit Direct Pass soit Externals tables .

 La possibilit de se connecter et se dconnecter des jobs de longue dure sans affecter le job lui-mme,
vous permet de superviser ceux-ci partir des diffrentes localisations pendant leur temps dexcution.

 Les paramtres EXCLUDE, INCLUDE et CONTENT sont utiliss pour slectionner des objets des niveaux
trs fins.

 Le paramtre PARALLEL peut tre utilis pour spcifier le nombre maximal de Threads du serveur sur
lequel sexcute le job dexport.

 Le paramtre ESTIMATE_ONLY permet de savoir combien despace pourrait tre consomm par le job
dexport (sans excuter lexport).

 Le mode rseau permet dexporter des objets dune base distante dans un fichier de dump. Ceci peut tre
effectu en utilisant un lien de la base de donnes distante vers le systme source.

 Pendant limport les noms des fichiers de donnes cibles, les noms des schmas et les noms des
tablespaces de la base importe peuvent tre changs.

Une fois que le job est dclench, plusieurs clients peuvent se connecter et se dconnecter au job.
Le processus darrire plan Master Control Process (MCP) contrle lexcution et la squence dun job
DATA Pump pendant son excution.
Une fois le job en excution, la tche principale du processus darrire plan est de desservir les requtes
du client .
Si le client se dconnecte, le processus darrire plan sarrte.
A la rception dune requte START JOB, le MCP cre un nombre de processus de travail qui dpend de
la valeur du paramtre PARALLEL. Le nom dun processus de travail suit le format DWnn (il charge et
dcharge les donnes).
Si la mthode daccs aux donnes est de type EXTERNAL TABLE PATH pour le chargement et le
dchargement des donnes, le processus de travail DWnn coordonne un nombre parallle des serveurs
dexcution en fonction du nombre de chargements ou de dchargements dfinis. Ceci permet le
chargement et le dchargement intra-partition.

Remarques
Vous pouvez vous connecter un job actif afin de larrter, de changer son paralllisme ou bien de
superviser son tat davancement.
Vous pouvez utiliser linformation de la MT, drive du JOB_NAME pour redmarrer un job arrt ou
supprimer toutes les MT qui ne sont plus utiles.
Les jobs DATA Pump maintiennent une entre dans la vue V$SESSION_LONGOPS sur les performances
dynamiques.

Document Tellora

Page 159/205

Exploitation Oracle 11g


www.tellora.fr

Si aucun nom de job nest spcifi, DATA Pump utilise le schma du job afin de le gnrer
automatiquement.
Ce nom utilise le format suivant : <USER>_<OPERATION>_<MODE>_%N, nom qui dpend du type
dopration excute et de son domaine.
Certains paramtres peuvent entrer en conflit avec dautres. Par exemple, des valeurs du paramtre
TABLES peuvent entrer en conflit avec le paramtre OWNER :
OWNER=ORCL
TABLES=opdef.client

Les erreurs narrtent pas lexport, elles sont simplement signales.


Les possibilits dexport incrmentaux (paramtre INCTYPE) sont obsoltes et conserves pour des
raisons de compatibilit.

 Utiliser les fonctionnalits similaires du Recovery Manager

Pour visualiser lensemble des paramtres dexport en ligne, utilisez la


commande.
Exp help=y

24.3

Le mode intractif du DATA Pump

DATA Pump peut sexcuter en mode commande (sous dos ou sous unix) en utilisant les commandes
expdp ou impdp, avec ou sans fichier de paramtre.
DATA Pump peut sexcuter galement en interactif, ce qui permet de sortir de laffichage cran du
travail en cours qui continue en arrire plan.

 Ainsi en tapant les touches <CTRL+C>, pendant lexcution du DATA Pump, laffichage
lcran sarrte, mais le travail continue en arrire plan.

24.3.1

Commandes du mode interactif

Dans ce mode il existe un ensemble de commandes qui permettent de grer les jobs DATA Pump en
cours dexcution.

 CONTINUE_CLIENT

= redmarre laffichage de lavancement du job DATA Pump

 EXIT_CLIENT

= quitte loutil en laissant le travail continuer

 KILL_JOB

= arrte et supprime le job

 START_JOB

= redmarre le job

 STOP_JOB

= arrte le travail sans le supprimer. Sans option, le job termine la tache en cours
avant de sarreter. Pour arrter le job immdiatement, il faut utiliser loption IMMEDIATE.

Document Tellora

Page 160/205

Exploitation Oracle 11g


www.tellora.fr

La vue DATAPUMP_JOBS permet de visualiser les travaux DATA Pump en


cours !

24.4

Mthode dextraction des donnes avant et aprs data pump

Dans le chemin conventionnel, lexport avant DATA Pump utilise des SELECT pour extraire les donnes,
avec le mcanisme habituel de lecture.
Dans le chemin direct, certaines tapes du mcanisme de lecture sont limines, ce qui permet
damliorer les performances.
Pour pouvoir utiliser le chemin direct, il faut que le jeu de caractres de la session qui ralise lexport
soit le mme que celui utilis dans la base (clause CHARACTER SET du CREATE DATABASE).
La variable denvironnement NLS_LANG permet de respecter cette contrainte (par exemple NLS_LANG =
AMERICAN_AMERICA.WE8ISO8859P1).
Du point de vue des performances, il est conseill de spcifier un paramtre :

 RECORDLENGTH multiple du DB_BLOCK_SIZE de la base.

24.4.1

Mthode direct path (chemin direct) du

data pump

DATA Pump permet 2 mthodes daccs aux donnes :

 Chemin Direct Path en utilisant lAPI direct-path


 External tables
DATA Pump slectionne automatiquement la mthode daccs la plus adapte chaque table.
DATA Pump utilise le chemin Direct Path quand la structure de la table le permet et quand il est
demand davoir un accs rapide aux donnes.

Si une des conditions numre ci-dessous est remplie, ou encore, si une table contient des colonnes
cryptes, ou si les tables charges sont partitionnes diffremment au moment du chargement et du
dchargement, le DATA Pump utilisera de prfrence les tables externes plutt que le chemin direct pour
dplacer les donnes.

Des donnes charges avec une mthode peuvent tre dcharges en utilisant lautre mthode.

Document Tellora

Page 161/205

Exploitation Oracle 11g


www.tellora.fr

24.4.2

Donnes conduisant un accs utilisant des tables externes :

 Tables avec contrle daccs fin pour le mode INSERT et SELECT


 Colonnes de type LOB
 Tables Clusterises
 Tables avec triggers actifs
 Table partitionnes ou avec index globaux sur une seule partition
 BFILE ou colonnes contenant des tuples opaques (binaire)
 Contraintes dintgrit rfrentielles
 Colonnes de type VARRAY avec un type opaque encapsul
Lappel aux outils DATA Pump se fait sous le systme dexploitation, en prcisant lutilisateur de
connexion la base de donnes et un fichier de paramtres spcifi par le mot cl : PARFILE.

Document Tellora

Page 162/205

Exploitation Oracle 11g


www.tellora.fr

25

Export/Import Data Pump

25.1

Fichiers supports par les outils DATA Pump

Il y a 3 types de fichiers grs par les outils DATA Pump :

 Les fichiers de dump qui contiennent les donnes et les mtadonnes dplacer
 Les fichiers de log qui tracent les messages associs chaque opration
 Les fichiers SQL qui enregistrent le rsultat de chaque opration
DATA Pump autorise un accs aux fichiers travers lutilisation de chemins daccs relatifs dOracle : les
objets DIRECTORY. Les chemins absolus ne sont pas supports pour des raisons de scurit.
Enchanement utilis par les clients DATA Pump pour localiser ces fichiers :

 Les objets DIRECTORY par fichier peuvent tre spcifis pour chaque fichier dump , de log et
SQL . Si ils sont spcifis, ils sont spars du nom du fichier par :

 Les clients dexport/import du DATA Pump fournissent un paramtre DIRECTORY qui spcifie le nom dun
objet DIRECTORY. Ces objets DIRECTORY dcrivent la localisation des fichiers.

 Une variable denvironnement DATA_PUMP_DIR peut tre dfinie pour spcifier le nom de lobjet directory
(variable de chemin par dfaut). Les clients DATA Pump vont chercher cette variable denvironnement si
aucun objet DIRECTORY nest dfini dune faon explicite.

Il faut avoir les privilges daccs aux rpertoires pour pouvoir accder aux
fichiers afin de pouvoir excuter lopration de chargement ou de
dchargement.

Pour lexport, laccs de type WRITE est ncessaire pour tous les fichiers.
Pour limport, laccs de type READ est ncessaire pour les fichiers de dump et laccs de type WRITE
est ncessaire pour les fichiers log et SQL .

cration de la directory dir_charly pour le DATAPump

create or replace DIRECTORY dir_charly


as D:\datapump\
/

APPEL DE LA DIRECTORY DANS LE FICHIER DE PARAMETRES


schemas = CHARLY
directory = dir_charly
dumpfile = ExpdpCharly.dmp
logfile = ExpCharly.log

Document Tellora

Page 163/205

Exploitation Oracle 11g


www.tellora.fr

Le paramtre DUMPFILE spcifie le nom (rpertoires compris) des fichiers de dump dans lesquels
sont situs les fichiers sur disque.
Le nom du fichier peut contenir la variable de substitution %U ce qui signifie que plusieurs fichiers
pourront tre gnrs. La variable %U sera traduit dans les noms de fichiers rsultants, par un
numro 2 chiffres incrment de 1 en 1 commenant 01 .
Si le paramtre DUMPFILE nest pas spcifi, le nom de fichier expdat.dmp est utilis.
Ce sont des fichiers AUTOEXTENSIBLES, sauf si le paramtre FILESIZE est spcifi.
Chaque fichier aura alors une taille la valeur de FILESIZE et sera non extensible.
Sil ny a pas assez despace et si le format %U est dfini, un nouveau fichier sera cr
automatiquement la valeur de FILESIZE ; sinon le client recevra un message en lui demandant
dajouter un nouveau fichier.
Si le nom du fichier est gnr avec %U le nombre de fichiers crs ds le dbut est gal la valeur
du paramtre PARALLEL.

25.2

Paramtres le lexport et de limport DATA Pump

Ci-dessous sont prsents un ensemble de paramtres utiliss avec DATA Pump. Le type de donnes
manipules par DATA Pump sont :

 ALL : les donnes et les mtadonnes


 DATA_ONLY : les donnes uniquement
 METADATA_ONLY : les mtadonnes uniquement.
La liste complte des paramtres est explique dans la documentation Oracle Database Utilities .

25.2.1

Paramtres communs

Dans le fichier de paramtres, le caractre # en dbut de ligne met la ligne en commentaire.


ATTACHE[=schema.]nom_travail]

- Permet dattacher sa session un job DATA Pump en cours. Pour attacher un job dun autre schema, il
faut avoir le privilge EXP_FULL_DATABASE ou IMP_FULL_DATABASE. Si aucun nom nest spcifi,
la session est attache au travail en cours dans le schma courant. Si ce paramtre est utilis, aucun
autre paramtre ne peut tre spcifi.
JOB_NAME=nom_job

- Permet de donner un nom au job DATA Pump execute. Sil nest pas prcis le nom du job est
SYS_<opration>_<mode>_<nn>.
CONTENT={ALL|DATA_ONLY|METADATA_ONLY}

- Permet de dfinir le contenu de lexport ou de limport


DIRECTORY=objet_directory

- Permet de dfinir un rpertoire appel DIRECTORY dclar dans la base de donnes (par la
commande CREATE DIRECTORY ) Les fichiers du DATA Pump iront dans ce rpertoire.
DATA_PUMP_DIR dfinit la directory par dfaut.

Document Tellora

Page 164/205

Exploitation Oracle 11g


www.tellora.fr

DUMPFILE=nom_fichier_dump

- Dfini le num du fichier dump en sortie. Il est possible de parallliser lexport ou limport.
LOGFILE=nom_fichier_log

- Permet de prciser le nom du fichier de log (fichier journal). Par dfaut ces fichiers sont nomms
export.log ou import.log. Si le paramtre NOLOGFILE est positionn y alors aucun fichier de log
ne sera gnr.
NOLOGFILE={y,n}

- Positionn y ce paramtre prcise quaucun fichier de log ne sera gnr.


PARFILE=nom_fichier_paramtres

- Permet de prciser le nom du fichier de paramtre utilis pour lexport ou limport. Ce fichier contient les
paramtres appliqus lors de lexport ou de limport. Ce fichier de paramtre doit tre prsent sur le
serveur qui effectue lexport ou limport.
FULL={y|n}

- Permet de prciser sil sagit dun export ou dun import complet ou non.
SCHEMAS=nom_schema,

- Permet de prciser le nom des schmas exporter ou importer


TABLES=[schema.]nom_table[ :partition] [, ]

- Permet de prciser le nom des tables exporter ou importer, ainsi que des partition de tables si
besoin.
QUERY=[schema.][nom_table :]clause_where

- Permet de filtrer les donnes exporter ou importer


TABLESPACES=nom_tablespace,

- Permet de faire un export ou un import de niveau tablespace. Il permet de prciser plusieurs


tablespaces.
TRANSPORT_FULL_CHECK={y,n}

- Si ce parameter est positionn <y>, DATA Pump vrifie les dpendances entre les objets transports
lintrieur des tablespaces transports.
TRANSPORT_TABLESPACES=nom_tablespace,

- Permet de faire un export ou un import de niveau transport de tablespace. Il permet de prciser


plusieurs tablespaces.
NETWORK_LINK=nom_database_link

- Prcise le nom dun database_link utiliser pour lexport ou limport.


EXCLUDE=type_objet[ :filtre] [ ,]

- Permet dexclure des objets pour lexport ou limport.


INCLUDE=type_objet[ :filtre] [ ,]

- Permet dinclure des objets pour lexport ou limport.

Document Tellora

Page 165/205

Exploitation Oracle 11g


www.tellora.fr

25.2.2

Paramtres de lEXPORT DATA Pump

COMPRESSION={ALL|DATA_ONLY|METADATA_ONLY|NONE}

- Active la compression des donnes ou des mta-data du fichier dexport.


ESTIMATE_ONLY={y|n}

- Permet de vrifier lespace que lexport va occuper sans faire lexport rellement.

25.2.3

Paramtres de lIMPORT DATA Pump

SQLFILE=nom_fichier_SQL

- Prcise le nom du fichier SQL gnr au moment de limport, contenant les ordres DDL correspondant
limport sans rellement raliser limport.
REMAP_SCHEMA=nom_schema_source :nom_schema_cible

- Permet de prciser le nom du schma qui a t export et le nom du schma dans lequel se fera
limport. Si le schma nexiste pas il sera cr avec les mme privilges que celui de lexport, par
contre le mot de passe devra tre modifi avant de pouvoir se connecter.
REMAP_TABLESPACE=nom_tablespace_source :nom_tablespace_cible

- Permet de prciser le nom du tablespace cible lorsque lon veut changer le tablespace dorigine.
Plusieurs paramtres peuvent tre spcifis pour effectuer plusieurs changement de tablespace.
REMAP_DATAFILE=nom_datafile_source :nom_datafile_cible

- Permet de prciser les chemins des fichiers de donnes des tablespace cible lorsque lon veut changer
le tablespace dorigine et donc de nom de fichier cible avec des chemins diffrentes. Plusieurs
paramtres peuvent tre spcifis pour effectuer plusieurs changement.
TABLE_EXISTS_ACTION=[SKIP|APPEND|TRUNCATE|REPLACE]

- Permet de prciser laction effectuer lorsque la table rencontre au moment de limport existe dj :
SKIP = ne rien faire et passer lobjet suivant (non autoriser si CONTENT=data_only)
APPEND = ajoute les donnes la fin du contenu de la table (valeur par dfaut si
CONTENT=data_only)
TRUNCATE = vide la table avant de charger les donnes.
REPLACE=supprime la table puis la recre, avant de charger les donnes. (non autoriser si
CONTENT=data_only).
TRANSPORT_DATAFILES=nom_fichiers,

- Permet de prciser lemplacement des fichiers de donnes lors dun transport de tablespaceLes fichiers
de donnes (datafiles) doivent tre recopier au pralable.

25.3

Filtrer les donnes exporter

Le job DATA Pump peut inclure ou exclure pratiquement tous types dobjets grce au paramtre
EXCLUDE.
Ce paramtre EXCLUDE est spcifi dans un fichier SQL dfini par le paramtre SQLFILE.
EXCLUDE=object_type [ :

expression ]

Document Tellora

Page 166/205

Exploitation Oracle 11g


www.tellora.fr

Les 3 lignes du fichier de paramtre vont exclure toutes les vues, les packages et les index dont le nom
commence par EMP
EXCLUDE=VIEW
EXCLUDE=PACKAGE
EXCLUDE=INDEX : like EMP

Le paramtre INCLUDE permet dinclure seulement les types dobjets spcifis et les objets spcifis
pour lopration.
INCLUDE=object_type [ :

expression ]

Le paramtre CONTENT permet de slectionner pour lopration courante les mtadonnes, les donnes
ou les deux :
CONTENT= ALL | METADATA_ONLY | DATA_ONLY

Le paramtre QUERY fonctionne dune faon similaire lutilitaire dexport antrieur avec 2 amliorations
principales :

 Il peut tre prfix par un nom de table, pour tre appliqu seulement sur cette table.
 Il peut tre utilis pour un import.
QUERY= [SCHEMA.][nom_table :] QUERY

QUERY=charly.employe:where salaire in (1000,2000)


And nom_emp like Prof%
Order by nom_emp

Les paramtres EXCLUDE et INCLUDE sont


mutuellement exclusifs.
Ils ne peuvent pas tre utiliss si le paramtre
CONTENT=DATA_ONLY, est spcifi.

Comme la mtadonne de lobjet est stocke sous un format XML dans un fichier de dump , il sera
facile dappliquer une transformation quand une DDL est dfinie pendant limport.
Limport DATA Pump permet plusieurs transformations :

 REMAP_DATAFILE est utile pour dplacer des bases de donnes vers diffrentes plateformes qui ont des
systmes de gestion de fichiers diffrentes.

 REMAP_TABLESPACE permet de dplacer des objets dun tablespace dans un autre.


 REMAP_SHEMA fournit la fonctionnalit antrieure du FROMUSER/TOUSER, ceci afin de changer le
propritaire dun objet.

Document Tellora

Page 167/205

Exploitation Oracle 11g


www.tellora.fr

EXEMPLE de Fichier PARFILE pour un import

directory = dir_charly
remap_schema = CHARLY:OPDEF
dumpFILE = ExpdpCharly.dmp
LOGfile = Imp.log

En utilisant le paramtre TRANSFORM, il peut tre possible de ne pas gnrer les clauses de stockage
dans la DDL. Ceci est utile si les caractristiques de stockage de linstance cible sont trs diffrentes de
celles de linstance source.

Les vues du dictionnaire de donnes permettant de visualiser la liste des


types dobjets pouvant tre export dans un paramtre EXCLUDE ou
INCLUDE sont :
- DATABASE_EXPORT_OBJECTS et
- SCHEMA_EXPORT_OBJECTS et
- TABLE_EXPORT_OBJECTS

25.4
25.4.1

Exemples dexport et dimport DATA Pump


Estimation de la taille de lExport

Ce script permet de dfinir la taille que fera le fichier dexport.

> expdp hr/hr DIRECTORY=dpump_dir1 ESTIMATE_ONLY=y TABLES=employees,


departments, locations LOGFILE=estimate.log

25.4.2

Exports Parallliss

Cest un export de base complet qui a 4 processus de travail parallles. Les fichiers de dump sont crs
dans des rpertoires indiqus par les objets directory DATADIR1, DATADIR2, DATADIR3, DATADIR4.
Chaque fichier a une taille de 2 giga octets et 4 fichiers au moins seront crs.
Le nom du job et de la MT est le nom par dfaut SYSTEM_EXPORT_FULL_01.

Expdp system/bora full = y


Parallel = 4
Dumpfile = DATADIR1:full1%U.dat,
DATADIR2:full2%U.dat,
DATADIR3:full3%U.dat,
DATADIR4:full4%U.dat,

Exemple 2 : EXPORT Full en Parallel

Document Tellora

Page 168/205

Exploitation Oracle 11g


www.tellora.fr

> expdp hr/hr FULL=y DUMPFILE=dpump_dir1:full1%U.dmp, dpump_dir2:full2%U.dmp


FILESIZE=2G PARALLEL=3 LOGFILE=dpump_dir1:expfull.log JOB_NAME=expfull

25.4.3

Import Paralllis

Cet exemple est un exemple dimport complet du fichier de dump cr avec le 1er exemple.
Le fichier de dump a t envoy vers un priphrique de stockage rseau spcifi par lobjet directory.

Le paramtre NET_STORAGE_1.FULL=Y nest pas ncessaire car limport par dfaut est celui de limport
complet du fichier de dump. 4 lots parallles de chargement sont crs.
Le job et la MT ont comme nom par dfaut SYSTEM_IMPORT_FULL_01.
Impdp system/bora
Directory = NET_STORAGE_1
Parallel = 4
Dumpfile = full1%U.dat,
full2%U.dat,
Full3%U.dat,
full2%U.dat
sqlfile = gen08.sql

25.4.4

Export de schma

Des procdures, des packages, des types et des vues dont le nom commence avec PRODUCT seront
exports partir des schmas CHARLY et OPDEF.
Le fichier de dump schema_charly_opdef.dat est cr dans le rpertoire indiqu dans lobjet
directory USR_DATA.
Comme lutilisateur SYSTEM dtient le rle EXPORT_FULL_DATABASE, il peut spcifier plusieurs schmas.
Les dfinitions des schmas et les autorisations concernant les privilges system ne sont pas exports
(alors quelles devraient ltre normalement) car elles ne sont pas prcises, dune manire explicite
dans la clause INCLUDE.

Expdp system/bora schemas = CHARLY,OPDEF


Directory = USR_DATA
Dumpfile = schema_charly_opdef.dat
include = function
include = procedure
include = package
include = view:like PRODUCT%

Document Tellora

Page 169/205

Exploitation Oracle 11g


www.tellora.fr

Exemple 2 export de donnes dcharges des lignes de Tables


> expdp hr/hr PARFILE=exp.par

Le fichier de paramtres contient :


DIRECTORY=dpump_dir1
DUMPFILE=dataonly.dmp
CONTENT=DATA_ONLY
EXCLUDE=TABLE:"IN ('COUNTRIES', 'LOCATIONS', 'REGIONS')"
QUERY=employees:"WHERE department_id !=50 ORDER BY employee_id"

25.4.5

Import de schma

Cet exemple dimport montre comment vous pouvez gnrer un script SQL partir dun fichier dexport
de dump qui contient toutes les dfinitions DDL que limport excutera en sappuyant sur les autres
valeurs des autres paramtres.
Le SQL ne sera pas excut et le systme cible restera inchang.
Impdp system/bora directory = USR_DATA
Dumpfile = schema_CHARLY_OPDEF.dat
Sqlfile = schema_CHARLY_OPDEF.sql

25.5
25.5.1

Remarques et modes opratoires


Export et jeux de caractres

DATA Pump crit le dump dans le jeu de caractre de la base de donnes.


Des problmes peuvent se produire si les jeux de caractres utiliss ne sont pas les mmes entre la
base do provient lexport et la base dans laquelle on fait limport. De mme des problmes peuvent se
produire si le jeu de caractre entre la base de donnes et le jeu de caractre du client ou de
lenvironnement qui fait lexport ne sont pas compatibles (typiquement, perte des caractres
accentus).
Une variable denvironnement NLS_LANG correctement positionne dans lenvironnement qui lance loutil
et ouvre la session dexport permet de remdier ce problme.
Limport peut provoquer une double conversion de jeu de caractres :

 Jeu de caractres du fichier dimport (variable denvironnement NLS_LANG lors de lexport)


Jeu de caractres de la session qui effectue limport (variable denvironnement NLS_LANG lors de limport)
Jeu de caractres de la base

Historiquement, les outils dexport/import peuvent tre utiliss pour rorganiser le stockage de tout ou
partie dune base.
Ce sont toujours les bons outils pour reconstruire une base en changeant la taille de bloc, ou pour
changer le jeu de caractre de la base de donnes.

Document Tellora

Page 170/205

Exploitation Oracle 11g


www.tellora.fr

25.5.2

Remarques sur les dpendances entre les objets

Lors de la rcupration de tout ou partie dun schma (ou dune base), si les objets nexistent pas dans
la base cible et si le fichier dexport est import tel quel (sans restructuration du stockage notamment),
il ny a pas de difficult particulire car Oracle importe les objets dans un ordre intelligent .
Le seul problme potentiel concerne lordre dimport des vues et des objets stocks vis vis des
dpendances entre les objets ; si un objet est import avant un autre objet dont il dpend, il est marqu
INVALID (colonne STATUS de la vue DBA_OBJECTS) et il doit tre recompil.
Ce problme nest pas grave, car la recompilation est automatique la premire utilisation et elle ne
devrait pas chouer si tous les objets sont prsents.

Pour anticiper et viter tout problme, il est conseill de vrifier sil existe des objets invalides et de les
recompiler soi-mme avec la syntaxe :

ALTER { VIEW | PROCEDURE | FUNCTION | PACKAGE | PACKAGE BODY |


TRIGGER } nom_objet COMPILE

La prsence de contraintes, dindex ou de triggers dj existant dans la base cible peut poser plusieurs
problmes, notamment sur les performances et le risque davoir des donnes rejetes.

En ce qui concerne le risque de donnes rejetes, le problme peut ne pas venir des donnes
proprement dites mais de lordre dans lequel limport est fait : si les donnes de la table des
commandes sont importes avant celles de la table des clients et quil y a une contrainte dintgrit
rfrentielle de la table des commandes vers la table des clients, les commandes risquent dtre
rejetes car les clients nauront pas encore t imports.

La technique classique consiste alors supprimer ou dsactiver les structures gnantes avant limport et
les ractiver ou les recrer ensuite.

 Quels que soient les paramtres, limport fait une activation des contraintes et des triggers qui taient


actifs au moment de lexport. Si vous aviez dsactiv des contraintes et des triggers avant limport, ils
seront ractivs par limport ; cest un peu troublant parfois ...
Lorsque lobjectif est de ne transfrer que des donnes dune base source vers une base cible (la
structure est dj prte dans la base cible), il est prfrable de nexporter que les donnes sans les
contraintes, les index, les triggers, ... Cela permet de limiter les risques de comportements bizarres
lors de limport.

25.5.3

Export de niveau tablespace

Lexport de niveau tablespace (notion de tablespace transportable) est intressant pour transfrer
lintgralit dun tablespace dune base une autre, sous rserve :

 Que les bases soient sur la mme plate-forme et aient le mme jeu de caractres.
 Pas de tablespace portant le mme nom dans la base cible.
 Que le tablespace soit auto-suffisant (pas de rfrence vers des objets stocks dans des tablespaces non
transports).

Document Tellora

Page 171/205

Exploitation Oracle 11g


www.tellora.fr

Lexport seffectue dans le jeu de caractres de la session qui effectue lexport, dfini par la variable
denvironnement NLS_LANG (exemple FRENCH_FRANCE.WE8ISO8859P1).
Une conversion automatique se produit si ce jeu est diffrent de celui de la base.
La fonctionnalit de tablespace transportable, introduite en version 8i, est particulirement intressante
; elle permet de transporter un tablespace dune base une autre, simplement en copiant directement
les fichiers de donnes du tablespace et en le branchant sur la base darrive.
Avec la version 9i, il est possible dutiliser le paramtre TABLESPACE pour exporter toutes les tables
situes dans un tablespace donn.
Si une table possde une partition dans le tablespace indiqu, elle sera exporte en totalit. Si loption
indexes=y est utilise, les index associs aux tables seront galement transports.
Au moment du transport, le tablespace doit tre READ ONLY, mais rien ninterdit, ensuite, dans la base
source ou dans la base cible, de remettre le tablespace READ WRITE.

Le mode opratoire gnral est le suivant :


Sassurer que le tablespace concern est READ ONLY ; au besoin, le passer READ ONLY.
Utiliser loutil dexport sur la base source (qui contient le tablespace) pour extraire du dictionnaire les
informations relatives ce tablespace :

 Caractristiques du tablespace
 Dfinition des objets quil contient
 Copier vers la base cible :
- le fichier dexport contenant les dfinitions
- les fichiers de donnes du tablespace.

 Utiliser loutil dimport sur la base cible pour importer dans le dictionnaire les informations relatives au
tablespace transport :
- Caractristiques du tablespace
- Dfinition des objets quil contient

Avec cette technique, aucun moment, les donnes proprement dites ne sont ni lues (SELECT) par
lexport ni insres (INSERT) par limport : le gain de temps est gnralement apprciable.
Il faut Oracle Entreprise Edition sur la base source pour faire lexport ; par contre, limport peut tre
ralis sur nimporte quelle gamme Oracle.

25.6

Vues du dictionnaire de donnes de DATA Pump

Vous pouvez utiliser les vues du dictionnaire de donnes prsentes ci-dessous pour obtenir des
informations sur les jobs DATA Pump :

V$SESSION : liste des sessions utilisateurs


V$SESSION_LONGOPS : performances des sessions, indique ltat davancement du job reprsent
travers le nombre de mga-bytes de donnes transfres. Lentre contient la taille estime du transfert et
elle est mise jour priodiquement pour reflter la quantit de donnes transfres.

Document Tellora

Page 172/205

Exploitation Oracle 11g


www.tellora.fr

DBA_DATAPUMP_JOBS : identifie tous les jobs actifs du DATA Pump (quelque soit leur tat) dune
instance ou de toutes les instances du RAC (Y sont aussi illustres toutes les MT qui ne sont pas
actuellement associes un job actif)
DBA_DATA_PUMP_SESSIONS : les sessions utilisateurs correspondant un job.
set linesize 150
col program for A30
col module for A20
select username, program, module, action
from v$session
/
USERNAME
PROGRAM
MODULE
ACTION
------------------------------ ------------------------------ -------------------- ------------------------------SYSTEM
SYSTEM
SYSMAN
XMLLoader0
SYSMAN
SYSMAN
DBSNMP
SYSMAN
PingHeartbeatRecorder
SYSTEM
SYSMAN
SYSMAN
SYSMAN
DBSNMP
ORACLE.EXE (MMNL)
ORACLE.EXE (MMON)
ORACLE.EXE (QMNC)
SYSMAN
ORACLE.EXE (CJQ0)
ORACLE.EXE (RECO)
ORACLE.EXE (SMON)
ORACLE.EXE (DBW0)
ORACLE.EXE (MMAN)
ORACLE.EXE (PMON)
30 rows selected.

sqlplus.exe
ORACLE.EXE (q000)
ORACLE.EXE (DW01)
OMS

SQL*Plus

OMS
OMS
emagent.exe
OMS

OEM.SystemPool
OEM.SystemPool
emagent.exe
OEM.SystemPool

expdp.exe
OMS
OMS
OMS
emagent.exe

expdp.exe
OMS
OEM.BoundedPool
OEM.SystemPool
emagent.exe

OMS

OMS

Document Tellora

OEM.SystemPool

Page 173/205

Exploitation Oracle 11g


www.tellora.fr

26

SQL*Loader

Parmi les fonctionnalits de SQL*Loader, les suivantes sont particulirement intressantes :








Il y a peu de limitation sur le format des donnes du fichier externe (largeur fixe, avec sparateur, ...).
Plusieurs fichiers externes peuvent tre chargs dans la mme session.
Plusieurs tables peuvent tre charges dans la mme session.
Des critres peuvent tre dfinis pour liminer certaines donnes du fichier externe.
Les donnes peuvent tre transformes avec des fonctions SQL pendant le chargement.
Des numros squentiels uniques peuvent tre gnrs pour certaines colonnes.

En entre, SQL*Loader prend un fichier de contrle qui pilote le chargement (rien voir avec le fichier
de contrle dune base) et un ou plusieurs fichiers de donnes ASCII (pas des fichiers de donnes dune
base Oracle).
En sortie, SQL*Loader alimente la base Oracle et gnre un fichier de log, un fichier des rejets (bad donnes errones) et un fichier des refus (discard - donnes cartes).
Pour des petits volumes, les donnes peuvent tre directement incluses dans le fichier de contrle.
Le fichier discard contient des enregistrements qui ont t refuss (carts) par SQL*Loader car ils ne
respectaient pas des conditions, des critres, spcifis dans le fichier de contrle.
Le fichier bad contient des enregistrements qui ont t rejets soit par SQL*Loader, soit par Oracle:

 Rejet par SQL*Loader


 Format de lenregistrement non valide par rapport la description du fichier de contrle
 Rejet par Oracle
 Violation dune contrainte dintgrit
 Type de donnes non valide
 Rejet par un trigger
Les enregistrements refuss ou rejets sont crits tels quels dans les fichiers bad et discard qui ont
donc la mme structure que les fichiers de donnes utiliss en entre ; aprs correction ventuelle des
enregistrements, les fichiers bad et discard peuvent tre utiliss comme fichiers dentre.
Le fichier de log donne normment dinformations sur le rsultat du chargement :

 Date
 Nom des fichiers utiliss
 Paramtres utiliss
 Tables cibles et mode dalimentation
 Conditions ventuelles sur les enregistrements
 Nombre denregistrements chargs
 Nombre denregistrements carts
 Nombre denregistrements rejets
 Messages derreurs relatifs aux rejets

Document Tellora

Page 174/205

Exploitation Oracle 11g


www.tellora.fr

SQL*Loader peut effectuer limport selon deux chemins , le chemin direct et le chemin conventionnel.

 Chemin direct = Les donnes sont charges en mmoire, formates dans des blocs qui sont crits
directement dans la base.

 Chemin conventionnel = Les donnes sont charges en mmoire et insres dans les tables par des
ordres INSERT classiques. Avec le chemin conventionnel, tous les mcanismes classiques sont appliqus
(contraintes, triggers, ...).

Le chemin direct est plus performant mais a les consquences suivantes :

 Seules les contraintes NOT NULL, PRIMARY KEY et UNIQUE KEY sont appliques.
 Les triggers INSERT ne sont pas excuts.
 Dautres utilisateurs ne peuvent pas apporter de modifications aux tables.
 Il faut lancer loutil dans une fentre du systme dexploitation en mettant des paramtres sur la ligne de
commande.

Les paramtres peuvent tre lists dans un fichier de paramtres dont le nom seul est pass sur la ligne
de commande :
C:\>sqlldr parfile=balance.par

Il y a deux catgories de paramtres ne pas confondre :

 Les paramtres du fichier de contrle


 Les paramtres de la ligne de commande qui peuvent tre lists dans un fichier de paramtres (paramtre
de ligne de commande PARFILE)

 Certains paramtres de la ligne de commande peuvent tre inclus dans le fichier de contrle (paramtre
de fichier de contrle OPTIONS) ou sont redondants avec des paramtres du fichier de contrle !

Les paramtres du fichier de contrle sont essentiellement destins dcrire la structure des
enregistrements en entre, les tables cibles et la nature des contrles/traitements raliser sur les
enregistrements.

26.1

Fichier de paramtres

Les paramtres de la ligne de commande, ou du fichier de paramtres indiqu sur la ligne de


commande, contrlent le fonctionnement gnral de loutil.
Les principaux paramtres de la ligne de commande sont les suivants :

- BAD = Nom du fichier bad (avec ventuellement un chemin complet). Par dfaut gal au nom du
fichier de contrle, mais avec lextension .bad.
- BINDSIZE = (65536) , Taille maximum en octets de la bind array ( zone de travail ). Contrle la
quantit de donnes traite en un seul INSERT et la frquence du COMMIT (en corrlation avec le
paramtre ROWS).
- CONTROL = Nom du fichier de contrle (avec ventuellement un chemin complet).
- DATA = Nom du fichier de donnes traiter (gnralement plutt indiqu dans le fichier de contrle).
Par dfaut gal au nom du fichier de contrle, mais avec lextension .dat.

Document Tellora

Page 175/205

Exploitation Oracle 11g


www.tellora.fr

- DIRECT = (FALSE) TRUE : chemin direct. FALSE : chemin conventionnel.


- DISCARDFILE = Nom du fichier discard (avec ventuellement un chemin complet). Par dfaut, gal
au nom du fichier de contrle, mais avec lextension .dsc.
- DISCARDMAX = Nombre maximum de rejets autoriss avant larrt du chargement (1 = arrt au
premier). Par dfaut, pas darrt.
- ERRORS = (50), Nombre derreurs dinsertion autorises avant larrt du chargement (0 = aucune erreur
autorise - mettre un trs grand nombre pour ne pas sarrter en cas derreur). Les enregistrements
incrimins sont crits dans le fichier bad.
- LOAD = Nombre maximum denregistrements charger (aprs SKIP).
- LOG = Nom du fichier log (avec ventuellement un chemin complet). Par dfaut, gal au nom du fichier
de contrle, mais avec lextension .log.
- PARFILE = Nom du fichier de paramtres (avec ventuellement un chemin complet).
- READSIZE = (65536) , Taille en octets du buffer de lecture.
- ROWS = (64) , Nombre de lignes par COMMIT. Si ROWS x taille de la ligne est suprieure BINDISZE,
ROWS est automatiquement diminu. Si ROWS x taille de la ligne est infrieur BINDISZE, ROWS est
utilis tel quel (il nest pas augment).
- SILENT = Liste les catgories de message qui ne doivent pas tre reports lcran (HEADER,
FEEDBACK, ERRORS, DISCARDS, PARTITIONS, ALL).
- SKIP = Nombre denregistrements liminer avant de commencer le chargement (aucun par dfaut).
- USERID = Paramtres douverture de la session sous la forme :
nom_utilisateur[/mot_de_passe][@nom_service]. Une invite saffiche pour saisir le mot de passe sil est
non spcifi.
- SKIP_INDEX_MAINTENANCE = Mode direct uniquement. YES : les index ne sont pas mis jour (ils
sont marqus UNUSABLE et il faut les reconstruire). NO : les index sont mis jour.
- SKIP_UNUSABLE_INDEXES = YES, autorise le chargement mme sil existe des index pralablement
UNUSABLE. NO : nautorise pas le chargement sil existe des index pralablement UNUSABLE. Si le cas
est rencontr, lenregistrement est simplement rejet en chemin conventionnel mais le chargement
sarrte en chemin direct.

Exemples de fichiers de paramtres :


Cas o toutes les informations sont en fait dans le fichier de contrle.
userid=system/manager
control=balance.ctl

Cas o le fichier de contrle peut sappliquer sur des fichiers de donnes de diverses origines (un seul
fichier de contrle et plusieurs fichiers de paramtres).
userid=system/manager
control=balance.ctl
data=balance_lyon.dat
log=balance_lyon.log
bad=balance_lyon.bad
discardfile=balance_lyon.dsc

Document Tellora

Page 176/205

Exploitation Oracle 11g


www.tellora.fr

26.2

Le fichier de contrle

La syntaxe prsente ci-dessous nest pas complte, mais les clauses les plus usuelles y sont prsentes.
Les clauses doivent apparatre dans lordre indiqu.
Les lignes de commentaire doivent commencer par deux signes moins (--).

[ OPTIONS(liste doptions) ]
LOAD DATA
[ INFILE fichier | *
[ BADFILE fichier ] [ DISCARDFILE fichier ] [ DISCARDMAX valeur ] ]
[ INSERT | APPEND | REPLACE | TRUNCATE ]
INTO TABLE nom
[ INSERT | APPEND | REPLACE | TRUNCATE ]
[ WHEN condition ]
[ FIELDS TERMINATED BY x [ OPTIONALLY ENCLOSED BY y ] ]
[ TRAILING NULLCOLS ]
( colonne [ POSITION(x:y) ] [ type ] [ clause_SQL ],
...
)
[ BEGINDATA donnes ]

- LOAD DATA
La clause INFILE donne lemplacement dun fichier de donnes traiter ou est gal au caractre * si les
donnes sont dans le fichier de contrle (clause BEGINDATA).
De manire optionnelle, cette clause peut spcifier un fichier bad (option BADFILE), un fichier DISCARD
(option DISCARDFILE) et un nombre maximum de rejets autoriss avant larrt du chargement (option
DISCARDMAX) ; si les paramtres quivalents de la ligne de commande ont t indiqus, ce sont ces
derniers qui sappliquent.
Sil y a plusieurs fichiers charger en une seule session, plusieurs clauses INFILE peuvent tre
prsentes, chaque clause pouvant spcifier ses propres options BADFILE, DISCARDFILE et
DISCARDMAX.
Si le fichier de donnes est indiqu en paramtre de la ligne de commande (DATA), la clause est vide (mais
il faut laisser le mot cl LOAD DATA).
INSERT | APPEND | REPLACE | TRUNCATE La clause suivante prcise le mode de chargement dans
les tables :
INSERT
= Ajout, mais uniquement pour une table vide (erreur sinon)
APPEND
= Ajout la table (peut tre vide ou non)
REPLACE
= Remplace tout le contenu de la table (un ordre DELETE est excut avant)
TRUNCATE
= Remplace tout le contenu de la table (un ordre TRUNCATE est excut avant)

- INTO TABLE
La clause INTO TABLE donne le nom dune table charger et dcrit comment effectuer le chargement
dans cette table. Si plusieurs tables sont charges partir dun mme fichier de donnes, plusieurs
clauses INTO TABLE sont spcifies. Pour chaque table, il est possible dindiquer les options suivantes :
INSERT | APPEND | REPLACE | TRUNCATE : Mode de limport pour la table
WHEN : Indique une condition sur lenregistrement pour quil soit effectivement charg dans cette table. La
condition peut porter soit sur une colonne de la table cible soit sur un champ de lenregistrement
source dfini par la position de son caractre de dbut et la position de son caractre de fin sous la
forme dbut:fin .
FIELDS TERMINATED BY x [ OPTIONALLY ENCLOSED BY y ] : Pour des enregistrements de
longueur variable (avec sparateur), indique comment sont dlimits les champs avec :

Document Tellora

Page 177/205

Exploitation Oracle 11g


www.tellora.fr

TERMINATED BY x : caractre sparateur des enregistrements (une virgule,...)


OPTIONALLY ENCLOSED BY y : caractre pouvant entourer les enregistrements (apostrophes, ...)
TRAILING NULLCOLS : Les colonnes non prsentes la fin de lenregistrement sont mises NULL (si
loption est absente et que des colonnes vides existent la fin, lenregistrement est rejet).
Colonne [ POSITION(x:y) ] [ type ] [ clause_SQL ] Liste des colonnes alimenter dans la
table avec :
COLONNE = le nom de la colonne cible
POSITION(x:y) : position du champ correspondant dans lenregistrement source (cas dun
enregistrement de longueur fixe) ; Pour des enregistrements avec sparateur, la correspondance
re
er
colonne/enregistrement est en lien avec la position (1 colonne de la liste = 1 enregistrement, ...)
TYPE : type de donnes (en cas dambigut)
CLAUSE_SQL : clause SQL appliquer
Pour rfrencer une colonne X dans la clause SQL, utiliser la syntaxe :
X (caractre deux points devant le nom de la colonne).
Il existe dautres options sur la spcification des colonnes.
BEGINDATA
La clause BEGINDATA marque le dbut des donnes si celles-ci sont incluses dans le fichier de contrle
(INFILE *).

26.3

Exemples de chargements

Les diffrents exemples sont prsents avec des donnes incluses (INFILE * + BEGINDATA) pour mieux
visualiser la correspondance entre les donnes et les paramtres du fichier de contrle.
Ces exemples sont trs simples adapter au chargement dun fichier externe :

 Copier les donnes, sans le BEGINDATA, dans un fichier.


 Mettre le nom du fichier dans la clause INFILE ( la place du caractre *).
 Supprimer la clause BEGINDATA.
Pour ces exemples, nous supposons lexistence des tables suivantes :

tables des Employe_BIS


CREATE TABLE Employe_BIS (
Code NUMBER(6),
nom VARCHAR2(40),
prenom VARCHAR2(40),
sexe CHAR(1),
date_naissance DATE,
adresse VARCHAR2(150)
)
/

tables des Employe_BIS masculins (pas de colonne sexe)


CREATE TABLE Employe_BIS_M (
Code NUMBER(6),
nom VARCHAR2(40),
prenom VARCHAR2(40),
date_naissanceDATE,
adresse VARCHAR2(150)
)
/

Document Tellora

Page 178/205

Exploitation Oracle 11g


www.tellora.fr

tables des Employe_BIS fminins(pas de colonne sexe

ni de colonne date_naissance)
CREATE TABLE Employe_BIS_F (
code NUMBER(6),
nom VARCHAR2(40),
prenom VARCHAR2(40),
adresse VARCHAR2(80)
)
/

squence utilise pour alimenter les numros demploy


CREATE SEQUENCE SEQ_Employe_BIS
/

26.3.1

Exemples de fichiers de contrle : Longueur variable enregistrements

LOAD DATA
INFILE *
INTO TABLE Employe_BIS
APPEND
FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY
TRAILING NULLCOLS
(
prenom ,
nom ,
sexe ,
date_naissance TO_DATE(:date_naissance,YYYYMMDD) ,
adresse,
code
SEQ_ Employe_BIS.NEXTVAL
)
BEGINDATA
Pierre,DUPOND,M,19660826, 2 rue de Matignon 78711 Mantes la Ville
Marise,LEROY,F, 125 rue de Champion 75000 Paris
Jean, PEYRAC (de) ,M,19631204, 6 rue du Faubourg St Antoine 75000 Paris

Pour cet exemple, les enregistrements ont une longueur variable, avec sparateur.
Spcifications des donnes en entre :

 Les champs sont dlimits par une virgule. Clause TERMINATED BY ,


 Ils peuvent ventuellement tre entours de guillemets (cest le cas du nom dans la troisime ligne).
Clause OPTIONALLY ENCLOSED BY

 Ils peuvent tre manquants en fin de ligne (pas de date de naissance sur la deuxime ligne) ; dans ce cas
mettre un NULL. Clause TRAILING NULLCOLS

 La date de naissance est fournie sous forme de chane au format YYYYMMDD mais doit tre stocke dans
une colonne de type DATE. Clause SQL TO_DATE(:date_naissance,YYYYMMDD) ; Noter le
caractre deux points devant le nom de la colonne date_naissance pour la rfrencer dans le calcul.

 Le numro dadhrent nest pas fourni ; il doit tre calcul laide dune squence. Clause SQL
SEQ_Employe_BIS.NEXTVAL

Document Tellora

Page 179/205

Exploitation Oracle 11g


www.tellora.fr

Avec des enregistrements de longueur fixe, la correspondance entre les champs et les colonnes sont
dfinies par la clause POSITION ; les colonnes qui ne sont pas alimentes par un champ de
lenregistrement peuvent tre spcifies nimporte o dans la liste des colonnes.
Dans cet exemple, les EMPLOYE_BIS de sexe fminin ne doivent pas tre chargs.
Une clause WHEN (sexe = M) est ajoute pour spcifier les enregistrements conserver.

26.3.2 Exemples de fichiers de contrle : Longueur fixe avec limination


denregistrements
LOAD DATA
INFILE *
INTO TABLE Employe_BIS
APPEND
WHEN (sexe = M)
TRAILING NULLCOLS
(
code
SEQ_Employe_BIS.NEXTVAL,
prenom POSITION(01:10),
nom
POSITION(11:22),
sexe
POSITION(23:23),
date_naissance POSITION(24:31) TO_DATE(:date_naissance,YYYYMMDD)
)
BEGINDATA
Pierre
DUPOND
M19660826
2 rue de Matignon 78711 Mantes la Ville
Marise
LEROY
F
125 rue de Champion 75000 Paris
Jean
PEYRAC (de) M19631204
6 rue du Faubourg St Antoine 75000 Paris

26.3.3

Chargement dans deux tables

LOAD DATA
INFILE *
INTO TABLE Employe_BIS_M
APPEND
WHEN ((23) = M)
TRAILING NULLCOLS
(
code
SEQ_Employe_BIS.NEXTVAL,
prenom
POSITION(01:10),
nom
POSITION(11:22),
date_naissance
POSITION(24:31) TO_DATE(:date_naissance,YYYYMMDD)
)
INTO TABLE Employe_BIS_F
APPEND
WHEN ((23) = F)
TRAILING NULLCOLS
(
code
SEQ_Employe_BIS.NEXTVAL,
prenom
POSITION(01:10),
nom
POSITION(11:22)
)
BEGINDATA
Pierre
DUPOND
M19660826
2 rue de Matignon 78711 Mantes la Ville
Marise
LEROY
F
125 rue de Champion 75000 Paris
Jean
PEYRAC (de) M19631204 6 rue du Faubourg St Antoine 75000 Paris

Pour cet exemple, les enregistrements ont une longueur fixe mais les EMPLOYE_BIS doivent tre rpartis
entre deux tables en fonction de leur sexe.

Document Tellora

Page 180/205

Exploitation Oracle 11g


www.tellora.fr

Les deux tables nont pas de colonne sexe et la table des EMPLOYE_BIS de sexe fminin, pas de colonne
date_naissance non plus.

Le fichier de contrle utilise deux clauses INTO TABLE pour spcifier comment alimenter les deux tables.
Dans chaque clause INTO TABLE, une clause WHEN ((23) = X) permet dindiquer si lenregistrement
courant doit tre charg dans la table ou non.
Comme les tables nont pas de colonne sexe, le seul moyen de dsigner le champ correspondant est
dutiliser une notation par position du type (dbut:fin) ; le champ sexe commence (et finit) au 23me
caractre, soit (23:23) qui peut tre abrg en (23).
Chaque clause INTO TABLE a sa propre liste de colonnes.

26.3.4

Chargement dans deux tables avec utilisation dune colonne FILLER

LOAD DATA
INFILE *
INTO TABLE Employe_BIS_M
APPEND
WHEN (sexe = M)
TRAILING NULLCOLS
(
code
SEQ_Employe_BIS.NEXTVAL,
prenom
POSITION(01:10),
nom
POSITION(11:22),
sexe
FILLER
POSITION(23:23),
date_naissance
POSITION(24:31)
TO_DATE(:date_naissance,YYYYMMDD)
)
INTO TABLE Employe_BIS_F
APPEND
WHEN (sexe = F)
TRAILING NULLCOLS
(
code
SEQ_Employe_BIS.NEXTVAL,
prenom
POSITION(01:10),
nom
POSITION(11:22),
sexe
FILLER
POSITION(23:23)
)
BEGINDATA
Pierre
DUPOND
M19660826
2 rue de Matignon 78711 Mantes la Ville
Marise
LEROY
F
125 rue de Champion 75000 Paris
Jean
PEYRAC (de) M19631204
6 rue du Faubourg St Antoine 75000 Paris

Cet exemple est une variante de lexemple prcdent dans lequel lenregistrement correspondant au
sexe est matrialis et nomm pour faciliter sa manipulation, bien quil nalimente pas une colonne des
tables.
Colonne nomme dans la liste des colonnes avec la proprit FILLER ( remplissage ).
Cette colonne peut ensuite tre manipule comme si ctait une colonne de la table (utilise dans
une clause WHEN, dans une clause SQL) mais elle nest pas charge dans la table.

Document Tellora

Page 181/205

Exploitation Oracle 11g


www.tellora.fr

26.4

Chargement de donnes LOB

Cet exemple provient de la documentation Oracle b10825.pdf .


Chargement de donnes partir de fichiers contenant les types LOB.
Control File Contents
LOAD DATA
INFILE 'sample.dat'
INTO TABLE person_table
FIELDS TERMINATED BY ','
(name CHAR(20),
1 ext_fname FILLER CHAR(40),
2 "RESUME" LOBFILE(ext_fname) TERMINATED BY EOF)

Datafile (sample.dat)
Johny Quest,jqresume.txt,
Speed Racer,'/private/sracer/srresume.txt',
Secondary Datafile (jqresume.txt)
Johny Quest
500 Oracle Parkway
...

Deusime Datafile (srresume.txt)


Speed Racer
400 Oracle Parkway
...

26.5

Chargement de formats XML

Il est possible de manipuler des formats XML en enregistrant un schma xsl dans oracle comme type de
donne( par exemple personne.xsd).
IL est ensuite possible charger des donnes xml respectant Ce format dans la table.
Ce chargement peut se faire en utilisant les types suivant :

 Chargement de types XML partir de types Primaires


 Chargement de types XML partir de types BFILE
 Chargement de types XML partir de types LOBFILEs

La documentation ci-dessous vous fournit un exemple dutilisation.


HTTP://DOWNLOAD.ORACLE.COM/DOCS/CD/B19306_01/APPDEV.102/B14259/XDB25LOA.HTM

Document Tellora

Page 182/205

Exploitation Oracle 11g


www.tellora.fr

Example 29-1 Loading Very Large XML


Documents Into Oracle Database Using
SQL*Loader
Cet exemple utilize le fichier de control load_data.ctl pour charger des donnes de type XML dans la
table foo. Le code enregistre le format XMLTYPE cr nomm person.xsd dans la table foo.
Cet exemple est extrait de la documentation oracle xdb25loa.
CREATE TYPE person_t AS OBJECT(name VARCHAR2(100), city VARCHAR2(100));/
BEGIN

Delete schema if it already exists (else error)


DBMS_XMLSCHEMA.deleteSchema(http://www.oracle.com/person.xsd, 4);
END;/
BEGIN
DBMS_XMLSCHEMA.registerschema(http://www.oracle.com/person.xsd,
<schema xmlns=http://www.w3.org/2001/XMLSchema ||
xmlns:per=http://www.oracle.com/person.xsd ||
xmlns:xdb=http://xmlns.oracle.com/xdb ||
elementFormDefault=qualified ||
targetNamespace=http://www.oracle.com/person.xsd> ||
<element name=person type=per:persontype ||
xdb:SQLType= PERSON_T /> ||
<complexType name=persontype xdb:SQLType=PERSON_T> ||
<sequence> ||
<element name=name type=string xdb:SQLName=NAME ||
xdb:SQLType=VARCHAR2/> ||
<element name=city type=string xdb:SQLName=CITY ||
xdb:SQLType=VARCHAR2/> ||
</sequence> ||
</complexType> ||
</schema>,
TRUE,
FALSE,
FALSE);
END;/
CREATE TABLE foo OF XMLType
XMLSCHEMA http://www.oracle.com/person.xsd ELEMENT person;

Here is the content of the control file, load_data.ctl, for loading XMLType data using the registered
XML schema, person.xsd:
LOAD DATA
INFILE *
INTO TABLE foo TRUNCATE
XMLType(xmldata)
FIELDS TERMINATED BY , OPTIONALLY ENCLOSED BY
(
xmldata
)
BEGINDATA
<person xmlns=http://www.oracle.com/person.xsd
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://www.oracle.com/person.xsd
http://www.oracle.com/person.xsd> <name> xyz name 2</name> </person>

Here is the SQL*Loader command for loading the XML data into Oracle Database:
sqlldr [username]/[password] load_data.ctl (optional: direct=y)
In load_data.ctl, the data is present in the control file itself, and a record spanned only one line (it is
split over several lines here, for printing purposes).
In the following example, the data is present in a separate file, person.dat, from the control file,
lod2.ctl. File person.dat contains more than one row, and each row spans more than one line. Here is
the control file, lod2.ctl:

Document Tellora

Page 183/205

Exploitation Oracle 11g


www.tellora.fr

LOAD DATA
INFILE *
INTO TABLE foo TRUNCATE
XMLType(xmldata)
FIELDS(fill filler CHAR(1),
xmldata LOBFILE (CONSTANT person.dat)
TERMINATED BY <!-- end of record -->)
BEGINDATA
0
0
0

The three zeroes (0) after BEGINDATA indicate that three records are present in the data file,
person.dat. Each record is terminated by <!-- end of record -->. The contents of person.dat are
as follows:
<person xmlns=http://www.oracle.com/person.xsd
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://www.oracle.com/person.xsd
http://www.oracle.com/person.xsd>
<name>xyz name 2</name>
</person>
<!-- end of record -->
<person xmlns=http://www.oracle.com/person.xsd
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://www.oracle.com/person.xsd
http://www.oracle.com/person.xsd>
<name> xyz name 2</name>
</person>
<!-- end of record -->
<person xmlns=http://www.oracle.com/person.xsd
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=http://www.oracle.com/person.xsd
http://www.oracle.com/person.xsd>
<name>xyz name 2</name>
</person>
<!-- end of record -->

Here is the SQL*Loader command for loading the XML data into Oracle Database:
sqlldr [username]/[password] lod2.ctl (optional: direct=y)

Document Tellora

Page 184/205

Exploitation Oracle 11g


www.tellora.fr

27

Stratgie de Sauvegardes et Restaurations

La principale responsabilit du DBA est de prendre les mesures ncessaires pour assurer la scurit et la
disponibilit des donnes.

 Il doit restituer les donnes en cas dincident matriel ou derreur de manipulation.


Cette scurit est assure par :

 La mise en uvre dune protection des fichiers sensibles de la base


- Fichiers de contrle
- Fichiers de Redo Log

 La mise en place dune stratgie de sauvegarde/restauration


- Adapte aux contraintes de lentreprise
- Et qui aura t compltement teste et documente

Le DBA doit faire des sauvegardes rgulires de la


base de donnes.

Sauvegardes Physiques

ET

Sauvegardes logiques

Les questions se poser pour dfinir la stratgie sont les suivantes :

 Est-il acceptable de perdre des donnes ?


- si oui sur quelle priode ?

 Est-il possible darrter priodiquement la base ?


- si oui quand et combien de temps ?
- Est-il possible de faire une sauvegarde complte de la base pendant larrt de celle-ci ?

Sil nest pas possible darrter la base ou de faire une sauvegarde complte, il sera toujours possible de
faire des sauvegardes partielles.

La sauvegarde dun base de petits volumes, contenant des donnes stratgiques ou de volumes
importants est diffrente. Par exemple, pour certaines bases de donnes, il sera prfrable de recharger
certaines tables plutt que de les restaurer (gain de temps pour de gros volumes).

Ne pas oublier que le tablespace est lunit de sauvegarde.


Il faudra penser au stockage des tables dans des tablespaces ddis (les grosses tables ou les tables
stratgiques) ou mutualiss (les petites tables de rfrence)

Document Tellora

Page 185/205

Exploitation Oracle 11g


www.tellora.fr

La restauration du fichier de donnes consiste prendre la dernire sauvegarde du fichier de donnes,


de remplacer par cette sauvegarde le fichier manquant ou endommag et appliquer sur cette
sauvegarde les fichiers de Redo Log archivs.
Ceci afin de ramener le fichier de donnes dans ltat o il se trouvait juste avant lincident.

27.1

Les modes NOARCHIVELOG et ARCHIVELOG

En fonction des possibilits darrt et des pertes de donnes (acceptables), on choisira de mettre la base
de donnes en mode ARCHIVELOG ou non.
En cas de passage en mode ARCHIVELOG, il faut tudier :

 O mettre les archives (sur disque ou sur bande) ?


 Combien de jeux de sauvegarde conserve-ton (puration des sauvegardes et des archives) ?

Oracle crit en gnral de manire cyclique dans les groupes de Redo Log en ligne qui forment le journal
de reprise.
Oracle passe au fichier suivant lorsquil en a rempli un.
Lorsque le dernier fichier affect au journal est plein, le processus darrire-plan LGWR (Log Writer)
commence alors craser le contenu des membres du premier groupe de Redo Log.

LorsquOracle est excut en mode ARCHIVELOG, le processus ARCH, effectue une copie dun membre de
Redo Log aprs que le processus LGWR ait fini dcrire.

Document Tellora

Page 186/205

Exploitation Oracle 11g


www.tellora.fr

27.1.1

Le mode NOARCHIVELOG

Un fichier de Redo Log peut tre rutilis immdiatement aprs quun point de synchronisation
(checkpoint) ait eu lieu.
Aprs que le contenu dun fichier de Redo Log ait t cras par une nouvelle criture, les donnes
restaurer sont perdues.
Affichage du mode courant :
Select log_mode from v$database ;
LOG_MODE
NOARCHIVELOG

27.1.2

Le mode ARCHIVELOG

La synchronisation des fichiers de donnes est base sur le numro de squence du fichier de Redo Log
(sauf si le tablespace est en READ ONLY).

rechercher le dernier N de SCN (transaction=9999999).


-- qui correspond la colonne FIRST_CHANGE#.
SQL> select * from v$log_history;
RECID
STAMP
THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TI NEXT_CHANGE#
---------- ---------- ---------- ---------- ------------- -------- -----------1 568375848
1
1
2711661 07/09/05
2714944
2 568375866
1
2
2714944 07/09/05
2715550
3 568375884
1
3
2715550 07/09/05
2716153
4 568375902
1
4
2716153 07/09/05
2716755
5 568375919
1
5
2716755 07/09/05
2717359
6

568375937
1
7 568375954
8 568375971
9 568375989
10 568376006
11 568376024

6
1
1
1
1
1

2717359 07/09/05
2717961
7
2717961 07/09/05
8
2718563 07/09/05
9
2719168 07/09/05
10
2719770 07/09/05
11
2720373 07/09/05

2718563
2719168
2719770
2720373
2720976

En cas de restauration, Oracle a besoin de tous les fichiers de Redo Log partir de celui portant le
numro de squence inscrit dans le fichier de donnes au moment de la sauvegarde. Autrement la
restauration ne sera pas possible.

Si un fichier darchive est perdu, Oracle ne pourra


pas restaurer la base de donnes.

Document Tellora

Page 187/205

Exploitation Oracle 11g


www.tellora.fr

27.1.3

Mettre la base en mode ARCHIVELOG

Ce mode permet de garantir quun groupe de fichiers de Redo Log non archivs ne sera pas cras par
LGWR. En version 9i, mettre la base en ARCHIVELOG ne dmarrait pas automatiquement le processus
ARCH. Il fallait le faire en positionnant le paramtre LOG_ARCHIVE_START  TRUE.

 En cas doublie de positionnement de ce paramtre, cela provoquait un crash de linstance.


Pour dbloquer la situation il fallait lancer la commande ARCHIVE LOG ALL, puis monter la base
(STARTUP MOUNT) et lancer la commande ARCHIVE LOG ALL.

Dmarrer le processus ARCH

 Se charge de larchivage proprement dit


 A partir de la version 10g, placer la base en mode ARCHIVELOG dmarre automatiquement les processus
ARCH0 et ARCH1 lors de louverture de la base de donnes.

Lors de lactivation de larchivage, il est primordial de bien vrifier que tout fonctionne bien et que des
archives sont bien gnres.

27.1.4

Les paramtres du processus

ARCH

Les diffrents paramtres relatifs au mode ARCHIVELOG sont prsents ci-dessous.

- LOG_ARCHIVE_START  (en version 9i)


Dmarre (valeur TRUE) ou non (valeur FALSE, par dfaut) le processus ARCH
- LOG_ARCHIVE_DEST_i = LOCATION=chemin_local
-
(i de 1 10)
Destination de larchivage pour une ENTERPRISE dition (au moins une obligatoire)
Syntaxe simplifie pour une destination locale (au moins une obligatoire)
Exemple :
LOG_ARCHIVE_DEST_1 = LOCATION=d:\oracle\admin\BORA\arch [Pas de blanc pour
location=]
Le rpertoire spcifi doit exister ; il nest pas cr par Oracle.
ATTENTION, lutilisation des derniers paramtres est destine au DATA GUARD.

- LOG_ARCHIVE_FORMAT
Format souhait pour le nom des archives (les 3 sont obligatoires)
%s ou %S : numro de squence du fichier de Redo Log
%t ou %T : numro dinstance
%r ou %R : identifiant de remise zro des fichiers de journalisation
Exemple :
LOG_ARCHIVE_FORMAT = Redo%S_%R%T.arch

Document Tellora

Page 188/205

Exploitation Oracle 11g


www.tellora.fr

- ARCHIVE_LAG_TARGET
Dure maximale en seconde qui doit sparer 2 archivages.
Une valeur nulle dsactive la fonctionnalit (valeur par dfaut).
Valeur autorise : entre 60 (1 minute) et 7200 (2 heures) ; permet de forcer larchivage de faon priodique
et de garantir une priodicit darchivage stable.
Exemple :
Archive_lag_target = 1800
#30 minutes

27.2

Passer la base en mode ARCHIVELOG

Avant de passer la base en mode ARCHIVELOG, arrtez celle-ci et effectuez une sauvegarde froid.
Ne pas oublier de sauvegarder le fichier SPFILE.
En version 11g passer une base de donnes ORACLE en mode ARCHIVELOG consiste monter la base
de donnes et changer son tat. En effet, les destinations darchive et les noms des archives gnres
sont paramtrs par dfaut.

MODE OPERATOIRE
 Arrter la base de donnes
SHUTDOWN IMMEDIATE
 Monter la base
STARTUP MOUNT
 Passer la base en ARCHIVELOG
ALTER DATABASE ARCHIVELOG ;
 Ouvrir la base
ALTER DATABASE OPEN

Aprs avoir pass la base en mode ARCHIVELOG, vrifiez que les archives sont gnres correctement et
apparaissent lemplacement demand, puis arrtez la base de donnes et faites une premire
sauvegarde.

passer la base en mode ARCHIVELOG


Create pfile from spfile ;
alter system set
LOG_ARCHIVE_DEST_1 = location=f:\oracle\oradata\BORA\arch\
scope=SPFILE ;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT=arch%S_%R%T.arc
scope=SPFILE ;
Shutdown immediate;
Startup mount;
Alter database archivelog;
Alter database open;

Document Tellora

Page 189/205

Exploitation Oracle 11g


www.tellora.fr

27.3

Administrer le processus ARCH

La clause ARCHIVE LOG de lordre SQL : ALTER SYSTEM permet dadministrer le processus ARCH aprs
dmarrage de la base :

 Arrter/Dmarrer le processus ARCH


 Archiver manuellement un groupe de fichiers de Redo Log
ALTER SYSTEM ARCHIVE LOG
STOP
| START [ TO destination ]
| GROUP numero [ TO destination ]
;

ALTER

ALTER

ALTER

Arrter le processus ARCH


SYSTEM ARCHIVE LOG STOP;
Dmarrer le processus ARCH
SYSTEM ARCHIVE LOG START;
Archiver le groupe 2 vers une autre destination
SYSTEM ARCHIVE LOG GROUP 2 TO d:\temp ;

Lordre SQL : ALTER SYSTEM ne dure que pendant linstance en cours et ne


dure pas aprs un arrt de la base.

La commande ARCHIVE LOG LIST permet dafficher des informations sur larchivage :

Connect / as sysdba
Connected.
Archive log list
Database log mode
Automatic archival
Archive destination
Oldest online log sequence
Next log sequence to archive
Current log sequence

Archive Mode
Enabled
h:\oracle\oradata\ORCL\archive
6355
6358
6358

- Database log mode = mode de fonctionnement de la base


- Automatic archival = tat du processus ARCH (enabled sil est lanc, disabled sil est arrt)
- Archive destination = destination des archives
- Oldest online log sequence = plus ancien numro de squence des fichiers de Redo Log en ligne
- Next log squence to archive = prochain numro de squence des fichiers de Redo Log archiver
(ligne absente si la base est en NOARCHIVELOG)
- Current log squence = numro de squence des fichiers de Redo Log courants

27.3.1

Forcer larchivage de faon priodique

En rgle gnrale, il est conseill davoir des basculements de fichiers de Redo Log (et donc des
archivages en mode ARCHIVELOG) toutes les 20 30 minutes.

Document Tellora

Page 190/205

Exploitation Oracle 11g


www.tellora.fr

 Plus lactivit est importante, plus il y a de basculement et gnration darchivages !


Pour garantir une priodicit stable, il est possible de spcifier une valeur dans le paramtre
ARCHIVE_LAG_TARGET :

 Indique en secondes la dure maximale qui doit sparer deux archivages


 Une valeur nulle dsactive la fonctionnalit (valeur par dfaut)
 Valeurs autorises : entre 60 (une minute) et 7200 (2 heures)
 Le paramtre est dynamique

Document Tellora

Page 191/205

Exploitation Oracle 11g


www.tellora.fr

28

Sauvegardes

Pour connatre lemplacement et le nom des fichiers de la base, il existe une astuce qui consiste
gnrer la trace du fichier de contrle.
Cette trace vous permettra de connatre lemplacement et le nom des fichiers de la base de donnes
mais aussi de recrer le fichier de contrle en cas de celui-ci ou en cas de restauration partielle de la
base de donnes.
SQL> show parameter user_dump_dest
NAME
TYPE
VALUE
--------------------- ---------- -----------------------------diagnostic_dest
string
D:\Oracle\admin\COLLEGE\trace

On possde un script de recration qui a t ralis avec la commande :


ALTER DATABASE BACKUP CONTROLFILE TO TRACE ;

*** 2004-06-14 10:46:04.000


# The following are current System-scope REDO Log Archival related
# parameters and can be included in the database initialization file.
#
# Below are two sets of SQL statements, each of which creates a new
# control file and uses it to open the database. The first set opens
# the database with the NORESETLOGS option and should be used only if
# the current versions of all online logs are available. The second
# set opens the database with the RESETLOGS option and should be used
# if online logs are unavailable.
# The appropriate set of statements can be copied from the trace into
# a script file, edited as necessary, and executed when there is a
# need to re-create the control file.
#
#
Set #1. NORESETLOGS case
#
# The following commands will create a new control file and use it
# to open the database.
# Data used by the recovery manager will be lost. Additional logs may
# be required for media recovery of offline data files. Use this
# only if the current version of all online logs are available.
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE OPTIMUM NORESETLOGS NOARCHIVELOG

SET STANDBY TO MAXIMIZE PERFORMANCE


MAXLOGFILES 32
MAXLOGMEMBERS 5
MAXDATAFILES 128
MAXINSTANCES 16
MAXLOGHISTORY 1815
LOGFILE
GROUP 1 (
D:\ORACLE\ORADATA\OPTIMUM\REDO01A.LOG,
D:\ORACLE\ORADATA\OPTIMUM\REDO01B.LOG
) SIZE 10M,
GROUP 2 (
D:\ORACLE\ORADATA\OPTIMUM\REDO02A.LOG,
D:\ORACLE\ORADATA\OPTIMUM\REDO02B.LOG
) SIZE 10M,
GROUP 3 (
D:\ORACLE\ORADATA\OPTIMUM\REDO03A.LOG,
D:\ORACLE\ORADATA\OPTIMUM\REDO03B.LOG
) SIZE 10M

STANDBY LOGFILE
DATAFILE
D:\ORACLE\ORADATA\OPTIMUM\SYSTEM01.DBF,
D:\ORACLE\ORADATA\OPTIMUM\UNDOTBS01.DBF,
D:\ORACLE\ORADATA\OPTIMUM\ELEVE01.DBF,
D:\ORACLE\ORADATA\OPTIMUM\INDX01.DBF,

Document Tellora

Page 192/205

Exploitation Oracle 11g


www.tellora.fr

D:\ORACLE\ORADATA\OPTIMUM\OPDEF01.DBF
CHARACTER SET WE8ISO8859P15
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;
# Commands to add tempfiles to temporary tablespaces.
# Online tempfiles have complete space information.
# Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE D:\ORACLE9\ORADATA\OPTIMUM\TEMP01.DBF
SIZE 10485760 REUSE AUTOEXTEND OFF;
# End of tempfile additions.
#

Le fichier trace .TRC qui est cr avec cette commande ne peut pas tre lanc directement.
Il faut exclure toutes les lignes de dbut de fichier qui ne sont pas des commentaires et vrifier la
syntaxe de la commande STARTUP.
Cette commande ne prcise pas de fichier de paramtres. Il faut donc rajouter la fin de la commande
STARTUP le nom et le chemin du fichier de paramtres.
Pour se connecter sous linstance o lon souhaite ouvrir la base et lancer le script de cration du fichier
de contrle, la base de donnes doit tre ltat NOMOUNT.
Aprs excution, la base est ouverte et le fichier de contrle rcupr.

28.1

Sauvegarde base arrte

Les sauvegardes hors ligne se produisent lorsque la base a t arrte proprement.


Pas de panne instance ou shutdown abort !
Les fichiers suivants doivent tre sauvegards :

 Fichiers de contrle
 Fichiers de donnes
 Fichiers de Redo Log en ligne
 Fichier init.ora et spfile.ora (optionnel)
Une sauvegarde de tous les fichiers de la base lorsque la base de donnes est ferme permet dobtenir
une image complte de la base telle quelle existait au moment de son arrt.

Document Tellora

Page 193/205

Exploitation Oracle 11g


www.tellora.fr

Une copie des fichiers avec la base de donnes ouverte ne


serait pas valide, moins de raliser une sauvegarde en ligne !

Une sauvegarde hors ligne suivant un arrt anormal de la base de donnes (ABORT) serait considre
comme incohrente.

 Lors dune restauration, son utilisation ne serait pas garantie et demanderait davantage defforts.

28.2

Sauvegarde base en ligne

Vous pouvez utiliser les sauvegardes en ligne pour nimporte quelle base de donnes qui fonctionne en
mode ARCHIVELOG.

 Dans ce mode, les fichiers de Redo Log en ligne sont archivs, ce qui gnre un journal complet de
toutes les transactions effectues sur la base de donnes.

Les fichiers suivants doivent tre sauvegards :

 Fichier de contrle
 Fichiers de donnes (sauvegards chaud)
 Fichier init.ora et spfile.ora (optionnel)

Une base de donnes peut tre restaure compltement partir dune


sauvegarde en ligne, en ajoutant une rcupration des donnes partir des
fichiers de Redo Log archivs.

Depuis la version 8i, Oracle propose un outil, le LOGMINER (package DBMS_LOGMNR), qui permet
danalyser les fichiers de Redo Log et de rcuprer les ordres SQL de mise jour excuts par les
transactions (ordres REDO) ainsi que les ordres SQL inverses (ordres UNDO).
Cet outil peut thoriquement tre utilis pour rcuprer des ordres SQL permettant de rejouer les
transactions pour une restauration incomplte.
Dans la pratique, la mise en uvre nest pas immdiate et le traitement de rcupration peut tre long.

28.2.1

Sauvegarde du fichier de contrle

Le fichier de contrle doit tre sauvegard lors de chaque sauvegarde complte ou partielle de la base
de donnes.
Entre deux sauvegardes normales , il est conseill de sauvegarder le fichier de contrle aprs toute
restructuration importante de celle-ci (ajout/dplacement de fichiers de donnes ou de Redo Log)

Document Tellora

Page 194/205

Exploitation Oracle 11g


www.tellora.fr

Pour une sauvegarde base ouverte, utiliser lordre SQL : ALTER DATABASE :
ALTER DATABASE BACKUP CONTROLFILE TO
[ nouveau_nom | trace ] [ reuse ]
;

En gnral, les sauvegardes binaires du fichier de contrle sont suffisantes.


ALTER DATABASE BACKUP CONTROLFILE
TO f:\oracle\backup\ORCL\control.bak;

Ne pas faire une copie du fichier de contrle au niveau du


systme dexploitation alors que la base est ouverte car celle-ci
serait inexploitable.

28.3

Sauvegarde partielle dun tablespace ONLINE

Lorsque le tablespace est pass en mode BACKUP, Oracle arrte dcrire les checkpoints dans len-tte
des fichiers de donnes du tablespace. Par contre, lactivit de lecture et dcriture se poursuit
normalement.
Une fois la sauvegarde termine, le END BACKUP permet de sortir le tablespace du mode BACKUP et
dautoriser Oracle reprendre les CHECKPOINTS dans len-tte des fichiers de donnes du tablespace.
Les fichiers sauvegards sont incohrents mais Oracle a conserv la date et le numro du dernier
CHECKPOINT dans len-tte de chaque fichier. Ainsi, il pourra appliquer au fichier de donnes toutes les
modifications postrieures au dernier CHECKPOINT ( partir des fichiers de Redo Log archivs) lors dune
restauration.

Cette sauvegarde nest possible quen mode ARCHIVELOG.


En supplment, il est important de faire une sauvegarde du
fichier de contrle et bien documenter ce qui a t sauvegard.

Il est techniquement possible de mettre en parallle des sauvegardes ONLINE de plusieurs tablespaces
en mode BACKUP, mais ce nest pas recommand car lactivit sur les fichiers de Redo Log est
augmente.

Une sauvegarde ONLINE dun tablespace qui nest pas en mode


BACKUP est gnralement inexploitable.

Document Tellora

Page 195/205

Exploitation Oracle 11g


www.tellora.fr

Loubli du END BACKUP ne gnre aucun message de la part dOracle, pas mme dans le fichier des
alertes.

 Ne pas faire
Alter tablespace tbs1 begin backup ;
Alter tablespace tbs2 begin backup ;

sauvegarde des tablespaces ------

Alter tablespace tbs1 end backup ;


Alter tablespace tbs2 end backup ;

 Faire plutt
Alter tablespace tbs1 begin backup ;

sauvegarde du tablespace tbs1 --Alter tablespace tbs1 end backup ;


Alter tablespace tbs2 begin backup ;

sauvegarde du tablespace tbs2 --Alter tablespace tbs2 end backup ;

Si un arrt anormal de la base (ABORT) se produit alors quun tablespace


est en mode BACKUP, une restauration du tablespace sera ncessaire au
redmarrage

 partir de la sauvegarde prcdente du tablespace.

Un tablespace READ ONLY peut tre sauvegard ONLINE sans le mettre en mode BACKUP car il ny a pas
dactivit de mise jour dans ce tablespace. Il ny a pas de risque de donnes corrompues.

28.4

Sauvegarde de tous les tablespaces de la base ONLINE

La version 10g permet de placer tous les datafiles de la base de donnes dans le mode de sauvegarde
ONLINE avec une seule commande. Vous navez plus besoin de placer chaque tablespace dans le mode
de sauvegarde ONLINE un par un.
Pour cela, utiliser la commande :

ALTER DATABASE BEGIN BACKUP ;


-----------------ALTER DATABASE END BACKUP ;

Pour placer tous les fichiers de la base de donnes dans le mode de sauvegarde ONLINE, la base doit
tre ouverte (OPEN) et en mode ARCHIVELOG.

Document Tellora

Page 196/205

Exploitation Oracle 11g


www.tellora.fr

Pendant la sauvegarde, il nest plus possible dexcuter un SHUTDOWN normal, de placer un tablespace
dans mode READ ONLY, ou dans le mode sauvegarde en ligne (ONLINE BACKUP MODE) ou de mettre un
tablespace OFFLINE avec les options habituelles.
Toutefois, quand vous excutez la commande ALTER DATABASE BEGIN BACKUP, tous les fichiers
inexistants, OFFLINE ou READ ONLY, sont ignors et le processus continue.
Si vous avez un datafile avec un statut OFFLINE un message davertissement est affich.

28.5

Vues du dictionnaire de donnes

Plusieurs vues du dictionnaire permettent dobtenir des informations sur larchivage :

V$DATABASE : mode de fonctionnement de la base (colonne LOG_MODE)


V$INSTANCE : statut du processus ARCH (colonne ARCHIVER)
V$LOG : statut des groupes vis vis de larchivage (colonne ARCHIVED)
V$ARCHIVED_LOG : informations sur les fichiers de Redo Log archivs
V$ARCHIVED_DEST : informations sur les destinations darchivage

V$ARCHIVED_LOG
RECID

Identifiant de lenregistrement

NAME

Chemin complet de larchive

SEQUENCE#

Numro de squence du fichier de Redo Log correspondant

FIRST_CHANGE#

Plus petit numro de SCN (numro de transaction) crit dans


larchive

FIRST_TIME

Date et heure du plus petit numro de SCN

NEXT_CHANGE#

Plus grand numro SCN crit dans larchive

NEXT_TIME

Date et heure du plus grand numro de SCN

COMPLETION_TIME

Date et heure de larchivage

V$ARCHIVED_DEST
DEST_NAME

Nom de la destination

DESTINATION

Chemin complet de la destination

STATUS

Statut de la destination (VALID, ERROR, )

ERROR

Message derreur (en cas derreur)

Document Tellora

Page 197/205

Exploitation Oracle 11g


www.tellora.fr

28.6

Stratgie recommande par Oracle

Le Grid Control permet de dfinir une stratgie de sauvegarde recommande par Oracle, qui permet de
protger les donnes et fournit des possibilits de recouvrement de la base de donnes pour les 24
heures.
La stratgie recommande par Oracle utilise la sauvegarde incrmentale et les caractristiques de mises
jour des sauvegardes incrmentales proposes dans Recovery Manager (RMAN), en fournissant un
processus de recouvrement plus rapide que si lon applique les archives de Redo log.
La stratgie Oracle prend une copie complte de la base de donnes pour la premire sauvegarde.
Il sagit dune sauvegarde complte de la base, suivie de sauvegardes incrmentales sur disque
effectues tous les jours des heures prcises via RMAN.
Comme ces sauvegardes sur disque sont mmorises, vous pouvez toujours effectuer un recouvrement
complet de la base ou un recouvrement de limage faite un moment donn le jour davant.
Une fois que vous avez complt et accept les options de lcran, votre base sera automatiquement
sauvegarde.

28.7

Recover Manager (RMAN)

RMAN (Recovery Manager) est un outil qui accomplit une bonne partie du travail la place du DBA dans
le but de protger la base de donnes.
Des oprations qui demandent du temps et qui sont dlicates raliser sont excutes avec RMAN au
moyen de quelques commandes.
Lors de lemploi de lutilitaire RMAN (Recovery Manager), vous navez pas besoin de placer explicitement
chaque tablespace dans un tat de sauvegarde.
RMAN lit les blocs de donnes de la mme manire quOracle le fait lors de requtes. Il ny a plus aucun
risque de corruption de fichier sauvegard.

RMAN peut effectuer de nombreuses oprations identiques pour la plupart celles que vous pouvez
raliser manuellement :

 Copie de fichiers de bases de donnes :


RMAN peut crer des copies images de fichiers de donnes ou de contrle ce qui revient accomplir une
sauvegarde chaud.

 Cration dune base de donnes duplique :


RMAN peut crer une copie de votre base de donnes sur la mme machine ou sur une machine diffrente.
Cette base peut avoir le mme nom que votre base actuelle ou un nom diffrent.

 Cration dune base de donnes de secours :


RMAN peut crer une base de donnes de secours qui servira reprendre la fonction de base principale en
cas de dfaillance de cette dernire.
Rcupration de tablespace jusqu un point donn dans le temps : TSPITR (Tablespace Point-In-Time
Recovery)
RMAN peut effectuer une rcupration dun tablespace jusqu un point dans le temps. Il est possible ainsi
de limiter la perte des donnes en rtablissant celui-ci jusquau point prcdant lincident. Les autres
parties de votre base restent actuelles.

Document Tellora

Page 198/205

Exploitation Oracle 11g


www.tellora.fr

Exemple de sauvegarde RMAN


connect target
run {
configure device type DISK parallelism 1;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to
C:\sav_ora\autobackup\MABASE\SPFCTL_%d_%T_%F.BCK;
sql ALTER SYSTEM ARCHIVE LOG CURRENT;
sql ALTER SYSTEM ARCHIVE LOG CURRENT;
sql ALTER SYSTEM CHECKPOINT;
backup as compressed backupset archivelog
from time sysdate-7 until time sysdate
format C:\sav_ora\arch\MABASE\Arch_%d_%T_%s%p
tag = ARCH_MABASE
maxsetsize 4G ;
backup as compressed backupset database
format C:\sav_ora\db\MABASE\DBfull_%d_%T_%s%p
tag = MABASE
MAXSETSIZE 4G
FILESPERSET=3
include current controlfile;
sql ALTER SYSTEM CHECKPOINT;
sql ALTER SYSTEM ARCHIVE LOG CURRENT;
sql ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
crosscheck backup device type disk;
delete expired backup;
delete obsolete redundancy 7 device type disk;
backup current controlfile format C:\sav_ora\db\MABASE\CTL_%d_%T_%s%p;
}

Document Tellora

Page 199/205

Exploitation Oracle 11g


www.tellora.fr

28.8

Le Flash Back

Le flashback permet de rcuprer un ensemble de donnes ou dobjets dans le pass puis de les
rinjecter dans la base de donnes. La technologie dOracle 10g ou 11g, offre la capacit dinterroger
des versions anciennes de schma dobjets ou de donnes.
Le flashback a t cr pour rparer facilement les donnes corrompues dune table par un batch,
en rinjectant dans la base de donnes les donnes rcupres avant le passage du batch grce au
flashback. Le flashback permet un retour arrire dans la base de donnes afin de slectionner des objets
ou parties dobjets pour les rinjecter dans la version actuelle de la base de donnes.
La version 9i introduisait la notion de flashback query pour fournir un mcanisme simple afin de
rparer les erreurs humaines.
Oracle 10g et 11g tendent la technologie flashback pour assurer vite et facilement une rparation
tous les niveaux :

 Flashback database ; vous laisse rapidement ramener votre base un point dans le temps en rparant
toutes les modifications apportes depuis cet instant.

 Flashback table ; vous permet de retrouver rapidement une table et son contenu un moment dans le
pass.

 Flashback Query ; vous laisse voir les modifications apportes par une transaction une ou plusieurs
donnes, accompagnes de ses mtadonnes.

Objet
Database

Table

Transaction

Scnario

Flashback

DROP USER

Flashback database

TRUNCATE TABLE

Flashback database

Jobs Batchs

Flashback database

DROP TABLE

Flashback Table

UPDATE avec clause WHERE


errone

Flashback Table

Comparer des donnes passes


avec des donnes actuelles

Flashback Transaction

Excuter un job 2 fois car on


nest pas sr de la validit des
objets

Flashback Transaction

Document Tellora

Page 200/205

Exploitation Oracle 11g


www.tellora.fr

29

Restaurations

Dans une restauration, cest lenchanement des actions qui est compliqu, pas la commande
RECOVER en elle-mme.

NE PAS SE PRECIPITER.
Avant de commencer toute opration de restauration, faire si possible une
sauvegarde complte de la base endommage. Elle fournit un point de retour
en cas daggravation de la situation par une mauvaise manipulation.
Toutes les oprations de restauration ncessitent le privilge SYSDBA.

Lors dun problme de perte de fichier, la base de donnes reste bloque ltat NOMOUNT sil sagit du
fichier de contrle, ou ltat MOUNT sil sagit dun fichier de donnes.

29.1

La commande RECOVER

Il existe trois variantes de la commande RECOVER :

 RECOVER DATABASE : Tous les fichiers de la base qui ncessitent une restauration sont traits.
 RECOVER TABLESPACE : Tous les fichiers des tablespaces cits en paramtre qui ncessitent une


restauration, sont traits.


RECOVER DATAFILE : Seuls les fichiers cits en paramtre, sils ncessitent une restauration, sont
traits.

Document Tellora

Page 201/205

Exploitation Oracle 11g


www.tellora.fr

RECOVER [AUTOMATIC] [FROM location]


DATABASE [ UNTIL CANCEL
| UNTIL TIME YYYY-MM-DD:HH24:MI:SS
| UNTIL CHANGE integer ]
[ USING BACKUP CONTROLFILE ]

Dans les trois cas, la commande RECOVER est capable de dterminer seule, quels sont les fichiers de
Redo Log appliquer sur les diffrents fichiers lors de la restauration.
Elle recherche les fichiers de Redo Log archivs quelle souhaite appliquer dans le rpertoire dfini par la
valeur actuelle du paramtre LOG_ARCHIVE_DEST_1 du fichier spfile.
Si les fichiers de Redo Log archivs ne sont pas lemplacement attendu (soit parce que la destination
des archives a chang, soit parce que les archives ont t archives sur bande), il faudra intervenir pour
aider la commande RECOVER trouver lemplacement.
Par dfaut, la commande RECOVER fonctionne en mode manuel ; elle demande confirmation de
lemplacement de chaque fichier de Redo Log archiv quelle sapprte appliquer.
Il est possible alors :

 de valider (pour indiquer que larchive est bien lemplacement indiqu)


 dindiquer un autre emplacement si larchive nest pas/plus lendroit attendu
 de taper AUTO pour passer en mode automatique (voir ci-dessous) ou de taper CANCEL pour arrter
lopration

29.1.1

Exemples de restaurations

 AUTOMATIC = la restauration se fera de faon automatique sans demander loprateur de confirmer le


passage de chaque fichier darchive.
SQL> RECOVER DATABASE
ORA-00279: change 44629 generated at 08/07/2001 16:15:55 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORCL\ARCH\ORCL00002.ARC
ORA-00280: change 44629 for thread 1 is in sequence #2
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
--- rponse saisie --d:\oracle\oradata\ORCL\temp\ORCL00002.arc

 FROM location = prcise Oracle lemplacement des archives de Redo Log


SQL> RECOVER DATABASE FROM d:\oracle\oradata\test\temp
ORA-00279: change 44629 generated at 08/07/2001 16:15:55 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\TEST\TEMP\TEST00002.ARC
ORA-00280: change 44629 for thread 1 is in sequence #2
ORA-00279:
ORA-00289:
ORA-00280:
ORA-00278:
recovery

change 45013 generated at 08/08/2001 06:59:49 needed for thread 1


suggestion : D:\ORACLE\ORADATA\TEST\TEMP\TEST00003.ARC
change 45013 for thread 1 is in sequence #3
log file D:\ORACLE\ORADATA\TEST\TEMP\TEST00002.ARC no longer needed for this

Log applied.
Media recovery complete.
SQL>

 UNTIL CANCEL = Prcise Oracle que la restauration sarrte lorsque loprateur saisit CANCEL

Document Tellora

Page 202/205

Exploitation Oracle 11g


www.tellora.fr

SQL> RECOVER DATABASE


ORA-00279: change 44629 generated at 08/07/2001 16:15:55 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORCL\ARCH\ORCL00002.ARC
ORA-00280: change 44629 for thread 1 is in sequence #2
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
--- rponse saisie --d:\oracle\oradata\ORCL\temp\ORCL00002.arc
ORA-00279: change 45013 generated at 08/08/2001 06:59:49 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORCL\ARCH\ORCL00003.ARC
ORA-00280: change 45013 for thread 1 is in sequence #3
ORA-00278: log file d:\oracle\oradata\ORCL\temp\ORCL00002.arc no longer needed for this
recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
--- rponse saisie --cancel
Media recovery cancelled.

 UNTIL TIME = Prcise la date et lheure darrt de la restauration, en cas de restauration partielle.
La condition darrt est spcifie par une date et une heure sous forme dune chane entre apostrophes au
format YYYY-MM-DD:HH24:MI:SS.
La fonction TO_DATE peut tre utilise pour la mise en forme de la date :
set until time TO_DATE(02/24/2004 13:13:00,MM/DD/YYYY HH24:MI:SS)
SQL> recover until time 2004-01-26:11:08:18;
ORA-00279: changement 72152 gnr 01/25/2004 15:51:23 requis pour thread 1
ORA-00289: suggestion : D:\ORACLE9\ADMIN\COLLEGE\ARCH\REDO00023.ARCH
ORA-00280: le changement 72152 pour le thread 1 se trouve au no de squence 23

 UNTIL CHANGE integer= Prcise le numro de transaction (SCN) darrt en cas de restauration partielle.
La condition darrt est spcifie par un numro de changement (numro de transaction).

 USING BACKUP CONTROLFILE = indique Oracle quune sauvegarde du fichier de contrle est utilise.
Lopration RECOVER peut tre arrte temporairement puis reprise ultrieurement ; dans ce cas, elle
redmarre lendroit o elle stait arrte.

Si le RECOVER est interrompu avant la fin, la base ne peut pas


tre ouverte. Il est obligatoire, soit daller jusquau bout, soit de
demander explicitement une restauration incomplte avec
loption UNTIL.

Cette squence montre la possibilit de dsigner un autre emplacement pour les archives, la possibilit
darrter lopration en cours de route et limpossibilit dans ce cas douvrir la base (la restauration nest
pas complte).

Document Tellora

Page 203/205

Exploitation Oracle 11g


www.tellora.fr

SQL> RECOVER DATABASE


ORA-00279: change 44629 generated at 08/07/2001 16:15:55 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORCL\ARCH\ORCL00002.ARC
ORA-00280: change 44629 for thread 1 is in sequence #2
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
--- rponse saisie --d:\oracle\oradata\ORCL\temp\ORCL00002.arc
ORA-00279: change 45013 generated at 08/08/2001 06:59:49 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\ORCL\ARCH\ORCL00003.ARC
ORA-00280: change 45013 for thread 1 is in sequence #3
ORA-00278: log file d:\oracle\oradata\ORCL\temp\ORCL00002.arc no longer needed for this
recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
--- rponse saisie --cancel
Media recovery cancelled.
SQL> ALTER DATABASE OPEN ;

Les fichiers de Redo Log archivs attendus par Oracle peuvent tre identifis
grce la vue V$RECOVERY_LOG !

Un RECOVER lanc en mode manuel, peut aussi tre pass en mode automatique en tapant AUTO sur
linvite.
Si toutes les archives sont un autre endroit que celui attendu, ou ramenes dune bande un autre
endroit que celui attendu, il est possible de spcifier cet emplacement puis de lancer le RECOVER en
mode automatique.
Le RECOVER utilise alors lemplacement indiqu comme source des archives, ne demande pas
confirmation et applique les archives.
Une source diffrente de lemplacement attendu pour les fichiers de Redo Log archivs peut tre
indique (par exemple lemplacement des fichiers darchives) :

 Dans la commande RECOVER :


RECOVER FROM d:\temp DATABASE
;

 Les commandes :
SET LOGSOURCE d:\temp
RECOVER DATABASE
;

Si toutes les archives ne peuvent pas tre ramenes dun seul coup sur disque, il est possible de
travailler srie par srie :

 Rcuprer la premire srie darchives un emplacement


 Lancer le RECOVER en automatique en spcifiant lemplacement

Document Tellora

Page 204/205

Exploitation Oracle 11g


www.tellora.fr

 Exemple de squence pour une restauration partir dune source darchives alternative.
SQL> SET LOGSOURCE d:\oracle\oradata\test\temp
SQL> SET AUTORECOVERY ON
SQL> RECOVER DATABASE
ORA-00279: change 44629 generated at 08/07/2001 16:15:55 needed for thread 1
ORA-00289: suggestion : D:\ORACLE\ORADATA\TEST\TEMP\TEST00002.ARC
ORA-00280: change 44629 for thread 1 is in sequence #2
ORA-00279:
ORA-00289:
ORA-00280:
ORA-00278:
recovery

change 45013 generated at 08/08/2001 06:59:49 needed for thread 1


suggestion : D:\ORACLE\ORADATA\TEST\TEMP\TEST00003.ARC
change 45013 for thread 1 is in sequence #3
log file D:\ORACLE\ORADATA\TEST\TEMP\TEST00002.ARC no longer needed for this

ORA-00279:
ORA-00289:
ORA-00280:
ORA-00278:
recovery

change 45371 generated at 08/08/2001 07:00:01 needed for thread 1


suggestion : D:\ORACLE\ORADATA\TEST\TEMP\TEST00004.ARC
change 45371 for thread 1 is in sequence #4
log file D:\ORACLE\ORADATA\TEST\TEMP\TEST00003.ARC no longer needed for this

ORA-00279:
ORA-00289:
ORA-00280:
ORA-00278:
recovery

change 45691 generated at 08/08/2001 07:00:15 needed for thread 1


suggestion : D:\ORACLE\ORADATA\TEST\TEMP\TEST00005.ARC
change 45691 for thread 1 is in sequence #5
log file D:\ORACLE\ORADATA\TEST\TEMP\TEST00004.ARC no longer needed for this

Log applied.
Media recovery complete.

Document Tellora

Page 205/205