Oracle 11g Exploitation
Oracle 11g Exploitation
Oracle 11g Exploitation
Exploitation
Document Tellora
Page 1/205
Sommaire
1
Prsentation .......................................................................................................... 7
1.1
1.2
1.2.1
1.2.2
1.2.3
1.3
2
La documentation ................................................................................................ 12
2.1
4.2
5.1.1
5.1.2
5.2
5.3
7.2
Installation du client...................................................................................... 27
Connexion utilisateur..................................................................................... 30
8.1.1
8.1.2
8.2
8.3
8.4
8.4.1
9.2
9.3
9.4
9.5
10
10.1
10.2
10.3
10.4
Document Tellora
Page 2/205
10.6
11
11.1
11.2
11.3
11.4
12
12.1
Introduction ................................................................................................. 50
12.2
12.2.1
13.1
13.2
13.3
13.4
13.5
14
14.1
14.2
15
15.1
15.2
15.3
15.4
EZCONNECT ................................................................................................. 75
15.5
16
16.1
16.2
16.2.1
16.3
16.4
17
16.4.1
16.4.2
16.4.3
16.4.4
16.4.5
16.4.6
16.4.7
16.4.8
17.1
17.2
17.3
18
18.1
Document Tellora
Page 3/205
18.2.2
18.2.3
18.2.4
18.2.5
18.2.6
18.2.7
Crer un tablespace avec une taille de bloc non standard .................................... 103
18.2.8
18.2.9
18.2.10
19
18.2.1
19.1
19.2
20
19.2.1
19.2.2
20.1
20.2
20.3
20.4
20.4.1
20.4.2
20.5
20.5.1
20.5.2
20.6
21
21.1
21.2
21.3
21.3.1
21.3.2
21.3.3
21.3.4
21.3.5
21.4
21.5
22
22.1
23
23.1
23.2
23.2.1
23.2.2
23.2.3
23.2.4
23.2.5
23.2.6
Document Tellora
Page 4/205
23.3
23.3.1
23.3.2
23.3.3
23.4
23.4.1
23.4.2
23.4.3
23.5
23.5.1
23.5.2
23.5.3
23.5.4
23.6
23.6.1
23.6.2
23.7
24
23.7.1
23.7.2
23.7.3
23.7.4
23.7.5
24.1
24.2
24.3
24.3.1
24.4
25
Mthode dextraction des donnes avant et aprs data pump ........................... 161
24.4.1
24.4.2
25.1
25.2
25.2.1
25.2.2
25.2.3
25.3
25.4
25.4.1
25.4.2
25.4.3
25.4.4
25.4.5
25.5
25.5.1
25.5.2
25.5.3
25.6
Document Tellora
Page 5/205
26.1
26.2
26.3
26.3.1
26.3.4
Chargement dans deux tables avec utilisation dune colonne FILLER ................... 181
26.4
26.5
27
27.1
27.1.1
27.1.2
27.1.3
27.1.4
27.2
27.3
27.3.1
28
28.1
28.2
28.2.1
28.3
28.4
28.5
28.6
28.7
28.8
29
29.1
29.1.1
Document Tellora
Page 6/205
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
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).
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
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.
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
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
1.2.1
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
1.2.2
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.
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
La documentation
Document Tellora
Page 12/205
Document Tellora
Page 13/205
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.
Tables et index
Directory
Vues, squences et synonymes
Programmes PL/SQL (procdures, fonctions, packages, triggers)
Document Tellora
Page 14/205
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 :
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.
Document Tellora
Page 15/205
Document Tellora
Page 16/205
Outils dadministration
Trois outils sont prsents pour administrer une base de donnes Oracle
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
Document Tellora
Page 17/205
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
COL
ADRESSE
COL
PRIXUNIT FORMAT
CLEAR
FORMAT
PAUSE
SHOW
TIMING ON|OFF, provoque laffichage dinformations sur le temps coul, le nombre dE/S aprs chaque
requte
Document Tellora
Page 18/205
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
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
http://serveur[:port]/isqlplusdba
Document Tellora
Page 19/205
Document Tellora
Page 20/205
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
-x <SID>
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
Document Tellora
Page 22/205
Larchitecture OFA
/app/oracle/admin/orcl/
Adump
Dpdump
pfile
/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
BIN
Document Tellora
Page 24/205
Installation Oracle
Linstalleur OUI (Oracle Universal Installeur) est un outil dinstallation Oracle compatible OFA (Oracle
flexible Architecture).
Si vous choisissez de crer une base de donnes pendant linstallation dOracle, vous devrez rpondre
quelques questions permettant de configurer votre base de donnes.
Document Tellora
Page 25/205
Document Tellora
Page 26/205
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)
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
Architecture Oracle
Larchitecture oracle est constitue dune instance et dune base de donnes appele database.
Une instance est constitue :
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
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
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.
Mmoire prive des diffrents processus distribue au moment de la connexion dun client.
Pour un processus serveur, la PGA contient :
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
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
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
Document Tellora
Page 32/205
Rgles :
Les valeurs multiples sont spcifies entre parenthses, spares par des virgules
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.
Document Tellora
Page 33/205
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.
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 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.
8.4.1
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
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 ;
Document Tellora
Page 35/205
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.
SQLPLUS /nolog
SQL> Connect CHARLY/monpass@bora
Connect.
SQL> Connect SYSTEM/manager@bora
Connect.
$ Export ORACLE_SID=TAHITI
$ sqlplus /nolog
SQL> Connect /as sysdba
Connect.
Document Tellora
Page 36/205
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.
Document Tellora
Page 37/205
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.
Set ORACLE_SID=orcl
Sqlplus /NOLOG
Connect as sysdba
export ORACLE_SID=orcl
echo ORACLE_SID
orcl
Sqlplus /NOLOG
Connect as sysdba
Document Tellora
Page 38/205
10
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
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
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.
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
10.2
159383552
788204
141293844
16777216
524288
bytes
bytes
bytes
bytes
bytes
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;
bytes
bytes
bytes
bytes
bytes
Document Tellora
Page 41/205
10.3
159383552
788204
141293844
16777216
524288
bytes
bytes
bytes
bytes
bytes
- 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.
Document Tellora
Page 42/205
10.4
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
159383552
788204
141293844
16777216
524288
bytes
bytes
bytes
bytes
bytes
Document Tellora
Page 43/205
10.5
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 :
10.6
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.
Document Tellora
Page 44/205
Document Tellora
Page 45/205
11
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.
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
Un fichier de paramtres serveur peut tre export au format texte par lordre SQL :
CREATE SPFILE [ = nom_pfile ] FROM PFILE [ = nom_spfile ]
;
se connecter as sysdba
SQL> connect /@tahiti as sysdba
Connect.
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
11.2
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 ]
;
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
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
11.3
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 ]
;
Document Tellora
Page 48/205
11.4
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
Document Tellora
Page 49/205
12
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 :
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.
Document Tellora
Page 50/205
le support du traitement des donnes dans les diffrentes reprsentations de caractres utiliss par le
matriel
La variable denvironnement NLS_LANG qui dfinit lencodage de caractres dun terminal client :
o
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 :
le support du traitement des donnes dans les diffrentes reprsentations de caractres utiliss par le
matriel.
Document Tellora
Page 51/205
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
AMERICAN
BYTE
FALSE
AMERICA
Document Tellora
Page 52/205
BINARY
ANSI
LINGUISTIC
12.2
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.
?/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
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>
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 :
12.2.1
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.
Document Tellora
Page 54/205
Document Tellora
Page 55/205
13
Document Tellora
Page 56/205
13.1
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
Document Tellora
Page 57/205
1280K MAXSIZE
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
Document Tellora
Page 59/205
13.2
Document Tellora
Page 60/205
Document Tellora
Page 61/205
Document Tellora
Page 62/205
13.3
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
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
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
13.4
13.5
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
Document Tellora
Page 66/205
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 :
Document Tellora
Page 67/205
Et :
>emctl status agentpour le status de lagent dentreprise manager
Ou la dmarrer avec :
>emctl start dbconsole
Document Tellora
Page 68/205
14
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
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
Document Tellora
Page 69/205
Document Tellora
Page 70/205
15
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.
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
15.1
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.
Document Tellora
Page 72/205
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))
)
)
Document Tellora
Page 73/205
15.2
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
15.3
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
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
connect USER/MotPasse@//[host]:[port]/[service_name]
Sqlplus /nolog
dans SQLPLUS
15.5
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
Le tsname.ora
caladan_tcp_LYCE=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=10.150.160.106)
(PORT=1521))
(CONNECT_DATA=(SID=LYCE)))
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
16
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 :
Lhistorique du journal
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
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.
Document Tellora
Page 79/205
) 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.
#
16.2
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.
Document Tellora
Page 80/205
16.2.1
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
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
Document Tellora
Page 81/205
16.3
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 ;
16.4
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
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
ET
Document Tellora
Page 83/205
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).
16.4.2
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
Document Tellora
Page 84/205
16.4.3
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
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
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
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.
Exemple
ALTER DATABASE
DROP LOGFILE
16.4.6
GROUP 4;
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
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.
Exemple
ALTER DATABASE
DROP LOGFILE
16.4.7
MEMBER e:\oracle\oradata\HERMES\redo01.log;
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 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
16.4.8
Plusieurs vues du dictionnaire permettent dobtenir des informations sur les fichiers de redo log :
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
$LOG_ HISTORY
SEQUENCE#
FIRST_CHANGE#
NEXT_CHANGE#
FIRST_TIME
$INSTANCE_ RECOVERY
TARGET_MTTR
ESTIMATED_MTTR
OPTIMAL_LOGFILE_SIZE
Document Tellora
Page 89/205
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.
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
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.
valeur
valeur
Document Tellora
Page 91/205
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
)
/
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
17.2
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
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.
Les informations relatives la gestion des espaces (extent libre/allou) sont enregistres dans un
bitmap, dans len-tte de chaque fichier de donnes :
La taille dextents initialement choisis pour un segment dpend de la taille du segment spcifie lors de
sa cration.
Document Tellora
Page 93/205
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.
17.3
Document Tellora
Page 94/205
PROPERTY_NAME
DEFAULT_TEMP_TABLESPACE
DEFAULT_PERMANENT_TABLESPACE
DEFAULT_TBS_TYPE
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
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
- 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
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
Agrandir un tablespace
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
18.2.2
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;
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
18.2.4
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 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 ;
Document Tellora
Page 99/205
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
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
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 ;
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.
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 :
Document Tellora
Page 101/205
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
Document Tellora
Page 102/205
18.2.7
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.
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
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.
3DES168
AES128 (par dfaut)
AES192
AES256
Document Tellora
Page 103/205
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) ;
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
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.
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 .
Document Tellora
Page 104/205
PROPERTY_NAME
----------------------------------DEFAULT_TEMP_TABLESPACE
DEFAULT_PERMANENT_TABLESPACE
DEFAULT_TBS_TYPE
Document Tellora
Page 105/205
19
19.1
Tablespace SYSTEM
19.2
Tablespace SYSAUX
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
19.2.1
19.2.2
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.
Document Tellora
Page 107/205
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.
Document Tellora
Page 108/205
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).
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).
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
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).
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
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.
20.1
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
20.2
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.
VALUE
-------------------AUTO
900
UNDOTBS
Nomm SYS_UNDOTBS
Avec un fichier de donnes de 10 Mo, positionn en AUTOEXTEND
20.3
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
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
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
20.4.2
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.
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
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)
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
20.5
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 :
Document Tellora
Page 115/205
20.5.1
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.
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
Document Tellora
Page 116/205
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
Seffectue avec lordre SQL habituel DROP TABLESPACE, la clause INCLUDING CONTENTS est implicite
20.6
Plusieurs vues du dictionnaire permettent dobtenir des informations sur les tablespaces dannulation et
les segments dannulation :
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
V$ROLLSTAT : statistiques sur les segments dannulation et/ou les rollback segments actuellement
ONLINE ou PENDING OFFLINE
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 :
Un ratio suprieur 10% indique que les rollback segments sont trop petits.
Plusieurs vues du dictionnaire permettent dobtenir des informations sur les rollback segments :
V$ROLLNAME
USN
Numro du segment
NAME
Document Tellora
Page 118/205
V$TRANSACTION
SES_ADDR
START_TIME
XIDUSN
V$UNDOSTAT
BEGIN_TIME
END_TIME
UNDOBLKS
TXNCOUNT
MAXQUERYLEN
MAXCONCURRENCY
V$ROLLSTAT
USN
EXTENT
RSSIZE
TABLESPACE_NAME
Nom du tablespace
WRITES
OPTSIZE
HWMSIZE
SHRINKS
WRAPS
EXTENDS
AVESHRINK
Document Tellora
Page 119/205
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
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 ainsi cr est forcment gr localement. Il a une taille de bloc
correspondant au paramtre DB_BLOCK_SIZE.
PROPERTY_VALUE
--------------TEMP
USERS
SMALLFILE
Document Tellora
Page 121/205
21.1
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.
21.2
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
21.3
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
Toujours en mode NOLOGGING, les modifications ne sont pas enregistres dans les fichiers de Redo Log
(intressant pour les performances).
Document Tellora
Page 123/205
21.3.1
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
Document Tellora
Page 124/205
21.3.3
AUT
MAXBYTES MAXBLOCKS
--- ---------- ---------YES 3,4360E+10
4194302
NO
0
0
YES 3,4360E+10
4194302
21.3.4
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 :
- 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
Exemples
ALTER TABLESPACE temp SHRINK SPACE KEEP 100M ;
ALTER TABLESPACE temp SHRINK
TEMPFILE /oracle/oradata/orcl/temp01.dbf
KEEP 100M ;
21.3.5
21.4
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.
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.
Document Tellora
Page 126/205
21.5
Plusieurs vues du dictionnaire permettent dobtenir des informations sur les tablespaces et les fichiers
de donnes :
Document Tellora
Page 127/205
22
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 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
---
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
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.
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
) ;
Document Tellora
Page 129/205
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
) ;
Document Tellora
Page 130/205
23
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.
23.1
La notion de granule
Un granule est une quantit de mmoire qui peut tre alloue une structure de la SGA :
23.2
Document Tellora
Page 131/205
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
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 :
Document Tellora
Page 132/205
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.
23.2.2
Vous pouvez utiliser le Database Control pour configurer le Automatic shared Memory Management
comme indiqu dans le mode opratoire ci-dessous (dans lordre) :
Document Tellora
Page 133/205
23.2.3
Log buffer
Autres buffer cache (KEEP/RECYCLE, autres dimensions de blocks associs au buffer cache).
Streams pool
SGA fixe et autre allocation interne
23.2.4
Quand SGA_TARGET nest pas dfinie ou est gale zro les paramtres auto-rgls de la SGA se
comportent comme dans les versions prcdentes,
Document Tellora
Page 134/205
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
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
23.2.6
Redimensionner SGA_TARGET
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
23.3
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
23.3.1
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
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 :
23.3.3
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
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
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 = 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.
Document Tellora
Page 138/205
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.
23.4.2
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
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 :
Vous pouvez choisir daccepter ces conseils et faire le tuning du SQL via loptimiseur oracle.
23.4.3
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
23.5
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.
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.
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 :
23.5.1
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
Les statistiques mettent jour les colonnes de la vue du dictionnaire de donnes DBA_TABLES et ses
consurs.
DBA_TABLES
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
23.5.2
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.
Le nombre de blocs inutiliss allous la table (EMPTY_BLOCKS) est important et la table ne va plus
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.
Document Tellora
Page 143/205
23.5.3
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
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
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
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.
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
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
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
Pour que GATHER _STATS_JOB fonctionne correctement, vous devrez vous assurer que la valeur du
paramtre dinitialisation : STATISTIC_LEVEL est gal TYPICAL.
Vous devez gnrer des statistiques manuellement dans les cas suivants :
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 :
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
LAutomatic Database Diagnostic Monitor (ADDM), est un moteur dautodiagnostic intgr directement
dans la base de donnes Oracle.
LADDM met en uvre les actions suivantes :
Document Tellora
Page 147/205
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
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
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.
Document Tellora
Page 149/205
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
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
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 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
DBA_ADDM_TASK
DBA_ADDM_INSTANCES
DBA_ADDM_FINDING
DBA_ADDM_FDG_BREAKDOWN
DBA_ADDM_SYSTEM_DIRECTIVES
DBA_ADDM_TASK_DIRECTIVES
Document Tellora
Page 151/205
23.7.5
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
Document Tellora
Page 153/205
--------------------- 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
class
class
class
class
Document Tellora
Page 155/205
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
24
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 :
Document Tellora
Page 157/205
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
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
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
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
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
24.3
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
Dans ce mode il existe un ensemble de commandes qui permettent de grer les jobs DATA Pump en
cours dexcution.
CONTINUE_CLIENT
EXIT_CLIENT
KILL_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
24.4
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 :
24.4.1
data pump
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
24.4.2
Document Tellora
Page 162/205
25
25.1
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 .
Document Tellora
Page 163/205
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
Ci-dessous sont prsents un ensemble de paramtres utiliss avec DATA Pump. Le type de donnes
manipules par DATA Pump sont :
25.2.1
Paramtres communs
- 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 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
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}
- 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 tables exporter ou importer, ainsi que des partition de tables si
besoin.
QUERY=[schema.][nom_table :]clause_where
- Si ce parameter est positionn <y>, DATA Pump vrifie les dpendances entre les objets transports
lintrieur des tablespaces transports.
TRANSPORT_TABLESPACES=nom_tablespace,
Document Tellora
Page 165/205
25.2.2
COMPRESSION={ALL|DATA_ONLY|METADATA_ONLY|NONE}
- Permet de vrifier lespace que lexport va occuper sans faire lexport rellement.
25.2.3
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
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
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
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.
Document Tellora
Page 167/205
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.
25.4
25.4.1
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.
Document Tellora
Page 168/205
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.
Document Tellora
Page 169/205
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
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
25.5.2
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 :
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
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
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.
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
Vous pouvez utiliser les vues du dictionnaire de donnes prsentes ci-dessous pour obtenir des
informations sur les jobs DATA Pump :
Document Tellora
Page 172/205
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
26
SQL*Loader
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:
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
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, ...).
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
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
- 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
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
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
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 :
Document Tellora
Page 178/205
ni de colonne date_naissance)
CREATE TABLE Employe_BIS_F (
code NUMBER(6),
nom VARCHAR2(40),
prenom VARCHAR2(40),
adresse VARCHAR2(80)
)
/
26.3.1
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 :
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
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.3
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
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
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
26.4
Datafile (sample.dat)
Johny Quest,jqresume.txt,
Speed Racer,'/private/sracer/srresume.txt',
Secondary Datafile (jqresume.txt)
Johny Quest
500 Oracle Parkway
...
26.5
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 :
Document Tellora
Page 182/205
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
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
27
La principale responsabilit du DBA est de prendre les mesures ncessaires pour assurer la scurit et la
disponibilit des donnes.
Sauvegardes Physiques
ET
Sauvegardes logiques
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).
Document Tellora
Page 185/205
27.1
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 :
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
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).
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.
Document Tellora
Page 187/205
27.1.3
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.
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
ARCH
- 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
- 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
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.
Document Tellora
Page 189/205
27.3
La clause ARCHIVE LOG de lordre SQL : ALTER SYSTEM permet dadministrer le processus ARCH aprs
dmarrage de la base :
ALTER
ALTER
ALTER
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
27.3.1
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
Document Tellora
Page 191/205
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
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
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
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
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
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.
Fichier de contrle
Fichiers de donnes (sauvegards chaud)
Fichier init.ora et spfile.ora (optionnel)
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
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
Pour une sauvegarde base ouverte, utiliser lordre SQL : ALTER DATABASE :
ALTER DATABASE BACKUP CONTROLFILE TO
[ nouveau_nom | trace ] [ reuse ]
;
28.3
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.
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.
Document Tellora
Page 195/205
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 ;
Faire plutt
Alter tablespace tbs1 begin backup ;
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
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 :
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
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
V$ARCHIVED_LOG
RECID
Identifiant de lenregistrement
NAME
SEQUENCE#
FIRST_CHANGE#
FIRST_TIME
NEXT_CHANGE#
NEXT_TIME
COMPLETION_TIME
V$ARCHIVED_DEST
DEST_NAME
Nom de la destination
DESTINATION
STATUS
ERROR
Document Tellora
Page 197/205
28.6
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
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 :
Document Tellora
Page 198/205
Document Tellora
Page 199/205
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
Flashback Table
Flashback Transaction
Flashback Transaction
Document Tellora
Page 200/205
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
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
Document Tellora
Page 201/205
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 :
29.1.1
Exemples de restaurations
Log applied.
Media recovery complete.
SQL>
UNTIL CANCEL = Prcise Oracle que la restauration sarrte lorsque loprateur saisit CANCEL
Document Tellora
Page 202/205
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.
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
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) :
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 :
Document Tellora
Page 204/205
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
ORA-00279:
ORA-00289:
ORA-00280:
ORA-00278:
recovery
ORA-00279:
ORA-00289:
ORA-00280:
ORA-00278:
recovery
Log applied.
Media recovery complete.
Document Tellora
Page 205/205