Vous êtes sur la page 1sur 27

Dpartement Informatique de lInstitut Universitaire de Technologie de lUniversit Bordeaux 1

Olivier Guibert

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. Ce document prsente lessentiel de larchitecture et de ladministration du SGBDRO (SGBD Relationnel-Objet) Oracle , logiciel leader mondial des SGBD, commercialis par la socit Oracle Corporation (dirige par Larry Ellison). Une premire partie prsente la version 7 dOracle tandis que la seconde partie prsente certaines des nouveauts des versions plus rcentes dOracle. Ce document est complt dune srie dexercices couvrant largement les diffrents aspects de ladministration dOracle ; pour effectuer correctement ces exercices, la lecture (et mme la relecture) de ce document est indispensable. 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 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

Page 2 sur 27

1.

ARCHITECTURE FONCTIONNELLE........................................................................................................................... 5 1.1. 1.2. PRINCIPE GNRAL ......................................................................................................................................................... 5 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. 5. 6.

TRANSACTIONS ET ACCS CONCURRENTS ......................................................................................................... 10 SCURIT DES DONNES............................................................................................................................................ 11 SAUVEGARDE ET RESTAURATION DE DONNES ............................................................................................... 11 6.1. LES DIFFRENTES PANNES ............................................................................................................................................ 11 6.2. LES MCANISMES MIS EN UVRE.................................................................................................................................. 12 6.2.1. Le journal ............................................................................................................................................................ 12 6.2.2. La restauration .................................................................................................................................................... 12 6.3. LES SAUVEGARDES ....................................................................................................................................................... 13 6.3.1. Les stratgies de sauvegardes.............................................................................................................................. 13 6.3.2. Les diffrentes sauvegardes ................................................................................................................................. 13 6.3.3. Quelques conseils ! .............................................................................................................................................. 13

7.

LOPTIMISATION........................................................................................................................................................... 13 7.1. OPTIMISATION D'UNE REQUTE .................................................................................................................................... 14 7.1.1. Les phases d'excution d'une requte .................................................................................................................. 14 7.1.2. Le plan d'excution .............................................................................................................................................. 14 7.1.3. Laccs aux donnes ............................................................................................................................................ 14 7.1.4. Les mthodes d'optimisation................................................................................................................................ 14 7.1.5. Les buts d'optimisation ........................................................................................................................................ 15 7.1.6. Paramtrage ........................................................................................................................................................ 15 7.1.7. Forcer les choix de loptimiseur par programmation ......................................................................................... 15 7.1.8. Modification de la requte par loptimiseur ........................................................................................................ 16 7.2. OPTIMISATION DE LA MMOIRE (CENTRALE) ................................................................................................................ 16 7.2.1. Appels superflus l'analyseur ............................................................................................................................. 16 7.2.2. Dfauts de mmoire du cache de la bibliothque ................................................................................................ 16 7.2.3. Dfauts de mmoire du cache du dictionnaire des donnes ................................................................................ 16 7.2.4. Dfauts de mmoire du buffer cache ................................................................................................................... 16 7.2.5. Dfauts de mmoire des fichiers de reprise ......................................................................................................... 17 7.2.6. Non utilisation de PL/SQL................................................................................................................................... 17 7.2.7. Dfauts de mmoire lis aux tris.......................................................................................................................... 17 7.3. OPTIMISATION DES ENTRES/SORTIES .......................................................................................................................... 17 7.3.1. Contentions des disques....................................................................................................................................... 17 7.3.2. Allocation d'espace dans les blocs....................................................................................................................... 17 7.3.3. Dfragmentation du disque.................................................................................................................................. 17 7.3.4. Allocation dynamique d'espace supplmentaire .................................................................................................. 17 7.4. RDUCTION DES CONTENTIONS DES PROCESSUS ........................................................................................................... 17 7.4.1. Contentions sur les segments dannulation ......................................................................................................... 17 7.4.2. Taux d'occupation du processus dispatcher ........................................................................................................ 18 7.4.3. Temps d'attente du processus dispatcher ; processus partags........................................................................... 18

8.

OUTILS : AMLIORATION DES PERFORMANCES, DVELOPPEMENT, ADMINISTRATION................... 18 Page 3 sur 27

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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. 11. 12. NOUVEAUTS DE LA VERSION 9I (ET 8I) ........................................................................................................... 26 NOUVEAUTS DE LA VERSION 10G ..................................................................................................................... 26 NOUVEAUTS DE LA VERSION 11G ..................................................................................................................... 27

LA VERSION STANDARD EDITION ............................................................................................................................................. 27 Installation, configuration et administration....................................................................................................................... 27 Donnes et applications compltes...................................................................................................................................... 27 Dveloppement .................................................................................................................................................................... 27 Performance, Reliability, Security and Scalability.............................................................................................................. 27

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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.1. Principe gnral

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 Page 5 sur 27

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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.

2.1. Principe gnral 2.2. Les fichiers

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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).

2.2.1. La structure physique


La structure physique est compose dun ensemble de fichiers constituant le support physique de stockage des donnes et concerne : le fichier d'initialisation initSID.ora fixant les paramtres d'initialisation les fichiers du rseau : listener.ora sur le serveur et Tnsnames.ora sur chaque client les fichiers de donnes (data files), qui peuvent tre connus en interrogeant la vue V$DATAFILE du dictionnaire des donnes, contenant le dictionnaire des donnes et les objets crs par les utilisateurs (c.--d. la base de donnes : tables, contraintes dintgrit, index, dclencheurs et procdures stockes, privilges, etc.) les fichiers de reprise (log files), qui peuvent tre connus en interrogeant la vue V$LOGFILE du dictionnaire des donnes, contenant les mises jour les plus rcentes de la base de donnes et permettant (suite une panne matrielle ou logicielle) de remettre la base de donnes dans un tat cohrent grs circulairement possibilit d'archivage avant rutilisation (fichiers de reprise archivs) (mirroring) possibilit de les dupliquer (fichiers de reprise multiples) les fichiers de contrle (control files), qui peuvent tre connus en interrogeant la vue V$CONTROLFILE du dictionnaire des donnes, contenant des informations sur la structure physique d'une base de donnes (nom de la base de donnes, estampille de la cration de la base, noms et localisations des fichiers de donnes et de reprise, numro de squence courant du journal) (mirroring) possibilit de les dupliquer

2.2.2. La structure logique


La structure logique est dfinie par la hirarchie suivante : base de donnes : ensemble dobjets de schma rpartis dans les espaces de tables inaccessible si la base n'est pas charge, mme si l'instance (ensemble de la mmoire alloue et des processus, utilisateurs et SGBD, actifs) est dmarre accessible uniquement aux administrateurs si la base est charge (et associe une instance) mais non ouverte accessible tous les utilisateurs (dont les administrateurs) si la base est ouverte objets de schma (schma objects) : objets logiques (tables, vues, clusters, index, squences, procdures stockes, fonctions, paquetages, dclencheurs) chaque objet logique appartient un seul espace de tables Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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

2.4. Les processus


Les types de processus sont les suivants : processus utilisateur (client) : tches soumises par SQL*DBA, SQL*Plus, SQL*Forms, Pro*C, etc. processus SGBD (RDBMS process) : gestion des donnes Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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

3. Cration et dmarrage de la base de donnes


