Département Génie Informatique. LO51 : Administration des bases de données Oracle 10G. Ateliers



Documents pareils
Oracle : Administration

Partie 0 : Gestion des tablespace et des utilisateurs... 3

TP Contraintes - Triggers

Gestion des utilisateurs et de leurs droits

Oracle 11g - Dataguard

Notion de base de données

Auto-évaluation Oracle: cours de base

Bases de Données Avancées

Module 25 : Correction des exercices

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

INSIA SIGL Bases de données ARCHITECTURE ORACLE

Le Langage SQL version Oracle

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Création d'une nouvelle base de données

Cours Bases de données 2ème année IUT

TP11 - Administration/Tuning

3. La SGA ou System global Area

et Groupe Eyrolles, 2006, ISBN :

Module n 2 CREER UNE BASE DE DONNEES 1Z0-001

Le Langage De Description De Données(LDD)

Oracle 10g Administration +

Bases de Données relationnelles et leurs systèmes de Gestion

Secteur Tertiaire Informatique Filière étude - développement. Accueil. Apprentissage. Période en entreprise. Evaluation.

Du 10 Fév. au 14 Mars 2014

//////////////////////////////////////////////////////////////////// Administration bases de données

Chapitre III Architecture de Base de Données Oracle

1. Qu'est qu'un tablespace?

STATISTICA Version 12 : Instructions d'installation

Devoir Data WareHouse

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

et Groupe Eyrolles, 2006, ISBN :

PREPARATION AU PTI SGBD

TP Administration Oracle

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Tutorial Terminal Server sous

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Administration des Bases de Données Oracle

SQL Server Installation Center et SQL Server Management Studio

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Installation des moteurs SQL Pour Micro-SESAME

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

INSTALLATION Advantage Database Server

Symantec Backup Exec Remote Media Agent for Linux Servers

Nœud Suisse du Projet International GBIF (Global Biodiversity Information Facility)

Administration de Base de Données Notes de cours

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Bases de données et sites WEB

Administration des bases de données sous Oracle. 10g. Fabien De Marchi, Jean-Marc Petit. Université de Lyon. November 22, /96

contact@nqicorp.com - Web :

Présentation du SC101

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

INSIA Bases de données ORACLE Installation SQL*Plus SQL-Developer

420-PK6-SL Banques de données Avancées UTILISATEURS

Cours Bases de données 2ème année IUT

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

FileMaker Server 14. Guide de démarrage

Administration des bases de données. Jean-Yves Antoine

Procédure serveur : gestion des environnements X3 et bases de données ORACLE

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Administration d'une base de données

Introduction aux SGBDR

Master Exploration Informatique des données DataWareHouse

Oracle Database 11g: Administration Workshop I Release 2

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Installation FollowMe Q server

CREATION WEB DYNAMIQUE

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Le langage SQL (première partie) c Olivier Caron

Département Informatique de l Institut Universitaire de Technologie de l Université Bordeaux 1 Bases de Données Oracle : administration (cours)

Modélisation et Gestion des bases de données avec mysql workbench

Département Génie Informatique

Raccordement desmachines Windows 7 à SCRIBE

Administration des bases de données relationnelles Part I

Notes de cours : bases de données distribuées et repliquées

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Bases de données relationnelles

Démarrer et quitter... 13

Tutorial sur SQL Server 2000

Configurer la supervision pour une base MS SQL Server Viadéis Services

Procédure d installation :

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

1. Présentation du TP

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Installation du client

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Création et Gestion des tables

FILE MANAGEMENT. TABLESPACES TEMPORAIRES Temporaire par défaut autre que system

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Transcription:

Table des matières Page 1 Table des matières Département Génie Informatique LO51 : Administration des bases de données Oracle 10G 1. Virtualisation... 2 2. Architecture technique... 6 3. Installation Oracle client... 9 4. Installation du serveur... 11 5. Création base... 13 6. Instance... 17 7. Structure physique... 24 8. Structure logique... 29 9. Sécurité... 34 10. Tables et Contraintes... 39 11. Index, Séquences, Synonymes... 45 12. Transactions & Verrous... 47 13. Sauvegarde logique par Export... 55 14. Restauration logique par Import... 57 15. Sauvegarde logique par Datapump... 62 16. Restauration logique par Datapump... 65 17. Sauvegarde physique... 72 18. Restauration physique... 82 19. Requêtes pour le DBA... 92 Ateliers Rédacteur : Christian FISCHER 31 Mai 2008

Virtualisation Page 2 Virtualisation Page 3 1. VIRTUALISATION Schéma de principe des machines virtuelles Le numéro de machine virtuelle est déterminée par votre groupe de TP Groupe de mardi de 8h à 10h : Client Groupe 1 Groupe de vendredi de 8h à 10h : Client Groupe 2 Groupe de samedi de 8h à 10h : Client Groupe 3 Groupe de samedi de 10h à 12h : Client Groupe 4 Groupe de jeudi de 8h à 10h : Client Groupe 5 Groupe de jeudi de 10h à 11h : Client Groupe 6 Exemple du contenu du répertoire de la machine virtuelle du groupe 1 Le démarrage de la machine virtuelle s effectue à partir du programme Microsoft Virtual PC. Les machines virtuelles sont stockées dans le répertoire :

Virtualisation Page 4 Virtualisation Page 5 Ecran d accueil Pour ouvrir une session cliquer sur AltGr + Suppr Utiliser le compte LO51 et mot de passe LO51 (en majuscule) Pour démarrer la machine virtuellle Serveur Oracle, cliquer sur Démarrer. Le serveur Oracle est installé sur un système d exploitation Windows 2003 Server. Pour démarrer votre machine virtuelle, cliquer sur le fichier de paramètres Windows XP (fichier de 13ko). Cette seconde machine fonctionne sous Windows XP Pro.

Installation Oracle Client et Oracle Net Page 6 Installation Oracle Client et Oracle Net Page 7 2. ARCHITECTURE TECHNIQUE A Démarrage des machines virtuelles 1. Démarrage du serveur-oracle 1.1. Vérification de la configuration réseau à l aide d une fenêtre de commande Identification du nom de la machine : hostname Identification de l adresse IP de la machine : ipconfig ou ipconfig /all Test de l adresse IP de la machine : ping nomserveur et ping adresse_ip B Vérification du démarrage de l instance sur le serveur Oracle 1. Création d un raccourci de SQL*PLUS pour Windows Si le raccourci n existe pas sur le bureau 1.1. A l aide de l explorateur Windows, accéder au répertoire c:\oracle\product\10.2.0\serveur\bin. Sélectionner le fichier sqlplusw.exe, puis envoyer un raccourci sur le bureau Ajouter l option /nolog sur le raccourci. 1.2. Vérification des produits Oracle Installés Parcours des répertoires Consultation des groupes de programmes installés Consultation des services 2. Démarrage du serveur client de votre groupe 1.1. Vérification de la configuration réseau Identification du nom de la machine : Identification de l adresse IP de la machine : Test de l adresse IP de la machine : 1.2. Vérification des produits Oracle Installés (aucun logiciel Oracle disponible à ce stade) 3. Test de la connectivité réseau entre les deux machines Ce test doit être réalisé avec l adresse IP et le nom de la machine Ping du serveur-oracle vers le client 1.2. Vérification de la configuration du groupe Windows ORA_DBA et de l appartenance de l utilisateur LO51 a ce groupe Accéder au panneau de configuration, puis Gestion de l ordinateur. Consulter le dossier «Utilisateurs et Groupes locaux», puis ouvrir le dossier Groupes et vérifier la présence du groupe ORA_DBA. Ping du client vers le serveur-oracle 2. Démarrage manuel de l instance Démarrage de SQL*PLUS en mode nolog à l aide du raccourci 2.1. Si le groupe ORA_DBA existe et comporte l utilisateur LO51 SQL> startup 2.2. Si le groupe ORA_DBA n existe pas SQL> connect sys/manager as sysdba SQL> startup

