administration oracle

69
Auteur : MARCON Emmanuel Version 1.0 Mise à jour du : 10/02/2005 Administration ORACLE

Upload: simon

Post on 13-Oct-2015

72 views

Category:

Documents


3 download

TRANSCRIPT

  • 5/23/2018 Administration ORACLE

    1/69

    Auteur : MARCON EmmanuelVersion 1.0Mise jour du : 10/02/2005

    Administration ORACLE

  • 5/23/2018 Administration ORACLE

    2/69

    Administration Oracle 2 / 69E. MARCON V1.0

    Table des Matires

    1. ORACLE : GENERALITES................................................................................................................ 51.1. HISTORIQUE RAPIDE .......................................................................................................................... 51.2. CARACTERISTIQUES PRINCIPALES ...................................................................................................... 51.3. ADMINISTRER UNE BASE DE DONNEES ................................................................................................ 5

    2. ORACLE : ARCHITECTURE............................................................................................................. 6

    2.1. LE SERVEUR ORACLE ........................................................................................................................ 62.2. LES OUTILS CLIENTS .......................................................................................................................... 72.3. LE PROTOCOLE RESEAU..................................................................................................................... 7

    3. CONNEXION ENTRE CLIENTS ET SERVEUR ................................................................................ 8

    3.1. CLIENT (CHAINE DE CONNEXION )....................................................................................................... 83.2. SERVEUR (LISTENER ) ...................................................................................................................... 9

    3.3. DEROULEMENT DUNE CONNEXION SIMPLE .......................................................................................... 94. SERVEUR ORACLE ........................................................................................................................ 11

    4.1. GENERALITE ................................................................................................................................... 114.2. LES FICHIERS .................................................................................................................................. 114.3. LES PROCESSUS ............................................................................................................................. 124.4. LA MEMOIRE.................................................................................................................................... 13

    5. GESTION DUNE INSTANCE.......................................................................................................... 15

    5.1. COMPTES DADMINISTRATION ........................................................................................................... 165.2. CREATION DUNE INSTANCE.............................................................................................................. 165.3. DEMARRAGE DUNE INSTANCE .......................................................................................................... 16

    5.3.1. Procdure simple................................................................................................................... 16

    5.3.2. Etat dune instance ................................................................................................................ 175.3.3. Dtail de la commande startup.............................................................................................. 175.4. ARRET DUNE INSTANCE................................................................................................................... 17

    5.4.1. Procdure simple................................................................................................................... 175.4.2. Dtail de la commande shutdown.......................................................................................... 17

    5.5. SUPPRESSION DUNE INSTANCE........................................................................................................ 18

    6. NOTIONS IMPORTANTES.............................................................................................................. 19

    6.1. SCHEMAS,OPERATIONS,CONTRAINTES ............................................................................................ 196.1.1. les schmas........................................................................................................................... 196.1.2. les oprations de dfinition ou manipulation des donnes et les contraintes ....................... 19

    6.2. TRANSACTION ................................................................................................................................. 196.2.1. Notion datomicit : ................................................................................................................ 19

    6.2.2. Transaction dans un SGBDR ................................................................................................ 196.3. DICTIONNAIRE DE DONNEES ............................................................................................................. 19

    7. STRUCTURE LOGIQUE DORACLE.............................................................................................. 21

    7.1. TABLESPACE (ESPACE DE DISQUE LOGIQUE ) .................................................................................. 217.2. SEGMENT........................................................................................................................................ 227.3. EXTENT (EXTENSION ) .................................................................................................................... 237.4. BLOCK (BLOC )............................................................................................................................... 23

    8. LES UTILISATEURS........................................................................................................................ 25

    8.1. TYPE DAUTHENTIFICATION............................................................................................................... 258.2. GESTION DES UTILISATEURS ............................................................................................................ 25

    8.2.1. Cration de nouveaux utilisateurs ......................................................................................... 25

  • 5/23/2018 Administration ORACLE

    3/69

    Administration Oracle 3 / 69E. MARCON V1.0

    8.2.2. Modification dun utilisateur ................................................................................................... 268.2.3. Suppression dun utilisateur................................................................................................... 268.2.4. Vues systmes....................................................................................................................... 26

    8.3. LES PROFILS ................................................................................................................................... 278.3.1. Notion de profil....................................................................................................................... 278.3.2. Cration dun profil................................................................................................................. 278.3.3. Modification dun profil ........................................................................................................... 288.3.4. Suppression dun profil .......................................................................................................... 288.3.5. Profil par dfaut...................................................................................................................... 288.3.6. Gestion des comptes ............................................................................................................. 29

    8.4. LES PRIVILEGES .............................................................................................................................. 308.4.1. Notion de privilge ................................................................................................................. 308.4.2. Les privilges systmes......................................................................................................... 308.4.3. Les privilges objets .............................................................................................................. 32

    8.5. LES ROLES ..................................................................................................................................... 328.5.1. CRATION D'UN RLE........................................................................................................ 328.5.2. ACTIVATION D'UN RLE..................................................................................................... 338.5.3. MODIFICATION D'UN RLE ................................................................................................ 338.5.4. 4. SUPPRESSION D'UN RLE......................................................................................... 34

    9. COMPLEMENT SQLPLUS .............................................................................................................. 35

    9.1. L'ENVIRONNEMENT SQLPLUSD'ORACLE......................................................................................... 359.2. SYNTAXE DES COMMANDES SQLPLUS ............................................................................................ 359.3. QUELQUES COMMANDES SQLPLUS ................................................................................................ 35

    9.3.1. Sortie de SQLPLUS............................................................................................................... 359.3.2. Excuter une commande systme ........................................................................................ 359.3.3. Gestion du buffer SQL ........................................................................................................... 369.3.4. Sauvegarde et rcupration du buffer ................................................................................... 379.3.5. Excution du buffer SQL........................................................................................................ 38

    9.4. GESTION DES FICHIERS DE COMMANDES ........................................................................................... 38

    9.5. MISE EN FORME DE L'AFFICHAGE ECRAN ........................................................................................... 399.5.1. Titre de la colonne ................................................................................................................. 399.5.2. Format d'une colonne numrique ou texte ............................................................................ 39

    9.6. VARIABLES D'ENVIRONNEMENT......................................................................................................... 41

    10. COMPLEMENT SQL........................................................................................................................ 43

    10.1. TYPES SQL................................................................................................................................. 4310.1.1. Types numriques exacts .................................................................................................. 4310.1.2. Types numriques flottants................................................................................................ 4410.1.3. Caractres et chanes de caractres ................................................................................. 4410.1.4. Dates .................................................................................................................................. 44

    10.2. CREATION DES TABLES................................................................................................................. 4410.2.1. NULL ou NOT NULL .......................................................................................................... 45

    10.2.2. DEFAULT........................................................................................................................... 4510.2.3. Contraintes......................................................................................................................... 4510.3. MODIFICATION DU SCHEMA ........................................................................................................... 4810.4. CREATION DINDEX....................................................................................................................... 4910.5. REQUETES SIMPLES SQL............................................................................................................. 49

    10.5.1. Slections simples ............................................................................................................. 4910.5.2. Re-nommage...................................................................................................................... 5010.5.3. Doublons ............................................................................................................................ 5010.5.4. Tri du rsultat ..................................................................................................................... 5110.5.5. La clause WHERE............................................................................................................ 5110.5.6. Chanes de caractres....................................................................................................... 5110.5.7. Dates .................................................................................................................................. 5210.5.8. Valeurs nulles..................................................................................................................... 52

  • 5/23/2018 Administration ORACLE

    4/69

    Administration Oracle 4 / 69E. MARCON V1.0

    10.6. REQUETES SUR PLUSIEURS TABLES .............................................................................................. 5310.6.1. Jointures............................................................................................................................. 5310.6.2. Union, intersection et diffrence......................................................................................... 54

    10.7. REQUETES IMBRIQUEES ............................................................................................................... 5410.8. SOUS -REQUETES CORRELEES..................................................................................................... 5610.9. AGREGRATION............................................................................................................................. 56

    10.9.1. Fonctions dagrgation....................................................................................................... 5610.9.2. La clause GROUP BY...................................................................................................... 5710.9.3. La clause HAVING.......................................................................................................... 57

    10.10. MISES A JOUR.............................................................................................................................. 5710.10.1. Insertion.............................................................................................................................. 5810.10.2. Destruction ......................................................................................................................... 5810.10.3. Modification ........................................................................................................................ 58

    10.11. VUES .......................................................................................................................................... 5910.11.1. Cration et interrogation dune vue.................................................................................... 5910.11.2. Mise jour dune vue ......................................................................................................... 59

    11. COMPLEMENT PL/SQL .................................................................................................................. 6111.1. INTRODUCTION ............................................................................................................................ 6111.2. STRUCTURE D'UN BLOC PL/SQL .................................................................................................. 6111.3. DETAILS DU SCRIPT PL/SQL ........................................................................................................ 62

    11.3.1. PARTIE DECLARATION :.................................................................................................. 6211.3.2. CORPS DU BLOC : ........................................................................................................... 62

    11.4. STRUCTURES ALGORITHMIQUES ................................................................................................... 6311.5. SAISIE DE DONNEES AU CLAVIER ................................................................................................... 6311.6. AFFICHAGES DE RESULTATS......................................................................................................... 6411.7. LES CURSEURS............................................................................................................................ 64

    12. GLOSSAIRE..................................................................................................................................... 66

  • 5/23/2018 Administration ORACLE

    5/69

    Administration Oracle 5 / 69E. MARCON V1.0

    111... OOORRRAAACCCLLLEEE:::GGGEEENNNEEERRRAAALLLIIITTTEEESSS

    111...111... HHHIIISSSTTTOOORRRIIIQQQUUUEEERRRAAAPPPIIIDDDEEE

    1977: cration d Oracle Corporation1979 : premire version commercialise du SGBDR1984 : premire version PC

    Les principales version aujourdhui : 8 (1997), 8i, 9i( i : forte intgration des outils Internet/Intranet etdrives (java, e-business, ))

    La dernire version lance en 2004 est la 10gLa premire version dOracle pour Windowsest assez rcente avec la version7.

    111...222... CCCAAARRRAAACCCTTTEEERRRIIISSSTTTIIIQQQUUUEEESSSPPPRRRIIINNNCCCIIIPPPAAALLLEEESSS

    Oracle est un Systme de Gestion de Bases de Donnes relationnelles ( SGBDR) qui fonctionne sur lesplates-formes : UNIX, LINUX WINDOWS, NOVELL

    Oracle en plus des fonctions de SGBDR : propose des outils de restauration/sauvegarde Permet dexporter/importervers dautres systmes

    Propose dans son architecture une machine virtuelle JAVAqui permet dutiliser des programmesJAVA directement dans la Base de Donnes

    111...333... AAADDDMMMIIINNNIIISSSTTTRRREEERRRUUUNNNEEEBBBAAASSSEEEDDDEEEDDDOOONNNNNNEEEEEESSS

    Ladministration dune base de donnes consiste : Concevoir la BD

    Modle conceptuel Modle logique

    Organiser techniquement la base de donnes Installer le SGBD Crer la Base de Donnes

    - Paramtrage de la mmoire utilise- Dimensionnement des fichiers physiques,- Tables, etc

    Grer la Scurit de la BD Cration des utilisateurs et de leurs droits Prserver lintgrit de la BD Procdures de sauvegarde,

  • 5/23/2018 Administration ORACLE

    6/69

    Administration Oracle 6 / 69E. MARCON V1.0

    222... OOORRRAAACCCLLLEEE:::AAARRRCCCHHHIIITTTEEECCCTTTUUURRREEE

    Larchitecture gnrale dOracle est base autour de 3 lments principaux : Le serveur ORACLEqui correspond au moteur de la base Oracle. Les outils ou applications clientes qui regroupent lensemble des applications pouvant se

    connecter une base ORACLE La connexion rseauqui permet la connexion entre le serveur et le client

    222...111... LLLEEESSSEEERRRVVVEEEUUURRROOORRRAAACCCLLLEEE

    Les rles du serveur sont : Stockerles donnes, Contrlerlintgrit des donnes et le bon fonctionnement de la base de donnes, Permettre la connexiondun client sur la base de donnes.

    Le serveur Oracle est compos dune ou plusieurs instancescomprenant chacune : Des processusmis en uvre par Oracle pour la gestion de la Base de Donnes Dune zone mmoirepermettant lorganisation des donnes De fichierspermettant le stockage physique de lensemble des donnes et des caractristiques de la

    base de donnes.

    Le module dcoute est llment qui permet de capter les connexions effectues sur la base dedonnes.

    Instance ORACLE

    Processus

    Mmoire ( S.G.A)

    Fichiers

    MODULE

    DECOUTE

    ProtocoleRseau

    NET 8ou

    SQL NET

    Serveur ORACLE

    Client ORACLE

    Outils de requtage : SQL PLUS

    Outils dadministration : DBA Studio Oracle Entreprise

    Manager ( OEM)

    Outils de dveloppement : WebDB Oracle Designer Oracle Developer JDeveloper suite

    Applications spcifiquesutilisant les interfaces : SQL et PL/SQL PRO C / C++ SQLJ et JDBC ODBC

  • 5/23/2018 Administration ORACLE

    7/69

    Administration Oracle 7 / 69E. MARCON V1.0

    222...222... LLLEEESSSOOOUUUTTTIIILLLSSSCCCLLLIIIEEENNNTTTSSS

    Leur rle est de permettre le traitementdes donnes de la base de donnes.

    Certaines applications sont cres par Oracle ( outils de requtage, outils dadministration de la base etoutils de dveloppement ). Des applications spcifiques peuvent tre cres partir : de langagescomme le SQL et le PL/SQL ou dun lienvers la base de donnes du type ODBC, JDBC.

    222...333... LLLEEEPPPRRROOOTTTOOOCCCOOOLLLEEERRREEESSSEEEAAAUUU

    Le protocole rseau est charg de vhicul les informations ( connexion, donnes, ) entre lapplicationcliente et le serveur Oracle.

    Ce protocole sappuie sur un protocole rseaustandard ( ex : TCP IP).

    Pour le paramtrage dune connexion, il faudra dfinir des paramtres sur le Serveur et sur le Client.

  • 5/23/2018 Administration ORACLE

    8/69

    Administration Oracle 8 / 69E. MARCON V1.0

    333... CCCOOONNNNNNEEEXXXIIIOOONNNEEENNNTTTRRREEECCCLLLIIIEEENNNTTTSSSEEETTTSSSEEERRRVVVEEEUUURRR

    Comme nous lavons prcis prcdemment, la connexion entre les clients et le serveur ncessite leparamtrage des deux protagonistes.

    Le paramtrage du client dfinir pour effectuer une connexion sont : Le serveur Oracle Linstance Le nom dutilisateur et le mot de passe utilis

    La partie serveur consiste paramtrer le Module dcoute.

    333...111... CCCLLLIIIEEENNNTTT(((CCCHHHAAAIIINNNEEEDDDEEECCCOOONNNNNNEEEXXXIIIOOONNN)))

    Chaque client qui souhaite se connecter une base de donnes oracle doit avoir dfini une chane deconnexion ( ou service). Cette chane de connexion est constitue du nom du serveuroracle ( ou deladresse ), du portsur lequel le module dcoute attend les connexions et du nom de linstance ( unmme serveur pouvant hberger plusieurs instances.

    Les chanes de connexion sont enregistres dans un fichier TNSNAMES.ORA .

    Exemple de fichier :

    Ce fichier est stock gnralement dans le rpertoire [ORACLE_HOME]\network\admin pour les versionsWindows et ORACLE_HOME]/network/admin pour les versions UNIX.

    # TNSNAMES.ORA Network Configuration File:C:\oracle\ora81\network\admin\tnsnames.ora# Generated by Oracle configuration tools.

    CHAINECONNEXION1 =(DESCRIPTION =

    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = monserveuroracle)(PORT = 1521))

    )(CONNECT_DATA =(SID = MONINSTANCE)

    ))

    CHAINECONNEXION2 =(DESCRIPTION =

    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = monserveur2.oracle.com)(PORT = 1521))

    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1526))

    )(CONNECT_DATA =(SID = MONINSTANCE2)

    ))

    Nom de la chane de connexion

    Nom ou adresse du serveur Port du moduledcoute

  • 5/23/2018 Administration ORACLE

    9/69

    Administration Oracle 9 / 69E. MARCON V1.0

    333...222... SSSEEERRRVVVEEEUUURRR(((LLLIIISSSTTTEEENNNEEERRR)))

    Le serveur gre les connexions grce deux lments :

    Le module dcoute ( Listener ) Processus Serveur

    Le module dcoute, ou Listener, est charg dcouter les connexions susceptibles dtre ralises sur leserveur. Le listener est un processus ou service autonome qui sexcute sur le serveur.

    Le processus Serveur est un processus cr pour chaque connexion utilisateur ( un par utilisateur ) estcharg de la communication des donnes entre linstance et lapplication cliente.

    Les paramtres du Listener sont stocks dans un fichier LISTENER.ORA.

    Exemple de fichier

    Ce fichier est stock gnralement dans le rpertoire [ORACLE_HOME]\network\admin pour les versionsWindows et ORACLE_HOME]/network/admin pour les versions UNIX.

    333...333... DDDEEERRROOOUUULLLEEEMMMEEENNNTTTDDDUUUNNNEEECCCOOONNNNNNEEEXXXIIIOOONNNSSSIIIMMMPPPLLLEEE

    Une connexion simple dune application cliente sur un serveur Oracle peut se dcrire de la faonsuivante : Lancement de lapplication Par lapplication, les lments suivant sont envoys :

    Nom dutilisateur Mot de passe Nom du service

    Le protocole rseau ( NET8 ou SQLNET) vrifie dans le TNSNAMES.ORA si le nom du service existeet rcupre le protocole rseau utiliser, le nom ou ladresse du serveur associ et le port dcoute.

    Le protocole rseau ( NET8 ou SQLNET) recherche le serveur Oracle sur le port dterminprcdemment.

    Le serveur rceptionne la demande par lintermdiaire du Listener

    #

    # Filename: Listener.ora#LISTENER =(ADDRESS_LIST =(ADDRESS= (PROTOCOL= TCP)(Host= monserveur)(Port= 1521))

    )

    SID_LIST_LISTENER =(SID_LIST =

    (SID_DESC =(SID_NAME = moninstance)

    ))

    Nom du Listener

    Protocole rseau support

    Nom ou Adresse du serveur

    Port dcoute du Listener

    Dfinition du Listener

    Liste des instances supportes par le listener

    Nom de linstance

  • 5/23/2018 Administration ORACLE

    10/69

    Administration Oracle 10 / 69E. MARCON V1.0

    Le listener cherche dans son fichier Listener.ora si linstance demande existe Validation du compte (utilisateur / mot de passe) Cration dun processus Serveur ddi la connexion en cours.

  • 5/23/2018 Administration ORACLE

    11/69

    Administration Oracle 11 / 69E. MARCON V1.0

    444... SSSEEERRRVVVEEEUUURRROOORRRAAACCCLLLEEE

    444...111... GGGEEENNNEEERRRAAALLLIIITTTEEE

    Le serveur Oracle est dcoup en trois parties : Un ensemble de fichiers formant la structure physique de la Base de Donnes. La mmoire: organisation des donnes en mmoire centrale Processus: processus mis en uvre par Oracle pour la gestion de la Base de Donnes

    444...222... LLLEEESSSFFFIIICCCHHHIIIEEERRRSSS

    Pour fonctionner Oracle besoin dun certain nombre de fichiers : Les Fichiers de donnes et dindex Les Fichiers Redo Logpour la reprise en cas de panne sont des fichiers contenant lensemble des

    transactions effectues sur la base. Ces fichiers ont une taille fixe. Lorsque le premier fichier est plein,lenregistrement seffectue dans le second fichier. Lorsque celui ci est plein, lenregistrementseffectue dans le troisime, . Lorsque le dernier fichier est rempli, lenregistrement reprend aupremier fichier =>Oracle besoin au minimum de deux fichiers Redo Log pour pouvoir fonctionner.

    Pour des raisons de scurit, Oracle permet chaque fichier Redo Log dtre dupliqu ( en un ouplusieurs exemplaires, Oralce se charge de la mise jour automatique des fichiers dupliqus. Ainsi tout moment lensemble des fichiers dun mme groupe sont identiques

    Redo Log 1

    Redo Log 2

    Redo Log 3

    1

    2

    3

    Redo Log 1

    Redo Log 2

    Redo Log 3

    Redo Log 1.1

    Redo Log 2.1

    Redo Log 3.1

    Redo Log 1.2

    Redo Log 2.2

    Redo Log 3.2

    Synchronisation Synchronisation

    Groupe 1

    Groupe 2

    Groupe 3

  • 5/23/2018 Administration ORACLE

    12/69

    Administration Oracle 12 / 69E. MARCON V1.0

    Les Fichiers de contrlequi spcifient les informations physique de la base de donnes ( ex : Nom,localisation des fichiers de donnes, ). Comme pour les fichiers Redo Log ces fichiers doivent tre

    dupliqus. Le Fichier dinitialisationinit.ora, ce fichier contient lensemble des paramtresde la base de donnes. Ce fichier est lu au dmarrage de linstance.

    Le Fichier des mots de passe est utilis pour stocker les utilisateurs et les mots de passe desutilisateurs pouvant arrter et dmarrer la base de donnes ( lutilisation de ce fichier nest pasobligatoire )

    Les Fichier Archivessont gnrs chaque fois quun fichier Redo Log est plein, sont contenus estsauvegard dans un fichier archive. Cette fonctionnalit doit tre activ pour une instance ( activationdu mode archivage pour une base ). Ces fichiers archives sont ncessaires la restauration dedonnes.

    Dautres fichiers peuvent tre utiliss par Oracle lors dactivation de tches particulires ( ex : traces )

    444...333... LLLEEESSSPPPRRROOOCCCEEESSSSSSUUUSSS

    Afin dexcuter toutes les tches dun SGBDR, Oracle utilise un certains nombre de processus (ou threadsur les platesformes Windows).

    Processus serveur:

    Avec une version standard de Oracle, il existe un processus serveur par connexion cliente. Il existe uneversion spciale qui permet de mutualiser les processus serveur. Il existe donc deux types deprocessus serveur : Ddi: un processus serveur par processus utilisateur Partag : un petit nombre de processus serveur partags

    Son rle est de faire linterface entre le processus utilisateur et la mmoire ou les fichiers de donnes.Cest le processus serveur qui est charg de lire les donnes destines une connexion que cesdonnes soient en mmoire ou dans un fichier de donnes. Le processus serveur reoit les autres SQL,puis lit les donnes dans la zone mmoire (1) si elles y sont ou les lit dans les fichiers et les places enmmoire (2) sil elles ny sont pas.

    Database Writer (DBWn):

    Son rle est dcrire les donnes de la zone mmoire SGA (database buffer cache) vers le disque.La base de donnes peut tre configure pour excuter un ou plusieurs processus DBW => DBW0,DBW1, , DBWn

    Processus ServeurProcessus Client SQL

    Zone mmoire(SGA)Data

    Cas N2

    Cas N1

    Rsultat

  • 5/23/2018 Administration ORACLE

    13/69

    Administration Oracle 13 / 69E. MARCON V1.0

    Log Writer (LGWR):

    Son rle est denregistrer lensemble des transactions effectues sur la base. Dans un premier temps ilstocke les informations en mmoire ( SGA ). Puis, quand la partie rserve en mmoire pour les logs(redo log buffer) est pleine , Log Writter est charg dinscrire dans les fichiers RedoLog lensemble desLogs stocks en mmoire.

    Checkpoint (CKPT):

    Ce processus ce dclenche de deux faons : Lors du changement de fichier RedoLog Au bout dun certain temps dinactivit ( timeout )

    Lorsque le CheckPoint se dclenche : il rveille le processus Database Writer pour quil crive les donnes depuis la zone mmoire sur les

    disques. Il donne une version chaque fichier de donne, ces versions sont enregistres dans les fichiers de

    contrle. Ces versions servent contrler la cohrence des donnes stockes dans les fichiers dedonnes.

    System Monitor (SMON):

    Ce processus deux rles : Dmarrer la base de donnes Regrouper les blocs de donnes

    A chaque dmarrage dune instance, le processus System Monitor vrifie dans les fichiers de contrle laversion des fichiers de donnes. Toutes les transactions excutes aprs les versions valides serontannules par le processus.

    Il est charg galement de regrouper les blocs de donnes.

    Process Monitor (PMON):

    Son rle est de contrler le bon fonctionnement des processus serveur /utilisateur. Si un processusserveur se trouve sans processus utilisateur (plus de connexion) alors, le processus Process Monitorsupprime les processus serveur inutiles.

    Archiver (ARCn) :

    Il nest dmarr que dans le cas ou larchivage des fichiers RedoLog est activ.Le processus Archiver se dclenche chaque fois quun fichier RedoLog est plein. Il copie ce fichier dans

    un rpertoire dfini dans le fichier dinitialisation (init.ora). Le format du nom des archives estgalement dfini dans le fichier dinitialisation (possibilit de nommer le fichier avec une date, unesquence, ).

    444...444... LLLAAAMMMEEEMMMOOOIIIRRREEE

    La S.G.A ( System GLOBAL AREA )

    Le premier composant de la mmoire en est la partie la plus importante.Elle est compose de :

    La BUFFER CACHE

  • 5/23/2018 Administration ORACLE

    14/69

    Administration Oracle 14 / 69E. MARCON V1.0

    La SHARED POOL La LARGE POOL La REDO LOG BUFFER

    et enfin si vous utilisez la machine virtuelle JAVA la JAVA POOL

    La BUFFER CACHE stocke les donnes demandes par les commandes SQL.

    La SHARED POOL est dcompose en deux zones : La LIBRARY CACHE qui contient lensemble des commandes dj excutes et leur plan

    dexcution. La DICTIONARY CACHE stocke les informations du dictionnaire de donnes

    La LARGE POOL est une zone mmoire optionnelle. Elle permet de stocker en mmoire : Les informations sur les sessions ( dans le cas dune architecture de serveurs partags) Les informations sur les Entres / Sortie des processus serveurs Les informations sur les processus de sauvegarde et restauration

    La REDO LOG BUFFER stocke temporairement les donnes modifies, avant quelles soient enregistresdans les fichiers de journaux de reprise. Ces donnes sont gnres par les ordres Insert, Update etDelete.

    La JAVA POOL est utilise dans le cas ou une machine virtuelle JAVA est installe directement dans labase ORACLE. Cette zone mmoire permet lexcution des programmes JAVA stocks.

    La P.G.A ( Program Global Area )

    Cette zone sert stocker les informations des processus (processus serveurs ou processus darrireplan).Quand un utilisateur se connecte, la PGA alloue au processus utilisateur une zone mmoire pouvant

    contenir : Les variables htes Les espaces de tri Le traitement des curseurs

    Suivant que le processus Serveur soit partag ou non par plusieurs utilisateurs, les informations relatives la session sont stockes dans la PGA ou dans la SHARED POOL

  • 5/23/2018 Administration ORACLE

    15/69

    Administration Oracle 15 / 69E. MARCON V1.0

    555... GGGEEESSSTTTIIIOOONNNDDDUUUNNNEEEIIINNNSSSTTTAAANNNCCCEEE

    La gestion dune instance consiste : Crerune instance Dmarrerune instance Arrterune instance Supprimerune instance

    Les instances peuvent tre gres par : le gestionnaire de serveur Oracle : Oracle Server Manager [ORACLE_HOME]\BIN\SVRMGRL.EXE. Il

    sagit dun programme en mode console permettant dexcuter les principales commandes de gestion(arrt/dmarrage) dinstances. Cet outil nexiste plus partir de la version 9.

    Sqlplus outil fourni dans toutes les versions dOracle : [ORACLE_HOME]\BIN\SQLPLUS.EXE. Il sagit

    dun programme en mode console permettant dexcuter toutes les commandes oraclesNote : /NOLOG : connexion sans invite didentification

  • 5/23/2018 Administration ORACLE

    16/69

    Administration Oracle 16 / 69E. MARCON V1.0

    555...111... CCCOOOMMMPPPTTTEEESSSDDDAAADDDMMMIIINNNIIISSSTTTRRRAAATTTIIIOOONNN

    le compte internal :Ce compte dispose de droits dadministration tendus (arrt/dmarrage de la base)Pour lutiliser il est obligatoire dtre connect au niveau du systme sous un compte de typeAdministrateur ou root.Le mot de passe par dfaut ( oracle ) est dfini lors de la cration de la base.Ce compte est maintenu pour des raisons de compatibilit, il est donc prfrable dutiliser un comptedisposant des droits SYSOPER ou SYSDBA.

    2 autres comptes importants :SYSTEM, mot de passe par dfaut MANAGERSYS, mot de passe par dfaut CHANGE_ON_INSTALL Ce sont les comptes dadministration d une base Oracle

    Ils permettent deffectuer la plupart des oprations, sauf arrt/dmarrage de la base

    555...222... CCCRRREEEAAATTTIIIOOONNNDDDUUUNNNEEEIIINNNSSSTTTAAANNNCCCEEE

    La cration dune base seffectue laide de Database Configuration Assistant. Il fabrique et excute lescommandes et les fichiers de paramtres ncessaires la cration dune base.

    555...333... DDDEEEMMMAAARRRRRRAAAGGGEEEDDDUUUNNNEEEIIINNNSSSTTTAAANNNCCCEEE

    5.3.1. PROCEDURE SIMPLEPour dmarrer une instance : connexion en internal :

    connect interna/oracle ou connect internal puis oracle

    startup

  • 5/23/2018 Administration ORACLE

    17/69

    Administration Oracle 17 / 69E. MARCON V1.0

    La base est en ordre de marche : linstance est dmarre, la base est monte et ouverte

    5.3.2. ETAT DUNE INSTANCEUne base Oracle peut-tre dans 4 tats diffrents : arrte : la base nest pas oprationnelle dmarre, non monte: linstance est en excution mais la base nest accessible pour aucune tche

    (cas : durant la cration dune base)STARTUP NOMOUNT

    dmarre, monte : linstance est en excution et la base est accessible pour des oprations demaintenance (gestion des fichiers de donnes, des fichiers de log, )

    STARTUP MOUNT

    dmarr, monte et ouverte: la base est totalement oprationnelleSTARTUP

    5.3.3. DETAIL DE LA COMMANDE STARTUPSTARTUP [FORCE][PFILE=fichier]

    [EXCLUSIVE | SHARED][MOUNT nombd | OPEN nombd] [NOMOUNT][RECOVER]

    FORCE : force le dmarrage de la base PFILE = .. : fichier de paramtres utiliser ( init.ora) EXCLUSIVE | SHARED = : ouverture mode partag/exclusif MOUNT = .. : nom de la base monter OPEN = .. : nom de la base ouvrir NOMOUNT = .. : ne pas monter la base RECOVER = .. : engager une procdure de vrification

    ExemplesSTARTUP FORCESTARTUP OPEN RECOVERSTARTUP OPEN TEST PFILE=INITTEST.ORA

    555...444... AAARRRRRREEETTTDDDUUUNNNEEEIIINNNSSSTTTAAANNNCCCEEE

    5.4.1. PROCEDURE SIMPLEPour arrter une instance : connexion en internal :

    connect interna/oracle ou connect internal puis oracle

    shutdown immediate

    5.4.2. DETAIL DE LA COMMANDE SHUTDOWNSHUTDOWN [NORMAL][IMMEDIATE][TRANSACTIONAL][ABORT]

    NORMAL : attend la fin de tous les traitements (connexions, ) avant de fermer la base IMMEDIATE : fin immdiate de toutes les traitements ds que possible (dconnexion, ), rollback sur

    toutes les transactions en cours, puis arrt TRANSACTIONAL : idem IMMEDIATE mais attend la fin de toutes les transactions, puis arrt de la

    base ABORT = : arrt immdiat de toutes les connexions, il ny a pas de rollback sur les transactions en

    cours => arrt impratif

  • 5/23/2018 Administration ORACLE

    18/69

    Administration Oracle 18 / 69E. MARCON V1.0

    ExempleSHUTDOWN ABORT

    555...555... SSSUUUPPPPPPRRREEESSSSSSIIIOOONNNDDDUUUNNNEEEIIINNNSSSTTTAAANNNCCCEEE

    La cration dune base seffectue laide de Database Configuration Assistant. Il supprime tous lesfichiers et les services associs linstance supprime.

  • 5/23/2018 Administration ORACLE

    19/69

    Administration Oracle 19 / 69E. MARCON V1.0

    666... NNNOOOTTTIIIOOONNNSSSIIIMMMPPPOOORRRTTTAAANNNTTTEEESSS

    666...111... SSSCCCHHHEEEMMMAAASSS,,,OOOPPPEEERRRAAATTTIIIOOONNNSSS,,,CCCOOONNNTTTRRRAAAIIINNNTTTEEESSS

    6.1.1. LES SCHEMASLes objets de la base de donnes sont regroups par schma. Tous les schmas ont le nom dunutilisateur, sauf le schma public qui est accessible par tout le monde. Chaque utilisateur travail pardfaut dans son schma. Pour accder un objet du schma correspondant un autre utilisateur, il fautprfixle nom de lobjet par le nom du schma.Exemple :

    Lutilisateur Scott possde la table EMP => Select * from EMP ;Lutilisateur System pour accder cette table => Select * from SCOTT.EMP ;

    6.1.2. LES OPERATIONS DE DEFINITION OU MANIPULATION DES DONNEES ET LESCONTRAINTES

    Les oprations sont les actionspermettant aux utilisateurs de manipuler les donnes et les structurestout en respectant un ensemble de contraintesd'intgrit.

    La manipulation des donnes seffectue grace un Langage de Manipulation de Donnes (LMD)

    les contraintes d'intgritsont des rgles, dites rgles de gestion. Elles protgent les donnes et lesstructures.

    666...222... TTTRRRAAANNNSSSAAACCCTTTIIIOOONNN

    6.2.1. NOTION DATOMICITE :Latomicit est un ensemble de commandes tant vue comme une seule commande, indivisible, et dontlexcution est complte.

    6.2.2. TRANSACTION DANS UN SGBDRUne transaction dans un SGBDR est une unit logique qui contient une ou plusieurs commandes SQL.Le dbut dune transaction est donne par la premire instruction SQL.La fin dune transaction est effectu grce lordre : COMMIT => validation des commandes passes (rend permanentes les modifications apportes) ROLLBACK => annulation (non-validation) des commandes passes, retour ltat prcdent le

    dbut de la transaction. Une erreur durant la transaction gnre un ROLLBACK.

    Attention :Certains outils (ex : ODBC) auto-valident les ordres passs par dfaut (transactions mono-commande)

    666...333... DDDIIICCCTTTIIIOOONNNNNNAAAIIIRRREEEDDDEEEDDDOOONNNNNNEEEEEESSS

    Dictionnaire de donnes est un ensemble de tables et de vues o est stocke linformation sur la structurelogique et physique de la Base de Donnes, cest dire : Les utilisateurs de la BD

    Nom du schma

  • 5/23/2018 Administration ORACLE

    20/69

    Administration Oracle 20 / 69E. MARCON V1.0

    Noms et caractristiques des objets stocks dans la base Contraintes dintgrit Ressources physiques alloues la base

    Ce dictionnaire est cr la cration de la BD, mis jour au fur et mesure de la cration dobjets.Les utilisateurs nont accs ce dictionnaire quen lecture travers des vues.

    Vues du dictionnaire de donnes :

    Trois types de vues distingues en fonction de leur prfixe :

    USER_xxxxxxx : Vue sur les objets cr par un utilisateur, ex: user_tables ALL_xxxxx : Vue sur les objets auxquels un utilisateur a accs (pas ncessairement qu'il a crs) DBA_xxxxxxx : Vue sur tous les objets de la BD de tous les utilisateurs, accessibles que par les

    administrateurs

    Le nom des vues est compos du prfixe et du type dobjet concern au pluriel. Exemple :USER_TABLES, DBA_USERS, ALL_INDEXES, .

    Pour utiliser ces vues il est conseill : Deffectuer un DESC de la vue pour slectionner seulement les champs que vous souhaitez

    consulter. En effet certaine vue possde un grand nombre de champs de type texte ( assez long ) Effectuer votre Select en mentionnant toutes les valeurs en MAJUSCULE .

    SQL> desc USER_OBJECTS;Nom Non renseigne NULL? Type------------------------------- -------- ----OBJECT_NAME VARCHAR2(128)OBJECT_ID NUMBEROBJECT_TYPE VARCHAR2(13)

    CREATED DATELAST_DDL_TIME DATETIMESTAMP VARCHAR2(75)STATUS VARCHAR2(7)

    SQL>select OBJECT_NAME,OBJECT_ID,OBJECT_TYPE from USER_OBJECTS where OBJECT_NAME like '%ATT%';SQL>

  • 5/23/2018 Administration ORACLE

    21/69

    Administration Oracle 21 / 69E. MARCON V1.0

    777... SSSTTTRRRUUUCCCTTTUUURRREEELLLOOOGGGIIIQQQUUUEEEDDDOOORRRAAACCCLLLEEE

    Le mcanisme gnral dOracle utilise une structure logique afin de stocker les donnes.Cette structure est dcompose de la faon suivante : Les objetssont stocks dans des TableSpaces( ou Espaces de Disque Logique ) Chaque TableSpace est compos de Segments Chaque Segment est compos dExtents( Extensions ) Chaque Extents est compos de Blocks ( Blocs )

    Le Bloc de la structure Logique Oracle correspond un nombre doctets physiques ( multiple de 512octets ). Ce paramtre est dfini lors de la cration de la base et ne peut tre modifi ( par dfaut 4Ko).Laugmentation de ce paramtre peut amliorer les performances de la base, en effet chaque crituresur le disque, une quantit dinformation plus importante est crite et donc le nombre daccs au disqueest moindre.

    777...111... TTTAAABBBLLLEEESSSPPPAAACCCEEE(((EEESSSPPPAAACCCEEEDDDEEEDDDIIISSSQQQUUUEEELLLOOOGGGIIIQQQUUUEEE)))

    Un tablespace est linterfaceentre les objetsde la base de donnes et la structure physique(fichier dedonnes) : Une base de donnes est un ensemble de tablespaces.

    Pour fonctionner, Oracle a besoin : Dun tablespace: SYSTEMcontenant le Dictionnaire de Donnes

    Objets

    TABLESPACE

    Segment

    Extent

    Block

    Block

    Block

    Extent

    Block

    Block

    Block

    Segment

    Extent

    Block

    Block

    Block

    Extent

    Block

    Block

    Block

    Fichiers de donnes

  • 5/23/2018 Administration ORACLE

    22/69

    Administration Oracle 22 / 69E. MARCON V1.0

    Dun un tablespace TEMP( Temporaire ) pour les calculs et les tris

    Gnralement, en plus de ces tablespace, il est cr un tablespace :

    par type dobjet(table, index,) par application, pour organiser les donnes des applications.

    Un objet de la base est cr dans un seul tablespace, qui lui-mme peut correspondre plusieursfichiersde donnes (possibilit daccrotre le volume de stockage) .

    777...222... SSSEEEGGGMMMEEENNNTTT

    Un segment est la structure logique dans laquelle un objet est stock (Un segment = un objet).Ce segment regroupe lensemble des extents contenant toutes les donnes pour un objet spcifique.Un segment est stock dans un unique tablespace.Pour chaque segment oracle alloue initialement un nombre fini d'extent. Quand le segment a utilis tousses extents il lui en alloue (si possible) des supplmentaires.

    Il existe diffrents types de segments: Segment de donnes pour stocker :

    table cluster de tables (tables interroges frquemment ensemble runies dans un cluster). Un

    segment pour le cluster, pas pour les tables Segment dindex Segment Temporaire qui permet la gestion des grosses requtes (ne pouvant pas tre excutes enMmoire) Segment dannulation (Rollback segment) qui contient les donnes modifies en vue dune

    annulation.

    Table EMP

    Est stock dans

    Tablespace USER

    Data1.dbf

    EMP

    Data2.dbfEMP

    Data3.dbfEMP

  • 5/23/2018 Administration ORACLE

    23/69

    Administration Oracle 23 / 69E. MARCON V1.0

    777...333... EEEXXXTTTEEENNNTTT(((EEEXXXTTTEEENNNSSSIIIOOONNN)))

    Les Extents sont les composants dun segment (dune table par exemple). Oracle alloue de l'espace unsegment en multiple d'extents.

    Cette allocation est dfini lors de la cration de lobjet dans les clauses de stockages : Le segment initialement cre avec au moins une extension est appel initial extent. La possibilit dallouer des extensions supplmentaires est dfini par la clause :Next extent

    Exemple:

    CREATE TABLE test( chp1 NUMBER,chp2 NUMBER,chp3 NUMBER )

    TABLESPACE USERSTORAGE (INITIAL 6144NEXT 6144MINEXTENTS 1MAXEXTENTS 5 );

    Un extent est compos dun ensemble de blocks contigus.

    777...444... BBBLLLOOOCCCKKK(((BBBLLLOOOCCC)))

    Le Database block (or oracle page) est lunit de base despace dallocation (granularit la plus fine).Un block logique est quivalent un nombre doctet physique (DB_BLOCK_SIZE) multiple de 512 octets.

    Clause de stocka e

    Taille en bytes du premier extent (K or M)

    Taille en bytes des extents suivants (K or M)

    Nombre dextents allous lacration de lobjet

    Nombre maximal dextents allous lobjet(UNILIMITED pour ne pas avoir de limite )

    2 Kb 2 Kb 2 Kb

    2 Kb 2 Kb 2 Kb

    2 Kb 2 Kb 2 Kb

    2 Kb 2 Kb 2 Kb

    2 Kb 2 Kb 2 Kb

    2 Kb 2 Kb 2 Kb

    2 Kb 2 Kb 2 Kb

    2 Kb

    2 Kb

    2 Kb

    2 Kb

    2 Kb

    2 Kb

    2 Kb

    Extent14 Kb

    Segment56 Kb

    Extent42 Kb

  • 5/23/2018 Administration ORACLE

    24/69

    Administration Oracle 24 / 69E. MARCON V1.0

    Un bloc est compos de plusieurs zones :(1) Des informations gnrales sur le bloc, adresse du bloc, type de segments ( Entte ou Header )(2) Des informations sur la table dont les infos sont stockes dans ce bloc

    (3) Des informations sur les colonnes stockes dans ce bloc(4) Lespace non occup (zone de taille variable)(5) Les donnes

    Gestion des blocs :Deux paramtres permettent de grer l'espace dans un segment particulier: PCTFREE: Pourcentage minimum libre conserver pour des mises jour ventuelles des donnes

    du bloc PCTUSED: Si bloc rempli jusqu la limite de PCTFREE . Il nest pas possible dinsrer des donnes

    dans le bloc tant que le pourcentage utilis nest pas < PCTUSED sinon on insre les donnes dansun nouveau bloc (peut tre coteux en place et accs )

    Ces paramtres sont indiqus au moment de la cration de lobjet.Exemple :

    CREATE TABLE emp(empno NUMBER,ename VARCHAR2(10),job VARCHAR2(9))PCTFREE 20 PCTUSED 40;

    Dans cet exemple le bloc sera utilis : Pour la mise jour ( Update et Delete ) tant que lespace libre < 20 % de la taille du bloc Pour lajout ( insert ) tant que lespace utilis < 40 % ou lespace libre > 60 %

    Bloc

    (1)

    (2)

    (3)

    (4)

    (5)

  • 5/23/2018 Administration ORACLE

    25/69

    Administration Oracle 25 / 69E. MARCON V1.0

    888... LLLEEESSSUUUTTTIIILLLIIISSSAAATTTEEEUUURRRSSS

    888...111... TTTYYYPPPEEEDDDAAAUUUTTTHHHEEENNNTTTIIIFFFIIICCCAAATTTIIIOOONNN

    Un utilisateur qui a besoin daccder une base Oracle peut tre identifi par :- la base Oracle elle-mme- le systme dexploitation

    Tout utilisateur dune base Oracle dispose dun schma correspondant de mme nom.

    Rappel :un schma est une collection dobjets (tables, index, vues, )

    888...222... GGGEEESSSTTTIIIOOONNNDDDEEESSSUUUTTTIIILLLIIISSSAAATTTEEEUUURRRSSS

    8.2.1. CREATION DE NOUVEAUX UTILISATEURSLa cration dun nouvel utilisateur doit permettre didentifier cet utilisateur de manire unique. Il faut doncdfinir :- Un nom ( unique )- Un mot de passe ( si lidentification est gr par Oracle)

    La syntaxe est la suivante :

    CREATE USER utilisateurIDENTIFIED [ BY mot de passe / EXTERNALLY ]

    [Default TABLESAPCE tablespace][Temporary TABLESPACE tablespace][QUOTA { entier [ K , M ] | UNLIMITED} ON tablespace][PROFILEprofile][ACCOUNT { LOCK / UNLOCK }][PASSWORD EXPIRE]

    Loption EXTERNALLYdans la clause didentification prcise que lon choisit une authentification par lesystme dexploitation.

    Attention : Dans les versions antrieurs ( version 6 ) ce type dutilisateur tait prfix par OPS$, ceparamtre est aujourdhui contenu et modifiable dans le fichier de paramtres de linstance :OS_AUTHENT_PREFIX.

    Loption default TABLESPACE indique dans quel tablesapce sera stock par dfaut les objets crs parcet utilisateur.

    Attention : Si cette option nest pas dfini, le tablespace par dfaut attribu au nouvel utilisateur sera letablespace SYSTEM

    Loption temporary TABLESPACE indique dans quel tablesapce sera stock les segments temporairesncessaires lorsque lutilisateur excutera des ordres SQL ncessitant des tris..

    Attention : Si cette option nest pas dfini, le tablespace temporaire attribu au nouvel utilisateur sera letablespace SYSTEM

    Il est donc vivement conseill de dfinir ces deux tablespaces la cration de lutilisateur.

  • 5/23/2018 Administration ORACLE

    26/69

    Administration Oracle 26 / 69E. MARCON V1.0

    Loption QUOTAindique quels sont les quotas qui seront appliqus lutilisateur sur chaque tablespace.Ces quotas sappliquent aux objets qui seront crs par lutilisateur.

    Attention : Un privilge permet dautoriser un quota illimit sur tous les tablespace : UNLIMITEDTABLESPACE

    Loption PROFILEindique le profile affect cet utilisateur pour contrler la consommation de ressource.La notion de profile sera tudi ultrieurement.

    Attention : Si cette option nest pas dfini, le profile DEFAULT est affect au nouvel utilisateur.

    Loption ACCOUNT LOCKpermet de verrouiller le compte utilisateur ( le compte ne peut tre utiliser,mais il nest pas dtruit ).Loption ACCOUNT UNLOCKpermet de dverrouiller le compte utilisateur.

    Loption PASSWORD EXPIRE oblige lutilisateur, la prochaine connexion, changer de mot de passe.

    8.2.2. MODIFICATION DUN UTILISATEURLa modification dun utilisateur reprend lensemble des notions vues lors de la cration.

    La syntaxe est la suivante :

    ALTER USER utilisateurIDENTIFIED [ BY mot de passe / EXTERNALLY ][Default TABLESAPCE tablespace][Temporary TABLESPACE tablespace][QUOTA { entier [ K , M ] | UNLIMITED} ON tablespace ][PROFILE profile][DEFAULT ROLE { rle, ... / ALL [EXCEPT rle, / NONE }][ACCOUNT { LOCK / UNLOCK }]

    [PASSWORD EXPIRE] ;

    Loption DEFAULT ROLE permet daffecter un ou plusieurs rles (regroupement de droits) lutilisateurconcern. La notion de rle vu ultrieurement. Cette affectation peut tre ralise :- sous forme dune liste de rles- avec le mot cl ALL signifiant que tous les rles sont affects- Si le mot cl ALL est utilis alors un ensemble de rles peut tre exclu de laffectation- Avec le mot cl NONE qui dsactive lensemble des rles pour cet utilisateur

    8.2.3. SUPPRESSION DUN UTILISATEURLa suppression dun utilisateur permet galement de supprimer lensemble des objets crs par cetutilisateur.

    La syntaxe est la suivante :

    DROP USER utilisateur [ CASCADE ]

    Loption CASCADEsupprime lensemble des objets crs par lutilisateur supprim

    8.2.4. VUES SYSTEMESDeux vues systmes sont utilises pour lire les informations lies la gestion des utilisateurs :- DBA_USERS pour les donnes lies aux utilisateurs ( compte, tablespace par dfaut, )- DBA_TS_QUOTAS pour les donnes lies aux quotas

  • 5/23/2018 Administration ORACLE

    27/69

    Administration Oracle 27 / 69E. MARCON V1.0

    888...333... LLLEEESSSPPPRRROOOFFFIIILLLSSS

    8.3.1. NOTION DE PROFILLa notion de profil permet le contrle des ressources de lutilisateur .Un profil est donc un groupe dutilisateur auquel est affect un ensemble de limitation de ressource.Ces limitations concernent le contrle de la session et des appels au noyau.

    La limitation de ressource ne peut fonctionner que si le paramtre RESSOURCE_LIMIT est plac TRUE.

    Attention : par dfaut le paramtre RESSOURCE_LIMIT = FALSE, il faut donc le modifier pour utiliser lanotion de profil.

    Lorsque lutilisateur atteint la limite qui lui est allou, Oracle fait chouer lopration en cours en :- Annulant la transaction- Signalant lerreur (nom de la limite atteinte)

    8.3.2. CREATION DUN PROFILLa cration dun profil permet de lui affecter :- Un nom ( qui doit tre unique et diffrent de DEFAULT )- Une liste de limites avec pour chacune la valeur maximale qui peut tre affecte lutilisateur. Cette

    valeur peut tre un entier, la valeur par dfaut ou dans certain cas UNLIMITED.

    La syntaxe de cration dun profil est la suivante :

    CREATE PROFILEprofilLIMITSESSIONS_PER_USER { entier / DEFAULT / UNLIMITED }CPU_PER_SESSION { entier / DEFAULT / UNLIMITED }CPU_PER_CALL { entier / DEFAULT / UNLIMITED }CONNECT_TIME { entier / DEFAULT / UNLIMITED }IDLE_TIME { entier / DEFAULT / UNLIMITED }LOGICAL_READS_PER_SESSION { entier / DEFAULT / UNLIMITED }LOGICAL_READS_PER_CALL { entier / DEFAULT / UNLIMITED }COMPOSIT_LIMIT { entier / DEFAULT / UNLIMITED }PRIVATE_SGA { entier [ K, M ] / DEFAULT / UNLIMITED } ;

    Loption SESSIONS_PER_USER limite pour un utilisateur le nombre maximum de connexionsconcurrentes.

    Loption CPU_PER_SESSION indique le temps maximum dutilisation de la CPU pour une session,exprim en centimes de seconde.

    Loption CPU_PER_CALL indique le temps maximum dun appel au noyau, en centimes de seconde. Uappel au noyau est ncessaire pour :- Lanalyse dune commande SQL- Lexcution dune commande SQL

    Loption CONNECT_TIMEprcise le temps maximum autoris pour une session, exprim en seconde.

    Loption IDLE_TIME prcise le temps maximum dinactivit en continu autoris pour une session,exprim en seconde.

    Loption LOGICAL_READS_PER_SESSION reprsente le nombre maximum de blocs de donnes luspendant la dure dune session.

  • 5/23/2018 Administration ORACLE

    28/69

    Administration Oracle 28 / 69E. MARCON V1.0

    Loption LOGICAL_READS_PER_CALL reprsente le nombre maximum de blocs de donnes luspendant un appel au noyau.

    Loption COMPOSIT_LIMIT indique le cot total autoris pour une session. Par dfaut cette option est lasomme de :- CPU_PER_SESSION- CONNECT_TIME- LOGICAL_READS_PER_SESSION- PRIVATE_SGA

    Chaque option est pondre, la valeur par dfaut de pondration de toutes ces options est gale 1.Pour modifier cette pondration, il faut utiliser la commande :

    ALTER RESSOURCE COSTressource entier ;

    Par exemple :ALTER RESSOURCE COSTCPU_PER_SESSION 3 ;

    La valeur de COMPOSITE_LIMIT est alors3*CPU_PER_SESSION + 1*CONNECT_TIME + 1*LOGICAL_READS_PER_SESSION + 1*PRIVATE_SGA

    Loption PRIVATE_SGA limite la taille alloue lespace priv dune session dans la shared pool area dans la SGA. Cette option nest valide que dans le cas dun serveur partag.

    8.3.3. MODIFICATION DUN PROFILLa modification dun profil utilise les mmes notions que pour la cration.

    La syntaxe est la suivante :

    ALTER PROFILEprofilLIMITSESSIONS_PER_USER { entier / DEFAULT / UNLIMITED }CPU_PER_SESSION { entier / DEFAULT / UNLIMITED }CPU_PER_CALL { entier / DEFAULT / UNLIMITED }CONNECT_TIME { entier / DEFAULT / UNLIMITED }IDLE_TIME { entier / DEFAULT / UNLIMITED }LOGICAL_READS_PER_SESSION { entier / DEFAULT / UNLIMITED }LOGICAL_READS_PER_CALL { entier / DEFAULT / UNLIMITED }COMPOSIT_LIMIT { entier / DEFAULT / UNLIMITED }PRIVATE_SGA { entier [ K, M ] / DEFAULT / UNLIMITED } ;

    8.3.4. SUPPRESSION DUN PROFIL

    La suppression dun profil affecte tous les utilisateurs concerns le profil par dfaut ( DEFAULT ) siloption CASCADE est dfini. Les sessions en cours ne sont pas affectes par la suppression du profil,celle ci ne sera effective que pour les sessions ultrieures.

    La syntaxe est la suivante :

    DROP PROFILEprofilCASCADE ;

    8.3.5. PROFIL PAR DEFAUTIl existe un profile par dfaut ( DEFAULT ) dont toutes les options sont fixes UNLIMITED. Ce profil nepeut tre supprim.

  • 5/23/2018 Administration ORACLE

    29/69

    Administration Oracle 29 / 69E. MARCON V1.0

    8.3.6. GESTION DES COMPTESDepuis la version 8, les profils servent galement la gestion dun compte Oracle. Ces limites permettentde dfinir des paramtres dutilisation des comptes ayant un mot de passe gr par Oracle. Ces options

    limites les essais de connexion, le temps dutilisation dun mot de passe, .

    La syntaxe est la suivante :

    CREATE PROFILE profilLIMITFAILED_LOGIN_ATTEMPT { entier / DEFAULT / UNLIMITED }PASSWORD_LOCK_TIME { entier / DEFAULT / UNLIMITED }PASSWORD_GRACE_TIME { entier / DEFAULT / UNLIMITED }PASSWORD_LIFE_TIME { entier / DEFAULT / UNLIMITED }PASSWORD_REUSE_MAX { entier / DEFAULT / UNLIMITED }PASSWORD_REUSE_TIME { entier / DEFAULT / UNLIMITED }PASSWORD_VERIFY_FUNCTION { fonction / NULL / DEFAULT } ;

    Loption FAILED_LOGIN_ATTEMPTindique le nombre de fois que lutilisateur peut chouer lors dune

    tentative de connexion avant que son compte ne soit verrouill.

    Loption PASSWORD_LOCK_TIME indique le nombre de jours quun compte reste bloqu aprs unnombre dchecs conscutifs.

    Loption PASSWORD_GRACE_TIME indique le nombre de jours aprs lequel un avertissement estsignal et la connexion accepte. Si le mot de passe nest pas chang pendant cette priode alors lecompte est bloqu.

    Loption PASSWORD_LIFE_TIME limite le nombre jours pendant lequel un mme mot de passe peuttre utilis. Le mot de passe expire si il nest pas chang pendant cette priode et les connexionssuivantes sont refuses.

    Loption PASSWORD_REUSE_MAXindique le nombre de changements de mot de passe avant que lemot de passe courant puisse tre r - utilis.

    Attention : Cette option ne fonctionne que si loption PASSWORD_REUSE_TIME = UNLIMITED

    Loption PASSWORD_REUSE_TIME indique le nombre de jours que le mot de passe courant puissetre r utilis.

    Attention : Cette option ne fonctionne que si loption PASSWORD_REUSE_MAX = UNLIMITED

    Loption PASSWORD_VERIFY_FUNCTIONalloue une fonction PL/SQL qui vrifie de faon complexe lemot de passe

    Pour le profil DEFAULT, toutes les options ont pour valeur UNLIMITED sauf loption

    PASSWORD_VERIFY_FUNCTION qui est gale NULL.

  • 5/23/2018 Administration ORACLE

    30/69

    Administration Oracle 30 / 69E. MARCON V1.0

    888...444... LLLEEESSSPPPRRRIIIVVVIIILLLEEEGGGEEESSS

    8.4.1. NOTION DE PRIVILEGEUne fois lutilisateur cr, il ne peut pour autant se connecter car il ne possde aucun droits sur labase, y compris celui de se connecter. Ces droits sont appels privilges.

    Il existe deux types de privilge :- Les privilges systmesqui autorisent lutilisateur se connecter la base, et effectuer un certain

    nombre dactions sur la dfinition des objets de la base ou qui concernent les structures de contrlede la base telles que la session, linstance,

    - Les privilges objetsqui portent sur les objets de la base et qui sont attribus par leur propritaire.Ces privilges autorisent les manipulations de ces objets ( ajout, suppression, modification , )

    8.4.2. LES PRIVILEGES SYSTEMESIl existe deux types de privilges systmes :- Le premier sapplique aux actions sur les objets logiques des utilisateurs.- Le deuxime reprend des actions particulires sur la base

    8.4.2.1 Les privilges systmes action Il existe 3 actions principales sur les objets de la base :- La cration => CREATE- La modification => ALTER- La suppression => DROP

    Dautres actions sont possibles comme par exemple lexcution => EXECUTE

    Les privilges peuvent tre dfinis soient :- Pour les objets de lutilisateur- Pour les objets de tous les utilisateurs ( mot cl ANY )

    Privilge CREATE ALTER DROP DIVERSCLUSTER OUIANY CLUSTER OUI OUI OUIANY CONTEXT OUI OUIDATABASE OUIDATABASE LINK OUIPUBLIC DATABASELINK

    OUI OUI

    DIMENSION OUIANY DIMENSION OUI OUI OUI

    ANY DIRECTORY OUIANY INDEX OUI OUI OUIINDEXTYPE OUIANY INDEXTYPE OUI OUI OUI EXECUTELIBRARY OUI OUIANY LIBRARY OUI OUIMATERIELIZEDVIEW

    OUI OUI OUI QUERYREWRITE

    ANY MATERIELIZEDVIEW

    OUI

    OPERATOR OUIANY OPERATOR OUI OUI OUI EXECUTEANY OUTLINE OUI

  • 5/23/2018 Administration ORACLE

    31/69

    Administration Oracle 31 / 69E. MARCON V1.0

    PROCEDURE OUI EXECUTEANY PROCEDURE OUI OUI OUI EXECUTEPROFILE OUI OUI OUIRESOURCE COST OUIROLE OUIANY ROLE OUI OUI GRANTROLLBACKSEGMENT

    OUI OUI OUI

    SESSION OUI OUISEQUENCE OUIANY SEQUENCE OUI OUI OUI SELECTSNAPSHOT OUIANY SNAPSHOT OUI OUI OUI QUERY

    REWRITESYNONYM OUIANY SYNONYM OUI OUIPUBLIC SYNONYM OUI OUI

    TABLE OUIANY TABLE OUI OUI OUI LOCKCOMMENTSELECTINSERTUPDATEDELETE

    TABLESPACE OUI OUI OUI MANAGETRIGGER OUIANY TRIGGER OUI OUI OUITYPE OUIANY TYPE OUI OUI OUI EXECUTEUSER OUI OUI OUI BECOMEVIEW OUI

    ANY VIEW OUI OUI

    8.4.2.2 Les autres privilges systmes

    Privilge Action permiseANALYZE ANY Analyser tout ( Cluster, table et index )AUDIT ANY Auditer tout objet de la base de donnesAUDIT SYSTEM Auditer toute commande ou privilge de la

    baseGRANT ANY PRIVILEGE Accorder tout privilge systmeRESTRICTED SESSION Pouvoir se connecter une instance

    dmarre par la commande SARTUPRESTRICT

    UNLIMITED TABLESPACE Lutilisateur na pas de limite sur TOUS lestablespaces

    FORCE TRANSACTION Force sa propre transaction distribue dansla base locale

    FORCE ANY TRANSACTION Force toute transaction distribue dans labase locale

    8.4.2.3 Affecter et retirer un privilge ou plusieurs privilgesGRANTpriv1, priv2, TO user1

    REVOKEpriv1,priv2, FROM user1

  • 5/23/2018 Administration ORACLE

    32/69

    Administration Oracle 32 / 69E. MARCON V1.0

    8.4.3. LES PRIVILEGES OBJETSQuand un utilisateur cre des objets dans son schma, il possde tous les droitssur ses objets.Il a lui seulla possibilit daccorder des privilges sur ses objets dautres utilisateurs.

    Il existe une optionpermettant un utilisateur daccorder les privilges sur des objets ne lui appartenantpas.

    La syntaxe daffectation dun privilge est la suivante :

    GRANTpriv1, priv2, / ALLON objetTO user / rle / PUBLICWITH GRANT OPTION

    LoptionALLindique que tous les privilges objets possibles sont attribus lutilisateur Loption PUBLICindique que le(s) privilge(s) sont attribus tout le monde LoptionWITH GRANT OPTION indique que lutilisateur pourra a son tour attribuer ces privilges

    dautres utilisateurs

    888...555... LLLEEESSSRRROOOLLLEEESSS

    Un rle est une agrgation de droits d'accs aux donnes et de privilges systme qui renforce la scuritet rduit significativement la difficult et le cot de son administration.

    8.5.1. CRATIOND'UNRLE

    Un rle est un ensemble nomm de privilges qui peut tre attribu des utilisateurs et/ou d'autresrles. Il offre une facilit de gestion des privilges d'accs aux donnes. L'administrateur peut donccentraliser la gestion de privilges par la cration de plusieurs rles et l'attribution de ces rles en fonctionde l'utilisateur, d'o une maintenance facile et structure.

    La cration d'un rle peut servir deux aspects : application et utilisateur. Un rle d'application regroupetous les privilges ncessaires l'excution d'une application. Il peut tre compos d'autres rles, chacund'eux offre un ensemble de privilges d'accs des donnes diffrentes de l'application. Un rleutilisateur gre des privilges communs ncessaires aux utilisateurs de la base, comme la cration desession.

    La cration d'un rle se fait par la commande suivante

    CREATE ROLE rleNOT IDENTIFIED| IDENTIFIED {BY mot de passe | EXTERNALLY}

    Un rle est cr initialement sans aucune caractristique, puis aliment par des ordres SQL GRANT. Ilpeut tre protg par un mot de passe qui sera demand chaque fois que le crateur dcide de l'activerpar la commande SET ROLE. L'authenticit des rles dans Oracle est quivalente celle des utilisateurs.

    Oracle cre automatiquement quelques rles qu'il attribue SYS et SYSTEM. Ces rles ne sont que desprivilges systme des anciennes versions CONNECT, RESOURCE et DBA.L'importation et l'exportation de donnes ont t mises dans les rles respectifs IMP FULL DATABASE etEXP FULL DATABASE. Les privilges systme attribus ces rles sont illustrs dans le tableausuivant :

    Rle Privilges systmeCONNECT ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK

    , CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW.

  • 5/23/2018 Administration ORACLE

    33/69

    Administration Oracle 33 / 69E. MARCON V1.0

    RESOURCE CREATE CLUSTER, CREATE PROCEDURE, CREATESEQUENCE, CREATE TABLE, CREATE TRIGGER,UNLIMITED TABLESPACE

    DBA Tous les privilges

    EXP-FULL-DATABASE SELECT ANY TABLE, BACKUP ANY TABLE,

    IMP-FULL-DATABASE BECOME-USER

    Exemple: Crer un rle nomm rutil1.

    CREATE ROLE rutil1IDENTIFIED BY test;

    8.5.2. ACTIVATIOND'UNRLEAvant que les privilges associs un rle deviennent disponible l'utilisateur de la session, il faut que lerle soit activ. La commande qui permet d'activer ou de dsactiver un rle est la suivante :

    SET ROLE (rle [IDENTIFIED BY mot_de_passelrle [IDENTIFIED BY mot de passe]ALL [EXCEPT rle [, rle] ...NONE}

    Par dfaut, Oracle tablit au moment de la connexion tous les privilges d'un utilisateur. Ces privilgesont t attribus soit directement en passant par des GRANT objets, soit indirectement par des GRANTrles. La premire catgorie ne peut pas tre active et dsactive d'une faon slective ; autrement dit,pour retirer les privilges d'accs une table quelconque, il faut l'expliciter par la commande REVOKE

    tous les utilisateurs. En revanche, la seconde catgorie, qui concerne les privilges attribus par desrles, peut tre slective par le mcanisme d'activation et de dsactivation et offre ainsi une meilleurescurit qui dpend de la tche courante de l'utilisateur.

    L'utilisation des options ALL et ALL EXCEPT ncessitent que tous les rles ne possdent pas de mot depasse ou utilisent une authentification par systme d'exploitation.

    1Le rle qui ne figure pas dans la liste est considr comme dsactiv. Il n'existe pas de commandespcifique pour dsactiver explicitement un rle.

    Exemple : Activer les rles rutill et rutil2.

    SET ROLE rutil 1 IDENTIFIED BY malek, rutil2;

    Nous constatons que seulement le premier rle ncessite un mot de passe. Ceci dpend de sa dfinition(cration).

    8.5.3. MODIFICATIOND'UNRLE

    Il est possible de modifier le mot de passe d'un rle existant.

    ALTER ROLE rleNOT IDENTIFIED| IDENTIFIED {BY mot de passe | EXTERNALLY}

  • 5/23/2018 Administration ORACLE

    34/69

    Administration Oracle 34 / 69E. MARCON V1.0

    Exemple: Mettre le rle rutil 1 sans mot de passe.

    ALTER ROLE rutil 1 NOT IDENTIFIED;

    8.5.4. 4. SUPPRESSIOND'UNRLE

    Pour supprimer un rle existant, il faut utiliser la commande suivante

    DROP ROLE rle

    Exemple: Supprimer le rle rutil1.

    DROP ROLE rutil1

  • 5/23/2018 Administration ORACLE

    35/69

    Administration Oracle 35 / 69E. MARCON V1.0

    999... CCCOOOMMMPPPLLLEEEMMMEEENNNTTTSSSQQQLLLPPPLLLUUUSSS

    999...111... LLL'''EEENNNVVVIIIRRROOONNNNNNEEEMMMEEENNNTTTSSSQQQLLLPPPLLLUUUSSSDDD'''OOORRRAAACCCLLLEEE

    SQLPLUS est l'outil d'Oracle permettant l'utilisation du langage SQL. Cependant il offre en plus diversescommandes de manipulation de commandes SQL, de formatage des affichages cran etc ...formant ceque nous appellerons l'environnement SQLPLUS et qui est prsent partiellement dans ce chapitre.

    Une fois la connexion avec Oracle tablie, SQLPLUS affiche son message d'attente :SQL>

    indiquant qu'il attend une commande SQL ou SQLPLUS.

    Les commandes SQL permettent de crer, mettre jour et exploiter les tables de donnes.

    Ex : select * from biblio;

    Les commandes SQLPLUS permettent de manipuler l'environnement dans lequel vont s'excuter lescommandes SQL : diter, sauvegarder, rcuprer des commandes SQL prciser le formatage dsir pour le rsultat des requtes SQL diverses commandes

    Ex : describe biblio

    999...222... SSSYYYNNNTTTAAAXXXEEEDDDEEESSSCCCOOOMMMMMMAAANNNDDDEEESSSSSSQQQLLLPPPLLLUUUSSS

    Voici quelques rgles d'criture des commandes SQLPLUS :La commande peut tre entre indiffremment en majuscules ou minuscules. La plupart des commandes SQLPLUS ont une abrviation. Par exemple la commande input peut tre

    abrge par i. Une commande SQLPLUS peut tre tape sur plusieurs lignes, chaque ligne intermdiaire tant

    termine par - . SQLPLUS commence la ligne suivante par > :

    SQL> column genre

    > heading 'GENRE DU LIVRE'

    Une commande SQLPLUS ne se termine par rien de particulier. Cependant le point virgule estaccept.

    999...333... QQQUUUEEELLLQQQUUUEEESSSCCCOOOMMMMMMAAANNNDDDEEESSSSSSQQQLLLPPPLLLUUUSSS

    Nous nous proposons ici de voir quelques commandes SQLPLUS qui nous seront utiles dans notre tudedu langage SQL.

    9.3.1. SORTIE DE SQLPLUSsyntaxe exitaction ramne au systme d'exploitation

    9.3.2. EXECUTER UNE COMMANDE SYSTEMEhost commande_systme excute la commande du systme d'exploitation.host fait apparatre le "prompt" du systme d'exploitation. On peut alors taper des commandesquelconques. On revient SQLPLUS par la commande exit.

  • 5/23/2018 Administration ORACLE

    36/69

    Administration Oracle 36 / 69E. MARCON V1.0

    Exemples :SQL> host pwd list

  • 5/23/2018 Administration ORACLE

    37/69

    Administration Oracle 37 / 69E. MARCON V1.0

    1 select *2 from biblio3* where prix>100SQL> clear buffer list input 1004 del l l 1

  • 5/23/2018 Administration ORACLE

    38/69

    Administration Oracle 38 / 69E. MARCON V1.0

    SQL> l 100

    SQL> save cmd1 host ll clear buffer l l 100SQL> run 100TITRE AUTEUR GENRE ACHAT PRIX D-------------------- --------------- --------------- --------- ---------- -Vipere au poing Bazin Roman 01-JAN-91 130 OL'adieu aux armes Hemingway Roman 01-FEB-91 150 o

    999...444... GGGEEESSSTTTIIIOOONNNDDDEEESSSFFFIIICCCHHHIIIEEERRRSSSDDDEEECCCOOOMMMMMMAAANNNDDDEEESSS

    Il est possible de rassembler des commandes SQL dans un fichier texte appel fichier de commandes.Les commandes ont la mme syntaxe qu'en mode interactif. Le fichier peut tre construit l'aide d'unditeur :edit fichier_de_commandesIl sera excut par la commandestart fichier_de_commandesExemples

    SQL> edit cmd2 host lltotal 3

  • 5/23/2018 Administration ORACLE

    39/69

    Administration Oracle 39 / 69E. MARCON V1.0

    140 donne le titre titre_colonne la colonne indique.Exemples

    SQL> select titre,prix from biblio;TITRE PRIX-------------------- ----------Les fleurs du mal 120Tintin au Tibet 70La terre 52.5Madame Bovary 136.5

    Manhattan transfer 336Tintin en Amrique 70Du ct de ch. Swann 2107 rows selected.SQL> column titre heading 'Titre du livre' column prix heading 'Prix d''achat'

  • 5/23/2018 Administration ORACLE

    40/69

    Administration Oracle 40 / 69E. MARCON V1.0

    B9999 affiche une valeur nulle comme un blanc 9999MI affiche - derrire une valeur ngative 9999PR affiche les valeurs ngatives entre parenthses

    9,999 une virgule sera place la position indique 99.99 un point dcimal sera plac l'endroit indiqu 9.99EEEE la valeur est affiche en notation scientifique

    Exemples

    SQL> column prix format 9999.99SQL> select prix from biblio;Prix d'achat------------120.0070.0052.50136.50336.0070.00210.00

    7 rows selected.SQL> column prix format 0999.99SQL> select prix from biblioPrix d'achat------------0120.000070.000052.500136.500336.000070.000210.007 rows selected.SQL> column prix format 999.99EEEESQL> select prix from biblio;Prix d'achat------------1.20E+027.00E+015.25E+011.37E+023.36E+027.00E+012.10E+027 rows selected.SQL> column titre format A20SQL> select titre from biblio;Titre du livre--------------------Les fleurs du malTintin au TibetLa terreMadame BovaryManhattan transferTintin en AmriqueDu ct de ch. Swann7 rows selected.Introduction au langage SQL 24

    SQL> column titre format A15SQL> select titre from biblio;Titre du livre---------------Les fleurs du m

  • 5/23/2018 Administration ORACLE

    41/69

    Administration Oracle 41 / 69E. MARCON V1.0

    999...666... VVVAAARRRIIIAAABBBLLLEEESSSDDD'''EEENNNVVVIIIRRROOONNNNNNEEEMMMEEENNNTTT

    Sqlplus propose un ensemble de variables denvironnement permettant la configuration de cet outil.

    Variable Description Valeurs possiblesARRAY [SIZE] 20 | nAUTO[COMMIT] OFF | ON | IMMEDIATEBLO[CKTERMINATOR] . | cCMDS[EP] ; | c | OFF | ONCOM[PATIBILITY]CON[CAT]COPYC[OMMIT]CRTDEF[INE]ECHO

    EMBEDDEDESC[APE]FEED[BACK]

    FLU[SH]HEA[DING]HEADS[EP]LINE[SIZE]

    LONGMAXD[ATA]NEWP[AGE]NULLNUMF[ORMAT]NUM[WIDTH]PAGES[IZE]

    PAU[SE]RECSEPRECSEPCHARSCAN

    SHOW[MODE]SPA[CE]SQLC[ASE]SQLCO[NTINUE]SQLN[UMBERSQLPRE[FIXE]SQLP[ROMPT]SQLT[ERMINATOR]SUF[FIX]TABTERM[OUT]TI[ME]TIMI[NG]TRIM[OUT]UND[ERLINE]VER[IFY]

    WRA[P]

    Exemple dutilisation :set long 1024/* pour voir la totalit des dfinitions de vues */

    set pagesize 20/* formate la sortie cran par blocs de 20 lignes */

    set pause on/* ne visualise la sortie qu'aprs un 2e RC - bloc par bloc - */

    set timing [on|off]/* active ou dsactive le chronomtre */

  • 5/23/2018 Administration ORACLE

    42/69

    Administration Oracle 42 / 69E. MARCON V1.0

    111000... CCCOOOMMMPPPLLLEEEMMMEEENNNTTTSSSQQQLLL

    Ce chapitre prsente le langage de dfinition de donnes (LDD)qui permet de spcifier le schmadune base de donnes relationnelle. Ce langage correspond une partie de la norme SQL (structuredquery language), lautre partie tant relative la manipulation des donnes (LMD).

    La dfinition dun schma logique comprend essentiellement deux parties : dune part la descriptiondes tables et de leur contenu, dautre part les contraintesqui portent sur les donnes de la base.

    La spcification des contraintes est souvent place au second plan bien quelle soit en fait trs importante:elle permet dassurer, au niveau de la base des contrles sur lintgrit des donns qui simposent toutes les applications accdant cette base. Un dernier aspect de la dfinition dun schma, rapidementsurvol ici, est la description de la reprsentation physique.

    Il existe plusieurs versions de SQL. Le plus ancien standard date de 1989. Il a t rvis de manireimportante en 1992 : la norme rsultant de cette rvision est SQL-92 ou SQL2. Une extension (SQL3)comprenant lintroduction de caractristiques orientes - objet est en cours de discussion depuis trslongtemps, et certains systmes ont dj anticip en proposant de nouvelles fonctionnalits.

    111000...111... TTTYYYPPPEEESSSSSSQQQLLL

    La norme SQL ANSI propose un ensemble de types qui sont donns dans le tableau ci dessous. Cetableau prsente galement la taille, en octets, des instances de chaque type, cette taille ntant ici qutitre indicatif car elle peut varier selon les systmes.

    Type Description TailleINTEGER Type des entiers relatifs 4 octetsSMALLINT Idem. 2 octetsBIGINT Idem. 8 octetsFLOAT Flottants simple prcision 4 octetsDOUBLE PRECISION Flottants double prcision 8 octetsREAL Synonyme de FLOAT 4 octetsNUMERIC (M, D) Numrique avec prcision fixe. M octetsDECIMAL (M, D) Idem. M octetsCHAR(M) Chanes de longueur fixe M octetsVARCHAR(M) Chanes de longueur variable L+1 avec L

  • 5/23/2018 Administration ORACLE

    43/69

    Administration Oracle 43 / 69E. MARCON V1.0

    valeur exacte. Les numriques flottants correspondent aux types couramment utiliss en programmation(FLOAT, DOUBLE) et ne reprsentent une valeur quavec une prcision limite.

    Le type INTEGER permet de stocker des entiers, sur 4 octets en gnral, mais la taille du stockage nestpas spcifie par la norme. Il existe deux variantes du type INTEGER : SMALLINT et BIGINT. Ces typesdiffrent par la taille utilise pour le stockage ( voir le tableau ci dessus ).

    Le type DECIMAL (M, D) correspond un numrique de taille maximale M, avec un nombre de dcimalesfix D. Le type NUMERIC est un synonyme pour DECIMAL. Ces types sont surtout utiles pour manipulerdes valeurs dont la prcision est connue, comme les valeurs montaires. Afin de prserver cetteprcision, les instances de ces types sont stockes comme des chanes de caractres.

    10.1.2. TYPES NUMERIQUES FLOTTANTSCes types sappuient sur la reprsentation des numriques flottants propre la machine, en simple oudouble prcision. Leur utilisation est donc analogue celle que lon peut en faire dans un langage deprogrammation comme le C. Le type FLOAT correspond aux flottants en simple prcision. Le type DOUBLE PRECISION correspond aux flottants en double prcision. Le raccourci DOUBLE est

    accept. Le type REAL est un synonyme pour DOUBLE.

    10.1.3. CARACTERES ET CHAINES DE CARACTERESLes deux types principaux de la norme ANSI, disponibles dans la plupart des SGBD relationnels, sontCHAR et VARCHAR. Ces deux types permettent de stocker des chanes de caractres dune taillemaximale fixe par le paramtre M. Les syntaxes sont identiques : Pour le premier, CHAR(M), et pour le second VARCHAR(M).

    La diffrence essentielle entre les deux types est quune valeurCHAR

    a une taille fixe, et se trouve donccomplte avec des blancs si sa taille est infrieure M. En revanche une valeur VARCHAR a une taillevariable et est tronque aprs le dernier caractre non blanc.

    Quand on veut stocker des chanes de caractres trs longues (des textes, voire des livres), le typeVARCHAR ne suffit plus. La norme SQL propose un type BIT VARYING qui correspond de trs longueschanes de caractres. Souvent les systmes proposent des variantes de ce type sous le nom BLOB(pour Binary Long Object) ou LONG.

    10.1.4. DATESUn attribut de type DATE stocke les informations jour, mois et anne (sur 4 chiffres). La reprsentationinterne nest pas spcifie par la norme. Tous les systmes proposent de nombreuses oprations deconversion (non normalises) qui permettent dobtenir un format daffichage quelconque.

    Un attribut de type TIME stocke les informations_

    heure_

    ,_

    minute_

    et_

    seconde_

    . Laffichage sefait par dfaut au format HH:MM:SS. Le type DATETIME permet de combiner une date et un horaire,laffichage se faisant au format AAAA-MM-JJ HH:MM:SS.

    111000...222... CCCRRREEEAAATTTIIIOOONNNDDDEEESSSTTTAAABBBLLLEEESSS

    La commande principale est CREATE TABLE.Voici la commande de cration de la table Internaute.

    CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,nom VARCHAR (20) NOT NULL,prenom VARCHAR (20),motDePasse VARCHAR (60) NOT NULL,anneeNaiss DECIMAL (4))

  • 5/23/2018 Administration ORACLE

    44/69

    Administration Oracle 44 / 69E. MARCON V1.0

    La syntaxe se comprend aisment. La seule difficult est de choisir correctement le type de chaqueattribut.

    10.2.1. NULLOU NOTNULL

    Le NOT NULL dans la cration de table Internaute indique que lattribut correspondant doit toujoursavoir une valeur.

    Il sagit dune diffrence importante entre la pratique et la _ thorie _ : on admet que certains attributspeuvent ne pas avoir de valeur, ce qui est trs diffrent dune chane vide ou de 0. Quand on parle devaleur NULL en SQL2, il sagit en fait dune absence de valeur. En consquence : on ne peut pas faire dopration incluant un NULL ; on ne peut pas faire de comparaison avec un NULL.

    Loption NOT NULL oblige toujours indiquer une valeur. Loption suivante permet ainsi de garantir

    que tout internaute a un mot de passe.motDePasse VARCHAR(60) NOT NULL

    Le SGBD rejettera alors toute tentative dinsrer une ligne dans Internaute sans donner de mot de passe.

    Si les valeurs NULL sont autorises, il faudra en tenir compte quand on interroge la base. Cela peutcompliquer les choses, voire donner des rsultats surprenants : il est prfrable de forcer les attributsimportant avoir une valeur.

    10.2.2. DEFAULTUne autre manire de forcer un attribut toujours prendre une valeur est de spcifier une valeur pardfaut avec loption DEFAULT.

    CREATE TABLE Cinma (nom VARCHAR (50) NOT NULL,adresse VARCHAR (50) DEFAULT Inconnue)

    Quand on insrera une ligne dans la table Cinma sans indiquer dadresse, le systme affecteraautomatiquement la valeur Inconnu cet attribut. En gnral on utilise comme valeur par dfaut uneconstante, sauf pour quelques variables fournies par le systme (par exemple SYSDATE qui peut indiquerla date du jour).

    10.2.3. CONTRAINTESLa cration dune table telle quon la vue prcdemment est extrmement sommaire car elle nindiqueque le contenu de la table sans spcifier les contraintes que doit respecter ce contenu. Or il y a toujours

    descontraintes et il est indispensable de les inclure dans le schma pour assurer (dans la mesure dupossible)lintgrit de la base.Voici les rgles (ou contraintes dintgrit) que lon peut demander au systme de garantir :1. Un attribut doit toujours avoir une valeur. Cest la contrainte NOT NULL vue prcdemment.2. Un attribut (ou un ensemble dattributs) constitue(nt) la cl de la relation.3. Un attribut dans une table est lie la cl primaire dune autre table (intgrit rfrentielle).4. La valeur dun attribut doit tre unique au sein de la relation.5. Enfin toute rgle sappliquant la valeur dun attribut (min et max par exemple).Les contraintes sur les cls doivent tre systmatiquement spcifies. La dernire (clause CHECK)sappuieen grande partie sur la connaissance du langage dinterrogation de SQL et sera vue ultrieurement.

  • 5/23/2018 Administration ORACLE

    45/69

    Administration Oracle 45 / 69E. MARCON V1.0

    10.2.3.1 Cls dune tableUne cl est un attribut (ou un ensemble dattributs) qui identifie(nt) de manire unique un tuple dunerelation.

    Il peut y avoir plusieurs cls mais lune dentre elles doit tre choisie comme cl primaire. Ce choix estimportant : la cl primaire est la cl utilise pour rfrencer une ligne et une seule partir dautres tables.Il est donc assez dlicat de la remettre en cause aprs coup. En revanche les cls secondaires peuventtre cres ou supprimes beaucoup plus facilement.

    La cl primaire est spcifie avec loption PRIMARY KEY.

    CREATE TABLE Internaute (email VARCHAR (50) NOT NULL,48 CHAPITRE 4. LE MODLE RELATIONNELnom VARCHAR (20) NOT NULL,prenom VARCHAR (20),motDePasse VARCHAR (60) NOT NULL,anneeNaiss INTEGER,PRIMARY KEY (email))

    Une cl peut tre constitue de plusieurs attributs :

    CREATE TABLE Notation (idFilm INTEGER NOT NULL,email VARCHAR (50) NOT NULL,note INTEGER DEFAULT 0,PRIMARY KEY (titre, email))

    Tous les attributs figurant dans une cl doivent tre dclars NOT NULL. Cela na pas vraiment de sensen effet didentifier des lignes par des valeurs absentes.

    On peut galement spcifier que la valeur dun attribut est unique pour lensemble de la colonne. Celapermet dindiquer des cls secondaires. On peut par exemple indiquer que deux artistes ne peuvent avoirles mmes nom et prnom avec loption UNIQUE.

    CREATE TABLE Artiste(id INTEGER NOT NULL,nom VARCHAR (30) NOT NULL,prenom VARCHAR (30) NOT NULL,anneeNaiss INTEGER,PRIMARY KEY (id),UNIQUE (nom, prenom));

    Il est facile de supprimer cette contrainte de cl secondaire par la suite. Ce serait beaucoup plus difficile sion avait utilis la paire (nom, prenom) comme cl primaire puisquelle serait alors utilise pourrfrencer un artiste dans dautres tables.

    10.2.3.2 Cls trangresLa norme SQL ANSI permet dindiquer quelles sont les cls trangres dans une table, autrement dit,

    quels sont les attributs qui font rfrence une ligne dans une autre table.

    On peut spcifier les cls trangres avec loption FOREIGN KEY.

    CREATE TABLE Film (idFilm INTEGER NOT NULL,titre VARCHAR (50) NOT NULL,annee INTEGER NOT NULL,idMES INTEGER,codePays INTEGER,PRIMARY KEY (idFilm),FOREIGN KEY (idMES) REFERENCES Artiste,FOREIGN KEY (codePays) REFERENCES Pays);

  • 5/23/2018 Administration ORACLE

    46/69

    Administration Oracle 46 / 69E. MARCON V1.0

    La commande FOREIGN KEY (idMES) REFERENCES Artiste indique que idMES rfrence la clprimaire de la table Artiste. Le SGBD vrifiera alors, pour toute modification pouvant affecter le lien entreles deux tables, que la valeur de idMES correspond bien une ligne

    de Artiste. Ces modifications sont : linsertion dans Film avec une valeur inconnue pour idMES ; la destruction dun artiste ; la modification de id dans Artiste ou de idMES dans Film.

    En dautres termes le lien entre Film et Artiste est toujours valide. Cette contrainte est importante pourgarantir quil ny a pas de fausse rfrence dans la base, par exemple quun film ne fait pas rfrence unartiste qui nexiste pas. Il est beaucoup plus confortable dcrire une application par la suite quand on saitque les informations sont bien l o elles doivent tre.

    Il faut noter que lattribut idMES nest pas dclar NOT NULL, ce qui signifie que lon sautorise ne pas connatre le metteur en scne dun film. Quand un attribut est NULL, la contrainte dintgritrfrentielle ne sapplique pas.

    Que se passe-t-il quand la violation dune contrainte dintgrit est dtecte par le systme ? Par dfaut,la mise jour est rejete, mais il est possible de demander la rpercussion de cette mise jour demanire ce que la contrainte soit respecte. Les vnements que lon peut rpercuter sont lamodification ou la destruction de la ligne rfrence, et on les dsigne par ON UPDATE et ON DELETErespectivement. La rpercussion elle-mme consiste soit mettre la cl trangre NULL (option SETNULL), soit appliquer la mme opration aux lignes de lentit composante (option CASCADE).

    Voici comment on indique que la destruction dun metteur en scne dclenche la mise NULL de la cltrangre idMES pour tous les films quil a ralis.

    CREATE TABLE Film (titre VARCHAR (50) NOT NULL,annee INTEGER NOT NULL,idMES INTEGER,codePays INTEGER,

    PRIMARY KEY (titre),FOREIGN KEY (idMES) REFERENCES ArtisteON DELETE SET NULL,FOREIGN KEY (codePays) REFERENCES Pays);

    Dans le cas dune entit faible, on dcide en gnral de dtruire le composant quand on dtruit lecompos.

    La spcification des actions ON DELETE et ON UPDATE simplifie considrablement la gestion de la basepar la suite : on na plus par exemple se soucier de dtruire les salles quand on dtruit un cinma.

    10.2.3.3 Enumration des valeurs possibles avec CHECK

    La norme SQL ANSI comprend une option CHECK (condition) pour exprimer des contraintes portantsoit sur un attribut, soit sur une ligne. La condition elle-mme peut tre toute expression suivant la clauseWHERE dans une requte SQL. Les contraintes les plus courantes sont celles consistant restreindre unattribut un ensemble de valeurs, comme expliqu ci-dessous. On peut trouver des contraintesarbitrairement complexes, faisant rfrence dautres relations. Nous reviendro