3.1. Cration de la base de donnes
Prambule tre administrateur de la base de donnes ayant le plus haut niveau de privilges valuer lespace disque ncessaire (et en disposer) Prvoir les moyens de gestion de la scurit (fichiers de reprise, archivage, sauvegarde et restauration, etc.) Sauvegarde (commande du systme dexploitation) des bases existantes (fichiers dinitialisation, du rseau, de donnes, de reprise, de contrle) Cration et modification du(des) fichier(s) dinitialisation, et notamment les paramtres suivants : DB_DOMAIN : nom logique du domaine dans un rseau DB_NAME : nom local de la base de donnes CONTROL_FILES : nom et localisation des fichiers de contrle INIT_SQL_FILES : fichier SQL construisant le dictionnaire de donnes et dautres fichiers initiaux SQL.BSQ : le premier script obligatoire permettant la cration de lespace de tables SYSTEM (avec le segment dannulation SYSTEM) et des tables du dictionnaire des donnes (et le chargement de certaines dentre elles) CATALOG.ORA : le deuxime script obligatoire permettant la cration des vues du dictionnaire des donnes (avec les synonymes publiques de ces vues et laccs PUBLIC ces synonymes) ventuellement AUDIT.SQL pour lobtention de vues sur les traces dactivit du systme etc. Arrt et redmarrage dOracle Arrt de la base de donnes ouverte : shutdown (de SQL*DBA) Se connecter avec le privilge INTERNAL Dmarrer une nouvelle instance (qui utilise les fichiers dinitialisation, INIT_ORA par dfaut) sans ouvrir la base de donnes :
startup nomount pfile= fichier dinitialisation

Cration de la nouvelle base de donnes La commande create database nom de base de donnes controlfile reuse logfile fichiers de reprise datafile fichiers de donnes gnre la cration des fichiers de donnes, des fichiers de reprise, des fichiers de contrle, de lespace de tables SYSTEM et du segment dannulation SYSTEM, du dictionnaire des donnes (tables, vues, synonymes), de deux utilisateurs (SYS et SYSTEM) ; la base de donnes est alors non seulement cre mais linstance est dmarre et la base de donnes est charge (monte) et ouverte.

3.2. Modification des caractristiques de la base de donnes


La commande alter database permet lajout et la suppression de fichiers de reprise, la rednomination de fichiers de donnes ou de reprise dans les fichiers de contrle (opration faire aussi au niveau du systme dexploitation), lajout de fichiers de donnes (notamment en cas de problme avec un ancien fichier de donnes), etc. Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 Page 9 sur 27

3.3. Dmarrage et fermeture de la base de donnes 3.3.1. Dmarrage dune base de donnes Oracle
Le dmarrage dune base de donnes Oracle consiste mettre la base de donnes la disposition des utilisateurs. Se connecter avec le privilge INTERNAL
connect INTERNAL

Dmarrer une instance Le dmarrage dune instance consiste prparer le contexte (espace mmoire et processus) pour les utilisateurs.
startup nomount

Chargement dune base de donnes Le chargement dune base de donnes consiste associer une base de donnes une instance dmarre. alter database mount (ou startup mount pour faire en mme temps le dmarrage de linstance) La base de donnes est alors accessible aux administrateurs mais pas aux autres utilisateurs ; cela permet de renommer un fichier de donnes, ajouter ou supprimer ou renommer un fichier de reprise, activer ou dsactiver loption darchivage des fichiers de reprise, effectuer un recouvrement (restauration suite une panne) total de la base de donnes, etc. Ouverture dune base de donnes Louverture dune base de donnes consiste rendre la base de donnes accessible tous les utilisateurs. alter database open (ou startup open pour faire en mme temps le dmarrage de linstance et le chargement de la base de donnes) Les fichiers de donnes et de reprise sont alors ouverts.

3.3.2. Fermeture dune base de donnes Oracle


Se connecter avec le privilge INTERNAL
connect INTERNAL

Fermeture dune base de donnes Les donnes en mmoire sont enregistres dans les fichiers de donnes et de reprise qui sont ensuite ferms. Dchargement dune base de donnes Le dchargement dune base de donnes consiste dissocier une base de donnes dune instance. Les fichiers de contrle sont alors ferms. Arrter une instance Larrt dune instance consiste librer la mmoire et arrter tous les processus. La commande shutdown normal refuse toute nouvelle connexion et attend que tous les utilisateurs se dconnectent ; quand il ny a plus aucun utilisateur connect, la base de donnes est ferme et dcharge et linstance est arrte.

4. Transactions et accs concurrents


Une transaction dbute implicitement par le dbut d'une session et se termine soit la fin d'une session soit par l'ordre SQL commit (qui valide toutes les oprations de mise jour des donnes de la transaction) ou rollback (qui annule ces oprations). Il est possible de placer des points de repres intermdiaires par l'ordre savepoint. Les accs concurrents font intervenir les concepts dintgrit, de concurrence, de consistance et mettent en uvre la technique de verrouillage des donnes. Le granule de verrouillage est logique (table, ligne, etc.) ou physique (segment, fichier, page, etc.). Le verrouillage est implicite (gr par Oracle pour maintenir la cohrence des donnes) ou explicite (lutilisateur contrle lui-mme les verrouillages, au niveau des transactions ou dune instance). Au dmarrage dune instance, par dfaut (verrouillage implicite), le paramtre SERIALIZABLE vaut FALSE (TRUE signifierait un verrouillage systmatique au niveau table) tandis que le paramtre ROW_LOCKING vaut ALWAYS (INTENT signifierait la non mise jour simultane des lignes dune table par plusieurs transactions). Les diffrents modes de verrouillage explicite des donnes sont les suivants : aucun verrouillage (V$LOCK.LMODE=1) tous les autres verrous (RS RX S SRX X, dcrits ci-aprs) sont autoriss
select

lignes partages RS (row share) verrou slectif des lignes en vue de leur mise jour autres verrous autoriss : RS RX S SRX
select ... for update lock table ... in row share mode

(V$LOCK.LMODE=2)

lignes exclusives RX (row exclusive) (V$LOCK.LMODE=3) verrou slectif de lignes dune table en vue de leur mise jour ; les lignes ne sont cependant pas partages avec dautres transactions autres verrous autoriss : RS RX
insert

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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).

5. Scurit des donnes


La scurit des donnes consiste contrler lauthenticit des utilisateurs lors de leur connexion, dfinir les espaces de tables accessibles par dfaut, dfinir les limitations des ressources, accorder les privilges daccs aux objets de la base de donnes. Les commandes permettant de grer les utilisateurs avec leurs privilges sur les diffrents objets : profil : {create|alter|drop} profile profil rle : {create|alter|drop} role rle pour sa cration, set role rles pour son activation privilge daccs : privilge systme (accs la base de donnes et la dfinition de ses objets) ou privilge objet (manipulation dobjets de la base de donnes) grant { privilges systme | rles } to { utilisateurs | rles } pour attribuer un privilge systme revoke { privilges systme | rles } from { utilisateurs | rles } pour retirer un privilge systme grant privilges objet on objet to { utilisateurs | rles } pour attribuer un privilge objet revoke privilges objet on objet from { utilisateurs | rles } pour retirer un privilge objet utilisateur : {create|alter|drop} user utilisateur (profil DEFAULT par dfaut) Deux comptes sont crs automatiquement lors de linstallation du logiciel : SYS (avec le mot de passe change_on_install) et SYSTEM (avec le mot de passe manager). Ces comptes ont des privilges trs levs (mme suprieurs ceux des administrateurs de la base de donnes puisque par exemple SYS est le seul compte avoir accs au dictionnaire de donnes) et ne doivent donc jamais tre utiliss (exceptions faites de linstallation, de la dsinstallation, et de la cration du premier compte dadministration de la base de donnes). Si vous installez les exemples fournis par Oracle, le compte SCOTT (avec le mot de passe tiger) est galement cr.

6. Sauvegarde et restauration de donnes