Installation Oracle Client et Oracle Net Page 8 Installation Oracle Client et Oracle Net Page 9 3. Test de connexion sur le serveur-oracle A l aide du raccourci de SQL*Plus 1. Connexion en mode IPC à la base de données avec SQL*Plus : nom utilisateur SYSTEM, mode de passe MANAGER (pas de service réseau) SQL> connect system/manager 2. Connexion en mode réseau : nom utilisateur SYSTEM, mode de passe MANAGER et service réseau PROD SQL> connect system/manager@prod Le caractère @ est obtenu par : CTRL + ALT + @ en cas de problème lors de la seconde connexion 4. Vérification du fonctionnement du Listener Sur le serveur Oracle, dans une fenêtre de commande, exécuter les commandes suivantes ; C:>LSNRCTL C:>LSNRCTL> status Noter les services de base de données associés au listener PROD doit apparaître dans la liste 3. INSTALLATION ORACLE CLIENT A Installation d Oracle 10G Client 1. Installation du client Oracle 10G à partir du partage réseau 1.1. Démarrer le programme d'installation (setup.exe) Répertoire d installation : c:\oracle\product\10.2.0\client 1.2. Choix des options de l'installation Type d'installation : personnalisée Répertoire d'installation : valeur par défaut ou personnalisée Composants à installer : SQL*PLUS, Oracle Net, Client Java et Entreprise Manager 10G Java Console Vérification des pré-requis techniques pour les produits : vérifier le statut Succès Résumé : vérifier le nombre de nouveaux produits à installer (50) Copie des logiciels sur le disque (environ 5 à 10 minutes) 2. Assistant de configuration Oracle Net Ne pas exécuter la configuration standard Méthodes de résolution de noms : Ajouter Easy Connect Création du nom de service réseau : Service de base de données : prod Protocole : TCP Nom de serveur : server-oracle (ou adresse IP) Port : 1521 Test : OUI Nom de service : prod_server-oracle Quitter le programme d'installation Oracle Client 3. Vérification de l'installation 3.1. Vérification du groupe de programme Oracle Oracle Client10G avec la présence des programmes SQL*PLUS, des assistants NET et d'oem10g 3.2. Vérification des fichiers dans le répertoire d'installation et consultation de l'arborescence OFA 3.3. Consultation des fichiers sqlnet.ora et tnsnames.ora 3.4. Création d'un raccourci de SQL*PLUS sur le bureau. Ajouter le paramètre /nolog à la suite de l'exécutable sqlplusw.exe

Installation Oracle Client et Oracle Net Page 10 B Test de la configuration réseau d'oracle 1. Test du réseau avec l'utilitaire ping. Exécuter les commandes ci-dessous dans une fenêtre de commande en remplaçant les paramètres selon votre configuration personnelle : c:>ipconfig /all c:>ping adresse_ip_posteclient c:>ping nom_posteclient c:>ping adresse_ip_posteserveur c:>ping nom_posteserveur 2. Test du nom de service réseau avec Tnsping c> tnsping prod_server-oracle c> tnsping prod c> tnsping adresse_ip_posteserveur:1521 3. Test de la connexion avec SQL*Plus SQL> connect system/manager@prod_server-oracle SQL> connect system/manager SQL> connect system/manager@ adresse_ip_posteserveur:1521 4. Enregistrement du nom de service réseau dans OEM 10G Java Console Enregistrer le nom de service réseau dans l'arborescence de la Console Connectez-vous au serveur à l'aide du compte System/manager en mode normal Parcourer l'arborescence pour prendre connaissance des paramètres du serveur. Installation et Création de la base de données Page 11 4. INSTALLATION DU SERVEUR A Installation d Oracle 10G Serveur sur le serveur virtuel Gx (Phase 1 : Installation du logiciels) 1. Installation d Oracle Database 10G à partir du cédérom ou d'un partage réseau 1.1. Démarrer le programme d'installation (setup.exe) Répertoire d installation : c:\oracle\product\10.2.0\serveur 1.2. Choix des options de l'installation Mode d installation : Avancée (ne pas utiliser l installation de base par défaut) Type d'installation : Personnalisée Répertoire d'installation : valeur par défaut ou personnalisée sur disque D Composants à installer : Oracle 10G Database, Oracle 10G Database Control, les options de la version Entreprise Editions (sauf Label Securities, COM,.NET et Data Mining), Net Listener, Isql*Plus et tous les autres produits (Interfaces de programmation, Windows, ) Vérification des pré-requis techniques pour les produits : vérifier le statut Succès Création de la base de données : OUI Résumé : vérifier le nombre de nouveaux produits à installer (plus de 100 ) Copie des logiciels sur le disque

Installation et Création de la base de données Page 12 2. Configuration d Oracle Net 2.1. Utilisation de l assistant de configuration Oracle Net Serveur (si nécessaire démarrer l assistant de configuration Net). Ne pas exécuter la configuration standard Création d un processus d écoute : nommé LISTENER avec les valeurs par défaut. Méthodes de résolution de noms : Ajouter Easy Connect Création du nom de service réseau : Service de base de données : prod Protocole : TCP Nom de serveur : client (ou adresse IP) Port : 1521 Test : OUI : (Le test du service réseau échouera car la base de données n a pas encore été créée). Nom de service : prod_gx (x = votre numéro de groupe) Quitter l assistant de configuration Oracle Net. Installation et Création de la base de données Page 13 5. CREATION BASE A Installation d Oracle 10G Serveur sur le serveur virtuel Gx (Phase 2 : Création de la base de données) 1. Assistant de configuration de la base de données Modèle de base de données : Base de données personnalisée Nom de la base de données et de l instance : PROD Configuration avec OEM : oui + options par défaut pour la notification Mot de passe : Manager pour tous les comptes Système de stockage : système de fichiers Emplacement des fichiers : sélectionner la seconde option «Utiliser un emplacement commun pour tous les fichiers» avec le répertoire c:\oracle\oradata Consulter la définition des variables d emplacement : clic sur le bouton Options de récupération : valeur par défaut Composants de bases de données : sélectionner uniquement Oracle OLAP Composants de base de données standard : JVM et XMLDB Scripts personnalisés : aucun Paramètres d initialisation : consulter les différents onglets et conservés les valeurs proposées Stockage de base de données : modifier la taille des fichiers de journalisation à 10Mo. Consulter et conserver les autres valeurs par défaut Options de création : Créer la base de données et Générer les fichiers de scripts Confirmation : vérifier la liste des options sélectionnées Pendant les différentes phases de création de la base de données, vous pouvez consulter le répertoire de stockage des données et vérifier la création des fichiers.

