Académique Documents
Professionnel Documents
Culture Documents
Bases de Donnes
Oracle : administration (cours)
Rappelons que ladministrateur dune base de donnes (Data Base Administrator) a pour rles la dfinition des objets dune
part et veiller leur bonne utilisation dautre part. Cela recouvre un rle organisationnel (gestion des utilisateurs, gestion des
droits daccs, cration des vues au niveau externe ; participation la conception des donnes au niveau conceptuel) et
technique (pour assurer la correspondance entre le schma conceptuel et le systme dexploitation au niveau interne,
garantissant les performances, lintgrit et la scurit des donnes). Le rle technique comprend :
linstallation du SGBD (Systme de Gestion de Bases de Donnes) et des outils associs,
la cration de la base de donnes et son volution,
la gestion des privilges daccs par lattribution ou le retrait de droits aux diffrents utilisateurs,
lamlioration des performances par une implantation optimale tenant compte de lutilisation qui est faite par les
traitements de la base de donnes,
la scurit et la cohrence des donnes par la mise en place des structures et procdures permettant de faire face tout
incident et de retrouver une base de donnes intgre et cohrente,
l'change de donnes entre la base de donnes et le monde extrieur, soit par intgration de donnes en provenance
dautres applications ou bases de donnes, soit par migration de donnes vers dautres applications ou bases de donnes.
Oracle est un SGBDRO permettant de grer des bases de donnes jusqu 65 536 fichiers de 128 Tio (traoctets c.--d. 1012
octets) chacun soit jusqu quelques trillions doctets.
Oracle est essentiellement crit en langage C et certains codes sont actuellement crits ou rcrits en Java. Oracle est ainsi
portable sur prs dune centaine de plate-formes matrielles (des trs gros ordinateurs aux micro-ordinateurs) et sur une
soixantaine de systmes dexploitation (HP-UX, Linux, Mac OS X, Microsoft Windows, Sun Solaris, IBM AIX, IBM z/OS,
etc.).
La gamme Oracle se dcline en deux principales licences :
Standard Edition (version de base) ;
Enterprise Edition (version de rfrence, avec toutes les fonctionnalits).
Dautres licences existent ou ont exist : Oracle Workstation (version mono-utilisateur pour Windows dOracle Enterprise
Edition), Oracle Lite (pour travailler sur une base allge et nomade), Oracle Standard One (version standard limite quatre
processeurs), etc.
Il est galement possible dacqurir certaines options : Partitionning, OLAP, Data Mining, Real Application Cluster, Advanced
Security.
Depuis fin 2005, Oracle offre une version gratuite : Oracle Database Express Edition (version 10g Standard Edition One
limite : base de 4 Gio maximum, mmoire d1 Gio de mmoire et 1 processeur actif).
Lintgralit du produit Oracle est constitue de la base de donnes (RDBMS), le serveur d'application (IAS), la suite
collaborative (OCS), l'environnement de dveloppement (ODS) et la suite applicative (eBusiness suite).
Lachat dOracle Enterprise Developer Suite vous permet davoir Oracle Designer, Oracle Developer, Oracle Developer
Server, Oracle Application Server et Oracle Database Server.
La version 11g dOracle, commercialise depuis le 11 juillet 2007, est la plus rcente (au moins au moment o ces lignes sont
rdiges cest--dire la fin du mois de novembre 2007).
Voici lhistorique des sorties des versions prcdentes : 1979 pour le premier prototype (assembleur, sparation des espaces
d'adressage entre les programmes utilisateurs et le noyau Oracle) nomm RDBMS - RSI1 comme Relational Database
Management System et Relational Software Incorporated (premier nom de la socit Oracle Corporation) mais pas de 1, 1979
pour la 2 (portage sur dautres plates-formes, SQL : requte et jointure), 1983 pour la 3 (entirement r-crite en C,
transaction), 1984 pour la 4 (cohrence en lecture), 1985 pour la 5 (client/serveur et requte distribue avec SQL*Net), 1988
pour la 6 (un Progiciel de Gestion Intgr, PL/SQL, verrouillage de lignes, sauvegarde chaud, amlioration des
performances, option Parallel Server), 1992 pour la 7 (contrainte d'intgrit, procdure stocke et dclencheur, meilleure
gestion mmoire et CPU et entres-sorties, SQL*DBA) dnomme Oracle Universal Server pour la 7.3, 1997 pour la 8
(orient-objet, multimdia) et 1999 pour la 8i (internet), 2001 pour la 9i (400 nouvelles fonctionnalits, XML, Online
Analytical Processing (OLAP) c.--d. bases de donnes multidimensionnelles), et 2003 pour la 10g (grid computing).
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 1 sur 27
De nombreuses explications sont fournies dans les deux ouvrages suivants qui constituent des rfrences pour tout
administrateur dune base de donnes gre par Oracle :
toute la documentation dOracle (plus de 16000 pages, en langue anglaise) : incontournable !
A. ABDELLATIF, M. LIMAME et A. ZEROUAL, Oracle7 : Langages Architecture Administration, EYROLLES,
1994 : indispensable !
Ces ouvrages ont largement contribu la ralisation de ce mini-cours dadministration dOracle et des exercices associs.
Quelques sites Internet et groupes de discussion (news) sont galement conseills :
www.osborne.com/oracle/index.htm : collection (de livres) officielle dOracle prsente par lditeur Oracle Press
(Osborne/McGraw-Hill)
www.oracle.com : site officiel dOracle
www.oracle.fr : site franais dOracle
home.nordnet.fr/~bdesquesne/index.html : site indpendant franais de B. Desquesne sur Oracle
www.onwe.co.za/frank/faq.htm : site indpendant proposant des rponses aux questions les plus couramment poses sur
Oracle ainsi que des pointeurs sur dautres sites sur Oracle
comp.databases.oracle. extension : groupe de discussion sur Oracle (moteur, outils, etc.)
comp.databases : groupe de discussion sur les SGBD
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 2 sur 27
1. ARCHITECTURE FONCTIONNELLE........................................................................................................................... 5
1.1. PRINCIPE GNRAL ......................................................................................................................................................... 5
1.2. DESCRIPTION .................................................................................................................................................................. 5
2. ARCHITECTURE INTERNE ........................................................................................................................................... 6
2.1. PRINCIPE GNRAL ......................................................................................................................................................... 6
2.2. LES FICHIERS .................................................................................................................................................................. 6
2.2.1. La structure physique ............................................................................................................................................ 7
2.2.2. La structure logique............................................................................................................................................... 7
2.3. LA MMOIRE .................................................................................................................................................................. 8
2.4. LES PROCESSUS .............................................................................................................................................................. 8
3. CRATION ET DMARRAGE DE LA BASE DE DONNES..................................................................................... 9
3.1. CRATION DE LA BASE DE DONNES ............................................................................................................................... 9
3.2. MODIFICATION DES CARACTRISTIQUES DE LA BASE DE DONNES ................................................................................. 9
3.3. DMARRAGE ET FERMETURE DE LA BASE DE DONNES ................................................................................................ 10
3.3.1. Dmarrage dune base de donnes Oracle.......................................................................................................... 10
3.3.2. Fermeture dune base de donnes Oracle ........................................................................................................... 10
4. TRANSACTIONS ET ACCS CONCURRENTS ......................................................................................................... 10
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 3 sur 27
8.1. TRACE DE LEXCUTION DUNE REQUTE..................................................................................................................... 18
8.1.1. Le paramtre SQL_TRACE................................................................................................................................ 18
8.1.2. Lutilitaire TKPROF ........................................................................................................................................... 18
8.1.3. La commande EXPLAIN.................................................................................................................................... 19
8.2. GNRATION DE STATISTIQUES DESTINES LOPTIMISEUR : LA COMMANDE ANALYZE........................................... 19
8.3. OUTILS DE DVELOPPEMENT ........................................................................................................................................ 19
8.3.1. Utilisation des tableaux ....................................................................................................................................... 19
8.3.2. Programmation en PL/SQL ................................................................................................................................. 19
8.3.3. Quelques paquetages ........................................................................................................................................... 20
8.4. OUTILS DADMINISTRATION ......................................................................................................................................... 20
8.4.1. Lutilitaire SQL*DBA .......................................................................................................................................... 20
8.4.2. Lutilitaire Import/Export .................................................................................................................................... 20
8.4.3. Lutilitaire SQL*Loader ...................................................................................................................................... 21
8.5. OUTILS POUR UN ENVIRONNEMENT RSEAU ................................................................................................................. 21
8.5.1. SQL*Net et larchitecture client/serveur ............................................................................................................. 22
8.5.2. SQL*Star et les bases de donnes rparties ........................................................................................................ 22
9. NOUVEAUTS DES VERSIONS 8 ET 8I...................................................................................................................... 23
ORACLE ENTERPRISE MANAGER .............................................................................................................................................. 24
NET8 ........................................................................................................................................................................................ 25
LES RLES SYSOPER ET SYSDBA......................................................................................................................................... 25
SERVER MANAGER ................................................................................................................................................................... 26
LARCHITECTURE CLUSTER ................................................................................................................................................ 26
10. NOUVEAUTS DE LA VERSION 9I (ET 8I) ........................................................................................................... 26
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 4 sur 27
1re partie : Architecture et administration dOracle7
Cette partie prsente tout dabord larchitecture du SGBDR Oracle7 (architectures fonctionnelle et interne) et ensuite
ladministration (cration et dmarrage de la base de donnes, transactions et accs concurrents, scurit des donnes,
sauvegarde et restauration des donnes, loptimisation et la prsentation de quelques outils dadministration).
1. Architecture fonctionnelle
Larchitecture fonctionnelle dOracle repose sur un modle en couches : les applications se servent doutils (de dveloppement
dapplications, de communication, de gnie logiciel, dadministration ou daide la dcision) qui utilisent directement SQL ou
qui sappuient sur le PL/SQL (Programming Language / SQL), langage procdural dOracle qui transforme ses instructions en
SQL, les ordres SQL sollicitant finalement le moteur (ou noyau) dOracle qui quant lui accde au dictionnaire des donnes.
1.2. Description
noyau : communication avec la base de donnes, connexion dautres noyaux (cas dune base rpartie)
intgrit et cohrence
confidentialit
sauvegarde et restauration
gestion des accs concurrents
optimisation de lexcution des requtes (analyse, optimisation, excution)
gestion des trois acclrateurs (index, clusters, hash clusters)
stockage physique des donnes
dictionnaire des donnes : mtabase (stocke sous la forme dun schma relationnel) dcrivant de faon dynamique la base
de donnes (c.--d. structure centralise contenant la description de tous les objets grs par Oracle)
objets de la base :
schma : ensemble de structures logiques de donnes (cluster, lien de base de donnes, index, paquetage,
procdure, squence, clich, journal de clich, table, vue, dclencheur, fonction)
cluster (ou groupement) : contient une ou plusieurs tables ayant une ou plusieurs colonnes communes
lien de base de donnes (database link) : permet laccs une base (Oracle ou non) distante
index : structure contenant ladresse physique de chaque ligne dune table ou dun cluster
paquetage (package) : collection de fonctions, de procdures et autres objets stocks
procdure : programme PL/SQL stock dans la base de donnes ne retournant pas de valeur
squence : permet de gnrer des entiers uniques
clich (snapshot) : table contenant le rsultat dune requte dfinie sur une base distante
journal de clich (log snapshot) : table associe la table matresse utilise par le clich
table : structure de donnes contenant les donnes, compose de lignes (occurrences) et de colonnes (champs)
vue : reprsentation logique combinant une ou plusieurs tables ou vues
dclencheur (trigger) : procdure stocke dans la base associe un vnement
fonction : programme PL/SQL stock dans la base de donnes retournant une valeur
synonymes : re-dnomination de certains des objets de la base
segment dannulation : sauvegarde des donnes permettant de valider ou de dfaire les transactions
espace de tables (tablespace) : allocation despace disque dans la base de donnes pour stocker les objets
cl primaire : une ou plusieurs colonnes permettant didentifier de manire unique chaque ligne de la table
cl unique : une ou plusieurs colonnes permettant didentifier de manire unique chaque ligne de la table,
autorisant la valeur indtermine
cl trangre : une ou plusieurs colonnes dont les valeurs dpendent dune cl primaire
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 5 sur 27
intgrit rfrentielle : consistance des relations des cls trangres rfrenant les cls primaires
utilisateurs avec leurs privilges sur les diffrents objets
profil : ensemble de limitations de ressources, attribu explicitement ou implicitement chaque utilisateur
rle : ensemble de privilges attribuables des utilisateurs ou autres rles
privilge daccs : droit accord un utilisateur sur la base de donnes
utilisateur : compte administr par Oracle ayant accs tout ou partie de la base de donnes
informations relatives lactivit de la base (connexions, ressources utilises, verrouillages, etc.)
Le dictionnaire des donnes est organis comme une base de donnes relationnelle de sorte que ses tables et vues sont
accessibles en SQL, en lecture pour certains utilisateurs, en lecture et mise jour par le noyau via lutilisateur SYS ; ces
vues sont rparties en quatre classes (la liste complte des tables, vues et synonymes sobtient en consultant la vue
DICTIONARY) :
vues relatives aux objets dun utilisateur (USER_) : trace de connexion/dconnexion de lutilisateur
(USER_AUDIT_SESSION), tables, vues, synonymes et squences de lutilisateur (USER_CATALOG), objets de
lutilisateur (USER_OBJECTS), tables cres par lutilisateur (USER_TABLES), colonnes des tables, vues, clusters
cres par lutilisateur (USER_TAB_COLUMNS), espaces de tables accessibles par lutilisateur
(USER_TABLESPACES), informations sur lutilisateur (USER_USERS), privilges systmes attribus lutilisateur
(USER_SYS_GRANTS), autorisations sur les tables et vues appartenant lutilisateur ou donnes ou reues
(USER_TAB_GRANTS), etc.
vues relatives aux objets accessibles un utilisateur (ALL_) : les mmes !
vues relatives aux administrateurs (DBA_) : les mmes, description des fichiers de donnes (DBA_DATA_FILES),
extensions libres dans les espaces de tables (DBA_FREE_SPACE), etc.
vues relatives au suivi des performances disponibles aux administrateurs (V$ ou V_$) : objets actuellement
verrouills (V$ACCESS), description de la base de donnes ou des fichiers de donnes ou des fichiers de reprise
partir du fichier de contrle (V$DATABASE ou V$DATAFILE ou V$LOGFILE), valeurs de paramtres
dinitialisation (V$PARAMETER), processus actifs (V$PROCESS), mmoire (V$SGA), transactions en cours
(V$TRANSACTION), session courante (V$SESSION), etc.
SQL : interface entre le noyau et les diffrents outils Oracle ; chaque commande (interprte) subit une vrification
syntaxique et smantique, est dcompose en oprations lmentaires et soumise au noyau pour excution, est rcupre et
transmise lapplication ou loutil en ayant fait la demande
PL/SQL : extension procdurale du langage SQL
outils de dveloppement d'applications : SQL*Plus, SQL*Forms, SQL*ReportWriter, SQL*Menu, Pro* (Pro*C,
Pro*COBOL, SQL*Webserver, etc.)
outils de communication SQL*Star : SQL*Net, SQL*Connect
outils de gnie logiciel : CASE*Dictionary, CASE*Designer, CASE*Generator
outils d'administration
SQL*DBA : toute administration dOracle, en mode menu ou en mode ligne
Import/Export : change de donnes entre diffrentes bases Oracle ; cest galement un outil de dfragmentation
SQL*Loader : importer un fichier dans une base de donnes Oracle
outils d'aide la dcision : ORA 1-2-3, SQL*QMX, Easy*SQL, SQL*Calc, Oracle*Mail
2. Architecture interne
Larchitecture interne dOracle est compose de fichiers, de processus (programmes en cours dexcution) et de mmoire.
Une instance Oracle (dsigne par le SID, System Identifier) correspond un ensemble de fichiers, une zone mmoire alloue
et des excutables assurant le fonctionnement dune base de donnes. Chaque instance est compltement indpendante et il est
possible de faire fonctionner simultanment plusieurs instances.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 6 sur 27
Oracle respecte la norme ANSI/X3/SPARC reprsentant une base de donnes en trois niveaux (externe, conceptuel, interne
respectivement les vues et la gestion des utilisateurs et de leurs droits daccs, la structure logique, la structure physique).
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 7 sur 27
espace de tables : regroupement d'objets logiques sous la forme dun ensemble de fichiers
au moins SYSTEM pour le dictionnaire des donnes,
il est conseill den avoir au moins un second pour stocker les objets de la base de donnes sparment du
dictionnaire des donnes
dsactivable (except SYSTEM) pour rendre un espace de tables inaccessible aux utilisateurs
fichier : ensemble de segments
segment : ensemble d'extensions
donnes : stockage des tables utilisateurs, systmes et groupes (clusters)
index : stockage des donnes d'index
annulation (rollback) : enregistrement des actions des transactions (identification du bloc modifi et des valeurs avant
mise jour pour chaque rollback entry)
temporaire : associ aux requtes ncessitant un espace disque supplmentaire (cration d'index, slection avec tri,
oprateur ensembliste)
amorage (bootstrap) : dfinition du dictionnaire des donnes charge lors de l'ouverture de la base de donnes (situ
dans lespace de tables SYSTEM)
extension (extent) : suite de blocs (logiques) contigus
extension initiale et supplmentaires (suivante et pourcentage d'accroissement partir de la troisime extension)
bloc (logique) : la plus petite unit logique d'entre/sortie gre par Oracle
la taille d'un bloc logique est un multiple de la taille d'un bloc physique gr par le systme d'exploitation
PCTFREE (10% par dfaut) : pourcentage d'espace du bloc devant rester libre (pour les modifications)
Si la valeur de PCTFREE est faible, on gagne en espace (peu de blocs) mais on perd en performance (donnes
fragmentes).
La valeur de PCTFREE doit tre suprieure 10% si et seulement si la mise jour d'une ligne entrane souvent
une augmentation de sa taille.
PCTUSED (40% par dfaut) : pourcentage d'espace du bloc autorisant ou non l'insertion dans ce bloc
Format d'un bloc : entte (adresse du bloc, type de segment auquel il appartient), liste des tables (informations sur les
tables clustrises), liste des lignes (adresse de chaque ligne, etc.), espace libre (pour la modification des
lignes), donnes (sur une ou plusieurs lignes, ou sur une partie de ligne imposant un chanage des blocs).
Format d'une ligne : entte de ligne (overhead, nombre de colonnes, identifiant de cl de cluster, adresse physique en
cas de chanage) et colonnes (longueur et valeur de chacune).
2.3. La mmoire
La mmoire est ainsi structure :
zones rserves au code de l'applicatif : code des programmes en cours d'excution
noyau Oracle
outils Oracle (SQL*DBA, SQL*Plus, SQL*Forms, etc.) et programmes d'application faisant appel Oracle
zone globale systme (System Global Area ou Shared Global Area) : zones tampons partages contenant les donnes et les
informations de contrle relatives une instance
cache base de donnes (ou buffer cache) : ensemble de zones tampons partages (par tous les processus) contenant
des copies des blocs de donnes (des tables, index, segments dannulation, clusters) lus partir des fichiers de
donnes ; gr par une liste des tampons modifis non encore crits sur le disque et une liste des tampons rcemment
les moins utiliss (algorithme LRU c.--d. Least Recently Used)
zone de reprise (Log buffer) concernant les mises jour des donnes
pool partag (Shared buffer pool), gr par un algorithme LRU
cache de la bibliothque (zone SQL partage)
cache du dictionnaire des donnes
donnes des sessions (pour la version multi-threads dOracle)
zone prive SQL et PL/SQL
zone globale programme (Program Global Area) : informations de contrle relatives un processus
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 8 sur 27
processus serveur : processus associ un ensemble de processus utilisateurs
analyse et excution des requtes SQL soumises par les applications
transfert des blocs de donnes du disque en mmoire
communication des rsultats aux applications
processus d'arrire plan (background process) : tches du SGBD excutes de faon asynchrone
smon (system monitor) : recouvrement d'instance lors de son dmarrage
dbwr (database writer) : gestion du cache base de donnes et criture des mises jour apportes ce cache dans
les fichiers de donnes
lgwr (log writer) : gestion de la zone de reprise et criture des tampons de reprise dans le fichier de reprise
pmon (process monitor) : recouvrement des processus utilisateurs
reco (recover) : recouvrement en cas dchec d'une transaction rpartie
arch (archiver) : copie des fichiers de reprise pleins
ckpt (checkpoint) : criture de toutes les donnes (du cache base de donnes) modifies
oralsn (listener) : aiguille les connexions utilisateurs vers un processus dispatcher (cas dune configuration
multi-thread server)
Dnnn (dispatcher) : partage les processus serveurs pour les processus utilisateurs
lck0, , lck9 (lock) : grent le verrouillage inter-instances (cas dun serveur parallle)
Gestion multi-processus :
architecture combine : un processus utilisateur pour chaque utilisateur (remplissant aussi les fonctions des processus
serveurs)
architecture serveur ddi : un processus utilisateur et un processus serveur pour chaque utilisateur
architecture serveur partag : un processus serveur peut tre associ plusieurs processus utilisateurs
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 9 sur 27
3.3. Dmarrage et fermeture de la base de donnes
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 10 sur 27
update
delete
lock table ... in row exclusive mode
table partage S (share) (V$LOCK.LMODE=4)
verrou sur une table ; les autres transactions peuvent effectuer des interrogations sur cette table ; si plusieurs
transactions verrouillent la mme table en mode table partage, aucune ne peut effectuer de mise jour
autres verrous autoriss : RS S
lock table ... in share mode
partage exclusif de lignes SRX (share row exclusive) (V$LOCK.LMODE=5)
verrou sur une table ; les autres transactions peuvent effectuer des interrogations sur cette table
autres verrous autoriss : RS
lock table ... in share exclusive mode
table exclusive X (exclusive) (V$LOCK.LMODE=6)
verrou sur une table ; les autres transactions peuvent effectuer des interrogations sur cette table ; la transaction
ayant positionn ce verrou peut effectuer une criture exclusive sur la table
aucun autre verrou autoris
lock table ... in exclusive mode
La fin dune transaction lve les verrous quelle a poss.
Les verrouillages du dictionnaire des donnes et internes (mmoire, etc.) sont transparents (grs par Oracle).
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 11 sur 27
segments dannulation).
Oracle effectue automatiquement le recouvrement : smon effectue tout dabord un roll-forward des mises jour prsentes
dans les fichiers de reprise et ensuite un rollback des mises jour non valides dont les images avant sont prsentes dans
les segments dannulation
panne disque : qui, suite une cause matrielle, empche la lecture ou lcriture dun fichier.
pour un fichier de reprise : si un fichier miroir existe, Oracle continue sans interruption ; sinon Oracle sarrte avec
une perte de donnes
pour un fichier de contrle : Oracle sarrte (mme si un fichier miroir existe)
pour un fichier des donnes : en lecture, Oracle signale lerreur et continue ; en criture, si le fichier de reprise en
ligne plein est archiv, alors une erreur est retourne dans le fichier de trace et lespace de tables est mis hors service,
sinon dbwr sarrte et linstance se bloque
Si loption NOARCHIVELOG est active, le recouvrement doit se faire en restaurant la dernire sauvegarde complte
(toutes les donnes mises jour depuis la date de cette dernire sauvegarde sont dfinitivement perdues).
Si loption ARCHIVELOG est active, le recouvrement se fait en restaurant la base jusqu la dernire transaction
consistante valide.
6.2.1. Le journal
Les fichiers de reprise (ou journal) possdent la trace des enregistrements mis jour dans la base de donnes, lcriture
dans les fichiers de reprise tant assure par le processus lgwr partir du tampon (buffer) de reprise de la mmoire
(SGA).
Le fichier de reprise en ligne est le journal courant de linstance.
Il y a toujours au moins deux fichiers de reprise de sorte que lun dentre eux est toujours disponible sil y en a un qui
est plein et en attente darchivage.
Les fichiers de reprise sont grs circulairement :
quand le fichier de reprise en ligne est plein, il est alors dsactiv et le fichier de reprise suivant est alors activ :
cet vnement est appel linterrupteur journal
chaque fichier de reprise a un numro de squence journal qui sincrmente chaque fois que linterrupteur journal
se produit ; de plus, le fichier de contrle contient le numro de squence journal le plus rcent
Un point de vrification (checkpoint) se produit lorsque dbwr enregistre tous les buffers modifis de la SGA dans les
fichiers de donnes ; ckpt fait toutes les critures refltant ce point de vrification.
Les fichiers de reprise archivs permettent le recouvrement de toutes les transactions valides sans perte
dinformation.
Archivage des fichiers de reprise pleins une fois inactifs :
automatiquement par le processus arch si le paramtre LOG_ARCHIVE_START est TRUE ou aprs avoir tap
la commande alter system archive log start (le format des noms des fichiers archiver et leur
destination sont disponibles respectivement dans les paramtres LOG_ARCHIVE_FORMAT et
LOG_ARCHIVE_DEST)
par ladministrateur ce qui est fortement dconseill sauf si larchivage automatique est suspendu suite un
problme quelconque
Les segments dannulation stockent les anciennes valeurs de donnes mises jour pour permettre une annulation de
transaction.
Les fichiers de contrle possdent les statuts des structures physiques de la base de donnes ; ils sont modifis chaque
mise jour de la structure de la base.
6.2.2. La restauration
Deux situations peuvent se produire :
des donnes sont mises jour par des transactions mais ne sont pas crites dans les fichiers de donnes au moment de
la validation (de sorte que ces donnes ne sont prsentes que dans les fichiers de reprise)
les fichiers de reprise contiennent des donnes non valides dues des transactions annules (les segments
dannulation disposent de cette information)
Les tapes du recouvrement sont alors les suivantes :
rcuprer la dernire sauvegarde ;
la base est dans un tat cohrent, mais a perdu les mises jour les plus rcentes.
(roll-forward) appliquer sur les fichiers de donnes limage avant du journal c.--d. effectuer sur les fichiers de
donnes toutes les mises jour prsentes dans les fichiers de reprise (en ligne et archivs) et dans les segments
dannulation ;
la base contient alors toutes les mises jour, valides ou non.
(rollback) appliquer sur les fichiers de donnes limage arrire partir des segments dannulation (qui annulent les
transactions non valides) ;
la base est dans un tat cohrent et contient alors toutes les mises jour les plus rcentes ayant t valides.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 12 sur 27
6.3. Les sauvegardes
7. Loptimisation
Il sagit de fixer les objectifs atteindre pour une meilleure utilisation des performances en adaptant Oracle aux besoins
spcifiques (voire contradictoires) des applications. Par exemple, doit-on privilgier le temps de rponse ou le dbit du rsultat,
ou encore doit-on considrer une requte ou une application ou tous les traitements concurrents, etc.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 13 sur 27
Il convient doptimiser tout dabord les requtes, ensuite la mmoire et enfin les entres/sorties et les contentions des
processus.
Dans tous les cas, les performances de votre systme peuvent tre dplorables si la valeur du paramtre DB_BLOCK_SIZE
(correspondant lunit de taille dchange entre la mmoire principale et la mmoire auxiliaire) a mal t dfinie (et fixe une
fois pour toutes) lors de la cration de la base de donnes.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 14 sur 27
index compos (conjonction sur toutes ses colonnes qui testent l'galit)
index unique
recherche borne sur des colonnes indexes
recherche non borne sur des colonnes indexes
jointure avec tri et fusion
fonctions dagrgation minimum ou maximum de colonnes indexes
tri sur une colonne indexe
parcours complet de la table
7.1.6. Paramtrage
Le paramtre de session OPTIMIZER_GOAL (modifiable par la commande alter session) indique la mthode et le but
poursuivis :
statique et temps de rponse (FIRST_ROWS) indpendamment de la disponibilit de valeurs statistiques
statique et dbit du rsultat (ALL_ROWS) indpendamment de la disponibilit de valeurs statistiques
statistique (CHOOSE) : en prsence de valeurs statistiques relatives au moins une table rfrence dans la requte (le but
doptimisation est alors le meilleur dbit du rsultat) ; en labsence de valeurs statistiques, la mthode utilise est alors
statique
Le paramtre d'initialisation OPTIMIZER_MODE indique la mthode utilise :
statique (RULE) indpendamment de la disponibilit de valeurs statistiques
statistique (COST) en prsence de valeurs statistiques relatives au moins une table rfrence dans la requte (le but
doptimisation est alors le meilleur dbit du rsultat) ; en labsence de valeurs statistiques, la mthode utilise est alors
statique
Le paramtre OPTIMIZER_GOAL est prioritaire sur le paramtre OPTIMIZER_MODE.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 15 sur 27
de la jointure : dans lordre dans lequel les tables se prsentent (ORDERED), par des boucles imbriques (USE_NL), par un
algorithme tri et fusion (USE_MERGE)
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 16 sur 27
La solution consiste augmenter le nombre de buffers (DB_BLOCK_BUFFERS) si le rapport du nombre d'accs aux donnes sur
le nombre de demandes de donnes est infrieur 3/5.
Il faut dfinir la valeur du nombre de buffers en sachant que la taille mmoire alloue en cache pour les donnes et les index
est gale DB_BLOCK_BUFFERS * DB_BLOCK_SIZE.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 17 sur 27
Le diagnostic peut se faire l'aide de la vue V$WAITSTAT ; ses principaux champs sont la classe (CLASS avec comme
principales valeurs system undo header, undo header, system undo block et undo block), le nombre
(COUNT), le nom (NAME avec comme principales valeurs db block get et consistent gets), la valeur (VALUE).
La solution consiste augmenter le nombre de segments dannulation si le nombre d'attente d'une classe est suprieur 1%.
Une rgle simple pour dfinir la valeur du nombre de segments dannulation : nombre dutilisateurs / 4. De plus, lors
de la cration des segments dannulation, il est prfrable dutiliser loption OPTIMAL (afin davoir une taille optimale pour
ces segments).
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 18 sur 27
Pour tous les traitements, on vrifiera :
si PRSCPU,PRSELA,PRSPHR sont importants relativement EXECPU,EXEELA,EXEPHR,FCHCPU,FCHELA,FCHPHR alors
diagnostic : beaucoup de temps est pass en phase danalyse
solution : augmenter la taille du dictionnaire des donnes
si PRSCNT est trop important alors
diagnostic : des curseurs ferms sont peut-tre r-analyss
si EXEPHR+FCHPHR>1.1*(EXECR+EXECU+FCHCR+FCHCU) alors
solution : augmenter la taille du cache base de donnes
si FCHCNT2*FCHROW alors
solution : viter les curseurs implicites
si une requte interactive est telle que PRSELA+EXEELA+FCHELA>250 (plus de 25 sec.) alors
solution : crire diffremment ce traitement
si EXECR est trop important et si FCHROW,PRSCU,EXECU,FCHCU sont beaucoup moins importants alors
solution : crer des index sur les tables
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 19 sur 27
8.3.3. Quelques paquetages
Procdures pour les transactions discrtes dont les mises jour sur les donnes sont diffres aprs la validation de la
transaction.
Paquetage pour des alerteurs permettant une application ou une session de se mettre en attente dun vnement et dy
ragir lorsquil survient.
Utilisations de pipes nomms permettant deux sessions de la mme instance de communiquer.
Sorties partir des procdures et des dclencheurs.
8.4.2.1. Limportation
Lutilitaire Import (imp) permet limportation de donnes partir dune base de donnes Oracle ; on parle de restauration
logique partir dun fichier de commandes SQL de mises jour de donnes.
8.4.2.2. Lexportation
Lutilitaire Export (exp) permet lexportation de donnes partir dune base de donnes Oracle ; on parle de copie logique
gnrant dans un fichier des commandes SQL de mises jour de donnes.
Les objets concerns sont : les structures des tables, les donnes des tables, les privilges, les vues, les clusters, les synonymes,
les squences, les contraintes dintgrit.
Trois modes dexportation sont possibles : mode table, mode utilisateur ou mode base de donnes.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 20 sur 27
Le mode dexportation base de donnes peut concerner tous les objets y compris ceux appartenant lutilisateur SYS (entire
database), tous les objets excepts ceux de SYS (full database), incrmental c.--d. concerner tous les objets y compris ceux
de SYS et cela depuis la dernire exportation en mode incrmental ou cumulatif ou complet (incremental), cumulatif c.--d.
concerner tous les objets y compris ceux de SYS et cela depuis la dernire exportation en mode cumulatif ou complet
(cumulative), complet c.--d. concerner tous les objets y compris ceux de SYS et en remettant zro les compteurs pour les
modes incrmental et cumulatif (complete).
Une bonne stratgie consiste faire une premire exportation en mode complet, rgulirement des exportations en mode
incrmental, de temps en temps des exportations en mode cumulatif.
Oracle a une approche client/serveur de sorte que toute application ou outil Oracle ncessitant un accs la base de donnes
envoie une requte la machine grant la base de donnes ; cela autorise notamment la rpartition des donnes (SQL*Net :
connexion dune application un serveur telle que le client envoie sa requte sous forme de message que le serveur excute et
renvoie alors le rsultat) et des traitements (SQL*Star = SQL*Net + noyau rparti pour grer les requtes multi-bases +
SQL*Connect pour tout ce qui nest pas Oracle).
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 21 sur 27
8.5.1. SQL*Net et larchitecture client/serveur
Dans cette architecture, le serveur est ddi la gestion des donnes tandis que les applications sont les clients :
le serveur, ds rception dune commande, lanalyse, la traite et retourne le rsultat au client,
le client excute lapplication, transmet chaque requte au serveur et attend le rsultat.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 22 sur 27
2e partie : Nouveauts des versions plus rcentes dOracle
Cette partie prsente les nouveauts des versions les plus rcentes dOracle : 8, 9, 10 et 11.
Oracle8i est, selon Oracle Corporation, le SGBD Relationnel-Objet internet pour les systmes classiques, transactionnels et
dcisionnels . Ainsi, Oracle couvre les applications transactionnelles (OLTP, online transaction processing) et les entrepts
de donnes, et supporte les bases de donnes volumineuses (VLDB, very large data bases) et les applications critiques.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 23 sur 27
intermdiaire (entre les utilisateurs du systme et ceux ne pouvant pas franchir le pare-feu) dans le cadre denvironnement
multi-tiers.
Oracle Secure Directory implmente SSL (Secure Socket Layer) v3 permettant lauthentification daccs et la protection
des donnes prives.
Rplication des applications de front office : dploiement de masse facilit grce de nouveaux modles de clichs
(snapshots), possibilit de partitionner horizontalement ou verticalement les clichs afin de dployer la quantit minimale
de donnes ncessaires un site distant (de plus, les donnes sont localises le plus proche possible des utilisateurs les
manipulant).
Partitionnement des tables et des index par hachage (rpartition des donnes en partitions de tailles gales et uniformes sur
diffrents priphriques) ou hybride (les donnes sont dabord partionnes selon des plages de valeurs avant dtre
haches en plusieurs sous-partitions).
Entrepts de donnes (data warehouse ou data mart) : reconstruction automatique dindex en ligne (sans interruption des
oprations de mise jour), suivi doprations longues (construction dindex, sauvegarde de la base, etc.).
Gestion de la base de donnes de secours : disponible constamment en lecture seule, fichiers de reprise (journaux de r-
excution) lui sont automatiquement expdis et appliqus.
Optimiseur : copie des statistiques doptimisation dune base de donnes vers une autre, stockage des plans dexcution en
les rendant non modifiables.
Transactions : modle de publication/abonnement (transmission automatique des messages aux abonns) utilisant des files
dattente et de messagerie afin de travailler en mode asynchrone avec dautres systmes (Advanced Queuing).
Outils de diagnostics (via le service mondial dassistance technique) pour lanalyse et le dpannage.
Oracle Parallel Server : nouveau mcanisme de communication entre les instances (les blocs passent par linterconnexion
entre les nuds et non par la lecture du disque), utilisation simplifie (pour la localisation des erreurs, par des statistiques
sur la coordination des travaux entre instances, etc.), quilibrage automatique de charge la connexion, affectation
possible dun travail un nud spcifique.
Espaces de tables transportables (c.--d. copiables dune base de donnes vers une autre) sparment.
Nouveaux vnements : arrt/dmarrage de la base de donnes, connexion/dconnexion utilisateur, erreur du serveur,
cration/modification/suppression dune table.
Gestion de plusieurs crivains (dbwriters) sous la forme desclaves dentres/sorties (i/o slaves) ; aussi, le paramtre
DB_WRITERS a pour nouveau nom DB_WRITER_PROCESSES.
Nous ne dvelopperons par la suite que quelques unes des nouveauts (relevant uniquement de ladministration) : Oracle
Enterprise Manager, Net8, les rles SYSOPER et SYSDBA, Server Manager et larchitecture cluster .
Net8
Net8 est le logiciel mdiateur (middleware) : il assure le lien, sur une machine (client ou serveur), entre lapplication et le
protocole rseau.
Sur le serveur, il sagit dun listener (logiciel qui coute les demandes de connexions), commun toutes les bases de donnes
gres par cette machine.
Sur chaque client, le fichier Tnsnames.ora dfinit un alias rfrenant linstance administre par le serveur. Cet alias
prcise le protocole rseau, la machine cible disposant de la base de donnes, lidentifiant de linstance (SID) de la base de
donnes cible, etc.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 25 sur 27
(commande connect utilisateur / mot de passe as sysoper) nauront cependant pas les privilges des
administrateurs de la base de donnes tandis que ceux connects en tant que SYSDBA (commande connect
utilisateur / mot de passe as sysdba) auront alors de surcrot les privilges des administrateurs de la base de
donnes.
Server Manager
Server Manager est une interface SQL interactive (mode texte) offrant quelques fonctionnalits supplmentaires par rapport
SQL*Plus : arrt de la base (shutdown), dmarrer la base (startup), se connecter avec le compte INTERNAL, etc.
Comparativement SQL*DBA, Server Manager a perdu linterface semi-graphique et le monitoring.
Larchitecture cluster
Larchitecture cluster ( ne pas confondre avec le terme cluster dsignant un regroupement physique de tables ayant des
colonnes communes) consiste faire partager une base de donnes commune (sur un ou plusieurs disques) par des instances
travaillant sur des machines diffrentes (elles-mmes mono ou multiprocesseurs) ; cest le seul cas o Oracle permet un
unique disque de donnes (c.--d. une unique base) dtre partag par plusieurs instances. Les instances disposent dun
mcanisme de synchronisation logicielle (pour garantir la cohrence des donnes).
Dans cette architecture matrielle o plusieurs serveurs (nuds) indpendants sont relis (par des canaux spciaux haut dbit)
pour fonctionner comme sils constituaient un seul serveur, les avantages sont nombreux : performance, fiabilit et
disponibilit, volutivit (par ajout de nuds), administration unique des machines, etc. Les problmes consistent par contre
grer cette mise en commun de ressources, vrifier le bon fonctionnement de lensemble, rpartir les charges, et pallier
aux pannes.
Oracle propose deux solutions : Oracle Fail Safe (en standard) garantissant la disponibilit et Oracle Parallel Server (en option)
offrant disponibilit, performance et volutivit.
Oracle Fail Safe : la base fonctionne sur un seul (des deux) serveur un instant donn et en cas de panne, linstance est
automatiquement relance sur lautre serveur (qui tait inactif jusqu prsent !).
Oracle Parallel Server : la base fonctionne simultanment sur lensemble des serveurs, lajout et larrt de nuds se fait
dynamiquement, en cas de dfaillance dun nud les autres nuds assurent la continuit du service ; par contre, les
applications doivent tre modifies pour prciser le nud par dfaut et le nud auquel il faut se connecter en cas de dfaillance
du nud par dfaut.
Afin de parallliser lexcution dun ordre SQL (lecture complte dune table, tri, cration dindex, chargement dune table
avec SQL*Loader, etc.), Oracle Parallel Query dcoupe lordre et le confie plusieurs processeurs.
Outils : volutions de SQL*Plus, export et import des donnes avec Data Pump.
Gestion du stockage : Automatic Storage Management (ASM), Tablespace SYSAUX, amliorations des espaces des tables,
segments (partitionnement, sorted hash-clustered et stockage).
Exploitation : nouveaux outils dinstallation et dadministration, ordonnanceur de travaux, nouveaux paramtres du systme,
Automatic Workload Repository (AWR), Diagnostic Monitor (ADDM), conseillers SQL, Resource management et consumer
group, streams.
Haute disponibilit : Supplemental logging, Oracle Data Guard, Logminer, Real Application Cluster, redfinition en ligne.
Optimisation : obsolescence de l'optimiseur sur les rgles, collecte automatique des statistiques, gestion automatique de la
SGA, amlioration du Wait Model, utilitaire TrcSess, SQL access advisor.
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 26 sur 27
Scurit : Flashback recovery area, Flashback database/table/query, Flashback row history et transaction history, RMAN (Fast
incremental backup, incrmentaux sur les copies de fichiers, diverses evolutions), gestion des identits, Strong authentication
(VPD, Oracle Label Security et Audit).
Gestion des gros volumes : dchargement de table externe, vues matrialises et dimensions, nouvelles fonctions statistiques,
CDC capture asynchrone.
Dveloppement : amlioration du MERGE, jointure externe partitionne, clause MODEL, requtes insensibles la casse,
expressions rgulires, amliorations du langage PL/SQL.
Dveloppement
Oracle Application Express : unique environnement de dveloppement en ligne pour construire une application (utilisant
uniquement un navigateur Internet).
Oracle SQL Developer : outil de dveloppement graphique gratuit permettant de parcourir les objets, crire et lancer des ordres
SQL, mettre au point des programmes PL/SQL.
Possibilit dintgration dans Visual Studio grce aux Oracle Data Access Components (pour des applications Oracle bases
sur .NET et services Web).
Modifi le 8/4/14 18:04 - dit le 8/4/14 18:04 - Imprim le 8/4/14 18:04 Page 27 sur 27