Il sagit de la planification et de la mise en place de procdures de sauvegarde et de restauration (suite une panne quelconque) de la base de donnes. La restauration peut se faire sans lintervention de ladministrateur (reprise chaud) ou avec son concours partir dune sauvegarde (reprise froid).

6.1. Les diffrentes pannes


erreur accidentelle : suppression dun objet de la base (la solution consiste renforcer la scurit) panne sur une commande SQL : par manque de ressources, Oracle annule la transaction et retourne un code derreur panne dun processus : qui sarrte sans validation ou annulation de la transaction en cours. pmon dtecte cette panne et se substitue au processus dfaillant panne rseau : qui interrompt lexcution dune application. pmon dtecte cette panne et se substitue au processus dfaillant, ou reco si la transaction est rpartie panne dinstance : suite une panne matrielle ou logicielle, la base sarrte dans un tat incohrent puisque des mises jour valides ne sont pas rpercutes dans les fichiers de donnes (mais prsentes dans les fichiers de reprise) ou encore des mises jour non valides ont t transmises aux fichiers de donnes (mais leurs images avant sont prsentes dans les Page 11 sur 27

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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. Les mcanismes mis en uvre 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. Page 12 sur 27

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

6.3. Les sauvegardes 6.3.1. Les stratgies de sauvegardes


Peut-on accepter de perdre des donnes en cas de panne ? Si la rponse est non, les fichiers de reprises doivent tre archivs (option ARCHIVELOG active) et dupliqus (mirroring). Si la rponse est oui, sauvegarde rgulire (quotidienne, hebdomadaire, mensuelle, etc. selon la priode de tolrance de perte des donnes respectivement dun jour, dune semaine, dun mois, etc.) et les fichiers de reprises nont pas tre archivs (option NOARCHIVELOG active). Quelle est la disponibilit ncessaire pour la base de donnes ? Si la rponse est toujours, les fichiers de reprises doivent tre archivs (option ARCHIVELOG active). Si la rponse est peu disponible , les fichiers de reprises nont pas tre archivs (option NOARCHIVELOG active).

6.3.2. Les diffrentes sauvegardes 6.3.2.1.


Sauvegarde complte

Sauvegarde sur un support magntique de tous les fichiers de la base de donnes (de donnes, de reprise, de contrle) --ainsi que les fichiers dinitialisation et du rseau --- par une commande du systme dexploitation. Fait suite une fermeture normale de la base de donnes. En mode ARCHIVELOG, recouvrement partir de la sauvegarde la plus rcente et utilisation des fichiers de reprise (en ligne et archivs) permettant de reprendre jusquau moment o sest produite la panne. Procdure :
shutdown normal

sauvegarde de tous les fichiers (de donnes, de reprise, de contrle) par une commande du systme dexploitation
startup

6.3.2.2.

Sauvegarde partielle

Utile quen mode ARCHIVELOG. Sauvegarde dun espace de tables ou dun fichier de donnes ou de contrle. La base peut tre ouverte ou ferme. Procdure dans le cas dun fichier de donnes ou dun espace de tables activ (online) : identifier le fichier de donnes dun espace de tables activ par la commande
select FILE_NAME from DBA_DATA_FILES where TABLESPACE_NAME= tablespace

marquer le dbut des oprations de sauvegarde de lespace de tables activ : alter tablespace sauvegarde des fichiers de donnes en ligne par une commande du systme dexploitation marquer la fin des oprations de sauvegarde de lespace de tables dsactiv : alter tablespace En mode ARCHIVELOG, Oracle insre le dernier point de vrification (checkpoint) dans le fichier de donnes permettant, en cas de restauration, dappliquer le recouvrement partir de ce point. Procdure dans le cas dun fichier de donnes ou dun espace de tables dsactiv (offline) : identifier le fichier de donnes dun espace de tables dsactiv par la commande
select FILE_NAME from DBA_DATA_FILES where TABLESPACE_NAME= tablespace

dsactiver lespace de tables : alter tablespace sauvegarde des fichiers de donnes en ligne par une commande du systme dexploitation ractiver lespace de tables : alter tablespace La sauvegarde dun fichier de donnes inactiv ne pose pas de problme car il est dans un tat cohrent.

6.3.3. Quelques conseils !


Sauvegarder la base (entirement) lors de sa cration. Effectuer des sauvegardes partielles mettant jour la sauvegarde de la base. Effectuer des sauvegardes des fichiers de donnes (notamment des espaces de tables les plus utiliss). Effectuer des sauvegardes des fichiers de contrle chaque mise jour de la structure de la base de donnes. Rappelons que la sauvegarde du fichier de reprise est implicite en mode ARCHIVELOG.

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 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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.

7.1. Optimisation d'une requte


Oracle dispose dun optimiseur intgr ayant pour objectif de trouver le moyen le plus efficace pour excuter une commande SQL.

7.1.1. Les phases d'excution d'une requte


Les diffrentes phases d'excution d'une requte sont l'analyse, lexcution et la recherche. Toute requte suit le traitement suivant : si l'analyse n'a pas dj t effectue cration d'un curseur analyse (parse) de la requte vrifications syntaxique, vrifications d'existence et des droits sur les objets verrouillages planification de l'excution, chargement en mmoire, rpartition ventuelle si la requte est une requte d'interrogation description des champs du rsultat (notamment pour une requte interactive ou du SQL dynamique) dfinition des variables en sortie devant accueillir le rsultat substitution des variables (bind) par les valeurs courantes pour les paramtres en entre excution (exec) de la commande, avec verrouillage (suppression ou modification) ou sans verrouillage (insertion ou interrogation) si la requte est une requte d'interrogation recherche (fetch), une une, des lignes du rsultat, avec tri ventuel

7.1.2. Le plan d'excution


Le plan dexcution dune requte consiste pour Oracle trouver le meilleur chemin pour accder aux donnes, en minimisant le nombre doprations dentre/sortie et en minimisant le temps de traitement, et en optant pour une mthode statique ou statistique. La commande explain permet d'expliquer le plan d'excution d'une requte.

7.1.3. Laccs aux donnes


L'accs aux donnes (sur disque) peut s'effectuer : directement dans la table relativement l'adresse physique (identification du fichier, bloc dans le fichier et ligne dans le bloc) de la ligne (ROWID) par un parcours d'un cluster index (cluster scan) o les lignes ayant mme valeur pour la cl du cluster sont stockes dans le mme bloc par un parcours d'un cluster par hachage (hash scan) o les lignes ayant mme valeur de hachage sont stockes dans le mme bloc par un parcours d'un index (index scan) pour retrouver les lignes grce une ou plusieurs colonnes de lindex ; lindex peut tre unique (le parcours de la table dindex retourne une seule valeur ROWID) ou multiple (le parcours de la table dindex retourne une ou plusieurs valeurs ROWID) par un parcours squentiel de toutes les donnes directement recherches dans la table (full table scan)

7.1.4. Les mthodes d'optimisation 7.1.4.1. La mthode statique

La mthode statique consiste dterminer le plan d'excution en fonction des diffrentes mthodes d'accs aux donnes disponibles en privilgiant celui de moindre cot compte-tenu de la classification suivante (en commenant par la plus efficace) : accs une ligne par son adresse physique accs une ligne par jointure clustrise accs une ligne par cluster par hachage avec cl unique accs une ligne par cl unique jointure clustrise (c.--d. les deux tables rfrences par la jointure sont stockes dans le mme cluster) cl de cluster par hachage cl de cluster index Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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.4.2.

La mthode statistique

La mthode statistique consiste : commencer par gnrer les plans d'excution en fonction des diffrents chemins d'accs aux donnes disponibles, estimer ensuite le cot (nombre d'entres/sorties, temps CPU, mmoire ncessaire) de chaque plan d'excution partir des statistiques existantes sur les tables/colonnes/clusters/index concerns en considrant les critres de slectivit (pourcentage de lignes ramenes) et de facteur de blocage (nombre de lectures multi-blocs dpendant du paramtre DB_FILE_MULTIBLOCK_READ_COUNT), choisir finalement l'un des plans d'excution de cot minimal. La commande analyze permet de gnrer des statistiques sur un objet. Par exemple, lordre analyze index index compute statistics lance une analyse complte (plutt pour les index ou de petites tables) dun index tandis que lordre analyze table table estimate statistics sample 20 percent lance une analyse partielle (plutt pour des tables volumineuses) dune table.

7.1.5. Les buts d'optimisation 7.1.5.1. Le meilleur temps de rponse

Le but doptimisation consistant obtenir le meilleur temps de rponse permet de rduire le temps d'obtention de la premire ligne du rsultat. Cela concerne ventuellement un traitement interactif. Par exemple, une jointure par imbrication de boucles (NESTED LOOPS) favorise le temps de rponse.

7.1.5.2.

Le meilleur dbit du rsultat

Le but doptimisation consistant obtenir le meilleur dbit du rsultat permet de minimiser le temps global d'excution (c.--d. pour obtenir la totalit) du rsultat. Cela concerne assurment les traitements par lot. Par exemple, une jointure par tri et fusion (MERGE JOIN) favorise le dbit du rsultat.

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.

7.1.7. Forcer les choix de loptimiseur par programmation


Comme le programmeur a souvent une connaissance plus fine de larchitecture des donnes que loptimiseur, il peut forcer le comportement dOracle pour excuter une requte SQL en y insrant un mot-cl (hint), entour par /*+ et */, pour le choix : de la mthode et du but : statique (RULE), statique et temps de rponse (FIRST_ROWS), statique et dbit du rsultat (ALL_ROWS) de la mthode d'accs : parcours squentiel (FULL), directement avec l'adresse physique (ROWID), parcours d'un cluster index (CLUSTER), parcours d'un cluster par hachage (HASH), parcours d'un index (INDEX) Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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)

7.1.8. Modification de la requte par loptimiseur


Oracle modifie la requte en une syntaxe quivalente lorsque cela est possible : en valuant les expressions Par exemple, le prdicat X=12/4 and X>Y and Z in (un,deux) devient Y<3 and (Z=un or Z=deux). en transformant une requte ayant un prdicat contenant un or en une requte union all si cela amliore lexcution (c.--d. si chaque composante de la condition gnre un chemin daccs bas sur un index ou si lune des deux conditions impose le parcours complet de la table en labsence dindex) en transformant une requte complexe en une jointure quivalente (pour une sous-requte par exemple) en prenant en compte les vues, soit en propageant la dfinition de la vue dans la requte, soit en propageant la dfinition de la requte dans la vue

7.2. Optimisation de la mmoire (centrale)


Il sagit dobtenir une bonne distribution de la mmoire centrale pour les diffrentes structures internes dOracle de sorte maximiser les donnes accessibles en mmoire (c.--d. minimiser les dfauts mmoire). Certains paramtres dfinissent la taille de la mmoire : du cache base de donnes (DB_BLOCK_BUFFERS), de la zone de reprise (LOG_BUFFER), du pool partag (SHARED_POOL_SIZE). La zone prive SQL et PL/SQL contient lanalyse et le plan dexcution des commandes SQL partages ; le paramtre OPEN_CURSORS dfinit le nombre maximum de zones par utilisateur.

7.2.1. Appels superflus l'analyseur


Rduire le nombre d'appels superflus l'analyseur en comparant le nombre de fois qu'une requte a t analyse relativement son nombre d'excutions. Le diagnostic peut se faire l'aide de la trace de l'excution en positionnant le paramtre de session SQL_TRACE. Si le nombre dappels lanalyseur (champ COUNT) en phase danalyse approche le nombre dappels lanalyseur en phase dexcution, cela signifie que chaque excution dune commande fait appel lanalyseur de loptimiseur. La solution dpend de loutil de dveloppement utilis. Par exemple, pour un pr-compilateur, les paramtres HOLD_CURSOR et RELEASE_CURSOR permettent de contrler les zones prives et les appels lanalyseur.

7.2.2. Dfauts de mmoire du cache de la bibliothque


Rduire le nombre de dfauts de la mmoire du cache de la bibliothque intervenant lorsqu'il n'y a plus de place mmoire pour une nouvelle requte (en phase d'analyse comme en phase d'excution) ; il y a alors r-analyse et r-allocation de zones partages. Le diagnostic peut se faire l'aide de la vue V$LIBRARYCACHE ; ses principaux champs sont le nom de llment (NAMESPACE), le nombre de fois quun lment a t excut (PINS), le nombre de dfauts mmoire lors de lexcution (PINHITS), le nombre de dfauts mmoire lors de lexcution obligeant une r-analyse ou le rechargement dun objet systme (RELOADS). Lobjectif est dannuler la somme totale des RELOADS ou tout au moins davoir le rapport somme totale des PINS sur somme totale des RELOADS suprieur 1%. Les solutions consistent augmenter la taille de la mmoire correspondante (SHARED_POOL_SIZE), normaliser l'criture des requtes (afin dobtenir des scripts de requtes parfaitement comparables, caractre par caractre), ne librer la place mmoire occupe par une requte qu'aprs la fermeture de son curseur (en positionnant le paramtre CURSOR_SPACE_FOR_TIME TRUE).

7.2.3. Dfauts de mmoire du cache du dictionnaire des donnes


Rduire le nombre de dfauts de la mmoire du cache du dictionnaire des donnes. Le diagnostic peut se faire l'aide de la vue V$ROWCACHE ; ses principaux champs sont le nombre total de demandes de donnes (GETS), le nombre de dfauts mmoire (GETMISSES).

7.2.4. Dfauts de mmoire du buffer cache


Rduire le nombre de dfauts de la mmoire du buffer cache en comparant le nombre total de demandes de donnes relativement au nombre total de demandes de donnes ayant provoqu des accs disque. Le diagnostic peut se faire l'aide de la vue V$SYSSTAT ; ses principaux champs sont le nom (NAME : les valeurs db blok gets et consistent gets correspondent au nombre total de demandes formules, la valeur physical reads correspond au nombre total de demandes ayant gnr un accs disque) et sa valeur (VALUE).

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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.

7.2.5. Dfauts de mmoire des fichiers de reprise


Augmenter la zone conservant les donnes insrer dans les fichiers de reprise (LOG_BUFFER).

7.2.6. Non utilisation de PL/SQL


Rduire la taille du pool partag (SHARED_POOL-SIZE) conservant les plans dexcution des requtes et les blocs PL/SQL, si le PL/SQL est peu utilis.

7.2.7. Dfauts de mmoire lis aux tris


viter lutilisation du segment temporaire du disque survenant lorsque le volume de donnes trier est trop grand (dpassant la taille dfinie par le paramtre SORT_AREA_SIZE).

7.3. Optimisation des entres/sorties 7.3.1. Contentions des disques


Rduire les contentions des disques c.--d. les accs simultans au disque. Le diagnostic peut se faire l'aide de la vue V$FILESTAT ; ses principaux champs sont le nombre de lectures pour chaque fichier (PHYRDS), le nombre dcritures pour chaque fichier (PHYWRTS). Les solutions consistent placer les fichiers de donnes et de reprise sur des disques diffrents, placer chaque groupe de fichiers de reprise sur des disques diffrents, clater les tables en stockant les donnes dans des fichiers diffrents (d'un mme espace de tables), sparer tables et index dans des espaces de tables diffrents.

7.3.2. Allocation d'espace dans les blocs


Amliorer lallocation despace dans les blocs cest--dire rduire les chanages des lignes sur plusieurs blocs et viter les migrations dune ligne dun bloc vers un autre bloc (lors de la modification de la ligne). En effet, lors de la cration dun enregistrement (table ou index), il est affect dans un bloc mais suite des modifications, sil ne loge plus dans ce bloc, il y a un chanage de lenregistrement dun bloc vers un autre bloc. Le diagnostic peut se faire l'aide de la commande analyze avec l'option list chained rows. La solution prventive consiste choisir judicieusement les valeurs de la clause de stockage (PCTFREE et PCTUSED) ; par exemple, on peut aller jusqu affecter zro PCTFREE si on sait que linformation est rarement modifie. La solution curative consiste reconstruire la table (ou lindex) morcele en utilisant une table temporaire servant stocker (sans chanage) les lignes chanes de la table initiale avant de les insrer de nouveau dans celle-ci.

7.3.3. Dfragmentation du disque


viter davoir des tables et des index fragments. Cela se produit lorsque lespace physique initial allou est plein et requiert une extension (non forcment au voisinage de lespace initial ou de lextension prcdente). La solution prventive consiste choisir judicieusement les valeurs de la clause de stockage (PCTFREE, INITIAL, NEXT et PCTINCREASE). La solution curative consiste reconstruire la table ou lindex fragment en utilisant loutil Import/Export (option COMPRESSE=YES pour avoir ensemble la table et lindex).

7.3.4. Allocation dynamique d'espace supplmentaire


Rduire les allocations dynamiques d'espace supplmentaire gnrant des appels rcursifs (recursive calls) lors de dfaut mmoire dans le cache du dictionnaire ou du dclenchement des triggers ou de lexcution des commandes du langage de dfinition des donnes ou de lexcution des commandes dans les procdures, fonctions, paquetages, blocs PL/SQL ou encore du renforcement des contraintes dintgrit rfrentielles. Le diagnostic peut se faire l'aide de la vue V$SYSSTAT (valeur 'recursive calls' du champ NAME). La solution consiste dterminer et choisir la taille maximale de l'objet stocker.

7.4. Rduction des contentions des processus


Une contention des processus se produit lorsque des processus veulent accder la mme ressource (segments dannulation, processus des serveurs multi-threads, loquets de buffers de reprise).

7.4.1. Contentions sur les segments dannulation


Rduire les contentions sur les segments dannulation. Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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).