Installation et Création de la base de données Page 14 Installation et Création de la base de données Page 15 2. Test d Oracle Net Utilisation de l utilitaire lsnrctl (dans une fenêtre de commande) Afficher le statut du processus listener créé, puis arrêter et redémarrer le listener. Vérifier l enregistrement dynamique de l instance. 3. Vérification de l'installation 3.1. Vérification du groupe de programme Oracle avec la présence des programmes installés 3.2. Vérification des fichiers dans le répertoire d'installation et consultation de l'arborescence Oracle Flexible Architecture 3.3. Consultation des fichiers listener.ora, sqlnet.ora et tnsnames.ora B Pour la base PROD afficher les informations suivantes en utilisant la commande SHOW PARAMETER dans SQL*Plus: 1. Démarrer SQL*Plus en mode /nolog (création d un raccourci sur le bureau de l exécutable SQLPLUSW.EXE et l ajout du paramètre /nolog) 2. Connectez-vous en SYSDBA Ou SQL> connect /@prod_gx as sysdba (x = votre numéro de groupe) 3. A l aide la commande SHOW PARAMETER vérifier la valeur des paramètres suivants : DB_NAME USER_DUMP_DEST BACKGROUND_DUMP_DEST CONTROL_FILES DB_BLOCK_SIZE SGA SGA_MAX_SIZE SGA_TARGET C Interrogation du dictionnaire de données 1. En utilisant la vue V$NLS_PARAMETERS afficher le jeu de caractères utilisé lors de la création de la base de données. SQL> 2. A l aide d une requête SQL interrogeant la vue du dictionnaire V$SGA afficher les informations relatives à la SGA. SQL>

Installation et Création de la base de données Page 16 D Création des scripts d une seconde base de données nommée TEST avec l Assistant Configuration de base de données (dbca) 1. Utiliser les spécifications suivantes pour générer les scripts de création de la base TEST à partir de l assistant de base de données. Pour les informations non personnalisées utilisez les valeurs par défaut ou optez pour les mêmes choix que pour la première base de données. Nom de la base de données : TEST Nom de l'instance : TEST Nom du fichier d'initialisation : inittest.ora (valeur par défaut) Répertoire de localisation de tous les fichiers : c:\oracle\oradata Nom des fichiers de contrôle : ctrl1test.ctrl et ctlr2test.ctl Nom du fichier de données : syst1test.dbf (taille de 250 Mo) Nom des fichiers redo log : rdo1test.log, rdo2test.log (taille de 10 Mo) Jeu de caractères : WE8ISO8859P1 Pour les tablespaces les tailles seront les suivantes : SYSAUX : 200Mo, UNDOTBS1 : 256Mo, TEMP : 100 Mo, USERS = 50Mo Les noms de fichiers et les options de stockage seront les valeurs par défaut. Gestion de l instance Page 17 6. INSTANCE A Arrêt et démarrage d une instance 1. Connecter vous sur une instance inactive avec le privilège SYSDBA SQL> shutdown immediate ; Démarrer l instance et monter la base de données SQL> startup mount ; 2. Interrogation des vues accessibles sur une base de données montée et non ouverte 2.1. Quel contenu obtenez-vous en consultant V$SGA? Quelle est la mémoire utilisée par votre serveur? 2.2. Quel contenu obtenez-vous en consultant V$PARAMETER? Existe-t-il une autre méthode pour afficher ces paramètres? 2. Visualiser les scripts générés. 2.3. Pouvez-vous consulter les vues DBA_TABLES et DBA_USERS? Justifier votre réponse. 3. Ne pas exécuter les scripts de création de la base données TEST. 3. Ouvrir la base de données SQL>alter database open ; Consulter les vues DBA_TABLES et DBA_USERS SQL> select user_id, username from dba_users ; SQL> select table_name from dba_tables where owner = SCOTT ; SQL> select table_name from dba_tables where owner = HR ; 4. Création de l application gestion des employés dans le schéma SCOTT. A partir de SQL*Plus, exécuter le script suivant : SQL> @C:\oracle\product\10.2.0\serveur\RDBMS\ADMIN\scott.sql SQL> show user Vérifier : SCOTT SQL> select * from tab; Liste des tables : EMP, DEPT, BONUS et SALGRADE

Gestion de l instance Page 18 Gestion de l instance Page 19 B Création et utilisation d un fichier d initialisation au format texte (pfile) 1. Création du fichier d initialisation en mode texte (pfile) SQL> create pfile= C:\ORACLE\admin\prod\pfile\initprod.ora from spfile; Vérifier la présence du fichier dans le répertoire : C:\ORACLE\admin\prod\pfile Exemple de contenu : 4. En modifiant la taille du bloc de données dans le fichier d initialisation, essayer de démarrer votre serveur. db_block_size = 2048 SQL> shutdown immediate ; SQL>startup pfile= C:\ORACLE\admin\prod\pfile\initprod.ora Est-ce possible? Annuler cette dernière modification. Ouvrir les deux fichiers avec le bloc notes. Vérifier la mise en forme du fichier. Fichier Texte : 2. A l aide du bloc notes, modifier le contenu du fichier pfile mise en forme avec le bloc notes en modifiant ou ajoutant les paramètres suivants : processes = 100 shared_pool_size = 80000000 db_cache_size = 30000000 log_buffer = 600000 log_checkpoint_interval = 10000 db_files = 50 Renommer le fichier initprod.ora en initprod_serveur.ora Renommer le fichier modifié en initprod.ora 3. Arrêter, puis redémarrer votre serveur en utilisant ce nouveau fichier initialisation Connectez-vous sur une instance inactive avec le privilège SYSDBA SQL>connect / as sysdba SQL> shutdown immediate ; Démarrer l instance et ouvrir la base de données SQL>startup pfile= C:\ORACLE\admin\prod\pfile\initprod.ora 4. En modifiant le nom de la base de données dans le fichier d initialisation, essayer de démarrer votre serveur : Dbname=prod8i SQL> shutdown immediate ; SQL>startup pfile= C:\ORACLE\admin\prod\pfile\initprod.ora Est-ce possible? Annuler cette dernière modification.

Gestion de l instance Page 20 Gestion de l instance Page 21 C Démarrage de l instance et ouverture de la base en mode restreint (restrict) 1. A partir de SQL*Plus /nolog, connectez-vous en administrateur de la base de données, puis exécutez les instructions suivantes. SQL> shutdown immediate; SQL> startup restrict ; 2. Ouvrir une seconde session en démarrant SQL*Plus en mode nolog. Essayez-de vous connecter avec le compte SCOTT. Quel message s affiche? Essayez-de vous connecter avec le compte SYSTEM. SQL> connect system/manager Que constatez-vous? 3. Modification du mode d accès restreint vers le mode standard. Dans la première session exécutez les instructions suivantes : SQL> alter system disable restricted session ; 4. Basculez dans la seconde session SQL*Plus et tester la connexion avec le compte SCOTT Que constatez-vous? 5. Basculez dans la première session SQL*Plus et réactiver le mode restreint. SQL> alter system enable restricted session ; 6. Dans la session de SCOTT, interroger les tables EMP et DEPT. SQL> select * from dept ; SQL> select * from emp ; Ces instructions fonctionnent-elles? Tentez une nouvelle connexion? Que constatez-vous? D Modification des paramètres dynamiques 1. A partir de SQL*Plus /nolog, connectez-vous en administrateur de la base de données, puis exécutez les instructions suivantes. SQL> shutdown immediate; SQL> startup; 2. Consultation de valeur actuelle des paramètres National Language Support SQL> show parameter nls_date NAME TYPE VALUE ------------------------------------ ----------- ---------- nls_date_format string nls_date_language string SQL> select sysdate from dual ; SYSDATE -------- 05/10/05 3. Modification de la valeur courante pour la durée de la session. SQL> alter session set nls_date_format = DD Month YYYY ; SQL> select sysdate from dual ; SYSDATE ----------------- 05 Octobre 2005 4. Modification de la valeur courante pour l instance. SQL> alter system set nls_date_format = DD DAY Month YYYY ; Que constatez-vous? Tester la commande suivante : SQ> alter system set nls_date_format = 'DD DAY Month YYYY' scope = spfile; Testez les instructions suivantes : SQL> show parameter sort_area_size NAME TYPE VALUE ------------------------------------ ----------- ----------- sort_area_size integer 65536 SQL> alter system set sort_area_size = 100000 deferred ; Vérifier la prise en compte du nouveau paramètre dans la session courante, dans une nouvelle session. Résultat dans la nouvelle session : SQL> show parameter sort_area_size NAME TYPE VALUE ------------------------------- ----------- ----------- sort_area_size integer 100000

Gestion de l instance Page 22 Gestion de l instance Page 23 5. Création d une trace utilisateur Définition des droits de modification des paramètres de session SQL> grant alter session to scott; Autorisation de privilèges (GRANT) acceptée. Activation de la trace SQL> alter session set sql_trace = true ; SQL> select * from dept; SQL> select * from emp; Desactivation de la trace SQL> alter session set sql_trace = false ; Consultation du fichier de trace généré (extrait) ===================== PARSING IN CURSOR #1 len=17 dep=0 uid=54 oct=3 lid=54 tim=3255451488 hv=1745700775 ad='208e7b4c' select * from emp END OF STMT PARSE #1:c=93750,e=175870,p=6,cr=503,cu=0,mis=1,r=0,dep=0,og=1,tim=3255451483 EXEC #1:c=0,e=25,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=3255451607 FETCH #1:c=0,e=13610,p=6,cr=7,cu=0,mis=0,r=1,dep=0,og=1,tim=3255465287 FETCH #1:c=0,e=53,p=0,cr=1,cu=0,mis=0,r=13,dep=0,og=1,tim=3255466168 STAT #1 id=1 cnt=14 pid=0 pos=1 obj=51151 op='table ACCESS FULL EMP (cr=8 pr=6 pw=0 time=13594 us)' E Démarrage de l instance et ouverture de la base en lecture seule (read only) 1. A partir de SQL*Plus /nolog, connectez-vous en administrateur de la base de données, puis exécutez les instructions suivantes. SQL> shutdown immediate; SQL> startup open read only ; 2. Vérification du mode d ouverture SQL> select OPEN_MODE from v$database ; Résultat : 3. Connexion avec SCOTT et test de mise à jour des données? Ouvrir une seconde session en démarrant SQL*Plus en mode nolog. SQL> update dept set dname = Dept INFO ; Que constatez-vous? F Automatisation de la procédure de démarrage et d arrêt de l instance et de l ouverture de la base de données PROD Créer un répertoire scripts sur votre disque C ou D (selon la configuration de votre serveur), pour stocker les fichiers de commande. A partir des scripts d exemple de votre cours : 1. Ecrire une procédure à partir d un fichier de commande, prod_start.cmd qui effectue démarrage de votre instance et ouvre la base de données. 2. Ecrire une procédure à partir d un fichier de commande, prod_stop.cmd qui effectue une fermeture de la base de données et un arrêt de l instance. 3. Ecrire une procédure à partir d un fichier de commande, prod_restart.cmd qui arrête l instance, la rédémarre et ouvre la base de données. Cette dernière procédure devra utiliser l utilitaire ORADIM pour accéder aux services. Tester vos procédures

Gestion de la structure physique et logique Page 24 Gestion de la structure physique et logique Page 25 7. STRUCTURE PHYSIQUE B Gestion des fichiers de données A Identifier la structure physique de la base de données Rédiger les instructions Sql associées aux requêtes suivantes. Si nécessaire afficher la structure des vues du dictionnaire avec la commande DESC nomvue. Connectez-vous en administrateur pour tester les requêtes. 1. Liste des fichiers physiques de données permanents DBA_DATA_FILES (numéro et nom du fichier, nom du tablespace et taille du fichier en octets) composant votre base de données. Cette liste sera ordonnée par tablespace et par taille. SQL> 2. Liste des fichiers de contrôle V$CONTROLFILE et des fichiers de journalisation V$LOGFILE de votre base de données. Cette liste comportera le nom du fichier et le type du fichier (contrôle ou reprise). SQL> 3. Ecrire une requête, permettant d afficher les noms de tous les fichiers physiques d une base de données. Interroger les vues dba_data_files, dba_temp_files, v$logfile et v$controlfile. SQL> 1. Afficher la liste des fichiers données de la base de données en cours d utilisation Identifier le nombre et la localisation des fichiers existants. SQL> col name format A50 SQL> select name, status, bytes from v$datafile ; Identifier le nombre de membre par groupe et la taille en octets SQL> select group#, members, bytes from v$log ; 2. Ajout d un fichier de données au tablespace USERS 2.1. Afficher le nombre maximal de fichiers base de données gérés par l instance (de paramètre influe sur la mémoire) SQL> show parameter db_files NAME TYPE VALUE ------------------------------------ ----------- ----- db_files integer 200 2.2 Ajout d un fichier de données SQL> alter tablespace USERS add datafile 'C:\ORACLE\ORADATA\PROD\USERS02.DBF' size 10M autoextend on next 10M maxsize 100M; Vérifier la présence du fichier et son tablespace de rattachement SQL> col file_name format A50 SQL> select file_name,tablespace_name,status from dba_data_files; 3. Suppression d un fichier de données vide SQL> alter tablespace USERS drop datafile 'C:\ORACLE\ORADATA\PROD\USERS02.DBF'; Vérifier la suppression du fichier dans la structure et sur le disque. 4. Modification de la taille d un fichier de données temporaire SQL> select name, status, bytes from v$tempfile ; Augmentation de 220 Mo à 300Mo SQL> ALTER DATABASE TEMPFILE 'C:\ORACLE\ ORADATA\PROD\TEMP01.DBF' RESIZE 300M; Vérifier la nouvelle taille. Diminution à 250Mo SQL> ALTER DATABASE TEMPFILE C:\ORACLE\ ORADATA\PROD\TEMP01.DBF' RESIZE 250M;