7.4.2. Taux d'occupation du processus dispatcher


Rduire le taux d'occupation du processus dispatcher. Le diagnostic peut se faire l'aide de la vue V$DISPATCHER (processus dispatcher) ; ses principaux champs sont le temps dinoccupation des processus dispatcher (IDLE), le temps doccupation des processus dispatcher (BUSY). On pourra aussi consulter la vue V$SHARED_SERVER (processus serveurs). La solution consiste augmenter le nombre de processus dispatcher (paramtres systmes MTS_DISPATCHERS et MTS_SERVERS, paramtres MTS_MAX_DISPATCHERS et MTS_MAX_SERVERS) si le temps d'occupation est suprieur au temps d'inoccupation.

7.4.3. Temps d'attente du processus dispatcher ; processus partags


Rduire le temps d'attente du processus dispatcher et les contentions des processus partags. Le diagnostic peut se faire l'aide de la vue V$QUEUE ; ses principaux champs sont le temps total dattente de toutes les rponses (WAIT), le nombre total de rponses (TOTALQ). La solution consiste augmenter le nombre de processus dispatcher si le temps moyen d'attente pour un protocole continue s'accrotre.

8. Outils : amlioration des performances, dveloppement, administration


8.1. Trace de lexcution dune requte 8.1.1. Le paramtre SQL_TRACE
Le paramtre SQL_TRACE permet dobtenir la trace de lexcution dune commande SQL dans un fichier contenant des informations sur les phases danalyse, dexcution et de recherche, sur le temps CPU et le temps coul, sur les lectures physiques et logiques, et sur le nombre de lignes traites. Le paramtre se positionne pour une session par la commande alter session set SQL_TRACE TRUE ou pour toutes les sessions par SQL_TRACE=TRUE dans le fichier dinitialisation. Le paramtre USER_DUMP_DEST correspond au rpertoire o sont gnrs les fichiers de traces dexcution. Il faut positionner le paramtre TIMED_STATISTICS TRUE pour avoir des statistiques disponibles par SQL*DBA (menu Monitor, option Statistic).