Gestion de la structure physique et logique Page 26 Gestion de la structure physique et logique Page 27 C Multiplexage des fichiers de journalisation D Gestion des fichiers de contrôles 1. Afficher la liste des fichiers de journalisation de la base de données en cours d utilisation Identifier le nombre et la localisation des fichiers existants. SQL> col member format A50 SQL> select group#, status, member from v$logfile ; Identifier le nombre de membre par groupe et la taille en octets SQL> select group#, members, bytes from v$log ; 2. Ajout d un second membre dans chaque groupe de fichiers. SQL> ALTER DATABASE ADD LOGFILE MEMBER C:\ORACLE\ORADATA\PROD\REDO13.LOG' TO GROUP 3, C:\ORACLE\ORADATA\PROD\REDO12.LOG' TO GROUP 2, C:\ORACLE\ORADATA\PROD\REDO11.LOG' TO GROUP 1 ; Identifier le nombre et la localisation des nouveaux fichiers existants. SQL> select group#, status, member from v$logfile ; GROUP# STATUS MEMBER ---------- ------- -------------------------------------------------- 3 C:\ORACLE\ORADATA\PROD\REDO03.LOG 2 STALE C:\ORACLE\ORADATA\PROD\REDO02.LOG 1 STALE C:\ORACLE\ORADATA\PROD\REDO01.LOG 3 INVALID C:\ORACLE\ORADATA\PROD\REDO13.LOG 2 INVALID C:\ORACLE\ORADATA\PROD\REDO12.LOG 1 INVALID C:\ORACLE\ORADATA\PROD\REDO11.LOG 6 ligne(s) sélectionnée(s). 3. Réinitialisation des fichiers membres par un changement de fichier de journalisation. SQL> alter system switch logfile ; Vérifier la mise à jour du numéro de séquence SQL> select group#, sequence# from v$log; Vérifier le statut des fichiers de journalisation SQL> select group#, status, member from v$logfile ; Réitirer la séquence d instruction pour chaque groupe. SQL> alter system switch logfile ; SQL> select group#, status, member from v$logfile ; Plus aucun fichier ne doit rester en statut invalide. 1. Afficher la liste des fichiers de contrôle de la base de données en cours d utilisation SQL> select NAME from v$controlfile ; Identifier le nombre et la localisation des fichiers de contrôle existants. 2. Ajout d un quatrième fichier de contrôle 2.1. Création d un fichier d initialisation en mode texte SQL> create pfile= C:\ORACLE\admin\prod\pfile\initprod.ora from spfile; Vérifier la présence du fichier dans le répertoire : C:\ORACLE\admin\prod\pfile 2.2. Arrêt de la base de données SQL> shutdown immediate 2.3. Modification du paramètre control_files dans le fichier d initialisation créé. *.control_files= C:\ORACLEoradata\prod\control01.ctl', C:\ORACLE\ oradata\prod\control02.ctl', C:\ORACLE\ oradata\prod\control03.ctl', C:\ORACLE\oradata\prod\control04.ctl' 2.4. Copier le fichier control01.ctl dans le répertoire des fichiers de contrôle et renommer le fichier control04.ctl 3. Test de l ajout SQL> startup pfile= C:\ORACLE\admin\prod\pfile\initprod.ora SQL> select NAME from v$controlfile ; Vérifier la présence du fichier ajouté dans la liste C:\ORACLE\ORADATA\PROD\CONTROL04.CTL 4. Récréation du fichier spfile si le fichier de paramètres en mode texte est valide. SQL> create spfile from pfile= C:\ORACLE\admin\prod\pfile\initprod.ora ;

Gestion de la structure physique et logique Page 28 Gestion de la structure physique et logique Page 29 E Vérification de la structure physique avec DBVERIFY 8. STRUCTURE LOGIQUE 1. Arrêter la base de données SQL> shutdown immediate ; 2. DBVerify d un fichier de données 2.1. Ouvrir une fenêtre de commandes (ou fenêtre MS/DOS) Positionner la variable NLS_LANG pour l affichage des accents. C:\set nls_lang=french_france.we8pc850 2.2. Démarrer l utilitaire dbv avec les paramètres suivants (compléter le chemin du fichier ) : dbv file= C:\ORACLE\...\users01.dbf Vérifier l existence de blocs corrompus 2.3 Tester l utilisation du paramètre feedback=100 dbv file= C:\ORACLE\...\users01.dbf feedback=100 3. DBVerify sur un segment de données : SCOTT.DEPT Si nécessaire, utiliser SQL*Plus pour exécuter le contenu du script scott.sql pour créer le compte et les tables associées. 3.1. Ouvrir la base de données SQL> startup ; 3.2. Identifier le numéro du segment SCOTT.DEPT SQL> grant select on sys_user_segs to scott; SQL> select tablespace_id, header_file, header_block from SYS.SYS_USER_SEGS where segment_name='dept'; Noter le numéro de segment : ts.fichier.bloc = 3.3. Utilisation de DBVerify dans une fenêtre de commande : (remplacer dans la commande suivante : x.y.z par le numéro du segment). C:\>dbv userid=scott/tiger segment_id=x.y.z Vérifier l existence de blocs corrompus A Identifier la structure logique de la base de données Rédiger les instructions Sql associées aux requêtes suivantes. Si nécessaire afficher la structure des vues du dictionnaire avec la commande DESC nomvue. Connectez-vous en administrateur pour tester les requêtes. 1. Liste des tablespace DBA_TABLESPACES de votre base de données (tablespace_name, contents et status) SQL> 2. En utilisant la vue DBA_FREE_SPACE, afficher la place totale libre dans chaque tablespace (nom du tablespace et place totale libre exprimée en octets). SQL> 3. Affichage du lien entre la structure physique et la structure logique à l aide de la vue DBA_DATA_FILES (nom du fichier et nom du tablespace) SQL>

Gestion de la structure physique et logique Page 30 Gestion de la structure physique et logique Page 31 B Modification du statut des tablespaces 1. Désactivation des tablespaces permanents en mode normal SQL> select tablespace_name, status from dba_tablespaces where contents= PERMANENT ; SQL> alter tablespace USERS offline normal ; Vérification de la désactivation SQL> select tablespace_name, status from dba_tablespaces where contents= PERMANENT ; TABLESPACE_NAME STATUS --------------- --------- SYSTEM ONLINE SYSAUX ONLINE USERS OFFLINE EXAMPLE ONLINE 2. Mise en service d un tablespace désactivé SQL> alter tablespace USERS online ; Vérification de la mise en service SQL> select tablespace_name, status from dba_tablespaces where contents= PERMANENT ; 3. Désactivation des tablespaces «systèmes» Tester les instructions suivantes : SQL> alter tablespace SYSTEM offline normal ; SQL> alter tablespace SYSAUX offline normal ; SQL> alter tablespace TEMP offline normal ; Réactiver les tablespaces que vous venez de mettre hors service SQL> SQL> Vérifier la mise en service de tous les tablespaces permanents SQL> select tablespace_name, status from dba_tablespaces where contents= PERMANENT ; 4. Renommer le tablespace USERS SQL> alter tablespace USERS rename to TS_UTI ; Définissez ce nouveau tablespace comme tablespace par défaut SQL> alter database default tablespace TS_UTI ; Annuler le renommage SQL> alter tablespace TS_UTI rename to USERS; C Création et modification de tablespaces Sur votre base de données vous devez créer les tablespaces suivants 1. Rédiger les instructions SQL de création des tablespaces. Tous ces tablespaces sont autoexensibles et le mode de gestion des extensions sera local avec une gestion automatique des segments. La taille maximale de chaque fichier sera limitée à 100M. nom tablespace nom du fichier localisation taille Extension AIR_DATA Air_d1.dbf oradata/prod 10Mo 1M AIR_IND Air_i1.dbf oradata/prod 5Mo 500K SQL> SQL>