8.1.2. Lutilitaire TKPROF


Lutilitaire tkprof fichier de trace fichier en sortie permet dexploiter le fichier de traces dexcution, globalement pour la session et dans le dtail pour chaque phase dexcution de la commande SQL : analyse (PRS), excution (EXE) et recherche (FCH). Ces informations sont : (CNT) le nombre de fois que la commande a t analyse, excute et le nombre dappels pour ramener le rsultat (count) (CPU) le temps CPU (cpu) (ELA) le temps coul total (elapsed) (PHR) le nombre de blocs physiquement lus sur le disque (physical read) (CR) le nombre de fois quune ancienne version du buffer a t utilise (consistent read) (CU) le nombre de fois que la valeur courante du buffer a t utilise (current) (ROW) le nombre de lignes trouves (rows) Par exemple, le critre PRSCNT correspond au nombre de fois que la commande a t analyse ; de mme, EXECR+EXECU est le nombre de lectures effectues durant lexcution (en modes consistant et courant) c.--d. le nombre de blocs chargs en mmoire. Pour tous les traitements transactionnels, les temps de rponse doivent tre optimiss : EXECPU < 1 sec. PRSCPU < 1 sec. viter lutilisation de la table DUAL neffectuer le parcours complet des tables que pour celles de petite taille choisir un sens pour les jointures Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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

8.1.3. La commande EXPLAIN


La commande explain plan set STATEMENT_ID= identifiant externe for requte dinterrogation permet dexpliquer le plan dexcution dune requte dinterrogation. Les rsultats de lexplication sont placs dans la table PLAN_TABLE dont voici les principaux champs : STATEMENT_ID : identifiant externe donn par lutilisateur de la commande analyser ID : numro dune tape (identifiant interne) PARENT_ID : numro dune tape utilisant en entre les sorties de ltape de numro ID POSITION : ordre des traitements au sein dune mme tape (ils ont mme PARENT_ID) OPERATION : opration interne effectue lors dune tape OPTIONS : description supplmentaire ventuelle de lopration Un traitement classique (il sagit dune requte rcursive : cf. start with et connect by prior) pour obtenir les rsultats de lexplication :
-- saisie de lidentifiant externe affect dans la variable ParamStatId accept ParamStatId char prompt 'Indiquez la valeur du STATEMENT_ID : ' -- interrogation pour lobtention des rsultats de lexplication select STATEMENT_ID , POSITION , ID , PARENT_ID , level , lpad(' ',3*(level-1))||OPERATION||' : '||OPTIONS||' : '||OBJECT_NAME as SUITE from PLAN_TABLE start with ID=0 and STATEMENT_ID='&ParamStatId' connect by prior ID=PARENT_ID and STATEMENT_ID='&ParamStatId';

8.2. Gnration de statistiques destines loptimiseur : la commande ANALYZE


La commande analyze {table
relation |index index |cluster cluster } {compute|estimate|delete} statistics permet de gnrer des statistiques utilises par loptimiseur pour la mthode

statistique. Les statistiques concernent les tables (nombre de lignes, nombre de blocs, nombre de blocs inutiliss, espace libre moyen, nombre de lignes chanes, longueur moyenne des lignes), les index (niveau de lindex, nombre de blocs terminaux, nombre de cls distinctes, nombre moyen de blocs terminaux par cl, nombre moyen de blocs de donnes, valeur minimale de la cl, valeur maximale de la cl), les colonnes (nombre de valeurs distinctes). Les statistiques peuvent tre calcules pour chaque valeur (compute), estimes grce au dictionnaire des donnes (estimate) ou supprimes (delete).

8.3. Outils de dveloppement 8.3.1. Utilisation des tableaux


Les tableaux peuvent permettre de diminuer le nombre dappels quune application fait Oracle, notamment pour la phase de recherche. La taille du tableau (paramtre ARRAYSIZE) conditionne le nombre de lignes ramener en une seule fois : plus la taille est grande, moins il y a dappels (mais au del dune certaine taille, lintrt devient ngligeable compar la place mmoire requise).

8.3.2. Programmation en PL/SQL


Dfinir des blocs pour grouper des commandes excutes en une seule fois afin de dcharger le trafic sur le rseau. Utiliser des curseurs explicites pour viter un fetch supplmentaire (vrifiant quil ny a plus de lignes).

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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. Outils dadministration 8.4.1. Lutilitaire SQL*DBA


Lutilitaire SQL*DBA permet deffectuer toutes les oprations dadministration (except lchange de donnes) : dmarrer et arrter une instance charger et dcharger une base de donnes ouvrir et fermer une base de donnes piloter en temps rel le fonctionnement dOracle sauvegarder et restaurer des donnes ou journaux excuter toute commande SQL et PL/SQL SQL*DBA peut tre utilis en mode menu (interface semi-graphique : sqldba) ou en mode ligne (saisie des commandes : sqldba LMODE=Y). Il faut ensuite se connecter avec lutilisateur interne (commande connect INTERNAL). Les commandes disponibles en mode menu sont : Session : connexion (connect) ou dconnexion (disconnect), excution dune commande du systme dexploitation (host), quitter temporairement SQL*DBA, quitter (exit) Instance : dmarrage (startup), arrt (shutdown), chargement, ouverture, point de vrification, changement de fichier de reprise, etc. Espace de tables : cration ou suppression, activation ou dsactivation, ajout de fichier, re-dnomination de fichier, modification des paramtres de stockage Segment dannulation (rbsegs) : cration ou suppression, activation ou dsactivation, modification des paramtres de stockage Fichier de reprise (logs) : ajout ou suppression dun groupe, ajout ou suppression ou re-dnomination dun fichier dun groupe, activation ou dsactivation dun groupe, dmarrage ou arrt de larchivage automatique, dbut de larchivage manuel, affichage des informations (archive log) Sauvegarde (backup) : dbut ou fin de sauvegarde dun espace de tables actif, restauration dune base de donnes ou dun espace de tables ou dun fichier de donnes (recover) Scurit (security) : cration ou modification ou suppression dun utilisateur ou dun rle ou dun profil, dfinition de ressources, attribution ou retrait de privilges monitoring (monitor) : informations sur les processus (monitor PROCESS), statistiques sur les sessions (monitor SESSIONS), liste des tables utilises (monitor TABLE), informations sur les loquets (latch) c.--d. les verrous internes utiliss par Oracle pour protger des structures partages de la mmoire (monitor LATCHES), informations sur les verrous (monitor LOCKS), activits de lecture/criture sur chaque fichier (monitor FILE), pourcentage dactivit dentres/sorties des diffrents processus (monitor I/O), tat des segments dannulation (monitor ROLLBACK), statistiques gnrales sur linstance (monitor STATISTICS) Les autres commandes disponibles en mode ligne sont : describe, execute commande PL/SQL , print variable , remark, set, show, spool, variable.

8.4.2. Lutilitaire Import/Export


Lutilitaire Import/Export permet lchange de donnes entre diffrentes bases Oracle. Cest un outil de migration, de dfragmentation, et de transfert de donnes dun environnement vers un autre.

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 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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.

8.4.3. Lutilitaire SQL*Loader


Lutilitaire SQL*Loader (sqlload) permet de charger dans une base de donnes Oracle des donnes provenant de fichiers externes (gnrs par des logiciels autres quOracle). SQL*Loader utilise un fichier de contrle et des fichiers de donnes, charge les donnes, et gnre un fichier pour les enregistrements errons, un fichier pour les enregistrements rejets et un fichier journal. Le fichier de contrle contient la description des donnes charger (noms et structures) et leur destination dans la base de donnes (liste des tables et colonnes o effectuer le chargement, correspondance entre les champs des fichiers de donnes et les colonnes). Il existe des utilitaires pour importer un fichier DBase, un fichier Lotus ou encore tout fichier ASCII. Les fichiers de donnes sont au format binaire ou caractres, de longueur fixe ou variable. Le fichier pour les enregistrements errons correspond des enregistrements nayant pas pu tre interprts. Le fichier pour les enregistrements rejets correspond des enregistrements ne satisfaisant pas une condition spcifie dans le fichier de contrle (clause when). Le fichier journal est un compte-rendu de lexcution de lopration de chargement.

8.5. Outils pour un environnement rseau


Selon que les donnes et/ou les traitements sont situs sur un ordinateur central ou des ordinateurs distants, larchitecture diffre (cf. schma ci-aprs) : architecture centralise : les donnes et les traitements sont localiss sur un mme ordinateur central architecture distribue : les donnes sont localises sur un ordinateur central tandis que les traitements sont localiss sur des ordinateurs distants On parle aussi darchitecture client/serveur. La solution propose par Oracle est SQL*Net. architecture rpartie : les donnes et les traitements sont localiss sur des ordinateurs distants On parle aussi de multi-bases de donnes. La solution propose par Oracle est SQL*Star.

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 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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.

8.5.2. SQL*Star et les bases de donnes rparties


La base de donnes rpartie est forme de lunion des bases de donnes locales gres chacune par un SGBD local. On parle de base de donnes rpartie htrogne si les SGBD locaux sont diffrents. Oracle assure lunicit de tous les objets : nom schma . nom objet @ nom base . adresse rseau . Cette hirarchisation des noms est telle que lunicit est garantie chaque niveau de la hirarchie. Un lien permet dtablir une liaison entre une base de donnes locale et une base de donnes distante par la commande create database link nom lien ; ce lien nest disponible que pour les utilisateurs pouvant crer une session sur la base de donnes distante. Lutilisation de procdures, synonymes, vues rend la localisation des donnes parfaitement transparente pour lutilisateur et le programmeur. Pour toute transaction rpartie termine, Oracle dclenche automatiquement le mcanisme de validation en deux phases (transparent pour lutilisateur, le programmeur et ladministrateur) qui assure que la validation ou lannulation de la transaction est faite dans toute les bases de donnes concernes (mme en cas de panne car le traitement de la transaction est repris ds la restauration). La premire phase de prparation consiste pour le site dorigine demander tous les autres sites concerns sils sont prts tandis que la seconde phase de validation consiste pour le site dorigine demander tous les autres sites concerns, sils sont tous prts, de valider la transaction. La table DBA_2PC_PENDING contient toutes les informations sur les transactions rparties en cours. La rplication des donnes dune base de donnes consiste mettre disposition dautres bases de donnes une copie des donnes disponibles quen interrogation ; cette rplication peut tre synchrone c.--d. les copies sont mises jour ds mise jour de loriginal ou asynchrone (snapshot) c.--d. la mise jour des copies se fait intervalle rgulier. Ladministration est autonome pour chaque SGBD local ; ladministration globale consiste choisir la meilleure localisation des donnes, assurer lunicit des noms, attribuer les privilges lors de la cration de liens, dfinir les contraintes dintgrit globales, dfinir une politique de sauvegarde et de restauration.

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

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.