Gestion de la structure physique et logique Page 32 Gestion de la structure physique et logique Page 33 2. Créer les tablespaces avec une interface graphique A partir de la console OEM Console du client, connectez-vous à votre serveur (PROD) avec le compte SYSTEM, puis accédér au dossier Stockage. Si nécessaire ajouter votre base de données dans l arboresecence et créer le service réseau Oracle Net pour accéder à votre serveur. Exemple de connexion sur le serveur PROD203 ou à partir de OEM Database Control du serveur Récupérer les instructions SQL générées (Afficher le code SQL puis copier coller dans le bloc notes) nom tablespace nom du fichier localisation taille GESCOM_DATA gescom_d1.dbf oradata/prod 10Mo GESCOM_IND gescom_d2.dbf oradata/prod 5Mo 3. Rédiger l instruction SQL permettant d ajouter un second fichier au tablespace AIR_DATA : nom du fichier air_d2.dbf, taille de 5M, extension de 500K. SQL> D Contenu du tablespace SYSAUX 1. Affichage du contenu de SYSAUX SQL> col occupant_name format a50 SQL> select occupant_name, space_usage_kbytes from v$sysaux_occupants ; Résultat partiel OCCUPANT_NAME SPACE_USAGE_KBYTES -------------------------------------------------- ------------------ LOGMNR 6080 LOGSTDBY 896 STREAMS 512 XDB 49664 AO 21248 XSOQHIST 21248 XSAMD 15936 2. Déterminer comment migrer des objets de SYSAUX vers un autre tablespace. SQL> col occupant_name format a25 SQL> col move_procedure format a35 SQL> select occupant_name, move_procedure from v$sysaux_occupants; Résultat partiel OCCUPANT_NAME MOVE_PROCEDURE ------------------------- -------------------------------- LOGMNR SYS.DBMS_LOGMNR_D.SET_TABLESPACE LOGSTDBY SYS.DBMS_LOGSTDBY.SET_TABLESPACE STREAMS XDB XDB.DBMS_XDB.MOVEXDB_TABLESPACE AO DBMS_AW.MOVE_AWMETA XSOQHIST DBMS_XSOQ.OlapiMoveProc XSAMD DBMS_AMD.Move_OLAP_Catalog SM/AWR Par défaut toutes les tables du Logminer sont créées dans le tablespace SYSAUX. La procédure SET_TABLESPACE permet de déplacer les objets vers un autre tablespace. 3. Déplacement des objets de LOGMNR vers le tablespace USERS SQL> execute dbms_logmnr_d.set_tablespace( USERS ) ; Vérification de la place occupée en exécutant la requête SQL> select occupant_name, space_usage_kbytes from v$sysaux_occupants ; Résultat partiel OCCUPANT_NAME SPACE_USAGE_KBYTES ------------------------- ------------------ LOGMNR 0.

Gestion des Utilisateurs Page 34 Gestion des Utilisateurs Page 35 9. SECURITE A La gestion des comptes utilisateurs 1. Créer les utilisateurs en respectant les informations suivantes : nom utilisateur tablespace par défaut tablespace temporaire ADMIN SYSAUX TEMP DEVEL USERS TEMP UTIL USERS TEMP AIR AIR_DATA TEMP GESCOM GESCOM_DATA TEMP Le mot de passe est identique au nom d'utilisateur. 2. Fournir la requête Sql permettant de vérifier que les utilisateurs ont bien été créés avec leur assignation aux bons tablespaces (vue DBA_USERS). SQL> 3. A partir de SQL ou de Sécurité Manager, modifier les quotas des utilisateurs créés précédemment en utilisant les informations suivantes (pour tous les autres tablespaces conservez la valeur par défaut affichée dans Sécurité Manager): nom utilisateur quotas à assigner sur le tablespace ADMIN illimité SYSAUX 5M USERS DEVEL 2M USERS aucun SYSTEM UTIL illimité UNDOTBS1 et TEMP AIR illimité AIR_DATA et AIR_IND GESCOM illimité GESCOM_DATA et GESCOM_IND 4. Fournir la requête Sql permettant de vérifier que les utilisateurs ont bien été modifiés avec les bons quotas (DBA_TS_QUOTAS) SQL> 5. La connexion sous les comptes que vous avez créés est-elle possible? Justifiez votre réponse. B Attribution de privilèges systèmes et objets Sur la base de données PROD, vous devez définir les privilèges pour les utilisateurs créés précédemment. Pour chaque question ci-dessous, vous fournirez les instructions Sql relatives aux opérations demandées et vous indiquerez à partir de quel compte vous devez exécuter ces instructions Sql. 1. Donner la possibilité aux utilisateurs ADMIN, DEVEL, UTIL, AIR de se connecter à la base. SQL> connect system/manager SQL> Grant connect to ADMIN, DEVEL, UTIL, AIR ; 2. Donner la possibilité aux utilisateurs DEVEL, AIR de créer des tables, des vues, des synonymes. SQL> connect system/manager SQL> Grant resource to DEVEL, AIR ; 3. Dans le compte AIR, exécuter le script SQL permettant de créer les tables PILOTE, AVION et VOL et leurs index associés. SQL> connect air/air Le script crebase_air.sql correspond au modèle relationnel de l atelier Création de tables (rédiger ce script pour réaliser cet atelier) SQL> @d:\script\crebase_air.sql 4. Dans quels tablespaces ont été créées les tables? SQL> select table_name, tablespace_name from user_tables ; Dans quels tablespaces ont été créés les index? SQL> select index_name, tablespace_name from user_indexes ; 5. Donner à l'utilisateur UTIL la possibilité de consulter les tables PILOTE et AVION. SQL> connect air/air SQL> grant select on pilote to util ; SQL> grant select on avion to util ; 6. Donner à l'utilisateur UTIL la possibilité de supprimer et d'insérer des enregistrements de la table AVION. SQL> connect air/air SQL> grant delete, insert on avion to util ; 7. Donner à l'utilisateur UTIL la possibilité de mettre à jour uniquement l'adresse (colonne ADRESSE) de la table PILOTE. SQL> connect air/air SQL> grant update (adresse) on pilote to util ;