9. Nouveauts des versions 8 et 8i


La version 8i sest oriente vers Internet comparativement la version 8. 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. Les principales possibilits de la nouvelle version dOracle sont les suivantes : crer des applications client/serveur (les programmes sont sur les postes clients tandis que les donnes sont sur le serveur : la communication consiste uniquement prsenter une requte et retourner les donnes), partitionner les applications (les applications sont rparties sur plusieurs machines mais accdent toutes la mme base de donnes), rpliquer les donnes (les informations sont dissmines dans plusieurs bases de donnes), grer des solutions de type infocentre ou entrept de donnes (data warehouse) ou data-marts (rafrachissement rgulier du contenu, interrogation des fins danalyse, de consolidation, de dcision), pour internet ou intranet (Oracle WebServer Manager configure les serveurs Web, Oracle Web Application Server sert des pages HTML stockes localement et peut excuter des sous-programmes stocks dans la base de donnes, Oracle Web Publishing Assistant permet dinterroger une base de donnes et den publier le rsultat dans des pages Web). Dautres caractristiques dOracle peuvent galement tre releves. Systme informatique trois niveaux : le poste client (terminal graphique disposant dun navigateur assurant la communication entre les applications et lutilisateur) est connect au serveur dapplications (qui gre la logique des traitements, les transactions, etc.) lui-mme connect au serveur de donnes (ddi lhbergement des bases de donnes). Oracle supporte Java chacun de ces trois niveaux (client, serveur, mdiateur). Utilisation indiffremment de Java ou de PL/SQL (par exemple, pour programmer un dclencheur) : une machine virtuelle Java a t intgre dans Oracle. Oracle8i et Java : JDBC (Java Database Connectivity) ou SQLJ (SQL intgr dans du Java) ? JDBC (incorpor en standard dans Oracle) sappuie soit sur ODBC, soit sur Net8, soit ni sur ODBC ni sur Net8. SQLJ (commercialis sparment par Oracle, norme de trois entreprises : Oracle, IBM et SUN) ncessite une phase de pr-compilation des ordres SQL en code Java (utilisant une interface JDBC). Oracle Jdeveloper permet de dvelopper en Java une application Oracle complte ; il est possible galement dutiliser les composants Enterprise JavaBeans et de sappuyer sur le protocole de communication IIOP (norme de communication CORBA standard). Paradigme relationnel-objet : intgration de nouveaux types dobjets (types structurs munis de mthodes et de procdures stockes), gestion de donnes complexes c.--d. de collections dobjets similaires (ensembles ordonns de donnes de mme type (varrays, variable size arrays), ensembles non ordonns de donnes de mme type (nested tables), etc.) bnficiant des oprations de lalgbre relationnelle tendue (utilisation indiffremment des identifiants dobjets ou des cls primaires, oprations de restructuration permettant notamment dobtenir (unnesting) une relation de forme plate partir dune collection, etc.), gestion (avec interMedia) de donnes multimdia (texte, image, son, vido, coordonnes gographiques c.--d. donnes spatiales) c.--d. dobjets non structurs (large objects, LOBs). Il est possible deffectuer des oprations de mises jour et de grer des dclencheurs pour ces donnes (tables et vues). Il est possible dappeler des procdures externes depuis la base de donnes. Respect de la norme SQL3 standard pour la dfinition des types dobjets et les techniques de modlisation des objets (cration/modification de types, gnration/stockage des identifiants dobjets, cration de rfrences aux objets, etc.). Gestion des agrgats utilisant un mcanisme de stockage de plusieurs dimensions et un calcul automatique (de sous-totaux par exemple). Oracle Express Analyzer est un outil danalyse multidimensionnelle (OLAP et ROLAP) intgrant les oprateurs CUBE et ROLLUP dans la clause SQL GROUP BY. Gestion des requtes en toile (star queries) c.--d. des requtes utilisant une (ou plusieurs) table(s) volumineuse(s) relie(s) de nombreuses tables de petites taille (dimension tables). Il est possible dexcuter des oprations de mise jour (insertion, modification, suppression) en parallle, que les tables soient partitionnes ou non. Systme de fichiers internet (iFS c.--d. internet File System) permettant des manipulations faciles des donnes (recherche de texte par exemple). Fonction dchantillonnage (data mining) pour les requtes dinterrogation (clause SAMPLE). Dsactivation/Activation des contraintes. Enfin, citons quelques spcificits relevant de ladministration. Scurit : gestion des ressources accdes par plusieurs utilisateurs selon un classement de priorit, contrle daccs granulaire, excution dun programme dans un contexte de scurit paramtrable (par exemple, pour permettre un client, selon la valeur de son code client, de consulter uniquement les factures le concernant), gestion dutilisateurs un niveau Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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 rexcution) 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.

Quelques uns des outils. Oracle Universal Installer (OUI) : outil graphique pour installer et mettre jour les produits Oracle. Oracle Online Documentation : documentation dOracle en ligne. Oracle Enterprise Manager (OEM) : outil dadministration de tous les objets de la base de donnes. Oracle DataBase Assistant : aide la cration dune base de donnes. Oracle Utilities : outils dadministration (Server Manager, Export/Import, SQL*Loader). Oracle WedDB : ensemble doutils de dveloppement (cration, dploiement, administration) dapplications Web dynamiques. Oracle ConText Cartridge (extraction de texte, quel quen soit le format : HTML, Word, Excel, Acrobat, etc.), Oracle Image Cartridge, Oracle Spatial Cartridge : gestion des objets multimdia. Oracle Call Interface (OCI) : interface de programmation de bas niveau (proche dOracle). Oracle Migration Assistant for MS Access : outil de migration dune base Access vers Oracle (lapplication Access --formulaires, tats, macros, modules --- est conserve tandis que les tables Access sont attaches des tables Oracle qui gre de plus les contraintes dintgrit). Quelques changements. Loutil SQL*DBA cde sa place Server Manager et Oracle Enterprise Manager. SQL*Net disparat au profit de Net8. Les outils SQL*Forms, SQL*ReportWriter et SQL*Menu sont regroups dans loutil Developer/2000, avec la possibilit dutiliser indiffremment les langages PL/SQL et/ou Java. Les outils de gnie logiciel CASE*Dictionary, CASE*Designer et CASE*Generator sont quant eux regroups dans loutil Designer/2000. Sont dclars obsoltes : le compte INTERNAL (il faut utiliser les rles SYSOPER et SYSDBA), linstruction SERIALIZABLE=TRUE, lquivalence entre la chane de caractres vide et NULL, labsence du privilge select avec au moins un privilge de mise jour (insert, delete, update), etc. 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 .

Oracle Enterprise Manager


Oracle Enterprise Manager est une (unique pour la version 8, multiutilisateurs pour la version 8i) console graphique (et simple demploi) centralise dadministration (et de supervision) de tous les objets de la base de donnes, disponible sous les diffrents systmes dexploitation, qui permet de lancer des utilitaires spcialiss (assistants ddis). Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 Page 24 sur 27