Gestion des Utilisateurs Page 36 Gestion des Utilisateurs Page 37 8. Vérifier l attribution des privilèges. SQL> connect util/util SQL> select * from all_objects where owner = AIR ; SQL> select * from air.pilote ; SQL> select * from air.avion; SQL> select * from air.vol; SQL> insert into air.avion values(23, Airbus A340, 360, Mulhouse,sysdate); SQL> delete from air.avion where numavion=23; SQL> update air.pilote set adresse= Belfort where numpilote=1; SQL> update air.pilote set nompilote= Dupont where numpilote=1; Pour chaque instruction SQL ci-dessus, justifier son exécution ou interdiction. 9. Vérifier, à partir des vues du dictionnaire, la liste des privilèges de l'utilisateur UTIL (vues USER_TAB_PRIVS et USER_COL_PRIVS). Visualiser ces privilèges dans Sécurité Manager ou OEM Database Control C AUDIT 1. Activation de l audit 1.1 Création d un nouveau fichier d initialisation texte nommé init_audit.ora par copie d un fichier existant 1.2. Ajouter le paramètre : audit_trail=true 1.3. Arrêt de l instance SQL> shutdown immediate 1.4. Redémarrage de l instance avec le fichier créé SQL> startup pfile =d:\ \pfile\init_audit.ora 2. Mise en place de l audit de connexion/déconnexion SQL> Audit session whenever successful ; SQL> Audit session whenever not successful ; 3. Tests de connexion et déconnexion dans une nouvelle session SQL*Plus 2 4. Consultation des vues d Audit. SQL> col username format a15 SQL> col userhost format a20 SQL> col dateconnexion format a20 SQL> col action_name format A20 SQL> select username,userhost,to_char(timestamp,'yymmdd HH24:MI:SS') dateconnexion,action_name from dba_audit_trail order by dateconnexion ; 5. Mise en place de l audit sur les objets du compte SCOTT SQL> Audit insert, update, delete on scott.dept by access ; SQL> Audit select on scott.dept by session ; 6. Tests d accès après l'ouverture d une nouvelle session SQL*Plus SQL> update dept set dname= Test SQL> select * from dept; SQL> rollback ;

Gestion des Utilisateurs Page 38 Gestion des Tables & Contraintes Page 39 7. Consultation des vues d Audit. SQL> col obj_name format A15 SQL> set linesize 100 select username,userhost,to_char(timestamp,'yymmdd HH24:MI:SS') dateconnexion,obj_name,action_name from dba_audit_object order by dateconnexion ; 8. Consultation des options d'audit activées SQL> select * from dba_stmt_audit_opts ; SQL> select * from dba_obj_audit_opts; 9. Désactivation de l'audit Annuler les différents audits positionnés sur votre base de données. SQL> noaudit 10. TABLES ET CONTRAINTES A partir de la base de données de la compagnie aérienne, on vous demande de rédiger les requêtes ci-dessous, puis de les tester avec Sql*Plus. Création de tables A 1. A partir du modèle relationnel suivant, rédiger le script SQL (fichier crebase_air.sql) de création des tables (uniquement avec les constraintes null ou not null). Numpilote Nompilote Adresse DateCreation DateDerMaj CV Pilote NUMBER(4) VARCHAR2(20) VARCHAR2(50) DATE TIMESTAMP CLOB Modèle Physique de Données Modèle : Compagnie Aérienne Package : Diagramme : COMPAGNIE_AERIENNE Auteur : Fischer Date : 21/08/2003 Version : 1 not null not null null not null not null null Numavion Nomavion Capacité Localisation DateMiseService Avion NUMBER(6) VARCHAR2(20) NUMBER(3) VARCHAR2(35) DATE not null not null not null null null Arrêter et redémarrer l'instance en utilisant le fichier paramètres serveur. effectue utilise Numvol Numavion Numpilote Villedep Villearr Heuredep Heurearr Vol CHAR(6) NUMBER(6) NUMBER(4) VARCHAR2(35) VARCHAR2(35) CHAR(5) CHAR(5) not null not null not null not null not null null null Exécuter votre script. Vérifier la création de vos tables. SQL> select * from tab ; SQL> select object_name, object_type from obj ; SQL> desc pilote 2. Compléter votre script en rajoutant les instructions de suppression des tables. Compléter votre script en ajoutant les ordres de création des contraintes d'intégrité de type PRIMARY KEY. Le tablespace des index est : AIR_IND Rexécuter la totalité du script 3. Vérification de la creation des objets. SQL> select * from tab; SQL> select object_name, object_type from obj ; SQL> select index_name, index_type from ind ;

Gestion des Tables & Contraintes Page 40 Gestion des Tables & Contraintes Page 41 4. Compléter votre script en ajoutant les ordres de création des contraintes d'intégrité de type FOREIGN KEY. Exécuter le script. Vérification la création des contraintes de type Primary et Foreign Key SQL> select constraint_name, constraint_type from user_constraints where constraint_type in ('P','R') 5. Modifier votre script en ajoutant les contraintes suivantes : La ville de localisation par défaut est : 'Paris' Les capacités doivent appartenir à la liste suivante : 140, 180, 200, 250, 300, 320, 360, 380, 450, 460. Reexécuter le script 6. Vérifier la création des objets 7. Exécution du script d insertion des données : insbase.sql B Modification de tables 1. Dans la table Vol, on accepte des lignes pour lesquelles le numéro de pilote peut prendre la valeur Null. SQL> ALTER TABLE Vérifier la prise en compte de votre modification en insérant un nouveau Vol. SQL> insert into vol values ('IT0056',NULL,1,'Marseille','Milan','09:20','10:35'); 2. Ajouter la colonne DateNaissance de type Date dans la table Pilote SQL> ALTER TABLE ADD 3. Modifier la largeur de colonne Localisation : augmenter cette colonne de 10 caractères. SQL> ALTER TABLE MODIFY 4. Supprimer la colonne DateNaissance dans la table Pilote : utilisez d abord le marquage de colonne, vérifier la structure modifiée, puis supprimer définitivement la colonne. SQL> ALTER TABLE DROP COLUMN

Gestion des Tables & Contraintes Page 42 Gestion des Tables & Contraintes Page 43 C Tables temporaires et IOT 1. Créer la table temporaire VOLPIL# à l aide d une requête SQL. Cette table doit contenir le numéro de vol, le nom du pilote, la ville de départ et d arrivée des pilotes résidant à Paris. Les données sont supprimées après la validation de la transaction. 2. Créer la table temporaire VOLPIL## à l aide d une requête SQL. Cette table doit contenir le numéro de vol, la ville d arrivée et l heure d arrivée des pilotes ne résidant pas à Paris. Les données sont conservées jusqu à la fin de la session. 3. Tester le remplissage des tables temporaires à partir de deux sessions différentes. 4. Exécuter la requête SQL permettant de vérifier le type de la table. SQL> select table_name, tablespace_name, temporary from user_tables; 4. Comparaison des tables régulières et des tables organisées en index 4.1. Créer la table relationnelle «régulière» COMPETENT. Cette table comprend deux colonnes : NUMPILOTE de type NUMBER(4) et NUMTYP de type CHAR(4). La clé primaire PK_COMPETENT est composée des deux colonnes. L index sera créé dans le tablespace AIR_IND. 4.2. Créer la table organisée en index COMPETENT_IOT. Cette table comprend deux colonnes : NUMPILOTE de type NUMBER(4) et NUMTYP de type CHAR(4). La clé primaire PK_COMPETENT_IOT est composée des deux colonnes. Le tablespace de la table organisée en index sera AIR_DATA 4.3. Vérifier la création des segments à l aide des deux requêtes ci-dessous : col segment_name format A20 col tablespace_name forma A20 select segment_name, segment_type, tablespace_name from user_segments where segment_name like '%COMPETENT%'; col object_name format a20 select object_name, object_type from obj where object_name like '%COMPETENT%'; D Validation et réorganisation 1. Exécuter la commande Analyze pour vérifier la validité des blocs de toutes vos tables et index associés. SQL> ANALYZE Calculer les statistiques pour toutes vos tables. SQL> ANALYZE SQL> SQL> Consulter les informations collectées à partir de la USER_TABLES. SQL> select From user_tables ; 2. Effectuer l analyse des statistiques en utilisant le package DBMS_STATS à partir du compte SYSTEM pour les schémas AIR et SCOTT. Pour identifier les procédures à utiliser dans ce package, exécuter la commande : SQL> connect system/manager SQL>DESC DBMS_STATS Effectuer une analyse par estimation à partir de la console OEM. 3. Déplacer la table PILOTE du tablespace AIR_DATA vers le tablespace USERS. 3.1. Requête de consultation : SQL> SELECTrowid, pilote.* from pilote; 3.2. Déplacement de la table avec l'utilisation de la clause MOVE SQL> ALTER TABLE 3.3. Quelle est la conséquence sur les index de cette table?q Tester la consultation de toutes les lignes de la table PILOTE, puis afficher les informations du pilote numéro 1. SQL> SQL> Constat : 3.4. Reconstruire l index PK_PILOTE, puis consulter le pilote numéro 1 SQL> ALTER INDEX SQL> SELECT * from pilote where numpilote=1 3.5. Afficher la nouvelle valeur des ROWID SQL> SELECT rowid, pilote.* from pilote;

Gestion des Tables & Contraintes Page 44 4. Réorganiser et déplacer la table PILOTE du tablespace USERS vers AIR_DATA. Le scénario est identique à l'exercice précédent, mais le déplacement nécessite l'utilisation d'une clause de stockage pour la réorganisation. SQL> ALTER TABLE MOVE STORAGE (initial 256 K) Gestion des Tables & Contraintes Page 45 11. INDEX, SEQUENCES, SYNONYMES A partir de la base de données de la compagnie aérienne, on vous demande de rédiger les requêtes ci-dessous, puis de les tester avec Sql*Plus. A Index 1. Afficher la liste des index existants à partir de la vue USER_INDEXES ou IND (nom d index, type et uniqueness) 2. Créer deux index secondaires : le premier sur le numéro de pilote et le second sur le numéro d avion de la table vol (tous les index doivent être créés dans le tablespace AIR_IND). 3. Création d un index bitmap sur la localisation dans la table avion (fonction accessible avec l option décisionnelle). 4. Re-création d un index d arbre binaire inversé sur le numéro de pilote dans la table vol. B Séquences 1. Création d'une séquence seq_pilote, pour l'attribution du numéro de pilote. Tenez compte des données déjà présentes dans la table. Insérer un nouveau pilote en utilisant la séquence. 2. Afficher la liste des séquences (vue SEQ ou USER_SEQUENCES)

Gestion des Tables & Contraintes Page 46 C Synonymes 1. Création d'un synonyme pour AIR.Pilote par SCOTT. 1.1. Se connecter sous le compte de Scott 1.2. Créer le synonyme et tester l accès au synonyme. 1.3. Se connecter sur AIR et accorder le droit de consultation à l utilisateur SCOTT. 1.4. Se connecter sous Scott et retester l accès au synonyme. 2. Création d'un synonyme Public pour la table AIR.VOL à partir du compte SYSTEM/MANAGER. 3. Afficher la liste des synonymes (vue SYN ou USER_SYNONYMS) Sauvegarde et restauration logique Page 47 12. TRANSACTIONS & VERROUS A Gestion des exclusions mutuelles «deadlocks» 1. Ouvrir une première session en vous connectant avec Sql*Plus sous le compte SCOTT Exécutez l instruction SQL suivante : SQL> update dept set dname= DSI-DBA where deptno=40 ; 2. Ouvrir une deuxième session en vous connectant avec Sql*Plus sous le compte SCOTT Exécutez l instruction SQL suivante : SQL> update emp set ename= Fischer where empno=7900 ; 3. Ouvrir une troisième sesssion sous le compte SYSTEM, visualiser les verrous positionnés en exécutant la requête suivante : SQL> connect system/manager SQL> select * from v$lock ; 4. Dans la session 1, exécutez l instruction SQL suivante : SQL> update emp set ename= Fischer C. where empno=7900 ; 5. Dans la session 2, exécutez l instruction SQL suivante : SQL> update dept set dname= DSI-NET where deptno=40 ; 5. Que constatez-vous dans la session 1? Une erreur a été détectée : ORA-00060: Détection d'interblocage pendant l'attente d'une ressource. L erreur ORA-00060 indique qu Oracle a détecté que les deux sessions s atendent mutuellement. Il a donc annulé le dernier ordre pour éviter de créer une situation de Deadlock. 6. Dans la troisième sesssion visualiser les verrous positionnés en exécutant la requête suivante : SQL> select * from v$lock ; 7. Libérer tous vos verrous en annulant les transactions en cours dans la session 1 SQL> Rollback ;

Sauvegarde et restauration logique Page 48 Sauvegarde et restauration logique Page 49 B Concurrence d accès et verrouillage 1. Ouvrir une première session en vous connectant avec Sql*Plus sous le compte SCOTT Exécutez l instruction SQL suivante : SQL> update dept set dname= DSI-DBA where deptno=10 ; 2. Ouvrir une deuxième session en vous connectant avec Sql*Plus sous le compte SCOTT Exécutez l instruction SQL suivante : SQL> select * from dept ; Que constatez-vous? Les mises à jour ne bloquent pas les lectures et inversement. Les mises à jour non validées par la session 1 ne sont pas visibles par la session 2 (lecture cohérente) 3. Dans la seconde session, exécutez l instruction SQL suivante : SQL> update dept set dname= DSI-NET where deptno=20 ; Que constatez-vous? Le verrouillage se faisant au niveau de la ligne les deux transactions ne sont pas concurrentes. Valider la transaction en cours SQL> Commit ; 4. Dans la seconde session, exécutez l instruction SQL suivante : SQL> update dept set dname= DSI-DBA Oracle where deptno=10 ; Que constatez-vous? Les deux transactions sont concurrentes. La seconde session se met en attente 5. Dans la première session, valider la transaction en cours : SQL> Commit ; Que constatez-vous dans la seconde? Le commit ayant libéré le verrou sur la ligne, la seconde transaction pose un verrou et effectue la mise à jour. Annuler la transaction dans la seconde session : SQL> Rollback ; 6. Dans la première session exécutez l instruction SQL suivante : SQL> select * from dept where deptno=10 for update of loc; 7. Dans la seconde session, exécutez l instruction SQL suivante : SQL> update dept set dname= DSI-DBA Oracle where deptno=10 ; Que constatez-vous? Les deux transactions sont concurrentes (mise à jour de la même ligne). La seconde session se met en attente de la libération de verrou. 8. Dans les deux sessions annuler les transactions en cours : SQL> Rollback ; 9. Dans la première session exécutez l instruction SQL suivante : SQL> select * from dept where deptno=10 for update of loc; 10. Dans la seconde session, exécutez l instruction SQL suivante : SQL> lock table dept in exclusive mode nowait ; Que constatez-vous? Une ERREUR Oracle est générée : ORA-00054: Ressource occupée et acquisition avec NOWAIT (pas d'attente) spécifiée. Les deux transactions sont concurrentes (incompatibilité de verrou). La seconde session ne se met pas en attente de la libération de verrou à cause de l option NOWAIT. 11. Dans les deux sessions annuler les transactions en cours : SQL> Rollback ;