Les agents de communication (agents intelligents) sont chargs de grer les travaux et les vnements sur la machine distante :excution des travaux, surveillance des vnements, rception des ordres de la console, transmission des informations la console. Il existe un mcanisme de dcouverte automatique des services dune machine cible dsigne. Le rfrentiel (repository) est une base Oracle contenant toutes les informations de configuration et dtat des bases gres (dans la version 8i, plusieurs consoles OEM partagent le rfrentiel commun). Oracle Enterprise Manager se compose de quatre fentres : liste hirarchique permettant dadministrer, de grer les performances et de superviser les objets des diffrentes bases de donnes du rseau (bases, groupes, listeners, noms des serveurs, serveurs Web, etc.) image graphique permettant dassocier une base de donnes un emplacement gographique systme de travaux (jobs) : dfinition de travaux accomplir sur des sites distants (transmission, historisation, visualisation des travaux en cours, contrle de lexcution et de la fin des travaux) gestionnaire des vnements (events) : surveillance de certains points prcis et possibilit dtre prvenu automatiquement en cas danomalie (voire mme dassocier un travail correctif (fixit job) ds que lvnement se produit) et de deux palettes doutils : applications : Oracle Backup Manager : gestion et automatisation des sauvegardes ; trois tapes sont ncessaires : prciser le lieu et la manire deffectuer la sauvegarde (channel), configurer la sauvegarde transmettre lagent intelligent sous forme dun travail raliser, lancer lassistant de sauvegarde Oracle Data Manager : importation, exportation et chargement de tables (c.--d. surcouche aux outils Import/Export et SQL*Loader) Oracle Instance Manager : administration, dmarrage, arrt, visualisation des tats des instances et rglage fin (tuning) (en modifiant certains paramtres dinitialisation) Oracle Replication Manager : mise en uvre, contrle du fonctionnement et action (en cas de problme ou de conflit) de tous les aspects de la rplication Oracle Schema Manager : accs et modification de toutes les caractristiques du schma (table, contrainte dintgrit, index, dclencheur et procdure stocke, etc.) Oracle Security Manager : accs tous les paramtres de scurit (mots de passe, privilges, et les dpendances croises entre comptes et objets) Oracle SQL WorkSheet : environnement SQL interactif (beaucoup plus convivial que SQL*Plus !) pour visualiser les commandes, avec historisation des requtes Oracle Storage Manager : aspects physiques de la base de donnes (fichiers de donnes, fichiers de reprise, remplissage des espaces de tables, espace disponible, etc.) Oracle Net8 Assistant : configuration du rseau (et cration des alias pointant des bases de donnes cibles distantes) Oracle Software Manager : tldistribution (dploiement) des logiciels modules optionnels (c.--d. non livrs en standard) du Performance Pack pour lanalyse des performances et le rglage fin des bases : Oracle Lock Manager : visualisation des verrous (au niveau des enregistrements et non des tables ou des blocs du disque) poss par les utilisateurs Oracle Peformance Manager : tableau dindicateurs de performance (nombre dutilisateurs connects, nombre dutilisateurs actifs, etc.), caches (buffer, bibliothque, dictionnaire des donnes, etc.), mmoire, etc. Oracle Tablespace Manager : visualisation du contenu des espaces de tables, de la fragmentation des objets, de la place libre, etc. ; dfragmentation avec loutil Export/Import Oracle Top Session : visualisation des sessions (machine, compte Oracle, compte du systme dexploitation, etc.), ordre SQL en cours (et passs), plan dexcution des requtes Oracle Trace : trace les applications en y insrant des sondes Oracle Export : analyse la base de donnes de production et donne un avis dexpert pour le rglage fin et lamlioration des performances

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.

Les rles SYSOPER et SYSDBA


Le compte INTERNAL permettant darrter et de dmarrer la base est dclar obsolte (c.--d. a disparu dans les versions plus rcentes). Il convient maintenant dutiliser les rles SYSOPER et SYSDBA, attribus par INTERNAL ou SYS des utilisateurs qui pourront tout moment arrter et dmarrer la base. Ces utilisateurs, une fois connects en tant que SYSOPER Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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.

10.

Nouveauts de la version 9i (et 8i)

Nouveauts SQL : nouvelles fonctions, fonctions analytiques, jointures, insertions multi-tables, fusions, stabilit du plan d'excution. Fonctionnalits de dveloppement : extensions de types objet, amliorations du langage PL/SQL, Advanced Queuing, Java stock, XML, rfrentiel XML DB. Scurit des donnes : contraintes d'intgrit, option Fast Start, blocs corrompus, destinations d'archivage multiples, Recovery Manager, LogMiner, Oracle Data Guard. Scurit des accs : gestion des contextes, bases de donnes virtuelles prives, Fine-Grained Auditing, Resource Manager, rles applicatifs scuriss. Amliorations systme : plafonds et nouveaux types, fichiers init.ora et spfile, multi-buffer pool, gestion de la mmoire, amliorations de l'optimiseur de requtes, globalisation, Oracle Real Application Cluster. Fonctionnalits d'administration : SQL*Plus pour l'administration, gestion des espaces de tables, rorganisation en ligne, reprises d'oprations, Oracle Managed Files, processus job, Export/Import des espaces de tables. Gestion des gros volumes : LOBs, techniques de partitionnement des tables et index, tables temporaires, techniques d'indexation, tables organises en index (IOT), Oracle Workspace Management, ETL (Extract, Transform, Load), vues matrialises et dimensions, mode de rcriture des requtes, contraintes sur vue.

11.

Nouveauts de la version 10g

Cette version a introduit larchitecture Grille (c.--d. Grid). 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 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11 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.

12.

Nouveauts de la version 11g

Cette version est une volution majeure qui contient plus de 400 nouvelles fonctions. Oracle 11g supporte ainsi une multitude de nouveaux types d'objets qui permettent de grer des donnes non structures. Il s'agit, par exemple, d'images mdicales, de prsentations Powerpoint, de ressources multimdias (fichiers audio et vido) ou encore de donnes RFID auxquelles il associe des mtadonnes spcifiques. Ces objets sont dsormais grs directement dans les bases via un systme de fichiers trs rapide (accs dit fast file). Oracle annonce galement un meilleur support des bases de donnes XML qui peuvent dsormais tre archives et traites au format binaire pour amliorer les performances. Autre nouveaut, Oracle intgre des fonctions de compression qui divisent l'espace de stockage des donnes par trois (en revanche, les performances baissent lorsque la compression est active).

La version Standard Edition


Cette version inclut Oracle Real Application Clusters.

Installation, configuration et administration


Installation rapide aussi bien pour une architecture cluster (dont third-party clusterware) que pour un environnement avec un seul serveur de donnes. Prconfigur pour tre immdiatement utilisable et complet (gestion de la mmoire et de lespace de stockage, sauvegarde et recouvrement automatiques, gestion des statistiques doptimisation). Enterprise Manager Database Control fournit une interface Web permettant de suivre ltat de la base de donnes et du cluster, dadministrer.

Donnes et applications compltes


Support de tous les types de donnes relationnels standards ainsi que XML (en stockage natif), texte, document, image, audio, vido, donne gographique. Accs via des interfaces standards : JDBC, SQLJ, ODBC .NET, OLE .NET et ODP .NET, SQL/XML et Xquery, WebDAV. Les procdures stockes peuvent tre crites en Java, PL/SQL, .Net (avec CLR). Possibilits de conception, statistiques, analyse partir de nimporte quel environnement dit SQL-based Business Intelligence.

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).

Performance, Reliability, Security and Scalability


Idem Oracle Database Enterprise Edition (mmes techniques de gestion de la concurrence) ! Lorsquun traitement tourne sur un cluster, il est automatiquement rparti sur les diffrentes machines disponibles (par Real Application Clusters), sans interruption (mme si une machine du cluster devient indisponible). Possibilit de donnes avec miroir, sauvegarde et recouvrement automatique. Flashback Query : permet de voir et de rcuprer des anciennes versions des donnes. Les rles et laudit fournissent un grand contrle daccs afin de grer la scurit et la confidentialit des donnes.

Modifi le 5/11/12 16:11 - dit le 5/11/12 16:11 - Imprim le 5/11/12 16:11

Page 27 sur 27

Vous aimerez peut-être aussi