Académique Documents
Professionnel Documents
Culture Documents
Administration Workshop I
D17090FR30
Edition 3.0
Mai 2006
D42060
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Auteurs Copyright © 2005, Oracle. Tous droits réservés.
M.J. Billings Cette documentation contient des informations qui sont la propriété d'Oracle Corporation
et sont protégées par les lois relatives aux droits d'auteur et à la propriété intellectuelle.
Vous ne pouvez copier et imprimer ce document qu'à des fins d'utilisation personnelle
Révisions et lors de la participation à une formation dispensée par Oracle. Le document ne peut être
contributions techniques modifié ou altéré en aucune manière. A l'exception des cas où l'utilisation faite du
document s'inscrit dans le respect des lois relatives aux droits d'auteur, vous ne pouvez
Anthony Woodell pas utiliser, partager, télécharger, copier, imprimer, afficher, exécuter, reproduire, publier,
Barry Trute breveter, diffuser, transmettre ou distribuer ce document, en partie ou en totalité, sans
l'autorisation expresse d'Oracle.
Celia Antonio
Les informations fournies dans ce document sont susceptibles de modification sans
Christine Jeal préavis. Par ailleurs, Oracle Corporation ne garantit pas qu'elles soient exemptes
Donna Keesling d'erreurs et vous invite, le cas échéant, à lui en faire part par écrit à l'adresse suivante :
Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA.
Howard Bradley
James Spiller Restrictions applicables au gouvernement américain :
Restricted Rights Notice
Janet Stern
If this documentation is delivered to the United States Government or anyone using the
Jean-Francois Verrier documentation on behalf of the United States Government, the following notice is
Joel Goodman applicable:
John Hibbard U.S. GOVERNMENT RIGHTS
Larry Baumann The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or
disclose these training materials are restricted by the terms of the applicable Oracle
Magnus Isaksson license agreement and/or the applicable U.S. Government contract.
M.J. Bryksa
Marques
Paul Needham
Oracle, JD Edwards et PeopleSoft sont des marques déposées d'Oracle Corporation
Pierre Labrousse et/ou de ses filiales. Tout autre nom de produit ou de société peut être une marque de
Raza Siddiqui son propriétaire.
Sandra Cheevers
Stefan Lindblad
Stella Kister
Steve Friedberg
Steven Karam
Sushma Jagannath
Tammy Bednar
Rédacteurs
Navratan Singh
Nita Pavitran
Raj Kumar
Concepteur graphique
Satish Bettegowda
Steve Elwood
Editeur
Joseph Fernandez
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Table des matières
Préface
1 Introduction
Objectifs du cours 1-2
Planification recommandée 1-3
Objectifs du chapitre 1-4
Produits et services Oracle 1-5
Oracle Database 10g : "g" signifie "grid" 1-6
Architecture de base de données Oracle 1-9
Structures de base de données 1-10
Structures mémoire Oracle 1-11
Structures de processus 1-13
Gestion des instances Oracle 1-14
Processus serveur et cache de tampons de base de données 1-15
Structure de base de données physique 1-16
Tablespaces et fichiers de données 1-18
Tablespaces SYSTEM et SYSAUX 1-19
Segments, extents et blocs 1-20
Structures de base de données logiques et physiques 1-21
Exemples du cours : Le schéma HR 1-23
Architecture de la base de données : Récapitulatif des
composants structurels 1-24
Synthèse 1-25
iii
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
3 Créer une base de données Oracle
Objectifs 3-2
Planification de la base de données 3-3
Bases de données : Exemples 3-4
Assistant Database Configuration Assistant (DBCA) 3-5
Utiliser l'assistant DBCA pour créer une base de données 3-6
Gestion des mots de passé 3-12
Créer un modèle de conception de base de données 3-13
Utiliser l'assistant DBCA pour supprimer une base de données 3-14
Synthèse 3-16
Présentation de l'exercice : Utiliser l'assistant DBCA 3-17
iv
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Vues dynamiques des performances : Exemples d'utilisation 4-33
Vues dynamiques des performances : Considérations 4-34
Synthèse 4-35
Présentation de l'exercice : Gérer l'instance Oracle 4-36
5 Gérer les structures de stockage de base de données
Objectifs 5-2
Structures de stockage 5-3
Mode de stockage des données d’une table 5-4
Anatomie d'un bloc de base de données 5-5
Tablespaces et fichiers de données 5-6
Oracle Managed Files (OMF) 5-7
Gestion de l'espace dans les tablespaces 5-8
Explorer la structure de stockage 5-9
Créer un tablespace 5-10
Gestion du stockage dans les tablespaces gérés localement 5-12
Tablespaces de la base de données préconfigurée 5-14
Modifier un tablespace 5-16
Actions sur les tablespaces 5-19
Supprimer des tablespaces 5-21
Afficher les informations relatives aux tablespaces 5-22
Collecter des informations sur les tablespaces 5-23
Afficher le contenu d'un tablespace 5-24
Etendre la base de données 5-25
Automatic Storage Management : Présentation 5-26
ASM : Fonctionnalités clés et principaux avantages 5-27
ASM : Concepts 5-28
Synthèse 5-29
Présentation de l'exercice : Gérer les structures de stockage
de base de données 5-30
6 Administrer la sécurité utilisateur
Objectifs 6-2
Comptes utilisateur de base de données 6-3
Comptes prédéfinis : SYS et SYSTEM 6-5
Créer un utilisateur 6-6
Authentification des utilisateurs 6-7
Authentification de l'administrateur 6-9
Déverrouiller un compte utilisateur et redéfinir le mot de passe 6-10
Privilèges 6-11
Privilèges système 6-12
Privilèges objet 6-14
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Révoquer des privilèges système accordés avec ADMIN OPTION 6-15
Révoquer des privilèges objet accordés avec GRANT OPTION 6-16
Avantages des rôles 6-17
Affecter des privilèges à des rôles et des rôles à des utilisateurs 6-18
Rôles prédéfinis 6-19
Créer un rôle 6-20
Rôles sécurisés 6-21
Affecter des rôles aux utilisateurs 6-22
Profils et utilisateurs 6-23
Implémenter des fonctionnalités de sécurité utilisant des mots de passe 6-25
Créer un profil de mot de passe 6-27
Fonction de vérification des mots de passe fournie : VERIFY_FUNCTION 6-28
Affecter des quotas aux utilisateurs 6-29
Synthèse 6-31
Présentation de l'exercice : Administrer les utilisateurs 6-32
vi
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Qu'est-ce qu'une vue ? 7-35
Créer des vues 7-36
Séquences 7-37
Créer une séquence 7-38
Utiliser une séquence 7-40
Tables temporaires 7-41
Tables temporaires : Utilisation 7-43
Dictionnaire de données : Présentation 7-44
Vues du dictionnaire de données 7-45
Dictionnaire de données : Exemples d'utilisation 7-47
Synthèse 7-48
Présentation de l'exercice : Administrer les objets de schéma 7-49
vii
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Résoudre les conflits de verrouillage à l'aide d'instructions SQL 8-31
"Verrous mortels" 8-32
Synthèse 8-33
Présentation de l'exercice : Gérer le données et la simultanéité
d'accès aux données 8-34
9 Gérer les données d'annulation
Objectifs 9-2
Manipulation des données 9-3
Données d'annulation 9-4
Transactions et données d'annulation 9-6
Stockage des informations d'annulation 9-7
Données d'annulation et données de journalisation 9-8
Surveiller les informations d'annulation 9-9
Administrer les informations d'annulation 9-11
Configurer la période de conservation des informations d'annulation 9-12
Garantir la période de conservation des informations d'annulation 9-14
Dimensionner le tablespace d'annulation 9-15
Utiliser Undo Advisor 9-16
Synthèse 9-17
Présentation de l'exercice : Gérer les segments d'annulation 9-18
viii
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Gérer la trace d'audit 10-27
Mises à jour de sécurité 10-28
Appliquer des patches de sécurité 10-29
Synthèse 10-30
Présentation de l'exercice : Implémenter la sécurité
de la base de données Oracle 10-31
11 Configurer l'environnement réseau Oracle
Objectifs 11-2
Services Oracle Net 11-3
Processus d'écoute Oracle Net 11-4
Etablir des connexions réseau 11-5
Etablir une connexion 11-6
Sessions utilisateur 11-7
Outils de configuration et de gestion de l'environnement réseau Oracle 11-9
Utilitaire de contrôle du processus d'écoute 11-10
Syntaxe de l'utilitaire de contrôle du processus d'écoute 11-11
Page d'accueil Listener 11-13
Pages Net Services Administration 11-14
Créer un processus d'écoute 11-15
Ajouter des adresses de processus d'écoute 11-16
Enregistrement d'un service de base de données 11-17
Méthodes de résolution de noms 11-18
Easy Connect 11-19
Résolution locale de noms 11-20
Résolution de noms d'annuaire 11-21
Méthode de résolution de noms externes 11-22
Configurer des alias de service 11-23
Options de connexion avancées 11-24
Tester la connectivité Oracle Net 11-26
Sessions utilisateur : Serveurs dédiés 11-27
Sessions utilisateur : Serveurs partagés 11-28
Mémoire SGA et mémoire PGA 11-29
Serveur partagé : Concentration des connexions 11-30
Dans quel cas ne pas utiliser de serveur partagé ? 11-31
Synthèse 11-32
Présentation de l'exercice : Utiliser les composants réseau Oracle 11-33
12 Maintenance proactive
Objectifs 12-2
Maintenance proactive 12-3
Terminologie 12-4
ix
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Statistiques destinées à l'optimiseur 12-5
Utiliser la page Manage Optimizer Statistics 12-7
Niveaux de statistiques 12-9
Référentiel AWR (Automatic Workload Repository) 12-10
Infrastructure du référentiel AWR 12-11
Jeux de clichés AWR 12-12
Enterprise Manager et référentiel AWR 12-13
Gérer le référentiel AWR 12-14
Moniteur ADDM (Automatic Database Diagnostic Monitor) 12-15
Résultats ADDM 12-16
Recommandations ADDM 12-17
Infrastructure de conseil 12-18
Enterprise Manager et les fonctions de conseil 12-20
Package DBMS_ADVISOR 12-21
Alertes générées par le serveur 12-22
Alertes par défaut générées par le serveur 12-23
Définir des seuils 12-24
Créer et tester une alerte 12-25
Notification des alertes 12-26
Réagir aux alertes 12-28
Types d'alerte et effacement des alertes 12-29
Tâches de maintenance automatisées 12-30
Synthèse 12-31
Présentation de l'exercice : Maintenance proactive 12-32
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Utiliser Memory Advisor 13-21
Statistiques dynamiques de performances 13-22
Vues de résolution des problèmes et de réglage 13-24
Options non valides et inutilisables 13-25
Synthèse 13-27
Présentation de l'exercice : Surveiller et améliorer les performances 13-28
14 Concepts de sauvegarde et de récupération
Objectifs 14-2
Partie de votre travail 14-3
Catégories de panne 14-4
Echec d'une instruction 14-5
Echec d'un processus utilisateur 14-6
Défaillance réseau 14-7
Erreur utilisateur 14-8
Echec d'une instance 14-10
Processus en arrière-plan et récupération : Point de reprise (CKPT) 14-11
Processus en arrière-plan et récupération : Fichiers de journalisation
et LogWriter 14-13
Processus en arrière-plan et récupération : Processus d'archivage (ARCn) 14-14
Récupération d'instance 14-15
Phases de la récuperation d'instance 14-16
Régler la récupération d'instance 14-17
Utiliser MTTR Advisor 14-18
Défaillance physique 14-19
Configurer la base de données afin d'optimiser la possibilité
de récupération 14-20
Fichiers de contrôle 14-22
Fichiers de journalisation 14-23
Multiplexer le fichier de journalisation 14-24
Fichiers de journalisation archivés 14-25
Fichier de journalisation archivé : Appellation et destinations 14-26
Mode ARCHIVELOG 14-28
Synthèse 14-29
Présentation de l'exercice : Configurer la base de données afin d'optimiser
la possibilité de récupération 14-30
15 Procéder à des sauvegardes de la base de données
Objectifs 15-2
Solutions de sauvegarde : Présentation 15-3
Oracle Secure Backup 15-4
Sauvegarde gérée par l'utilisateur 15-5
Terminologie 15-6
Recovery Manager (RMAN) 15-8
xi
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Configurer les paramètres de sauvegarde 15-9
Planifier des sauvegardes : Stratégie 15-11
Planifier des sauvegardes : Options 15-12
Planifier des sauvegardes : Paramètres 15-13
Planifier des sauvegardes : Planification 15-14
Planifier des sauvegardes : Récapitulatif 15-15
Sauvegarder le fichier de contrôle dans un fichier trace 15-16
Gérer les sauvegardes 15-18
Zone de récupération rapide 15-19
Synthèse 15-20
Présentation de l'exercice : Créer des sauvegardes
de la base de données 15-21
16 Procéder à une récupération de la base de données
Objectifs 16-2
Ouvrir une base de données 16-3
Modifier le statut d'une instance 16-5
Maintenir une base de données ouverte 16-6
Perte d'un fichier de contrôle 16-7
Perte d'un fichier de journalisation 16-8
Perte d'un fichier de données en mode NOARCHIVELOG 16-9
Perte d'un fichier de données non essentiel en mode ARCHIVELOG 16-10
Perte d'un fichier de données essentiel pour le système
en mode ARCHIVELOG 16-11
Synthèse 16-12
Présentation de l'exercice : Procéder à une récupération
de la base de données 16-13
17 Procéder à un flashback de la base de données
Objectifs 17-2
Avantages de la technologie Flashback 17-3
Dans quel cas utiliser la technologie Flashback ? 17-4
Procéder à un flashback suite à une erreur 17-5
Flashback Database : Présentation 17-6
Flashback Database : Réduction de la durée de restauration 17-7
Flashback Database : Eléments à prendre en compte 17-8
Flashback Database : Limitations 17-9
Activer Flashback Database 17-10
Flashback Table : Présentation 17-11
Flashback Table 17-12
Activer le déplacement de lignes (row movement) dans une table 17-13
Procéder au flashback d'une table 17-14
Flashback Table : Eléments à prendre en compte 17-16
Flashback Drop : Présentation 17-17
xii
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Procéder à un flashback de tables supprimées via Enterprise Manager 17-18
Flashback Drop : Eléments à prendre en compte 17-19
Navigation temporelle grâce aux fonctionnalités Flashback 17-20
Flashback Query : Présentation 17-21
Flashback Query : Exemple 17-22
Flashback Versions Query : Présentation 17-23
Flashback Versions Query via Enterprise Manager 17-24
Flashback Versions Query : Eléments à prendre en compte 17-25
Flashback Transaction Query : Présentation 17-26
Flashback Transaction Query via Enterprise Manager 17-27
Flashback Transaction Query : Eléments à prendre en compte 17-28
Synthèse 17-29
Présentation de l'exercice : Utiliser Flashback 17-30
xiii
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Utiliser des tables externes 18-34
Remplissage d'une table externe avec ORACLE_DATAPUMP 18-35
Remplissage d'une table externe avec ORACLE_LOADER 18-36
Dictionnaires de données 18-37
Synthèse 18-38
Présentation de l'exercice : Déplacer des données 18-39
Annexe A : Exercices
Annexe B : Solutions
Index
xiv
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
________________
Annexe A
Exercices
________________
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sessions d'exercices : Présentation
Schéma HR :
Contexte : Dans les exercices portant sur ce cours, vous jouez le rôle d'un administrateur de
base de données (DBA). Les comptes du système d'exploitation sur votre ordinateur sont les
suivants :
• L'utilisateur oracle, avec le mot de passe oracle.
• L'utilisateur root, avec le mot de passe oracle.
L'administrateur système a configuré le système d'exploitation de sorte qu'il soit prêt pour
l'installation. Le support d'installation est enregistré dans le répertoire /stage/Disk1.
Effectuez les tâches suivantes en tant qu'utilisateur du système d'exploitation oracle par
défaut, sauf indication contraire.
Utilisez Oracle Universal Installer (OUI) pour lancer l'installation du logiciel Enterprise Edition
d'Oracle Database 10g version 2. Il s'agit d'une installation standard (Basic Installation) du
logiciel Oracle.
Une fois le logiciel installé, exécutez le script lab_02_05.sh qui crée automatiquement un
processus d'écoute (listener).
Remarque : Vous devez réaliser cet exercice pour pouvoir effectuer les exercices des chapitres
suivants.
Vos tâches
3. Une fois les paramètres initiaux saisis, OUI vérifie les prérequis propres au produit. A la fin
de ces vérifications, installez le logiciel Oracle.
Le temps d'installation est estimé à 10–15 minutes. Toutefois, cette estimation peut varier
grandement en fonction des environnements.
4. Lorsque la page Execute Configuration Scripts apparaît, suivez les instructions qui y
figurent, acceptez la valeur par défaut pour le répertoire bin local, puis terminez
l'installation à l'aide d'OUI.
Notez les URL de fin d'installation. Vous les utiliserez plus tard dans d'autres sessions
d'exercices.
URL
iSQL*Plus :____________________________________________________________
URL DBA
iSQL*Plus :_______________________________________________________
Un journal d'activité doit apparaître à l'écran, avec à la fin un message de réussite. Si tel
n'est pas le cas, résolvez les erreurs qui ont pu se produire.
Contexte : Vous êtes sur le point de créer votre première base de données Oracle. Vous
prévoyez que plusieurs bases de données semblables seront nécessaires dans un futur proche.
Par conséquent, vous décidez de créer la base de données ORCL, ainsi qu'un modèle de base de
données et les scripts de création de base de données. Placez les scripts dans le répertoire
/home/oracle/labs (il s'agit du répertoire le plus souvent utilisé dans ce cours).
Remarque : Vous devez réaliser cet exercice pour pouvoir effectuer les exercices des chapitres
suivants.
Vos tâches
1. Démarrez DBCA (Database Configuration Assistant) en entrant dbca dans une fenêtre de
terminal.
Question 7 : Quel est le modèle par défaut du paramètre Database Character Set ?
________________________________________________________________________
3. Créez la base de données ORCL, ainsi que le modèle ORCL et les scripts de génération de la
base de données.
Vérifiez et confirmez les options et les paramètres, tels que Sample Schemas (true),
db_block_size (8KB), sga_target (270MB), undo_management (AUTO)
et Database Character Set (AL32UTF8).
L'assistant DBCA affiche la progression des différentes étapes d'installation. Une fois la
base de données créée, l'assistant DBCA affiche les principales informations relatives à la
base de données. Relevez ces informations. L'URL de Database Control sera utilisée dans
plusieurs des exercices suivants.
Vous venez de créer une base de données, ainsi qu'(éventuellement) un modèle de base de
données et des scripts de génération de base de données.
Contexte : Vous venez d'installer le logiciel Oracle et de créer une base de données. Vous
souhaitez vous assurer que vous pouvez démarrer et arrêter la base de données et afficher les
données d'application.
Vos tâches
1. Appelez Enterprise Manager à l'aide de Mozilla et du profil oracle. Entrez l'URL que
vous avez relevée dans l'exercice 3, puis connectez-vous en tant qu'utilisateur SYS en
utilisant oracle comme mot de passe et SYSDBA comme valeur du champ "Connect As".
Quel numéro de port la base de données utilise-t-elle ? Vous avez noté cette information
dans l'exercice 3.
_______________________________________________________________________
La première fois que vous vous connectez après avoir installé le logiciel, la page "Oracle
Database 10g Licensing Information" apparaît. Prenez connaissance des informations
qu'elle contient.
2. Affichez les paramètres d'initialisation (Aide à la navigation : Administration >
All Initialization Parameters). Attribuez la valeur 15 au paramètre
JOB_QUEUE_PROCESSES. Quelle instruction SQL est exécutée pour cette opération ?
_______________________________________________________________________
3. Question : Quelle est la signification de la présence d'une coche dans la colonne Dynamic ?
_______________________________________________________________________
4. Arrêtez l'instance de base de données à l'aide d'Enterprise Manager.
Dans la région Host Credentials, entrez oracle dans les champs Username et Password.
Question : Quelle instruction SQL est exécutée pour arrêter une instance de base de données ?
_______________________________________________________________________
Si vous cliquez sur Refresh au cours de l'opération d'arrêt, l'erreur ci-dessous peut
apparaître. Cliquez sur OK et poursuivez la régénération. L'erreur se résoudra d'elle-même.
Cliquez sur OK, puis à nouveau sur Refresh. Notez que l'instance affiche à présent le statut
"Down".
5. Lorsque vous constatez que le statut de l'instance est "Down", utilisez SQL*Plus pour
vérifier que vous ne pouvez pas vous connecter en tant qu'utilisateur HR.
6. Utilisez Enterprise Manager pour redémarrer l'instance de base de données en entrant les
informations d'identification et de connexion (credentials) de l'hôte oracle. Question :
Quelle instruction SQL est exécutée pour démarrer la base de données ?
_______________________________________________________________________
7. Dans le fichier d'alertes, affichez les différentes phases de démarrage de la base de données.
(Aide à la navigation : Database > Alert Log Content).
Question : Quelles sont les phases de démarrage de l'instance de base de données ?
_______________________________________________________________________
Contexte : Vous devez créer un tablespace pour l'application INVENTORY. Il vous faut
également créer un utilisateur de base de données qui ne dispose pas d'autant de privilèges que
l'utilisateur SYS.
Vos tâches
2. Dans l'angle supérieur droit d'Enterprise Manager (EM), cliquez sur le lien Setup pour
définir l'utilisateur DBA1 et lui attribuer le droit d'effectuer des tâches d'administration dans
Enterprise Manager. Indiquez les paramètres suivants :
Objet Paramètre
Name dba1
Password Oracle
Confirm Password Oracle
Super Administrator Sélectionné
Une fois l'utilisateur non-SYS configuré, fermez la session SYS, puis connectez-vous en
tant qu'utilisateur DBA1. Effectuez le reste des tâches suivantes en tant qu'utilisateur DBA1,
sauf indication contraire.
Question 1 : Quel pourcentage d'espace libre peut être utilisé avant d'atteindre le seuil
d'avertissement (Warning threshold) ?
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Examinez tous les types d'extent (ensemble de blocs contigus) figurant dans la zone Extent
Map. Notez l'extent situé immédiatement à droite de l'extent d'en-tête du tablespace.
Revenez en haut de la page et notez le segment sur lequel est placé le pointeur.
_______________________________________________________________________
Remarque : Le tablespace INVENTORY sera utilisé dans d'autres exercices portant sur ce cours.
5. Exécutez le script lab_05_05.sql pour créer et remplir une table (nommée X) dans le
tablespace INVENTORY. Quelle erreur apparaît alors ?
_______________________________________________________________________
_______________________________________________________________________
Notez que le même nombre d'insertions de ligne est entrepris, et qu'aucune erreur ne se
produit en raison de la plus grande taille du tablespace.
8. Dans une fenêtre XTerm, exécutez le script lab_05_08.sql pour nettoyer le tablespace
en vue d'une utilisation dans les exercices suivants.
Contexte : Vous devez créer un compte utilisateur pour Jenny Goodman, le nouveau manager
du département des Ressources humaines. Ce département compte également deux nouveaux
opérateurs, à savoir David Hamby et Rachel Pandya. Tous trois doivent pouvoir se connecter à
la base de données ORCL, et effectuer une sélection des données et mettre à jour les
enregistrements dans la table HR.EMPLOYEES. Le manager doit également pouvoir insérer et
supprimer des enregistrements d'employés. Assurez-vous que si les nouveaux utilisateurs
oublient de se déconnecter à la fin de la journée, ils seront déconnectés automatiquement après
quinze minutes. Vous devez également créer un compte utilisateur pour l'application de gestion
des stocks que vous installez.
Vos tâches
4. Utilisez Enterprise Manager pour créer le rôle HRCLERK autorisé à sélectionner des
données dans la table HR.EMPLOYEES et à mettre à jour cette table (Aide à la navigation :
Administration > Roles). Vérifiez l'instruction SQL sous-jacente:
5. A l'aide d'Enterprise Manager, créez le rôle HRMANAGER autorisé à effectuer des insertions
et des suppressions dans la table HR.EMPLOYEES. Accordez le rôle HRCLERK au rôle
HRMANAGER. Vérifiez l'instruction SQL sous-jacente:
9. Testez les nouveaux utilisateurs dans SQL*Plus. Connectez-vous à la base de données ORCL en
tant qu'utilisateur DHAMBY. Utilisez oracle comme nouveau mot de passe. Dans la table
HR.EMPLOYEES, sélectionnez la ligne comportant l'ID EMPLOYEE_ID=197. Essayez ensuite
de la supprimer. (Vous devez obtenir une erreur de type "privilèges insuffisants".)
10. Renouvelez le test pour l'utilisateur JGOODMAN. Une fois la ligne supprimée, effectuez une
opération d'annulation (rollback) afin de conserver les 107 lignes d'origine.
Question 2: Lorsque vous avez créé les nouveaux utilisateurs, vous n'avez pas sélectionné
de tablespace par défaut ni de tablespace temporaire. Qu'est-ce qui détermine les
tablespaces qui seront employés par les nouveaux utilisateurs ?
_________________________________________________________________________
Question 3: Vous n'avez accordé le privilège système CREATE SESSION à aucun des
nouveaux utilisateurs, mais tous peuvent se connecter à la base de données. Pourquoi ?
_________________________________________________________________________
11. Vérifiez le script lab_05_01.sql et le fichier journal lab_05_01.txt qu'il a généré lors
de la création de l'utilisateur DBA1.
12. Utilisez SQL*Plus pour vous connecter à la base de données ORCL en tant qu'utilisateur
RPANDYA. Attribuez-lui le mot de passe oracle. (Vous devez modifier le mot de passe
car il s'agit de la première connexion sous le nom utilisateur RPANDYA.) Laissez RPANDYA
connecté pendant le chapitre suivant ou jusqu'à la fin de la journée. Le profil HRPROFILE
indique que les utilisateurs dont les sessions sont inactives pendant plus de 15 minutes
seront automatiquement déconnectés. Vérifiez que l'utilisateur a été automatiquement
déconnecté en essayant de nouveau d'effectuer une sélection dans la table
HR.EMPLOYEES.
ERROR at line 1:
ORA-02396: exceeded maximum idle time, please connect again
Contexte : Vous devez créer des objets de schéma pour la nouvelle application de gestion des
stocks. Connectez-vous à la base de données ORCL sous le nom utilisateur DBA1 et avec le rôle
SYSDBA.
Vos tâches
1. Revenez dans la session de navigateur d'Enterprise Manager, ou appelez Enterprise
Manager en tant qu'utilisateur DBA1, avec le rôle SYSDBA, pour vous connecter à la base
de données ORCL.
2. Dans le tablespace INVENTORY, créez la table PRODUCT_MASTER dans le schéma
INVENTORY. Les spécifications de la table sont les suivantes :
PRODUCT_ID number(7). Il s'agit du champ de clé primaire.
(Nom de la contrainte : PK_INV)
PRODUCT_NAME varchar2(50) avec une contrainte Not NULL
CODE varchar2(10) avec une contrainte Not NULL
REORDER_THRESHOLD number(5) avec une contrainte CHECK permettant de
s'assurer que le nombre est toujours supérieur à zéro
(Nom de la contrainte : CHK_REORDER)
COST number(5,2)
PRICE number(5,2)
3. Dans le tablespace INVENTORY, créez la table PRODUCT_ON_HAND dans le schéma
INVENTORY. Le script lab_07_03.sql permettant de créer la table vous est fourni,
mais il comporte un problème (créé intentionnellement pour pousser un peu plus loin votre
formation). Corrigez le problème, puis exécutez le script. Si vous ne parvenez pas à détecter
l'erreur immédiatement, exécutez le script d'origine dans SQL*Plus afin d'obtenir le
message d'erreur correspondant. Vous pourrez ainsi identifier et résoudre le problème. Les
spécifications de la table sont les suivantes :
PRODUCT_ID number(7). Ce champ doit comporter une contrainte de clé étrangère le
liant au champ PRODUCT_ID de la table PRODUCT_MASTER.
QUANTITY number(5)
WAREHOUSE_CITY varchar2(30)
Date LAST_UPDATE
4. Dans le tablespace INVENTORY, créez la table OBSOLETE_PRODUCTS dans le schéma
INVENTORY. Cette définition de table est très semblable à celle de la table PRODUCT_MASTER.
Par conséquent, vous pouvez utiliser la fonction de définition via des instructions SQL (Define
Using SQL) d'Enterprise Manager au lieu de la fonction de spécification de colonne (Column
Specification). Les spécifications de la table sont les suivantes :
PRODUCT_ID number(7). Il s'agit du champ de clé primaire.
PRODUCT_NAME varchar2(50) avec une contrainte Not Null
CODE varchar2(20) avec une contrainte Not Null
COST number(5,2)
PRICE number(5,2)
Oracle Database 10g : Administration Workshop I A-18
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Exercice 7 : Gérer les objets de schéma (suite)
7. Dans le tablespace INVENTORY, utilisez SQL*Plus pour créer un index combiné sur les
colonnes PRODUCT_ID et QUANTITY de la table PRODUCT_ON_HAND. Nommez l'index
POH_PROD_ID_QTY.
8. Vous recevez une mise à jour de l'application de gestion des stocks qui nécessite l'ajout de
deux colonnes à la table PRODUCT_MASTER. Ajoutez une colonne nommée
PRIMARY_SOURCE et affectez-lui le type de données varchar2(50). Ajoutez une
autre colonne, SECONDARY_SOURCE, et affectez-lui le type de données
varchar2(50). Quelle instruction SQL est exécutée pour cette opération ?
9. Vous recevez une nouvelle mise à jour de l'application. Cette demande de modification
vous indique de supprimer la table OBSOLETE_PRODUCTS et d'ajouter la colonne
OBSOLETED de type de données DATE à la table PRODUCT_MASTER. Pour ce faire,
utilisez Enterprise Manager. Quelle clause est ajoutée à la fin de l'instruction DROP
TABLE pour supprimer également les contraintes de table ?
_________________________________________________________________________
10. Une autre demande de modification relative à l'application de gestion des stocks vous
indique de créer une vue nommée WAREHOUSE_VW (Aide à la navigation : Administration
> Views). Cette vue doit se trouver dans le schéma INVENTORY. Elle affiche les éléments
suivants (dans l'ordre ci-dessous) :
• Le nom du produit
• La quantité de produit en stock
• La ville où se trouve l'entrepôt
11. Les développeurs vous signalent qu'un certain type d'interrogation sera exécuté très
fréquemment et souhaitent être sûrs que ces interrogations s'exécuteront en moins d'une
seconde. Vous devez exécuter l'interrogation et étudier son comportement. Exécutez
d'abord le script lab_07_11_a.sql pour générer des données de test relatives au
volume indiqué dans la demande. Exécutez ensuite plusieurs fois l'interrogation dans le
script lab_07_11_b.sql afin de calculer le temps moyen d'exécution. L'exécution de
l'interrogation prend plusieurs secondes à chaque fois. Créez sur la colonne CODE_FUNC
un index basé sur une fonction afin d'améliorer les performances de cette interrogation.
12. Utilisez iSQL*Plus pour identifier le nom de la vue du dictionnaire de données que vous
utiliserez pour répertorier toutes les contraintes que l'utilisateur INVENTORY peut afficher.
Quel est le nom de la vue ?
_________________________________________________________________________
13. De combien d'index l'utilisateur INVENTORY est-il le propriétaire ? Vous recherchez les
objets de base de données qui appartiennent à l'utilisateur INVENTORY. Par conséquent,
vous savez que la vue du dictionnaire de données commence par le préfixe "USER_".
Le nom de la vue est USER_INDEXES.
_________________________________________________________________________
Vos tâches
1. Effectuez une mise à jour non validée de la ligne en question en exécutant le script
lab_08_01.sql. Ne vous inquiétez pas si la session semble se bloquer, puisque c'est
précisément ce que nous voulons obtenir.
2. Essayez de mettre à jour la même ligne dans une autre session, en exécutant le script
lab_08_02.sql dans une fenêtre XTerm distincte. Avant de continuer, assurez-vous
d'obtenir le message "Update is being attempted now".
3. Cliquez sur le lien Blocking Sessions de la page Performance pour détecter la session
responsable du conflit de verrouillage.
6. Revenez à la fenêtre de commande SQL*Plus et notez que la mise à jour de SMAVRIS a été
effectuée avec succès. Le message de réussite peut mettre quelques secondes à apparaître.
Contexte : Une nouvelle version de l'application devra inclure plusieurs états basés sur des
interrogations très longues. Configurez le système afin qu'il prenne en charge ces états.
Vos tâches
Question : Quelle est la valeur recommandée par l'analyse pour "Required Tablespace Size
for New Undo Retention" ?
_________________________________________________________________________
Contexte : Vous avez été informé d'activités suspectes dans la table HR.JOBS de votre base
de données ORCL. Tous les salaires maximums semblent fluctuer de façon étrange. Vous
décider d'activer l'audit de base de données standard et de surveiller les activités LMD
(Langage de manipulation de données) dans cette table.
Vos tâches
1. Utilisez Enterprise Manager pour activer l'audit de la base de données. Attribuez la valeur
XML au paramètre AUDIT_TRAIL. Ce paramètre doit être stocké dans le fichier SPFILE.
2. Etant donné que vous avez modifié un paramètre statique, vous devez redémarrer la base de
données. Pour cela, exécutez le script lab_10_02.sh.
Passez à l'étape suivante une fois la base de données redémarrée et SQL*Plus fermé.
3. De retour dans Enterprise Manager, sélectionnez l'objet audité HR.JOBS, puis DELETE,
INSERT et UPDATE sous Selected Statements. Collectez les informations d'audit par
session. (Aide à la navigation : Administration > Audit Settings).
4. Fournissez des entrées pour l'audit en exécutant le script lab_10_04.sh. Ce script crée
l'utilisateur AUDIT_USER, se connecte à SQL*Plus sous le nom de cet utilisateur et
multiplie les valeurs de la colonne MAX_SALARY par 10. L'utilisateur HR se connecte
ensuite et divise les valeurs de la colonne par 10. Enfin, l'utilisateur AUDIT_USER est
supprimé.
5. Dans Enterprise Manager, vérifiez les objets audités. Utilisez l'onglet Audited Objects.
6. Annulez les paramètres d'audit pour HR.JOBS, désactivez l'audit de la base de données,
puis redémarrez cette dernière à l'aide du script lab_10_06.sh.
7. Gérez la trace d'audit : puisque vous avez complètement terminé cette tâche, supprimez
tous les fichiers d'audit du répertoire /u01/app/oracle/admin/orcl/adump.
Contexte : Les utilisateurs doivent se connecter à votre base de données ORCL. Aidez-les à
autoriser les connexions à l'aide de différentes méthodes. Faites en sorte que les utilisateurs
puissent utiliser la gestion des incidents de connexion pour tirer parti d'un processus d'écoute de
secours.
Vos tâches
2. Accédez à la page Net Services Administration. Commencez par cliquer sur le lien
Listener de la page d'accueil Database.
3. Modifiez le fichier de résolution locale de noms de façon à pouvoir vous connecter à une
autre base de données. (Aide à la navigation : Listener link > Net Services Administration >
Administer > Local Naming). Utilisez les informations suivantes pour définir la connexion :
Objet Paramètre
Connection name Testorcl
DB ID Method SID
SID value Orcl
Protocol TCP/IP
Port 1521
Host Adresse IP ou nom de l'ordinateur d'un autre
stagiaire
4. Dans Enterprise Manager, testez l'accès à la base de données ORCL de votre partenaire en
vous connectant en tant qu'utilisateur system avec le mot de passe oracle à l'aide de la
résolution locale de noms testorcl.
La page Processing affiche des informations de statut. Elle est suivie d'un message de
réussite. Si vous recevez des erreurs ou des avertissements, résolvez-les.
6. Créez un processus d'écoute LISTENER2 pour prendre en charge la gestion des incidents
de connexion. Pour ce processus d'écoute, utilisez le port 1561. Déconnectez-vous d'abord
d'Enterprise Manager, puis exécutez le script lab_11_06.sh pour configurer le fichier
NetProperties. (Aide à la navigation : Listener link > Net Services Administration >
Administer > Listeners). Utilisez l'onglet Static Database Registration de la page Create
Listener pour connecter le processus d'écoute à la base de données. Utilisez les
informations suivantes :
Objet Paramètre
Listener name LISTENER2
Host <your computer’s name>
Service name orcl
Protocol TCP/IP
Port 1561
SID orcl
Oracle Home Directory /u01/app/oracle/product/10.2.0/db_1
Contexte : Vous souhaitez surveiller la base de données ORCL de manière proactive, de façon
à pouvoir résoudre les problèmes courants avant qu'ils n'affectent les utilisateurs. Cet exercice
invente des problèmes afin que vous puissiez vous familiariser avec les outils disponibles.
Exécutez d'abord des scripts pour configurer votre environnement ADDM (Automatic
Database Diagnostic Management).
Vos tâches
1. Créez un tablespace géré localement nommé TBSADDM. La taille de son fichier de données
addm1.dbf est de 50 Mo. Vérifiez que le tablespace TBSADDM n'utilise pas la gestion
automatique de l'espace dans les segments. Exécutez le script lab_12_01.sh pour
réaliser ces tâches.
2. Créez un utilisateur ADDM, identifié par ADDM. Affectez le tablespace TBSADDM comme
tablespace par défaut. Affectez le tablespace TEMP comme tablespace temporaire. Octroyez
les rôles suivants à l'utilisateur ADDM : CONNECT, RESOURCE et DBA. Exécutez le script
lab_12_02.sh pour réaliser ces tâches.
3. Utilisez le package DBMS_ADVISOR pour configurer une durée d'activité de base de données
de 30 minutes. En tant qu'un utilisateur ADDM, supprimez et créez la table ADDM, et collectez
des statistiques pour cette table. Créez un cliché (snapshot) dans le référentiel AWR (Automatic
Workload Repository). Exécutez le script lab_12_03.sh pour réaliser ces tâches.
4. Créez l'activité à analyser. Exécutez le script lab_12_04.sh pour réaliser ces tâches.
5. Dans Enterprise Manager, consultez la page Performance en tant qu'utilisateur SYSDBA.
Affichez les données de performance en temps réel avec un cycle de régénération de
15 secondes. Au bout de quelques instants, vous devez voir un pic dans le graphique "Average
Active Sessions". Il s'agit de l'activité à analyser. En examinant le graphique, vous pouvez déjà
déterminer que cette instance souffre de problèmes de simultanéité d'accès aux données. S'il
s'agit de votre premier accès à la page Performance, vous devez accepter l'accord de licence
Adobe. Pour cela, suivez les instructions de la fenêtre en incrustation.
Remarque : Selon le moment où vous exécutez la charge globale, vous pouvez noter des
différences entre votre graphique et celui fourni comme solution possible.
Une fois le pic terminé, exécutez le script lab_12_05.sh. Ce script force la création d'un
cliché et collecte des statistiques sur la table ADDM.
6. Consultez les résultats Performance Analysis dans l'ordre de leur impact. Vous pouvez
accéder à ces informations de différentes manières.
Dans la section Performance Analysis, vous voyez que le premier résultat (dans la catégorie
SQL Tuning Recommendations) a un impact de 100 % sur le système. Votre première
réaction est donc d'examiner ce résultat plus en détail. Toutefois, l'examen de cette
instruction SQL ne vous aide pas à comprendre le problème de simultanéité d'accès aux
données de la base.
7. Pour implémenter cette recommandation, vous devez recréer l'objet. Créez un tablespace
géré localement nommé TBSADDM2 et un fichier de données de 50 Mo nommé
addm2_1.dbf. Vérifiez que le tablespace TBSADDM2 utilise la fonction de gestion
automatique de l'espace dans les segments. Exécutez ensuite le script lab_12_07.sh
pour supprimer la table ADDM, la recréer dans le nouveau tablespace, collecter des
statistiques et prendre un nouveau cliché.
8. Exécutez à nouveau la charge globale à l'aide du script lab_12_08.sh. (Ce dernier est
identique au script lab_12_04.sh.)
Remarque : Selon le moment où vous exécutez la charge globale, vous pouvez noter des
différences entre votre graphique et celui fourni comme solution possible.
Une fois le pic terminé, exécutez le script lab_12_09.sh. (Ce dernier est identique au
script lab_12_05.sh.) Ce script force la création d'un cliché et collecte des statistiques
sur la table ADDM.
10. Consultez l'analyse des performances (Performance Analysis) dans la page d'accueil
Database. Affichez les informations correspondant à cette dernière tâche ADDM.
11. Afin de ne pas affecter d'autres exercices, exécutez le script lab_12_11.sh pour
nettoyer votre environnement.
Contexte : Les utilisateurs se plaignent d'une dégradation des performances pour les opérations
impliquant les applications de gestion des ressources humaines et de saisie des commandes.
Après avoir interrogé les autres DBA, vous vous rendez compte que des opérations de
maintenance ont eu lieu récemment sur certaines des tables appartenant au schéma HR.
Apportez les modifications appropriées afin de résoudre les problèmes de performances. Des
fichiers de script SQL sont fournis dans le répertoire /home/oracle/labs. Les autres
répertoires sont nommés de façon individuelle.
Vos tâches
2. Vous recevez des appels d'utilisateurs de l'application HR indiquant que l'exécution d'une
interrogation particulière est plus longue que d'habitude. L'interrogation figure dans le
script lab_13_02.sql. Exécutez ce dernier.
5. Maintenant que vous avez vu un index dont le statut n'est pas VALID, vous décidez de
vérifier tous les index. A l'aide de SQL*Plus, connectez-vous en tant qu'utilisateur HR et
recherchez les index de schéma HR dont le statut (STATUS) ne présente pas la valeur
VALID. Pour cela, vous pouvez interroger une vue du dictionnaire de données avec une
condition sur la colonne STATUS.
6. A l'aide d'EM, réorganisez tous les index du schéma HR qui sont marqués comme
UNUSABLE.
7. Revenez à la session SQL*Plus dans laquelle est connecté l'utilisateur HR, puis exécutez le
script lab_13_07.sql afin d'exécuter le même type d'interrogation. Répétez ensuite la
procédure pour voir si le plan de la dernière instruction SQL exécutée par cette session a
changé.
_________________________________________________________________________
L'exécution de ce script prend environ 20 minutes. Exécutez-le donc dans une fenêtre de
terminal distincte et poursuivez cet exercice pendant son exécution.
Remarque : Etant donné que ce script génère une charge relativement élevée en termes de CPU
et d'E/S disque, vous constaterez que le temps de réponse de Database Control est plus élevé.
Utilisez EM pour afficher les performances globales de l'instance et répondre aux questions
suivantes :
Question 1 : Dans le graphique Average Active Sessions, quelles sont les deux catégories
principales attendues par les sessions actives ?
_________________________________________________________________________
Question 2 : Dans la catégorie d'attentes Configuration, quel est l'un des contributeurs au
temps d'attente ? Cliquez sur Configuration pour voir le graphique.
_________________________________________________________________________
Vos tâches
1. Vérifiez que vous disposez de deux fichiers de contrôle afin de garantir une redondance.
(Aide à la navigation : Administration > Control Files).
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
_________________________________________________________________________
Remarque : Dans une base de données de production, vous souhaitez vous assurer que les
deux membres résident sur des disques durs distincts, de préférence sur des contrôleurs de
disque distincts, afin de limiter le risque qu'une défaillance matérielle unique ne détruise un
groupe entier.
3. Vous notez que, pour chaque groupe de fichiers de journalisation, la colonne Archived
indique No. Cela signifie que la base de données ne conserve pas de copies des fichiers de
journalisation pour la récupération de la base de données ; en cas de défaillance, vous
perdrez ainsi toutes les données depuis la dernière sauvegarde. Placez la base de données en
mode ARCHIVELOG afin que les fichiers de journalisation soient archivés.
Notez que la base de données est préconfigurée pour enregistrer les fichiers de
journalisation archivés dans la zone de récupération rapide par défaut (Archive Log
Destination 10).
4. Configurez des destinations redondantes pour les fichiers de journalisation archivés, l'une étant
la zone de récupération rapide et l'autre le répertoire /u01/app/oracle/archive/.
N'oubliez pas la barre oblique de fin. Ne renseignez pas le champ Quota.
Lorsque vous y êtes invité, redémarrez la base de données avec les informations
d'identification et de connexion (credentials) à l'hôte oracle et l'utilisateur SYS.
Remarque : N'oubliez pas que cette opération consomme de l'espace sur le disque et que
vous devez sauvegarder régulièrement les anciens fichiers de journalisation archivés sur un
autre périphérique de stockage.
Vos tâches
________________________________________________________________________
________________________________________________________________________
3. Testez la réalisation d'une sauvegarde sur disque, sous la forme d'un jeu de sauvegarde,
avec oracle sous Host Credentials. (Aide à la navigation : Maintenance > Backup
Settings)
Question : Quelle condition préalable doit être satisfaite pour la création d'une sauvegarde
valide d'une base de données sans l'arrêter ?
________________________________________________________________________
5. Planifiez des sauvegardes incrémentielles sur disque, base ouverte, pendant la nuit pour
l'intégralité de la base de données, sans les fichiers de journalisation archivés backup
(Aide à la navigation : Maintenance > Schedule Backup). Planifiez-les pour 23h00. La
planification doit être applicable indéfiniment.
Vos tâches
1. Récupérez la base de données suite à la perte d'un fichier de contrôle.
a) En tant qu'utilisateur DBA1, exécutez le script lab_16_01_a.sql pour préparer
certaines procédures à appeler dans le reste de cet exercice.
b) Exécutez maintenant le script lab_16_01_b.sql. Ce script supprime l'un des
fichiers de contrôle.
c) Le support technique commence à recevoir des appels indiquant que la base de données
semble hors service. Résolvez le problème et procédez si nécessaire à une récupération.
Utilisez la page Database d'Enterprise Manager pour tenter de démarrer la base de
données et utilisez SQL*Plus si nécessaire.
d) Le démarrage de l'instance échoue avec Enterprise Manager et vous ne pouvez obtenir
aucune autre information expliquant cet échec. Utilisez donc les outils en mode ligne de
commande.
- Connectez-vous à l'instance avec SQL*Plus en tant que sysdba et examinez le
statut actuel de l'instance.
- Tentez de monter la base de données.
e) L'instance ne peut pas accéder à la phase de montage, car l'un des fichiers de contrôle
est introuvable. Examinez les 10 dernières lignes du fichier d'alertes afin de voir quel
fichier de contrôle pose problème.
f) Le fichier de contrôle de la zone de récupération rapide est manquant. Restaurez le
fichier de contrôle manquant en copiant le fichier de contrôle existant, puis montez et
ouvrez la base de données.
Question 1 : Pourquoi avez-vous dû utiliser deux commandes pour passer l'instance de l'état
NOMOUNT à l'état OPEN ?
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Vous voyez que le fichier mentionné dans le fichier d'alertes est manquant. Il existe
seulement deux fichiers, alors qu'il devrait y en avoir trois.
________________________________________________________________________
d) Récupérez le fichier de données manquant jusqu'à l'heure actuelle (indiquez son nom).
(Aide à la navigation : Maintenance > Perform recovery > Object Type > Datafiles).
________________________________________________________________________
________________________________________________________________________
c) Dans Enterprise Manager, consultez la page d'accueil Database. La base de données est
arrêtée ; vous cliquez donc sur Startup pour essayer de l'ouvrir.
Contexte : Vous décidez d'acquérir une expérience pratique concernant certaines des
fonctionnalités Flashback. Pour éviter un impact sur les autres utilisateurs, vous copierez
d'abord la table DEPARTMENTS du schéma HR vers DEPARTMENTS2.
Vos tâches
1. Connectez-vous à SQL*Plus en tant qu'utilisateur DBA1 et créez une table
HR.DEPARTMENTS2 basée sur la table HR.DEPARTMENTS. Comptez les lignes de la
table DEPARTMENTS2. Il doit y en avoir 27.
2. Supprimez la table HR.DEPARTMENTS2, puis vérifiez qu'elle a bien été supprimée.
3. Utilisez la commande FLASHBACK TABLE pour restaurer la table. Comptez les lignes de la
table DEPARTMENTS2.
4. Exécutez le script lab_17_04.sql pour insérer trois lignes dans la table
HR.DEPARTMENTS2 à l'aide de trois transactions distinctes. Dans la colonne
DEPARTMENT_ID, les nouvelles lignes présentent les valeurs 280, 290 et 300.
5. Utilisez Enterprise Manager pour procéder à un flashback jusqu'à la version de la table
comportant uniquement la première des trois lignes (avec DEPARTMENT_ID = 280). (Aide à la
navigation : Maintenance > Perform Recovery). Evaluez d'abord les modifications apportées
aux lignes afin de décider d'un point dans le temps. Limitez votre analyse aux nouvelles lignes
ajoutées, c'est-à-dire pour lesquelles department_id >= 280. Si vous recevez une erreur
lors du flashback, vous pouvez être amené à activer le déplacement de lignes (row movement)
sur la table. Passez à l'étape suivante. Utilisez les spécifications suivantes :
Objet Paramètre
Object Type Tables
Operation Type Flashback Existing Tables
Evaluate row changes and transactions to sélectionné
decide on a point in time
Table HR.DEPARTMENTS2
Choose Columns > Selected Columns DEPARTMENT_ID
Bind The Row Value where department_id >= 280
6. Vous déterminez que l'opération échoue car le déplacement de lignes n'est pas activé pour
la table. D'après le cours, le déplacement de lignes doit être activé pour cette fonctionnalité.
Une fois la modification de la table confirmée, vous pouvez effectuer l'opération Flashback.
Répétez l'étape 5 pour effectuer une opération Flashback Versions Query sur la table.
Le déplacement de lignes ayant été activé, cette fois l'opération doit réussir.
Contexte : Vous avez récemment reçu un certain nombre de questions concernant le schéma
HR. Pour les analyser sans interférer dans les activités quotidiennes, vous décidez d'utiliser
l'assistant Data Pump Wizard pour exporter le schéma HR vers un fichier. Lorsque vous
effectuez l'export, vous n'êtes pas certain de la base de données dans laquelle vous importerez
ce schéma.
Vous découvrez finalement qu'ORCL est la seule base de données pour laquelle la direction
approuve un import. Vous procédez donc à l'import avec l'assistant Data Pump Wizard, en
remettant en correspondance le schéma HR avec un nouveau schéma HR_TEST dans le
tablespace HR_TEST. Pour respecter les recommandations, vous décidez également de créer un
utilisateur DP, DBA exécutant des travaux Data Pump. Par souci de commodité, dans le cours,
la création de l'utilisateur DP est incluse dans le script lab_18_01.sql. Les scripts SQL
figurent dans le répertoire /home/oracle/labs. Toutefois, il manque une étape.
Vous recevez ensuite deux demandes de chargement de données pour lesquelles vous décidez
d'utiliser SQL*Loader.
Vos tâches
_____________________________________________________________________
Consultez le script PL/SQL que l'assistant Export Wizard vous a aidé à créer et soumettez
le travail. Un message de traitement apparaît, suivi d'un message de réussite. Si ce n'est pas
le cas, résolvez les éventuelles erreurs.
Remarque : Attendez non seulement la création du travail, mais également la fin de son
exécution. (Cela peut prendre deux minutes.)
4. En tant qu'utilisateur DP, réimportez le schéma HR exporté dans la base de données ORCL,
en le remettant en correspondance avec le schéma HR_TEST précédemment créé. (Aide à
la navigation : Maintenance > Import from Export Files). Utilisez les spécifications
suivantes pour l'import :
Objet Paramètre
Import Files: Directory Objects DATA_PUMP_DIR
File Name HREXP%U.DMP
Import Type Schemas
Host credentials oracle
L'assistant Data Pump Wizard lit le fichier d'import indiqué et affiche un message de
réussite. Si ce n'est pas le cas, résolvez les éventuelles erreurs.
(Aide à la navigation : Maintenance > Monitor Export and Import Jobs) Surveillez le travail
pendant son exécution.
Facultatif, car cela nécessite une action rapide : Suspendez et reprenez le travail.
Finalement, vous souhaitez voir que 100 % du travail a été exécuté sans erreur.
Pour vérification de l'import, sélectionnez des données dans des tables du schéma hr_test.
5. En tant qu'utilisateur DP, chargez les données dans la table PRODUCT_MASTER à l'aide de
SQL*Loader via Enterprise Manager Database Control. (Aide à la navigation :
Maintenance > Load Data from User Files). Utilisez les spécifications suivantes pour le
chargement :
Objet Paramètre
Use Existing Control File sélectionné
Username oracle
Password oracle
Save as Preferred Credential sélectionné
Load Data Control File Name /home/oracle/labs/lab_18_05.ctl
Data File: Provide the full path and name sélectionné
on the database server machine
Data File Name /home/oracle/labs/lab_18_05.dat
Load Method Conventional Path
Load Data Options: Log File Name /home/oracle/labs/lab_18_05.log
Load Data Schedule: Job Name lab_18_05
Description Load data into the
PRODUCT_MASTER table
Start Immediately
Solutions
________________
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Solutions de l'exercice 2 : Installer le logiciel de base de données Oracle
Contexte : Dans les exercices portant sur ce cours, vous jouez le rôle d'un administrateur de base
de données (DBA). Les comptes du système d'exploitation sur votre ordinateur sont les suivants :
• L'utilisateur oracle, avec le mot de passe oracle.
• L'utilisateur root, avec le mot de passe oracle.
L'administrateur système a configuré le système d'exploitation de sorte qu'il soit prêt pour
l'installation. Le support d'installation est enregistré dans le répertoire /stage/Disk1.
Effectuez les tâches suivantes en tant qu'utilisateur du système d'exploitation oracle par défaut,
sauf indication contraire.
Une fois le logiciel installé, exécutez le script lab_02_05.sh qui crée automatiquement un
processus d'écoute (listener).
Remarque : Vous devez réaliser cet exercice pour pouvoir effectuer les exercices des chapitres
suivants.
1. Installez le logiciel de base de données Oracle en tant qu'utilisateur oracle. Accédez au
répertoire /stage/Disk1 et démarrez Oracle Universal Installer (OUI) en entrant la
commande ./runInstaller.
a) Cliquez deux fois sur l'icône XTerm située sur le bureau, puis entrez la commande
suivante :
$ cd /stage/Disk1
$ ./runInstaller
2. Sélectionnez la méthode d'installation souhaitée pour OUI.
a) Dans la page Installation Method, sélectionnez Basic Installation, puis confirmez les
paramètres suivants :
Objet Paramètre
Database Home Location /u01/app/oracle/product/10.2.0/db_1
Installation Type Enterprise Edition
UNIX DBA Group oinstall
Create Starter Database Désélectionné
c) Vous vous trouvez à présent dans la page intitulée "Specify Inventory directory and
credentials". Acceptez /u01/app/oracle/oraInventory comme répertoire
oraInventory et oinstall comme nom de groupe du système d'exploitation.
Cliquez sur Next.
OUI charge la liste des produits et vérifie les prérequis propres aux produits.
d) Lorsque OUI a vérifié les prérequis dans la page Product-Specific Prerequisite Checks,
cliquez sur Next.
Le temps d'installation est estimé à 10–15 minutes. Toutefois, cette estimation peut varier
grandement en fonction des environnements.
4. Lorsque la page Execute Configuration Scripts apparaît, suivez les instructions qui y figurent,
acceptez la valeur par défaut pour le répertoire bin local, puis terminez l'installation à l'aide
d'OUI.
e) Fermez la fenêtre XTerm, puis cliquez sur OK dans la page Execute Configuration scripts.
f) Relevez les différentes URL. Vous les utiliserez plus tard dans d'autres sessions d'exercices.
URL iSQL*Plus :________________________________________________________
URL DBA iSQL*Plus :___________________________________________________
g) Vous pouvez, si vous le souhaitez, cliquer sur Installed Products, revoir l'inventaire
produit, puis cliquer sur Close.
Un journal d'activité doit apparaître à l'écran, avec à la fin un message de réussite. Si tel n'est
pas le cas, résolvez les erreurs qui ont pu se produire.
Contexte : Vous êtes sur le point de créer votre première base de données Oracle. Vous prévoyez
que plusieurs bases de données semblables seront nécessaires dans un futur proche. Par
conséquent, vous décidez de créer la base de données ORCL, ainsi qu'un modèle de base de
données et les scripts de création de base de données. Placez les scripts dans le répertoire
/home/oracle/labs (il s'agit du répertoire le plus souvent utilisé dans ce cours).
Une fois la base de données ORCL créée, exécutez le script lab_03_03.sh qui crée un
processus d'écoute (listener).
Remarque : Vous devez réaliser cet exercice pour pouvoir effectuer les exercices des chapitres
suivants.
La réponse est variable : non, pas en cours, car il existe déjà trois groupes et vous ne disposez
que d'un périphérique de stockage physique ; mais oui, si vous pouvez placer chaque groupe
sur un périphérique de stockage physique différent.
Question 7 : Quel est le modèle par défaut du paramètre Database Character Set ?
Réponse : WE8ISO8859P1
3. Créez la base de données ORCL, ainsi que le modèle ORCL et les scripts de génération de la
base de données.
a) Dans la page Database Identification, entrez orcl.oracle.com comme nom global de
base de données (Global Database Name). Le SID se voit attribuer par défaut le nom de
base de données orcl. Cliquez sur Next.
b) Dans la page Management Options, assurez-vous que les éléments suivants sont sélectionnés :
- Configure the Database with Enterprise Manager
- Use Database Control for Database Management
c) Cliquez sur Next.
d) Dans la page Database Credentials, sélectionnez Use the Same Password for All
Accounts, puis entrez oracle dans les champs Password et Confirm Password. Cliquez
ensuite sur Next.
e) Dans la page Storage Options, sélectionnez File System, puis cliquez sur Next.
f) Dans la page Database File Locations, sélectionnez Use Oracle-Managed Files.
Acceptez la valeur par défaut du champ Database Area, puis cliquez sur Next.
g) Dans la page Recovery Configuration, sélectionnez Specify Flash Recovery Area, puis
cliquez sur Next.
h) Dans la page Database Content, sélectionnez Sample Schemas, puis cliquez sur Next.
k) Consultez les onglets Sizing et Connection Mode mais ne modifiez aucune valeur.
Cliquez ensuite sur Next.
l) Dans la page Database Storage, examinez le nom et l'emplacement des fichiers. Cliquez
ensuite sur Next.
n) Vous pouvez éventuellement sélectionner toutes les options de création et entrer orcl
comme nom (Name) pour le modèle de base de données, ORCL Database
template dans le champ Description, et /home/oracle/labs comme répertoire
de destination (Destination Directory). Cliquez ensuite sur Finish.
o) La page Confirmation apparaît. Vérifiez les options et les paramètres, tels que Sample
Schemas (true), db_block_size (8KB), sga_target (270MB),
undo_management (AUTO) et Database Character Set (AL32UTF8),
puis cliquez sur OK.
q) L'assistant DBCA affiche la progression des différentes étapes d'installation. Une fois la
base de données créée, l'assistant DBCA affiche les principales informations relatives à la
base de données. Relevez ces informations. L'URL de Database Control sera utilisée dans
bon nombre des exercices suivants.
s) Faites défiler la page Password Management vers le bas pour atteindre le nom utilisateur HR.
t) Désélectionnez la colonne Lock Account?, puis entrez hr dans les colonnes New
Password et Confirm Password. Cliquez ensuite sur OK.
Vous venez de créer une base de données, ainsi qu'(éventuellement) un modèle de base de
données et des scripts de génération de base de données.
Contexte : Vous venez d'installer le logiciel Oracle et de créer une base de données. Vous
souhaitez vous assurer que vous pouvez démarrer et arrêter la base de données et afficher les
données d'application.
1. Appelez Enterprise Manager, puis connectez-vous en tant qu'utilisateur SYS. Quel numéro de
port la base de données utilise-t-elle ? Vous avez noté cette information dans l'exercice 3.
Réponse : 1158
a) Cliquez deux fois sur l'icône Mozilla située sur le bureau pour ouvrir le navigateur Web
en tant qu'utilisateur oracle.
b) Sélectionnez le profil oracle, cochez l'option Don’t ask at startup, puis cliquez sur Start
Mozilla.
c) Entrez l'URL que vous avez notée dans l'exercice 3. Elle se présente sous la forme
suivante :
http://hostname:portnumber/em
La première fois que vous vous connectez après avoir installé le logiciel, la page "Oracle
Database 10g Licensing Information" apparaît.
f) Pour accepter ces informations, cliquez sur I agree au bas de la page.
d) Cliquez sur Show SQL et examinez l'instruction SQL qui va être exécutée.
c) Dans la région Host Credentials, entrez oracle dans les champs Username et
Password.
d) Cliquez sur OK.
La page Startup/Shutdown: Confirmation apparaît.
e) Cliquez sur Advanced Options pour afficher le mode d'arrêt, mais conservez la valeur
"Immediate" de ce mode.
f) Cliquez sur Cancel pour revenir à la page précédente.
g) Cliquez sur Show SQL pour afficher l'instruction SQL qui va être exécutée et permettra
d'effectuer l'opération d'arrêt.
Question : Quelle instruction SQL est exécutée pour cette opération ?
6. Utilisez Enterprise Manager pour redémarrer l'instance de base de données, puis connectez-
vous à nouveau en tant qu'utilisateur SYS.
Question : Quelle instruction SQL est exécutée pour démarrer la base de données ?
a) Dans Enterprise Manager, cliquez sur le bouton Startup.
b) Entrez oracle dans les champs Username et Password de la région Host Credentials.
c) Cliquez sur OK.
d) La page Startup/Shutdown: Confirmation apparaît. Cliquez sur Show SQL pour afficher
l'instruction SQL sur le point d'être exécutée.
Question : Quelle instruction SQL est exécutée pour démarrer la base de données ?
Réponse : STARTUP
7. Dans le fichier d'alertes, affichez les différentes phases de démarrage de la base de données.
Quelles sont-elles ?
c) Au cours du démarrage, la base de données passe par les modes MOUNT et OPEN. Cliquez
sur OK pour fermer le fichier d'alertes.
b) Pour des raisons de sécurité, les rôles SYSOPER et SYSDBA requièrent une configuration
et une authentification spéciales. Sélectionnez Normal, puis cliquez sur Continue.
d) Dans la page Login, entrez hr dans les champs Username et Password, et laissez la
valeur par défaut du champ Connect Identifier. Cliquez sur le bouton Login.
f) Une fois que vous avez vérifié les informations, cliquez sur Logout dans l'angle supérieur
droit de la page.
g) Cliquez sur la croix (X) située dans l'angle supérieur droit du cadre de la fenêtre pour
fermer la fenêtre iSQL*Plus.
Contexte : Vous devez créer un tablespace pour l'application INVENTORY. Il vous faut
également créer un utilisateur de base de données qui ne dispose pas d'autant de privilèges que
l'utilisateur SYS.
1. Entrez ./lab_05_01.sh pour exécuter un script permettant de créer l'utilisateur DBA1. Ce
script se trouve dans le répertoire /home/oracle/labs. Le mot de passe de DBA1 est
oracle.
a) Lancez un interpréteur de commande Linux en cliquant deux fois sur l'icône XTerm
située sur le bureau.
b) Remplacez le répertoire en cours par le répertoire labs en entrant la commande
suivante :
$ cd labs
c) Entrez la commande suivante pour exécuter le script qui crée l'utilisateur DBA1 :
$ ./lab_05_01.sh
d) Laissez la fenêtre d'invite de commande ouverte. Vous l'utiliserez ultérieurement.
2. Dans l'angle supérieur droit d'Enterprise Manager (EM), cliquez sur le lien Setup pour définir
l'utilisateur DBA1 et lui attribuer le droit d'effectuer des tâches d'administration dans
Enterprise Manager. Une fois l'utilisateur non-SYS configuré, fermez la session SYS, puis
connectez-vous en tant qu'utilisateur DBA1. Effectuez le reste des tâches suivantes en tant
qu'utilisateur DBA1, sauf indication contraire.
a) Dans l'angle supérieur droit de la fenêtre d'Enterprise Manager, cliquez sur Setup.
b) Cliquez sur Create pour ajouter l'utilisateur DBA1 à la liste Administrators. L'utilisateur
DBA1 pourra ainsi effectuer des opérations de gestion à l'aide d'Enterprise Manager.
c) Entrez dba1 dans le champ Name, et oracle dans les champs Password et Confirm
Password. Laissez le champ Email Address vide et l'option Super Administrator
sélectionnée, puis cliquez sur Finish.
e) Maintenant qu'un utilisateur non-SYS existe, cliquez sur Logout dans l'angle supérieur
droit, puis sur Login.
f) Entrez DBA1 dans le champ User Name, ORACLE dans le champ Password, et
sélectionnez SYSDBA pour Connect As. Cliquez ensuite sur Login.
La première fois que vous vous connectez en tant que nouvel utilisateur, la page relative
aux droits de licence apparaît.
c) Question 1 : Quel pourcentage d'espace libre peut être utilisé avant d'atteindre le seuil
d'avertissement (Warning threshold) ?
Réponse : 85 %
d) Dans la liste déroulante Actions, sélectionnez Show Tablespace Contents, puis cliquez
sur Go.
Réponse : 418
g) Sélectionnez INDEX dans la liste déroulante Type de la région Search, puis cliquez sur Go.
Réponse : SH.CUSTOMERS_PK
i) Accédez au bas de la page et cliquez sur l'icône représentant le signe plus, à gauche du
libellé Extent Map.
j) Après quelques secondes, la topographie des ensembles de blocs contigus (extent map)
apparaît. Notez que la légende de la topographie indique que le rose correspond à l'en-tête
du tablespace.
k) Revenez en haut de la page, sélectionnez All Types dans la liste déroulante Type, puis
cliquez sur Go.
m) Revenez en haut de la page et notez le segment sur lequel est placé le pointeur :
Réponse : HR.REGIONS
Remarque : Le tablespace INVENTORY sera utilisé dans d'autres exercices portant sur ce cours.
a) Dans Enterprise Manager, sélectionnez Administration > Database Administration >
Storage > Tablespaces.
b) Cliquez sur Create.
c) Indiquez INVENTORY comme nom du tablespace, et veillez à attribuer la valeur Locally
Managed pour Extent Management, Permanent pour Type, Read Write pour Status,
et à désélectionner l'option Use Bigfile tablespace.
d) Cliquez sur Add dans la région Datafiles.
e) Dans la page Add Datafile, entrez inventory01.dbf dans le champ File Name, et
5 MB dans le champ File Size.
f) Cliquez sur Continue.
g) Cliquez sur l'onglet Storage, et veillez à attribuer la valeur Automatic pour Extent
Allocation, Automatic pour Segment Space Management et à activer l'option Logging.
h) Cliquez sur l'onglet General.
i) Cliquez sur Show SQL pour afficher l'instruction SQL qui sera exécutée, puis cliquez sur
Return.
j) Cliquez sur OK. Un message indiquant une mise à jour réussie apparaît.
5. En tant qu'utilisateur DBA1, exécutez le script lab_05_05.sql pour créer et remplir une
table (nommée X) dans le tablespace INVENTORY. Quelle erreur apparaît alors ?
a) Cliquez deux fois sur l'icône XTerm située sur le bureau pour démarrer une invite de
commande, puis entrez :
$ cd labs
c) Notez qu'une erreur ORA-01653 se produit, indiquant que la table ne peut pas être
étendue. L'espace est insuffisant pour prendre en charge toutes les lignes à insérer.
d) Remplacez la valeur 5 MB (5 Mo) du champ File Size par la valeur 50 MB (50 Mo).
f) Cliquez sur Show SQL pour afficher l'instruction SQL qui sera exécutée. Il s'agit d'une
instruction ALTER DATABASE. Cliquez sur Return.
c) Notez que le même nombre d'insertions de ligne est entrepris, et qu'aucune erreur ne se
produit en raison de la plus grande taille du tablespace.
8. Dans une fenêtre XTerm, exécutez le script lab_05_08.sql pour nettoyer le tablespace en
vue d'une utilisation dans les exercices suivants.
Contexte : Vous devez créer un compte utilisateur pour Jenny Goodman, le nouveau manager du
département des Ressources humaines. Ce département compte également deux nouveaux
opérateurs, à savoir David Hamby et Rachel Pandya. Tous trois doivent pouvoir se connecter à la
base de données ORCL, et effectuer une sélection des données et mettre à jour les enregistrements
dans la table HR.EMPLOYEES. Le manager doit également pouvoir insérer et supprimer des
enregistrements d'employés. Assurez-vous que si les nouveaux utilisateurs oublient de se
déconnecter à la fin de la journée, ils seront déconnectés automatiquement après quinze minutes.
Vous devez également créer un compte utilisateur pour l'application de gestion des stocks que
vous installez.
a) Appelez Enterprise Manager en tant qu'utilisateur DBA1, et avec le rôle SYSDBA, pour la
base de données ORCL.
b) Sélectionnez Administration > Schema > Users & Privileges > Profiles.
g) Cliquez sur l'onglet Password et vérifiez les options de mot de passe, qui sont
actuellement toutes paramétrées sur DEFAULT.
h) Si vous le souhaitez, cliquez sur le bouton Show SQL, consultez l'instruction SQL sous-
jacente, puis cliquez sur Return.
a) Sélectionnez Administration > Database Administration > Database Configuration > All
Initialization Parameters.
c) Sélectionnez TRUE dans la liste déroulante Value, puis cliquez sur Apply.
4. Créez un rôle nommé HRCLERK doté des permissions SELECT et UPDATE sur la table
HR.EMPLOYEES.
a) Sélectionnez Administration > Schema > Users & Privileges > Roles.
e) Sélectionnez Table dans la liste déroulante Select Object Type, puis cliquez sur Add.
g) Déplacez les privilèges SELECT et UPDATE vers la zone Selected Privileges. Cliquez
sur OK.
5. Créez un rôle nommé HRMANAGER doté des permissions INSERT et DELETE sur la table
HR.EMPLOYEES. Accordez le rôle HRCLERK au rôle HRMANAGER.
a) Sélectionnez Administration > Schema > Users & Privileges > Roles.
e) Sélectionnez Table dans la liste déroulante Select Object Type, puis cliquez sur Add.
g) Déplacez les privilèges INSERT et DELETE vers la zone Selected Privileges. Cliquez
sur OK.
i) Déplacez le rôle HRCLERK dans la zone Selected Roles, puis cliquez sur OK.
newuser
newuser
e) Cliquez sur Roles. Notez que le rôle CONNECT a été affecté automatiquement à
l'utilisateur.
f) Ajoutez le rôle HRCLERK en cliquant sur Edit List et en déplaçant le rôle dans la zone
Selected Roles. Cliquez sur OK afin de fermer la fenêtre Modify Roles.
7. Créez un compte pour Rachel Pandya, nouvelle opératrice du département HR. Répétez les
différentes étapes de la tâche 6 en utilisant RPANDYA comme nom utilisateur.
8. Créez un compte pour Jenny Goodman, nouveau manager du département HR. Répétez les
différentes étapes de la tâche 6 en utilisant JGOODMAN comme nom utilisateur et en
sélectionnant le rôle HRMANAGER au lieu du rôle HRCLERK.
a) Cliquez sur le bouton Show SQL et examinez l'instruction SQL sous-jacente.
9. Testez les nouveaux utilisateurs dans SQL*Plus. Connectez-vous à la base de données ORCL
en tant qu'utilisateur DHAMBY. Utilisez oracle comme nouveau mot de passe. Dans la table
HR.EMPLOYEES, sélectionnez la ligne comportant l'ID EMPLOYEE_ID=197. Essayez
ensuite de la supprimer. (Vous devez obtenir une erreur de type "privilèges insuffisants".)
ou si vous vous trouvez déjà dans SQL*Plus, utilisez la commande CONNECT. Si vous vous
reconnectez en tant qu'utilisateur dhamby dans SQL*Plus, la session de connexion et de
modification de mot de passe ressemble à ce qui suit :
SQL> CONNECT dhamby/newuser
ERROR:
ORA-28001: the password has expired
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options
SQL>
SALARY
----------
3000
10. Renouvelez le test pour l'utilisateur JGOODMAN. Une fois la ligne supprimée, effectuez une
opération d'annulation (rollback) afin de conserver les 107 lignes d'origine.
Question 2: Lorsque vous avez créé les nouveaux utilisateurs, vous n'avez pas sélectionné de
tablespace par défaut ni de tablespace temporaire. Qu'est-ce qui détermine les tablespaces qui
seront employés par les nouveaux utilisateurs ?
Réponse : Les tablespaces permanent et temporaire définis par défaut par le système.
Question 3: Vous n'avez accordé le privilège système CREATE SESSION à aucun des
nouveaux utilisateurs, mais tous peuvent se connecter à la base de données. Pourquoi ?
a) Cliquez deux fois sur l'icône Home d'Oracle située sur le bureau.
d) Une fois le fichier vérifié, cliquez sur l'icône Up pour revenir dans le répertoire labs.
e) A présent, cliquez deux fois sur le fichier lab_05_01.txt qui a été créé lors de
l'exécution du fichier lab_05_01.sql.
f) Une fois le fichier vérifié, cliquez sur l'icône représentant une croix (X – Fermer la
fenêtre).
12. Utilisez SQL*Plus pour vous connecter à la base de données ORCL en tant qu'utilisateur
RPANDYA. Attribuez-lui le mot de passe oracle. (Vous devez modifier le mot de passe car
il s'agit de la première connexion sous le nom utilisateur RPANDYA.) Laissez RPANDYA
connecté pendant le chapitre suivant ou jusqu'à la fin de la journée. Le profil HRPROFILE
indique que les utilisateurs dont les sessions sont inactives pendant plus de 15 minutes seront
automatiquement déconnectés. Vérifiez que l'utilisateur a été automatiquement déconnecté en
essayant de nouveau d'effectuer une sélection dans la table HR.EMPLOYEES.
ERROR at line 1:
ORA-02396: exceeded maximum idle time, please connect again
Contexte : Vous devez créer des objets de schéma pour la nouvelle application de gestion des
stocks. Connectez-vous à la base de données ORCL sous le nom utilisateur DBA1 et avec le rôle
SYSDBA.
c) Laissez le type de table par défaut Standard, Heap Organized permanent, puis cliquez
sur Continue.
e) Entrez les informations des cinq premières colonnes (Data Type, Size, Scale et Not
NULL, entre autres); mais ne définissez pas encore de contraintes.
f) Cliquez sur Add 5 Table Columns, puis entrez la dernière colonne, PRICE, ainsi que
son type et sa taille.
h) Sélectionnez la valeur PRIMARY dans la liste déroulante, puis cliquez sur Add.
j) Cliquez deux fois sur PRODUCT_ID dans la liste de gauche afin de déplacer cet ID vers
la liste de droite et d'en faire la seule clé primaire. Cliquez ensuite sur Continue.
k) Sélectionnez la valeur CHECK dans la liste déroulante propre au type de contrainte, puis
cliquez sur Add.
m) Entrez "reorder_threshold > 0" (sans inclure les guillemets) dans le champ
Check Condition.
n) Laissez les valeurs par défaut des paramètres d'attributs, puis cliquez sur Continue.
p) Cliquez sur OK pour créer la table. Si vous recevez des erreurs, corrigez-les, puis cliquez
à nouveau sur OK.
b) L'erreur du script est la suivante : il manque (PRODUCT_ID) après FOREIGN KEY. Par
conséquent, ajoutez (PRODUCT_ID).
(PRODUCT_ID)
5. Dans le tablespace INVENTORY, créez un index OBS_CODE sur la colonne CODE de la table
OBSOLETE_PRODUCTS dans le schéma INVENTORY. Choisissez le type d'index approprié :
B-tree ou Bitmap. Expliquez la raison de votre choix.
Réponse : B-tree, car la colonne CODE peut contenir de nombreuses valeurs différentes et pas
seulement un petit ensemble fini de valeurs.
b) Sélectionnez Administration > Schema > Database Objects > Indexes, puis cliquez sur
Create.
f) Cliquez sur Populate Columns. Le nom des colonnes est inséré dans la table. Si le
navigateur vous propose de mémoriser les valeurs entrées, cliquez sur No.
h) Cliquez sur Show SQL, vérifiez que l'instruction SQL ressemble à celle-ci-dessous, puis
cliquez sur Return.
Supprimez
cet élément.
7. Dans le tablespace INVENTORY, utilisez SQL*Plus pour créer un index combiné sur les
colonnes PRODUCT_ID et QUANTITY de la table PRODUCT_ON_HAND. Nommez l'index
POH_PROD_ID_QTY.
8. Vous recevez une mise à jour de l'application de gestion des stocks qui nécessite l'ajout de
deux colonnes à la table PRODUCT_MASTER. Ajoutez une colonne nommée
PRIMARY_SOURCE et affectez-lui le type de données varchar2(50). Ajoutez une autre
colonne, SECONDARY_SOURCE, et affectez-lui le type de données varchar2(50). Quelle
instruction SQL est exécutée pour cette opération ?
9. Vous recevez une nouvelle mise à jour de l'application. Cette demande de modification vous
indique de supprimer la table OBSOLETE_PRODUCTS et d'ajouter la colonne OBSOLETED
de type de données DATE à la table PRODUCT_MASTER. Pour ce faire, utilisez Enterprise
Manager. Quelle clause est ajoutée à la fin de l'instruction DROP TABLE pour supprimer
également les contraintes de table ?
a) Sélectionnez Administration > Schema > Database Objects > Tables.
b) Entrez INVENTORY dans le champ Schema, puis cliquez sur Go.
c) Sélectionnez la table OBSOLETE_PRODUCTS, puis cliquez sur Delete With Options.
d) Conservez les paramètres par défaut pour effectuer l'opération DROP, puis cliquez sur
Show SQL pour afficher l'option CASCADE CONSTRAINTS.
g) Dans le premier champ Name vide, entez OBSOLETED, et affectez la valeur DATE au
paramètre Data Type.
10. Une autre demande de modification relative à l'application de gestion des stocks vous indique
de créer une vue nommée WAREHOUSE_VW (Aide à la navigation : Administration > Views).
Cette vue doit se trouver dans le schéma INVENTORY. Elle affiche les éléments suivants
(dans l'ordre ci-dessous) :
• Le nom du produit
• La quantité de produit en stock
• La ville où se trouve l'entrepôt
Vous devrez joindre deux tables ensemble afin de créer cette vue.
11. Les développeurs vous signalent qu'un certain type d'interrogation sera exécuté très
fréquemment et souhaitent être sûrs que ces interrogations s'exécuteront en moins d'une
seconde. Vous devez exécuter l'interrogation et étudier son comportement. Exécutez d'abord
le script lab_07_11_a.sql pour générer des données de test relatives au volume indiqué
dans la demande. Exécutez ensuite plusieurs fois l'interrogation dans le script
lab_07_11_b.sql afin de calculer le temps moyen d'exécution. L'exécution de
l'interrogation prend plusieurs secondes à chaque fois. Créez sur la colonne CODE_FUNC un
index basé sur une fonction afin d'améliorer les performances de cette interrogation.
a) Cliquez deux fois sur l'icône XTerm située sur le bureau, puis, à l'invite de commande,
entrez la commande ci-dessous afin de remplir la table à l'aide des données de test. Son
exécution prendra entre trois et cinq minutes.
$ cd /home/oracle/labs
$ sqlplus dba1/oracle @lab_07_11_a.sql
b) Entrez le texte suivant sur la ligne de commande pour exécuter l'interrogation de test.
SQL> @lab_07_11_b.sql
c) Entrez / (barre oblique), et appuyez sur [Entrée] pour exécuter à nouveau cette
commande. Répétez plusieurs fois cette opération afin de définir une durée moyenne
d'exécution. Le temps d'exécution doit être de quelques secondes à chaque fois.
l) Entrez 1 dans le champ Order, en regard de l'expression que vous venez de saisir.
m) Cliquez sur Show SQL pour vérifier que l'instruction SQL ressemble à ce qui suit :
12. Utilisez iSQL*Plus pour identifier le nom de la vue du dictionnaire de données que vous
utiliserez pour répertorier toutes les contraintes que l'utilisateur INVENTORY peut afficher.
La fenêtre Confirm apparaît et le gestionnaire des mots de passe vous propose de mémoriser
ces informations de connexion. Cliquez sur No.
f) Consultez les lignes renvoyées. L'une d'elles comporte la valeur COMMENTS "Constraints
definitions on accessible tables". Le nom de l'objet est ALL_CONSTRAINTS.
13. De combien d'index l'utilisateur INVENTORY est-il le propriétaire ? Vous recherchez les
objets de base de données qui appartiennent à l'utilisateur INVENTORY. Par conséquent, vous
savez que la vue du dictionnaire de données commence par le préfixe "USER_". Le nom de la
vue est USER_INDEXES.
Réponse : 4
1. Effectuez une mise à jour non validée de la ligne en question en exécutant le script
lab_08_01.sql. Ne vous inquiétez pas si la session semble se bloquer, puisque c'est
précisément ce que nous voulons obtenir.
a) Entrez la commande ci-dessous pour exécuter le script. Une fois l'exécution du script
terminée, une note indiquant qu'une mise à jour non validée a été effectuée s'affichera.
$ sqlplus dba1/oracle @lab_08_01.sql
2. Essayez de mettre à jour la même ligne dans une autre session, en exécutant le script
lab_08_02.sql dans une fenêtre XTerm distincte. Avant de continuer, assurez-vous
d'obtenir le message "Update is being attempted now".
a) Cliquez deux fois sur l'icône XTerm pour démarrer une autre invite de commande, puis
entrez la commande suivante pour exécuter le deuxième script.
$ sqlplus dba1/oracle @lab_08_02.sql
3. Cliquez sur le lien Blocking Sessions de la page Performance pour détecter la session
responsable du conflit de verrouillage.
b) La première fois que vous appelez la page Performance, un accord de licence logicielle
(Software License Agreement) apparaît. Appuyez sur [A] pour l'accepter et continuer.
b) Cliquez sur le lien de valeur de hachage (hash value) nommé "Previous SQL".
c) Conservez la valeur Kill Immediate du champ Options, puis cliquez sur Show SQL pour
afficher l'instruction qui va être exécutée pour fermer la session.
Remarque : Il est fort probable que votre session et numéro de série soient différents de ceux
ci-dessous.
d) Cliquez sur Return, puis sur Yes pour exécuter la commande KILL SESSION.
6. Revenez à la fenêtre de commande SQL*Plus et notez que la mise à jour de SMAVRIS a été
effectuée avec succès. Le message de réussite peut mettre quelques secondes à apparaître.
a) Fermez toutes les sessions SQL ouvertes en entrant la commande exit, puis fermez les
fenêtres XTerm.
Contexte : Une nouvelle version de l'application devra inclure plusieurs états basés sur des
interrogations très longues. Configurez le système afin qu'il prenne en charge ces états.
1. Utilisez la fonction de conseil Undo Advisor pour calculer la quantité de volume d'annulation
requise pour prendre en charge un état dont l'exécution dure deux jours, sur la base d'une
période d'analyse réalisée sur les sept derniers jours.
a) Dans Enterprise Manager, sélectionnez Administration > Related Links > Advisor
Central.
d) Dans le champ New Undo Retention, entrez 2, puis sélectionnez days dans la liste
déroulante.
e) Sélectionnez Last Seven Days dans la liste déroulante Analysis Time Period. Les
résultats de l'analyse apparaissent.
Remarque : Les valeurs que vous voyez sont probablement différentes de celles
illustrées ici.
f) Question : Quelle est la valeur recommandée par l'analyse pour "Required Tablespace
Size for New Undo Retention" ?
Réponse : Ajouter un fichier de données ou augmenter la taille d'un fichier de données existant.
d) Dans le champ File Size, entrez la nouvelle valeur de l'étape 1 (f). Arrondissez-la à
100 Mo près (sans dépasser 1 Go). Assurez-vous que la case "Automatically extend
datafile when full" n'est pas sélectionnée. Cliquez ensuite sur Continue.
e) Cliquez sur Show SQL pour vérifier que l'instruction SQL ressemble à ce qui suit :
Contexte : Vous avez été informé d'activités suspectes dans la table HR.JOBS de votre base de
données ORCL. Tous les salaires maximums semblent fluctuer de façon étrange. Vous décider
d'activer l'audit de base de données standard et de surveiller les activités LMD (Langage de
manipulation de données) dans cette table.
1. Utilisez Enterprise Manager pour activer l'audit de la base de données. Attribuez la valeur
XML au paramètre AUDIT_TRAIL.
a) Appelez Enterprise Manager en tant qu'utilisateur DBA1 avec le rôle SYSDBA pour la
base de données ORCL.
b) Sélectionnez Administration > Schema > Users & Privileges > Audit Settings.
Passez à l'étape suivante une fois la base de données redémarrée et SQL*Plus fermé.
3. De retour dans Enterprise Manager, sélectionnez l'objet audité HR.JOBS, puis DELETE,
INSERT et UPDATE sous Selected Statements. Collectez les informations d'audit par session.
a) Cliquez sur l'onglet de la page d'accueil Database pour vérifier qu'Enterprise Manager a
eu le temps de mettre à jour le statut de la base de données et ses connexions agent. La
base de données ayant été redémarrée, vous devez vous reconnecter à Enterprise Manager
en tant qu'utilisateur DBA1.
b) Sélectionnez ensuite Administration > Schema > Users & Privileges > Audit Settings.
4. Fournissez des entrées pour l'audit en exécutant le script lab_10_04.sh. Ce script crée
l'utilisateur AUDIT_USER, se connecte à SQL*Plus sous le nom de cet utilisateur et multiplie
les valeurs de la colonne MAX_SALARY par 10. L'utilisateur HR se connecte ensuite et divise
les valeurs de la colonne par 10. Enfin, l'utilisateur AUDIT_USER est supprimé.
a) Sélectionnez Administration > Schema > Users & Privileges > Audit Settings.
b) Cliquez sur Audited Objects dans la zone Audit Trails, située sur le côté droit de la
page.
6. Annulez les paramètres d'audit pour HR.JOBS, désactivez l'audit de la base de données, puis
redémarrez cette dernière à l'aide du script lab_10_06.sh.
e) Examinez les instructions, puis cliquez sur Yes pour confirmer la suppression.
f) Dans la page Audit Settings, cliquez sur XML dans la région Configuration.
h) Dans la page SPFile, entrez audit dans le champ Name, puis cliquez sur Go.
m) Etant donné que vous avez modifié un paramètre statique, vous devez redémarrer la base de
données. Pour cela, exécutez le script lab_10_06.sh. Dans une fenêtre de terminal, entrez :
cd /home/oracle/labs
./lab_10_06.sh
7. Gérez la trace d'audit : puisque vous avez complètement terminé cette tâche, supprimez tous
les fichiers d'audit du répertoire /u01/app/oracle/admin/orcl/adump.
Contexte : Les utilisateurs doivent se connecter à votre base de données ORCL. Aidez-les à
autoriser les connexions à l'aide de différentes méthodes. Faites en sorte que les utilisateurs
puissent utiliser la gestion des incidents de connexion pour tirer parti d'un processus d'écoute de
secours.
1. Créez une copie de vos fichiers listener.ora et tnsnames.ora. Ceux-ci figurent dans
le répertoire $ORACLE_HOME/network/admin.
a) Dans une fenêtre XTerm, entrez cd $ORACLE_HOME/network/admin pour accéder
au répertoire /u01/app/oracle/product/10.2.0/db_1/network/admin.
b) Entrez cp listener.ora listener.old pour créer une copie du fichier
listener.ora.
c) Entrez cp tnsnames.ora tnsnames.old pour créer une copie du fichier
tnsnames.ora.
d) Entrez ls -l si vous souhaitez voir les copies et leurs privilèges dans votre répertoire.
2. Accédez à la page Net Services Administration. Commencez par cliquer sur le lien Listener
de la page d'accueil Database.
a) Appelez Enterprise Manager en tant qu'utilisateur DBA1 avec le rôle SYSDBA pour la
base de données ORCL.
b) Dans la page Database Instance – Home, cliquez sur le lien Listener dans la région General.
c) Dans la région Related Links, cliquez sur Net Services Administration.
3. Modifiez le fichier de résolution locale de noms de façon à pouvoir vous connecter à une
autre base de données. Nommez testorcl la connexion à la base de données ORCL d'un
partenaire.
a) Dans la page Net Services Administration, sélectionnez Local Naming dans la liste
déroulante Administer, puis cliquez sur Go.
4. Dans Enterprise Manager, testez l'accès à la base de données ORCL de votre partenaire en
vous connectant en tant qu'utilisateur system avec le mot de passe oracle à l'aide de la
résolution locale de noms testorcl.
a) Sélectionnez testorcl dans la page Local Naming, puis cliquez sur Test Connection.
La page Processing affiche des informations de statut. Elle est suivie d'un message de
réussite. Si vous recevez des erreurs ou des avertissements, résolvez-les.
La fenêtre Oracle SQL*Plus apparaît. Si vous recevez des erreurs ou des avertissements,
résolvez-les.
b) A l'invite SQL>, entrez la commande suivante :
select instance_name, host_name from v$instance;
6. Créez un processus d'écoute LISTENER2 pour prendre en charge la gestion des incidents de
connexion. Pour ce processus d'écoute, utilisez le port 1561. Déconnectez-vous d'abord
d'Enterprise Manager, puis exécutez le script lab_11_06.sh pour configurer le fichier
NetProperties.
d) Dans la page Database Instance – Home, cliquez sur le lien Listener dans la région
General.
f) Dans la page Net Services Administration, sélectionnez Listeners dans la liste déroulante
Administer, puis cliquez sur Go. Entrez le nom utilisateur oracle et le mot de passe
oracle comme informations d'identification et de connexion (credentials) à l'hôte, puis
cliquez sur Login.
k) Cliquez sur l'onglet Static Database Registration, puis sur le bouton Add pour
connecter le nouveau processus d'écoute à la base de données ORCL.
l) Entrez les valeurs suivantes :
- Service Name : orcl
- Oracle Home Directory : /u01/app/oracle/product/10.2.0/db_1
- Oracle System Identifier (SID) : orcl
Contexte : Vous souhaitez surveiller la base de données ORCL de manière proactive, de façon à
pouvoir résoudre les problèmes courants avant qu'ils n'affectent les utilisateurs. Cet exercice
invente des problèmes afin que vous puissiez vous familiariser avec les outils disponibles.
Exécutez d'abord des scripts pour configurer votre environnement ADDM (Automatic Database
Diagnostic Management).
1. Créez un tablespace géré localement nommé TBSADDM. La taille de son fichier de données
addm1.dbf est de 50 Mo. Vérifiez que le tablespace TBSADDM n'utilise pas la gestion
automatique de l'espace dans les segments. Exécutez le script lab_12_01.sh pour réaliser
ces tâches.
2. Créez un utilisateur ADDM, identifié par ADDM. Affectez le tablespace TBSADDM comme
tablespace par défaut. Affectez le tablespace TEMP comme tablespace temporaire. Octroyez
les rôles suivants à l'utilisateur ADDM : CONNECT, RESOURCE et DBA. Exécutez le script
lab_12_02.sh pour réaliser ces tâches.
3. Utilisez le package DBMS_ADVISOR pour configurer une durée d'activité de base de données
de 30 minutes. En tant qu'un utilisateur ADDM, supprimez et créez la table ADDM, et collectez
des statistiques pour cette table. Créez un cliché (snapshot) dans le référentiel AWR
(Automatic Workload Repository). Exécutez le script lab_12_03.sh pour réaliser ces
tâches.
4. Créez l'activité à analyser. Exécutez le script lab_12_04.sh pour réaliser ces tâches.
a) Dans une fenêtre de terminal, entrez les éléments suivants. Après l'exécution de huit
procédures PL/SQL, vous pouvez être amené à appuyer sur la touche [Entrée] pour voir à
nouveau l'invite de commande.
./lab_12_04.sh
5. Dans Enterprise Manager, consultez la page Performance en tant qu'utilisateur SYSDBA. Affichez
les données de performance en temps réel avec un cycle de régénération de 15 secondes. Au bout
de quelques instants, vous devez voir un pic dans le graphique "Average Active Sessions". Il s'agit
de l'activité à analyser. En examinant le graphique, vous pouvez déjà déterminer que cette instance
souffre de problèmes de simultanéité d'accès aux données.
Remarque : Selon le moment où vous exécutez la charge globale, vous pouvez noter des
différences entre votre graphique et celui fourni comme solution possible.
Une fois le pic terminé, exécutez le script lab_12_05.sh. Ce script force la création d'un
cliché et collecte des statistiques sur la table ADDM.
a) Appelez Enterprise Manager en tant qu'utilisateur DBA1 avec le rôle SYSDBA pour la
base de données ORCL.
S'il s'agit de votre premier accès à la page Performance, vous devez accepter l'accord de
licence Adobe. Pour cela, suivez les instructions de la fenêtre en incrustation.
Remarque : L'icône située en regard du curseur dans cette capture d'écran est un raccourci
vers la page "Automatic Database Diagnostic Monitor (ADDM)".
6. Consultez les résultats Performance Analysis dans l'ordre de leur impact. Vous pouvez
accéder à ces informations de différentes manières.
Dans la section Performance Analysis, vous voyez que le premier résultat (dans la catégorie SQL
Tuning Recommendations) a un impact de 100 % sur le système. Votre première réaction est
donc d'examiner ce résultat plus en détail. Toutefois, l'examen de cette instruction SQL ne vous
aide pas à comprendre le problème de simultanéité d'accès aux données de la base.
Recherchez le résultat suivant sous Schema Recommendations : Read and write contention
of database blocks was consuming significant database time. Ici, il est recommandé
d'utiliser la fonction de gestion automatique de l'espace dans les segments pour la table ADDM.
a) Accédez à la page d'accueil Database, puis cliquez sur Advisor Central au bas de la page.
b) La tâche ADDM doit déjà être affichée. Sinon, recherchez-la et affichez-la dans cette
page.
c) Sélectionnez la tâche, puis cliquez sur le bouton View Result (vous pouvez également
cliquer sur le nom de la tâche).
Dans la section Performance Analysis, vous voyez que le premier résultat a un impact de
100 % sur le système. Votre première réaction est donc d'examiner ce résultat plus en détail.
d) Cliquez sur le lien SQL statements consuming significant database time were found.
7. Pour implémenter cette recommandation, vous devez recréer l'objet. Créez un tablespace géré
localement nommé TBSADDM2 et un fichier de données de 50 Mo nommé addm2_1.dbf.
Vérifiez que le tablespace TBSADDM2 utilise la fonction de gestion automatique de l'espace
dans les segments. Exécutez ensuite le script lab_12_07.sh pour supprimer la table ADDM,
la recréer dans le nouveau tablespace, collecter des statistiques et prendre un nouveau cliché.
a) Dans Enterprise Manager, sélectionnez Administration > Database Administration >
Storage > Tablespaces.
b) Cliquez sur Create.
c) Entrez le nom de tablespace TBSADDM2, puis vérifiez que la valeur de Extent
Management est Locally Managed, la valeur de Type est Permanent, la valeur de
Status est Read Write, et que l'option Use Bigfile tablespace n'est pas sélectionnée.
e) Dans la page Add Datafile, entrez addm2_1.dbf dans le champ File Name et 50 MB
dans le champ File Size.
g) Cliquez sur l'onglet Storage, puis vérifiez que la valeur de Extent Allocation est
Automatic, que la valeur de Segment Space Management est Automatic et que l'option
Logging est activée.
i) Cliquez sur Show SQL pour voir l'instruction SQL qui sera exécutée, puis cliquez sur
Return.
8. Exécutez à nouveau la charge globale. (Le script lab_12_08.sh est identique au script
lab_12_04.sh.)
a) Dans une fenêtre de terminal, entrez les éléments suivants. Après l'exécution de huit
procédures PL/SQL, vous pouvez être amené à appuyer sur la touche [Entrée] pour voir à
nouveau l'invite de commande.
./lab_12_08.sh
Remarque : Selon le moment où vous exécutez la charge globale, vous pouvez noter des
différences entre votre graphique et celui fourni comme solution possible.
Une fois le pic terminé, exécutez le script lab_12_09.sh. (Ce dernier est identique au
script lab_12_05.sh.) Ce script force la création d'un cliché et collecte des statistiques sur
la table ADDM.
a) Appelez Enterprise Manager en tant qu'utilisateur DBA1 avec le rôle SYSDBA pour la
base de données ORCL.
c) Une fois le pic terminé, entrez les éléments suivants dans une fenêtre de terminal :
./lab_12_09.sh
10. Consultez l'analyse des performances (Performance Analysis) dans la page d'accueil
Database.
a) Accédez à la page d'accueil Database, puis cliquez sur Advisor Central au bas de la page.
11. Afin de ne pas affecter d'autres exercices, exécutez le script lab_12_11.sh pour nettoyer
votre environnement.
Contexte : Les utilisateurs se plaignent d'une dégradation des performances pour les opérations
impliquant les applications de gestion des ressources humaines et de saisie des commandes.
Après avoir interrogé les autres DBA, vous vous rendez compte que des opérations de
maintenance ont eu lieu récemment sur certaines des tables appartenant au schéma HR. Apportez
les modifications appropriées afin de résoudre les problèmes de performances. Des fichiers de
script SQL sont fournis dans le répertoire /home/oracle/labs. Les autres répertoires sont
nommés de façon individuelle.
2. Vous recevez des appels d'utilisateurs de l'application HR indiquant que l'exécution d'une
interrogation particulière est plus longue que d'habitude. L'interrogation figure dans le script
lab_13_02.sql. Exécutez ce dernier.
a) Dans Enterprise Manager, cliquez sur Search Sessions dans l'onglet Performance.
b) Remplacez le filtre (Filter) des critères de recherche par "DB User", entrez HR dans le
champ situé à droite, puis cliquez sur Go.
d) Vous voyez maintenant la page Session Details correspondant à cette session. Cliquez sur
le lien de valeur de hachage (hash value) à droite du libellé Previous SQL.
e) La page SQL Details correspondant à la dernière instruction SQL exécutée par cette
session (celle en question) apparaît. Cliquez sur l'onglet Plan pour voir le plan
d'exécution correspondant à l'interrogation.
f) Dans la colonne Operation, vous voyez que cette interrogation effectue un balayage
complet de table (TABLE ACCESS FULL). Puisque vous savez que la condition de
l'interrogation est une comparaison d'égalité sur la clé primaire (EMPLOYEE_ID), vous
décidez d'examiner le statut de l'index de clé primaire.
g) Cliquez sur le lien d'index et notez que le statut de l'index est UNUSABLE.
5. Maintenant que vous avez vu un index dont le statut n'est pas VALID, vous décidez de
vérifier tous les index. A l'aide de SQL*Plus, connectez-vous en tant qu'utilisateur HR et
recherchez les index de schéma HR dont le statut (STATUS) ne présente pas la valeur VALID.
Pour cela, vous pouvez interroger une vue du dictionnaire de données avec une condition sur
la colonne STATUS.
a) Accédez à la session SQL*Plus où vous êtes encore connecté en tant qu'utilisateur HR,
puis exécutez cette interrogation :
SQL> select index_name, table_name, status
from user_indexes where status <> ‘VALID’;
b) Notez que le résultat répertorie six index, tous sur la table EMPLOYEES.
6. A l'aide d'Enterprise Manager, réorganisez tous les index du schéma HR qui sont marqués
comme UNUSABLE.
b) Cliquez sur Add pour ajouter chacun des cinq autres index à l'opération de réorganisation.
c) Dans l'écran Add, choisissez Indexes pour la liste déroulante Type, puis entrez hr dans le
champ Schema.
e) Sélectionnez les cinq autres index dont le nom commence par "EMP_".
h) Conservez tous les paramètres par défaut pour Options, puis cliquez sur Next.
i) Notez qu'aucun problème n'est signalé dans le rapport d'impact (Impact Report), puis
cliquez sur Next.
j) Dans la page Schedule, entrez oracle dans les champs Username et Password, sous
Host Credentials.
m) Après l'apparition de la page de confirmation, cliquez sur le nom du travail pour voir son
statut. Cliquez sur le bouton Reload (actualiser) de votre navigateur jusqu'à ce que le
travail apparaisse comme ayant réussi.
7. Revenez à la session SQL*Plus dans laquelle est connecté l'utilisateur HR, puis exécutez le
script lab_13_07.sql afin d'exécuter le même type d'interrogation. Répétez ensuite la
procédure pour voir si le plan de la dernière instruction SQL exécutée par cette session a
changé.
b) Répétez les opérations répertoriées à l'étape 3. Notez que le plan utilise désormais l'index.
Réponse : L'exécution de l'instruction utilise un balayage d'index unique au lieu d'un balayage
complet de table (full table scan), car l'index est utilisable après la réorganisation des index.
9. Simulez une charge globale sur votre instance en exécutant le script lab_13_09.sql en
tant qu'utilisateur DBA1. Notez la valeur du SID pour la tâche 10.
L'exécution de ce script prend environ 20 minutes. Exécutez-le donc dans une fenêtre de
terminal distincte et poursuivez cet exercice pendant son exécution.
Remarque : Etant donné que ce script génère une charge relativement élevée en termes de
CPU et d'E/S disque, vous constaterez que le temps de réponse de Database Control est plus
élevé.
$ sqlplus dba1/oracle
SQL> @lab_13_09.sql
b) Vous devrez sans doute attendre une minute ou deux pour voir les effets du script de
génération de charge apparaître sur les graphiques.
Question 1 : Dans le graphique Average Active Sessions, quelles sont les deux catégories
principales attendues par les sessions actives ?
Question 2 : Dans la catégorie d'attentes Configuration, quel est l'un des contributeurs au
temps d'attente ? Cliquez sur Configuration pour voir le graphique.
Question 3 : Cliquez sur Back, puis sur Physical Writes dans le graphique Instance Disk I/O.
Déterminez le processus effectuant le plus d'écritures sur le disque.
Réponse : DBW0
e) Cliquez sur le SQL ID de la première instruction SQL répertoriée dans la région Top SQL.
10. Fermez la session générant la charge. Utilisez l'ID de session enregistré à l'étape 9. Il doit être
répertorié au sommet de la liste sur le côté droit de la page, sous la région Top Sessions.
b) Dans la page Session Details, cliquez sur Kill Session, puis sur Yes pour confirmer.
Remarque : Si vous restez suffisamment longtemps dans la page Session Details pour que
quelques régénérations automatiques soient réalisées, vous pouvez voir l'avertissement
suivant, ce qui signifie que vous tentez de régénérer des informations sur une session déjà
fermée. Vous pouvez l'ignorer.
c) Cliquez sur Top Activity dans l'historique de navigation en haut de la page. Notez que les
activités de session dans la base de données ont considérablement diminué.
Contexte : La base de données ORCL est prête à passer de la phase de test ou de développement à
la phase de production. Configurez la base de données afin de limiter les risques de défaillance ou
de perte de données.
1. Vérifiez que vous disposez de deux fichiers de contrôle afin de garantir une redondance.
a) Appelez Enterprise Manager en tant qu'utilisateur DBA1 avec le rôle SYSDBA pour la
base de données ORCL.
b) Sélectionnez Administration > Database Administration > Storage > Control Files.
b) Sélectionnez le premier groupe, puis cliquez sur Edit pour voir le nom de fichier des
membres. Notez qu'un membre figure dans des répertoires sous le répertoire oradata,
et que l'autre figure dans la zone de récupération rapide. Cliquez sur le bouton Back (page
précédente) du navigateur.
Remarque : Dans une base de données de production, vous souhaitez vous assurer que les
deux membres résident sur des disques durs distincts, de préférence sur des contrôleurs de
disque distincts, afin de limiter le risque qu'une défaillance matérielle unique ne détruise un
groupe entier.
3. Vous notez que, pour chaque groupe de fichiers de journalisation, la colonne Archived
indique No. Cela signifie que la base de données ne conserve pas de copies des fichiers de
journalisation pour la récupération de la base de données ; en cas de défaillance, vous perdrez
ainsi toutes les données depuis la dernière sauvegarde. Placez la base de données en mode
ARCHIVELOG afin que les fichiers de journalisation soient archivés.
4. Configurez des destinations redondantes pour les fichiers de journalisation archivés, l'une
étant la zone de récupération rapide et l'autre le répertoire /u01/app/oracle/archive.
Notez que la base de données est préconfigurée pour enregistrer les fichiers de journalisation
archivés dans la zone de récupération rapide par défaut (Archive Log Destination 10).
Ajoutez une destination supplémentaire, de façon à disposer de copies redondantes des
fichiers de journalisation.
Remarque : Vous devez créer le répertoire s'il n'existe pas déjà. Vous avez déjà effectué cette
opération à l'étape (3).
b) Cliquez éventuellement sur Show SQL, examinez les instructions, puis cliquez sur
Return.
c) Cliquez sur Apply. Cliquez sur Yes lorsque vous êtes invité à redémarrer la base de
données.
Remarque : N'oubliez pas que cette opération consomme de l'espace sur le disque et que
vous devez sauvegarder régulièrement les anciens fichiers de journalisation archivés sur un
autre périphérique de stockage.
3. Testez la réalisation d'une sauvegarde sur disque, sous la forme d'un jeu de sauvegarde, avec
oracle sous Host Credentials.
a) Sélectionnez Backup Set comme type de sauvegarde sur disque (Disk Backup Type).
b) Accédez au bas de la page, et entrez oracle sous Host Credentials Username et sous
Password pour le serveur.
Question : Quelle condition préalable doit être satisfaite pour la création d'une sauvegarde
valide d'une base de données sans l'arrêter ?
Réponse : La base de données doit être en mode ARCHIVELOG. Les sauvegardes effectuées
base ouverte sans le mode ARCHIVELOG ne peuvent pas être utilisées pour la récupération.
a) Sélectionnez Maintenance > High Availability > Backup/Recovery > Schedule Backup.
c) Entrez oracle sous Host Credentials Username et sous Password pour le serveur.
e) Sélectionnez Full Backup sous Backup Type, puis cochez la case Use as the base of an
incremental backup strategy.
g) Dans la région Advanced, désélectionnez la case Also backup all archived logs on disk,
puis cliquez sur Next pour continuer.
i) Acceptez toutes les valeurs par défaut dans la page Schedule, puis cliquez sur Next pour
continuer.
k) Cliquez sur View Job afin de surveiller le statut du travail de sauvegarde. L'exécution de
cette sauvegarde prend environ 5 minutes.
5. Planifiez des sauvegardes incrémentielles sur disque, base ouverte, pendant la nuit pour
l'intégralité de la base de données, sans les fichiers de journalisation archivés. Planifiez-les
pour 23h00. La planification doit être applicable indéfiniment.
c) Entrez oracle sous Host Credentials Username et sous Password pour le serveur,
puis cliquez sur Schedule Customized Backup.
f) Dans la région Advanced, désélectionnez la case Also backup all archived logs on disk,
puis cliquez sur Next pour continuer.
g) Sélectionnez Disk comme emplacement de sauvegarde, puis cliquez sur Next pour
continuer.
i) Sélectionnez Later dans la région Start. Acceptez la date du jour et utilisez les listes
déroulantes et les boutons d'option afin de sélectionner 11:00:00 sous Time.
k) Sélectionnez Indefinite dans la région Repeat Until, puis cliquez sur Next.
m) Accédez à Maintenance > Related Links > Jobs pour voir le travail planifié dans la liste
Job Activity.
c) Le support technique commence à recevoir des appels indiquant que la base de données
semble hors service. Résolvez le problème et procédez si nécessaire à une récupération.
Utilisez la page Database d'Enterprise Manager pour tenter de démarrer la base de
données et utilisez SQL*Plus si nécessaire.
- Dans Enterprise Manager, accédez à la page Database. L'outil signale que la base de
données est hors service et vous propose de la redémarrer. Tentez de le faire en cliquant
sur Startup. Vous devrez sans doute attendre une minute ou deux pour que la page
apparaisse comme décrit. Si le message Connection Refused apparaît, ignorez-le ; la
connexion sera finalement établie.
- Lorsque vous êtes invité à confirmer le démarrage de la base de données, cliquez sur Yes.
- Le statut de l'instance est STARTED, ce qui signifie que la base de données est dans
l'état NOMOUNT. Tentez de monter la base de données à l'aide de la commande
suivante :
e) L'instance ne peut pas accéder à la phase de montage, car l'un des fichiers de contrôle est
introuvable. Examinez les 10 dernières lignes du fichier d'alertes afin de voir quel fichier
de contrôle pose problème.
Sortie :
g) Pourquoi avez-vous dû utiliser deux commandes pour passer l'instance de l'état NOMOUNT
à l'état OPEN ?
Réponse : Parce que la commande ALTER DATABASE ne vous permet de modifier qu'un
seul niveau d'état par commande
Réponse : Parce que tous les fichiers de contrôle sont identiques. Tant que l'un des fichiers de
contrôle est intact, il peut être utilisé pour restaurer les autres.
Vous voyez que le fichier mentionné dans le fichier d'alertes est manquant. Il existe
seulement deux fichiers, alors qu'il devrait y en avoir trois.
e) Question : Pourquoi Enterprise Manager ne génère-t-il pas une alerte critique due à
un fichier de journalisation manquant ?
Réponse : Parce qu'un membre manquant unique ne constitue pas un problème critique et
n'affecte pas le fonctionnement de la base de données. Tant qu'il reste au moins un membre
opérationnel par groupe de fichiers de journalisation, le fonctionnement de la base de données
n'est pas affecté.
b) Le support technique a reçu un appel d'un utilisateur qui se plaint de ne pas pouvoir
accéder à la table COUNTRIES du schéma HR de l'application. Comptez les lignes de la
table pour voir s'il y a un problème.
d) Récupérez le fichier de données manquant jusqu'à l'heure actuelle (indiquez son nom).
- Dans Enterprise Manager, sélectionnez Maintenance > High Availability >
Backup/Recovery > Perform Recovery.
- Sélectionnez Datafiles dans la liste déroulante Object Type.
- Dans la région Object Level Recovery, sélectionnez Recover to current time sous
Operation Type.
COUNT(*)
----------
25
a) Pourquoi la récupération suite à la perte d'un fichier de données système ou d'un fichier
de données appartenant à un tablespace d'annulation est-elle différente de la récupération
d'un fichier de données d'application ?
Réponse : Parce que la récupération des fichiers de données système ou d'annulation doit être
effectuée base fermée, tandis que la récupération d'un fichier de données d'application peut
être effectuée base ouverte, celle-ci étant disponible pour les utilisateurs.
c) Dans Enterprise Manager, consultez la page d'accueil Database. La base de données est
arrêtée ; vous cliquez donc sur Startup pour essayer de l'ouvrir. Si vous voyez un
message indiquant que la connexion a été refusée, fermez-le, puis entrez à nouveau l'URL
de la page d'accueil d'EM dans le navigateur.
Contexte : Vous décidez d'acquérir une expérience pratique concernant certaines des
fonctionnalités Flashback. Pour éviter un impact sur les autres utilisateurs, vous copierez d'abord
la table DEPARTMENTS du schéma HR vers DEPARTMENTS2.
3. Utilisez la commande FLASHBACK TABLE pour restaurer la table. Comptez les lignes de la
table DEPARTMENTS2.
5. Utilisez Enterprise Manager pour procéder à un flashback jusqu'à la version de la table comportant
uniquement la première des trois lignes (avec DEPARTMENT_ID = 280). Evaluez d'abord les
modifications apportées aux lignes afin de décider d'un point dans le temps. Limitez votre analyse
aux nouvelles lignes ajoutées, c'est-à-dire pour lesquelles department_id >= 280. Si vous
recevez une erreur lors du flashback, vous pouvez être amené à activer le déplacement de lignes
(row movement) sur la table. Passez à l'étape suivante.
a) Dans Enterprise Manager, sélectionnez Maintenance > High Availability >
Backup/Recovery > Perform Recovery.
b) Sélectionnez Tables dans la liste déroulante Object Type, puis sélectionnez Flashback
Existing Tables sous Operation Type. Cliquez sur Perform Object Level Recovery.
c) Sélectionnez Evaluate row changes and transactions to decide on a point in time, puis
entrez le nom entièrement qualifié HR.DEPARTMENTS2 de la table dans le champ Table
et cliquez sur Next.
f) Vous pouvez maintenant examiner les lignes sous Flashback Versions Query Result.
h) Dans la page suivante, vous êtes invité à inclure les tables liées à ou dépendantes de la
table sur laquelle vous procédez à un flashback. Puisqu'il n'y en a aucune, cliquez sur
Next pour continuer.
i) Examinez l'instruction SQL que vous êtes sur le point d'exécuter. Cliquez sur Show SQL,
affichez l'instruction SQL, cliquez sur OK, puis sur Submit.
6. Dans la page suivante, vous déterminez que l'opération a échoué car le déplacement de lignes
n'est pas activé pour la table. D'après le cours, le déplacement de lignes doit être activé pour
cette fonctionnalité.
b) Pour activer le déplacement de lignes pour cette table, sélectionnez Administration >
Schema > Database Objects > Tables.
c) Entrez HR dans le champ Schema et DEPARTMENTS2 dans le champ Object Name, puis
cliquez sur Go.
d) Une table est affichée dans la région Results et est sélectionnée par défaut. Cliquez sur
Edit.
Une fois la modification de la table confirmée, vous pouvez effectuer l'opération Flashback.
Répétez l'étape 5 pour effectuer une opération Flashback Versions Query sur la table. Le
déplacement de lignes ayant été activé, cette fois l'opération doit réussir.
Contexte : Vous avez récemment reçu un certain nombre de questions concernant le schéma HR.
Pour les analyser sans interférer dans les activités quotidiennes, vous décidez d'utiliser l'assistant
Data Pump Wizard pour exporter le schéma HR vers un fichier. Lorsque vous effectuez l'export,
vous n'êtes pas certain de la base de données dans laquelle vous importerez ce schéma.
Vous découvrez finalement qu'ORCL est la seule base de données pour laquelle la direction
approuve un import. Vous procédez donc à l'import avec l'assistant Data Pump Wizard, en
remettant en correspondance le schéma HR avec un nouveau schéma HR_TEST dans le
tablespace HR_TEST. Pour respecter les recommandations, vous décidez également de créer un
utilisateur DP, DBA exécutant des travaux Data Pump. Par souci de commodité, dans le cours, la
création de l'utilisateur DP est incluse dans le script lab_18_01.sql. Les scripts SQL figurent
dans le répertoire /home/oracle/labs. Toutefois, il manque une étape.
Vous recevez ensuite deux demandes de chargement de données pour lesquelles vous décidez
d'utiliser SQL*Loader.
Vous devez vous connecter à Enterprise Manager en tant qu'utilisateur SYS avec le rôle
SYDBA et attribuer à l'utilisateur DP le rôle d'administrateur EM (EM Administrator) (comme
vous l'avez appris dans le chapitre "Gérer l'instance Oracle").
S'il s'agit de la première connexion de l'utilisateur DP, cliquez sur I agree pour accepter
l'accord de licence.
b) Sélectionnez Maintenance > Data Movement > Move Row Data > Export to Export
Files.
c) Sélectionnez Schemas, entrez oracle sous Username et sous Password, sélectionnez
Save as Preferred Credential, puis cliquez sur Continue.
d) Dans la page Export: Schemas, cliquez sur Add, sélectionnez le schéma HR, puis cliquez
sur le bouton Select.
Un message de traitement apparaît, suivi d'un message de réussite. Si ce n'est pas le cas,
résolvez les éventuelles erreurs.
l) Lorsque la page Job Activity Confirmation apparaît, cliquez sur le nom du travail
HREXP, puis surveillez la progression du travail en cliquant sur le bouton Reload
(actualiser) du navigateur.
Remarque : Attendez non seulement la création du travail, mais également la fin de son
exécution. (Cela peut prendre deux minutes.)
4. En tant qu'utilisateur DP, réimportez le schéma HR exporté dans la base de données ORCL, en
le remettant en correspondance avec le schéma HR_TEST précédemment créé.
a) Appelez Enterprise Manager en tant qu'utilisateur DP avec le rôle Normal pour la base
de données ORCL.
b) Sélectionnez Maintenance > Data Movement > Move Row Data > Import from Export
Files.
A ce stade, le fichier d'export est lu pour vérification de son contenu. Attendez la fin de cette
opération.
f) Dans la page "Import: Schemas", cliquez sur Add, sélectionnez HR, puis cliquez
sur Select.
g) Cliquez sur Next.
h) Dans la page "Import: Re-Mapping", cliquez sur Add Another Row sous Re-Map
Schemas. Sélectionnez ensuite HR_TEST sous Destination Schema.
i) Cliquez sur Add Another Row sous Re-Map Tablespaces, entrez HR_TEST sous
Destination Tablespace.
l) Dans la page "Import: Schedule", entrez hrimp sous Job Name et Import HR
schema for test purposes sous Description.
- Dans la page "Import: Review", examinez l'instruction PL/SQL créée par l'assistant
Data Pump Wizard, puis cliquez sur Submit Job.
- Après la confirmation de la création du travail, notez son nom (par exemple, HRIMP),
et accédez à Maintenance > Data Movement > Move Row Data > Monitor Export
and Import Jobs.
- Dans la page "Monitor Data Pump job", cliquez sur le bouton Reload (actualiser) de
votre navigateur lorsqu'il est l'heure d'exécuter le travail.
- Facultatif, car cela requiert une action rapide : Cliquez sur Change Job State.
- Facultatif (suite) : Cliquez sur Suspend, puis sur Resume pour interrompre le travail et
pour le reprendre.
n) Finalement, vous souhaitez voir que 100 % du travail a été exécuté sans erreur.
r) Pour vérification de l'import, sélectionnez des données dans des tables du schéma
hr_test.
SQL> select * from jobs;
5. En tant qu'utilisateur DP, chargez les données dans la table PRODUCT_MASTER à l'aide de
SQL*Loader via Enterprise Manager Database Control.
a) Appelez Enterprise Manager en tant qu'utilisateur DP avec le rôle Normal pour la base
de données ORCL.
b) Sélectionnez Maintenance > Data Movement > Move Row Data > Load Data from
User Files.
d) Si vous ne l'avez pas encore fait, entrez oracle sous Username et sous Password,
cliquez sur Save as Preferred Credential, puis sur Continue.
f) Dans la page "Load Data: Data File", cliquez sur Provide the full path and name on the
database server machine et entrez /home/oracle/labs/lab_18_05.dat
comme nom et chemin du fichier de données, ou utilisez l'icône représentant une torche
pour sélectionner ce fichier de données. Cliquez sur Next.
g) Dans la page "Load Data: Load Method", acceptez Conventional Path, puis cliquez sur
Next.
h) Dans la page "Load Data: Options", acceptez toutes les valeurs par défaut, mais entrez
/home/oracle/labs/lab_18_05.log comme nom et chemin du fichier journal.
i) Examinez les options avancées sans les modifier, puis cliquez sur Next.
Félicitations !
Vous avez effectué tous les exercices concernant le cours
Oracle Database 10g : Administration Workshop I
Annexe C
Commandes de base
de Linux et vi
___________________
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Commandes vi
Visual Interpreter/Editor (vi) est l'éditeur de texte le plus couramment utilisé pour l'environnement UNIX.
Bien que presque tout le monde se plaigne de sa syntaxe de commande peu maniable, il reste néanmoins
le seul éditeur quasi systématiquement inclus avec chaque version du système d'exploitation UNIX et
Linux. Voici une liste non exhaustive des commandes vi disponibles.
L'éditeur vi offre deux modes : le mode ligne de commande (tout ce qui est tapé est considéré comme une
commande d'édition) et le mode de saisie (tout ce qui est tapé est considéré comme faisant partie du
fichier édité). Pour accéder au mode de saisie, tapez a, A, i, I, o, O, c, C, s, S, r ou R. Pour revenir au
mode ligne de commande, utilisez la touche <Echap>. Pour accéder à l'éditeur vi à partir de SQL*Plus,
entrez la commande suivante :
SQL>define _editor=vi
Pour éditer un fichier à partir de l'invite de SQL*Plus, tapez edit <filename> (appuyez sur Entrée) ; à
partir de l'invite de commande Linux, tapez vi <filename> (appuyez sur Entrée).
:e! - réédite le fichier en cours sans enregistrer les modifications apportées depuis la dernière modification.
A - ajouter du texte à la fin d'une ligne (saute jusqu'à la fin de la ligne et commence l'ajout).
i - insérer du texte avant la position actuelle du curseur. I - insérer du texte au début d'une ligne.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
o - insérer une ligne vide SOUS la position actuelle du curseur.
O - insérer une ligne vide AU-DESSUS de la position actuelle du curseur.
r - remplacer le caractère à la position actuelle du curseur. R - remplacer tous les caractères jusqu'à ce que
l'utilisateur appuie sur <Echap>.
s - remplacer le caractère sous le curseur par du texte.
:s/A/B/opt remplace la chaîne A par la chaîne B. %s/A/B/opt effectue un remplacement global.
Les options sont les suivantes : g (change toutes les occurrences c (confirmation avant chaque
de la ligne en cours) changement)
p (affiche les lignes modifiées) S - remplace la ligne entière
jusqu'à la fin
. <point> - répète la dernière n. <entier><point> répète n fois la
modification dernière modification
Pour quitter le mode de saisie, appuyez sur <Echap>.
dnd (où n est un entier) supprime n lignes à partir de la position actuelle du curseur.
J - supprime le retour chariot à la fin de la ligne en cours, pour joindre cette ligne et la suivante.
COPIER, COUPER et COLLER : vi utilise une mémoire tampon unique, dans laquelle est stocké le dernier texte
modifié ou supprimé. Ce texte peut être manipulé à l'aide des commandes suivantes :
Y - extraire une copie de la ligne en cours y <entier> - extraire une copie des <entier> lignes suivantes
yw - extraire une copie du mot en cours yb - extraire une copie du mot précédent
p - placer le contenu de la mémoire tampon P - placer le contenu de la mémoire
après le curseur tampon avant le curseur
Reportez-vous également aux commandes s et S sous la section de saisie.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Commandes Linux de base
Cette annexe a pour seul objectif de servir de référence rapide pendant le cours. Pour plus
d'informations sur ces commandes, reportez-vous aux pages du manuel, à la documentation
Linux ou aux autres ouvrages de référence sur les commandes Linux.
Fichiers et Commandes Linux Description/Commentaires
répertoires
Manuel sur la man <commande> Rechercher cette <commande> dans le
commande manuel.
man –k <chaîne> Afficher toutes les entrées du manuel
contenant cette <chaîne>.
man man Afficher la page du manuel concernant man.
Informations sur la info <commande> Afficher les informations sur cette
commande commande. La commande info info affiche un
tutoriel du système de documentation info.
Envoyer sur la sortie cat <fichier> Concaténer et afficher (envoyer le fichier
standard nommé vers l'écran du terminal).
Répertorier les cat /etc/password
utilisateurs
Changer de cd <directory> Passer du répertoire en cours au répertoire
répertoire indiqué.
La commande cd sans paramètre accède au
répertoire $HOME.
Copier un fichier cp <fichier_source> Copier un fichier source vers un fichier de
<fichier_destination> destination.
Afficher un fichier less <fichier> Afficher un fichier page par page. Il s'agit
d'une version GNU de more ou pg.
Afficher un fichier more <fichier> Afficher un fichier page par page. Version
BSD.
Afficher le contenu ls <répertoire> Options : –l listing long, -R récursif, -a
d'un répertoire afficher les fichiers cachés, -t trier par heure,
-r tri inversé, le répertoire par défaut est le
répertoire en cours.
Créer un répertoire mkdir <répertoire> Créer un répertoire, par défaut dans le
répertoire en cours, le chemin complet peut
être indiqué.
Déplacer ou mv <old_file> Changer le nom d'un fichier ou le déplacer
renommer un fichier <new_file> vers un autre répertoire.
Liste des processus ps Afficher la liste des processus.
ps -ef Afficher tous les processus du système avec
un listing complet. De nombreuses options
existent ; voir page man.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Afficher le pwd Afficher le répertoire en cours sur stdout.
répertoire en cours
Supprimer ou rm <fichier> La suppression d'un fichier sous Linux est
effacer un fichier définitive. Les options –r récursif et –f forcer
(y compris les sous-répertoires) sont très
dangereuses. La commande rm est souvent
utilisée avec rm –i. L'option –i demande
confirmation ("Are you sure ?").
Créer un fichier vide touch <fichier> Créer un fichier.
Nom de l'ordinateur. hostname Renvoyer le nom de l'ordinateur.
Adresse IP de host <nom_ordinateur> Interroger le serveur DNS (Domain Name
l'ordinateur Server) et renvoyer l'adresse IP du nom de
l'ordinateur.
Shell distant rsh <hôte> <commande> Exécuter une <commande> sur <hôte>. Rsh
n'est pas sûr ; utilisez plutôt ssh.
Shell distant ssh <hôte> Shell sécurisé, avec fonctionnalités pour
remplacer rsh, rcp, ftp et telnet.
Shell distant telnet <host> Démarrer une session de terminal sur
<hôte>. Telnet n'est pas sûr ; utilisez plutôt
ssh.
Rechercher un grep <option> Rechercher une expression régulière définie
<modèle> <fichier>
modèle dans un par <modèle> dans un <fichier> ou un flux
fichier et afficher la ligne contenant le modèle.
L'option –i (non-distinction
majuscules/minuscules) est courante.
grep peut accepter l'entrée à partir d'un
fichier ou stdin via un caractère | comme
dans :
netstat –a| grep ESTABLISHED
Exécuter un script . <fichier_script> Dans le shell bash, la commande "." force
l'exécution du script dans le shell. Le
comportement normal consiste à exécuter le
script dans un shell enfant.
Interpréteur awk Langage de macro pour reformater ou
interpréter la sortie. Pour chaque ligne
d'entrée, diverses actions peuvent être
effectuées. Egalement appelé nawk (new
awk).
Trier un fichier sort Trier un fichier, avec l'entrée de stdin ou un
nom de fichier comme argument ;
nombreuses options pour trier selon une
colonne, un champ, etc. Voir page man.
Editeur de ligne de sed Sed est un éditeur de ligne de commande,
commande avec de nombreuses commandes et options,
idéal pour l'édition à partir d'un script shell.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Visual Editor vi <fichier> Editeur basé sur le terminal, disponible sur
chaque système Unix ; Linux offre vim, un
éditeur vi amélioré, qui est un superensemble
de vi.
Editeur Gnu emacs <fichier> Editeur GPL avec des fonctionnalités
personnalisables étendues disponibles sur la
plupart des distributions UNIX et Linux.
Editeur WSIWIG gedit <fichier> Editeur plein écran, nécessitant X.
Disponible sous Gnome.
WSIWIG kate <fichier> Editeur plein écran, nécessitant X.
Disponible sous KDE.
Sortie de terminal stdout stdout (sortie standard) n'est pas une
commande mais un concept ; la plupart des
commandes Linux écrivent sur stdout par
défaut, sauf redirection.
Entrée de terminal stdin stdin (entrée standard) n'est pas une
(clavier) commande mais un concept ; la plupart des
commandes Linux lisent à partir de stdin par
défaut, sauf redirection.
Alias alias <commande> Procéder à un remplacement lorsqu'un
<alias>
utilisateur tape <commande>, remplacer et
exécuter <alias>, "rm" et "rm –i" sont des
alias courants. Ces alias sont définis dans le
fichier .bashrc.
Afficher les set Afficher toutes les variables actuellement
variables de shell définies dans le shell.
Afficher les printenv ou env Afficher toutes les variables
variables d'environnement ; une variable
d'environnement d'environnement a été "exportée" de façon à
être héritée par les processus enfant.
Masque de création umask –S Définir les permissions par défaut pour tous
de fichier u=rwx,g=rx,o=rx les fichiers créés par ce shell ou ses enfants.
L'option –S utilise la notation symbolique ;
la notation numérique est obsolète.
Horloge xclock Un client X qui affiche une horloge à l'écran.
Souvent utilisé pour tester le système X
windows.
Contrôle d'accès X xhost Afficher le contrôle d'accès actuellement en
xhost +<Xclient> place.
Ajouter un Xclient autorisé à accéder à
l'affichage local ; si aucun <Xclient> n'est
indiqué, tous sont autorisés.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Administration Commandes Linux Description/Commentaires
système
Système de / Répertoire racine de l'arborescence des
fichiers racine répertoires système.
Répertoire /home Il s'agit généralement du répertoire dans
d'origine lequel sont placés tous les répertoires
d'origine des utilisateurs. Par exemple :
/home/oracle.
Répertoire Tmp /tmp Zone de stockage temporaire. Ne placez rien
dans ce répertoire que vous souhaitez
conserver. SA utilise souvent une tâche
programmée (Cron Job) pour supprimer tout
périodiquement.
Répertoire /boot Petite partition contenant les images de
d'amorçage noyau et les instructions de chargement
d'amorçage.
Répertoire des /var/log Emplacement de la plupart des fichiers
journaux journaux du système.
Echantillons de /etc/inittab Les fichiers de configuration sont localisés
fichiers de par application. Tout fichier de configuration
configuration modifié après l'installation doit être inclus
dans la sauvegarde.
Fichiers de mots /etc/passwd Le fichier /etc/passwd contient des
de passe /etc/shadow
informations utilisateur et doit pouvoir être
lu par d'autres ; même avec des mots de
passe cryptés, cela peut constituer un
problème de sécurité. Le fichier
/etc/shadow contient les mots de passe
cryptés et n'est lisible que par root.
Fichier de /etc/group Le fichier /etc/groups définit les
groupes groupes d'un serveur et les utilisateurs
membres du groupe ; le groupe principal
d'un utilisateur est défini dans le fichier
/etc/passwd.
Fichier de /etc/X11/XF86Config Fichier qui définit les paramètres du serveur
configuration X X pour la carte vidéo, l'écran, la souris et le
clavier. Généralement configuré à l'aide d'un
outil fourni par l'éditeur, tel que sax2.
Planifier crontab -e Utilisez cette commande pour éditer le
l'exécution fichier crontab, afin de créer la spécification
périodique devant être utilisée par le démon cron.
d'une
commande
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Planifier /etc/anacrontab Editez le fichier afin de configurer
l'exécution d'un l'exécution d'un script selon une fréquence
script selon une particulière (voir man anacrontab pour plus
fréquence d'informations).
particulière
Planifier at <options> HEURE Exécuter un travail indiqué par <options> à
l'exécution une HEURE définie.
unique d'une
commande
Planifier une batch <options> <HEURE> Exécuter une commande lorsque la charge
commande moyenne tombe en deçà de 0,8,
éventuellement après une HEURE définie.
Monter un mount <opt> <per> Monter un système de fichiers sur le
système de <point_montage> périphérique <per> à <point_montage> avec
fichiers les options définies par <opt>.
Démonter un umount <per> Démonter le système de fichiers ou le
umount <point_montage>
système de périphérique.
fichiers
Nombre 65535
maximum d'ID
utilisateur
Récupérer le {lilo} Procédure permettant de récupérer le mot de
control-x
mot de passe passe root s'il est perdu. Un accès physique à
linux S
root passwd root l'ordinateur et à la console système est
nécessaire. Commencez par redémarrer
l'ordinateur, puis pendant l'amorçage LILO,
maintenez enfoncées les touches [Ctrl] + [x]
afin d'obtenir une invite et ordonnez à LILO
{grub}
c d'amorcer linux avec runlevel S.
kernel vmlinuz-2.4.9-
13 single La deuxième procédure utilise le programme
ro root=/dev/hda8 d'installation GRUB.
initrd /initrd-2.4.9-
13.img
boot
passwd root
Créer un nouvel useradd L'option –D seule affiche les valeurs par
utilisateur défaut.
–D avec d'autres options modifie les options
par défaut ; sans l'option –D, un groupe
principal est défini (par exemple –g).
Supprimer un userdel Supprimer un utilisateur et éventuellement
utilisateur tous les fichiers appartenant à l'utilisateur.
Modifier un usermod Modifier les informations /etc/password.
compte
utilisateur
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Créer un groupadd –g définit l'ID de groupe (par défaut, il s'agit
nouveau groupe de la première valeur disponible au-delà de
500).
Supprimer un groupdel Supprimer un groupe du système. Il n'est pas
groupe possible de supprimer un groupe principal
d'un utilisateur. Les fichiers appartenant au
groupe supprimé doivent être changés
manuellement avec chown.
Modifier les init <niveau_exécution> La commande init entraîne l'évaluation
niveaux des scripts rcN.d, pour le changement de
d'exécution niveau d'exécution. init 6 force un
redémarrage.
Synchroniser sync Forcer le cache de tampons et le cache de
les disques page à écrire tous les tampons "dirty" sur le
disque. Utilisé juste avant un redémarrage
afin d'éviter la corruption des disques.
Arrêter le shutdown <mode> <retard> Effectuer un arrêt flexible du système, arrêter
système Linux les processus, exécuter tous les scripts d'arrêt
et synchroniser les disques. Les modes sont
–r (redémarrage) et –h (interruption). Le
délai est un paramètre obligatoire (valeur en
secondes ou "now"). Une option permet
également d'afficher un message
d'avertissement d'arrêt.
Journaux dmesg Afficher les messages d'amorçage. Ce
d'erreurs journal est circulaire et des erreurs système
peuvent remplacer les informations
d'amorçage après un certain temps.
Configuration /etc/sysconfig/ Ce répertoire contient les scripts exécutés
IP réseau network-scripts/ dans le cadre de la séquence d'amorçage par
rc.sysinit.
Adresses IP des /etc/hosts Liste d'hôtes dont l'ordinateur a
hôtes connaissance. Doit inclure au minimum le
nom de l'ordinateur local et l'IP de bouclage.
Commutateur /etc/nsswitch.conf
de service de
noms
Paramètres sysctl -a | grep net Afficher tous les paramètres réseau définis
réseau pour le noyau.
Démon de routed
routage
Configuration ifconfig -a Afficher tous les périphériques réseau
des cartes actuellement configurés.
réseau
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Adresse IP modprobe ip_alias
secondaire ifconfig eth0:1 IP
Invite de /etc/issue Message que l'utilisateur voit lorsqu'il
connexion exécute l'invite de commande.
Liaison au /sbin/ypbind Rechercher et lier à un serveur NIS pour la
service YP/NIS résolution de noms et d'autres services.
Informations modinfo <options> Afficher des informations sur les modules du
sur le module <module> noyau : –l affiche la licence, –p les
paramètres et –d la description.
Répertorier les lsmod Afficher les modules actuellement chargés.
modules
Charger le insmod Charger un module chargeable.
module
Décharger un rmmod Décharger un module chargeable.
module
Installer un rpm -ivh package Installer (–i), en mode verbose (–v), avec
logiciel marques de progression (–hiérarchie).
Désinstaller des rpm -e package Supprimer le package (–e) ; la désinstallation
logiciels n'a pas lieu s'il existe des dépendances.
Répertorier les rpm -qa Interroger (–q), tout (–a), répertorier tous les
logiciels packages installés.
installés
Vérifier les rpm -V package Comparer les fichiers installés aux
logiciels informations de la base de données rpm.
installés
Répertorier tous rpm -ql package Répertorier tous les fichiers faisant partie
les fichiers d'un package.
Propriétaire du rpm -qf fichier Répertorier le package avec le nom de fichier
package complet.
Modèle uname -m Afficher le niveau de la CPU (par exemple
d'ordinateur i686).
Niveau du uname -r Afficher la version du noyau.
système
d'exploitation
Niveau runlevel Afficher le niveau d'exécution précédent et
d'exécution actuel.
Paramètres de sysctl -a Afficher les valeurs de tous les paramètres de
noyau noyau pouvant être définis.
Nombre sysctl fs.file-max Affiche le nombre maximum de descripteurs de
maximum de fichier par processus.
descripteurs de
fichier
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Valeurs des /etc/sysctl.conf Paramètres de noyau ; peuvent être
paramètres de réinitialisés au démarrage via leur définition
noyau dans ce fichier.
Modifier les echo <valeur> > Ecrire la nouvelle valeur d'un paramètre de
paramètres de </proc/<fichier> noyau dans le système de fichiers /proc.
noyau
echo 2147483648 Définir la taille maximale d'un segment de
>/proc/sys/kernel/shmmax mémoire partagée.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Performances Commandes Linux Description/Commentaires
du système
Surveillance des top Afficher les statistiques en temps réel du
performances système d'exploitation et des processus.
Activité du sar –<options> Options : –q affiche la file d'attente CPU, –u
système <intervalle> <nombre> l'utilisation de la CPU, –d l'activité des
périphériques, –n l'activité des périphériques
réseau, etc. (voir page man). L'intervalle est
exprimé en secondes.
Statistiques de vmstat <intervalle> L'intervalle est exprimé en secondes.
la mémoire <nombre>
virtuelle
Statistiques de cat /proc/meminfo Afficher l'utilisation instantanée de la
la mémoire mémoire virtuelle.
virtuelle
Statistiques du cat /proc/slabinfo Statistiques d'allocation slab du noyau :
cache de noyau objets de cache fréquemment alloués, tels
que inode, dentries et mémoires tampon E/S
asynchrones.
Statistiques iostat <option> Options : –d activité des périphériques, –c
relatives aux <intervalle> <nombre> activité de la CPU, –x statistiques étendues
E/S d'activité des disques. L'intervalle est
exprimé en secondes.
Statistiques mpstat –P <cpu> <nombre> Renvoie les statistiques CPU d'un processeur
multiprocesseur <intervalle> particulier ou de toutes les CPU d'un système
SMP.
RAM physique 64 Go (valeur théorique) Mémoire RAM physique maximale pour le
noyau (Red Hat Enterprise Linux AS 21 ne
prend en charge que 16 Go).
Dispositif de swapon -s Affiche les périphériques actuellement en
swap cours d'utilisation pour le swap. Le
périphérique de swap est désigné de manière
arbitraire lors de l'installation. Il peut être
changé ou un périphérique peut être ajouté.
Plusieurs périphériques de swap peuvent être
créés ; la taille de swap doit être au minimum
égale à la mémoire physique.
Afficher la taille free Afficher l'utilisation actuelle de la mémoire
de swap et de l'espace de swap.
Activer le swap swapon -a Activer le swap.
Blocs de disque df -k Valeur en ko ; utilisez –m pour les valeurs en
libres Mo.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Répertorier les cat /proc/devices Répertorier les périphériques connus du
périphériques système par numéro de version majeure et
mineure.
Informations cat Afficher les informations sur les disques
sur les disques /proc/scsi/scsi0/sda/ SCSI.
model
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Informations Commandes Linux Description/Commentaires
diverses sur le
système
NFS exporté /etc/exports Fichier de base de données non pris en
charge sur NFS.
Répertoires /var/lib/nfs/xtab
montés sur
client NFS
Taille maximale 2 To avec taille de bloc Avec ext3 et ext2, autres variables.
du système de 4 ko (sur noyau 32)
fichiers
Taille maximale 2 Go {taille de bloc La base de données Oracle peut créer des
des fichiers de 512 octets} fichiers jusqu'à 64 Go avec une taille de bloc
de base de données de 16 ko.
La taille des
fichiers ne peut Le noyau 32 bits limite les périphériques de
pas dépasser 2 To {taille de bloc fichiers et de blocs à 2 To.
celle du système de 4 ko}
de fichiers.
Taille de bloc dumpe2fs <périphérique> Transfère les propriétés du système de
du système de fichiers vers stdout.
fichiers
Table du /etc/fstab Monte ces systèmes de fichiers au
système de démarrage.
fichiers
Types de ext3
système de
fichiers du reiserfs
journal
Libellé de fdisk -l fdisk n'est pas disponible sur toutes les
disque distributions.
Etendre le resize2fs L'extension d'un système de fichiers
système de resize_reiserfs s'applique uniquement à certains types de
fichiers système de fichiers.
Sauvegarde tar cvf /dev/rst0 / Créer une sauvegarde de la racine/du
système de fichiers.
Restaurer tar xvf /dev/rst0 Restaurer la racine/le système de fichiers.
Préparer les /sbin/lilo Doit être exécuté après toute modification de
volumes /etc/lilo.conf afin de propager les
d'amorçage modifications vers le programme de
chargement d'amorçage.
Script de /etc/rc.d/rc
démarrage
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Noyau /boot/vmlinuz
Bits noyau getconf WORD_BIT Appel POSIX afin d'obtenir des informations
sur le noyau. Il existe de nombreuses autres
variables en plus de WORD_BIT.
Amorçage {lilo} Utiliser la fonctionnalité LILO.
utilisateur control-x
linux S
unique
{grub}
c Utiliser le programme d'installation GRUB.
kernel vmlinuz-2.4.9-
13 single
ro root=/dev/hda8
initrd /initrd-2.4.9-
13.img
boot
Gestion des /etc/sysconfig/clock
fuseaux horaires
Répertoire SW /var/lib/rpm Répertoire dans lequel est conservée la base
de données rpm.
Périphériques /dev Ce répertoire contient tous les fichiers de
périphérique.
CPU cat /proc/cpuinfo Affiche les informations statiques sur la
CPU.
Disque entier /dev/sda Nom du périphérique.
CDROM /dev/cdrom Généralement monté sur /mnt/cdrom.
Type de fichier iso9660
CD-ROM
Lecteur de /dev/fd0 Généralement monté sur /mnt/floppy.
disquettes
Informations /proc Le système de fichiers /proc est un système
système de fichiers basé sur la mémoire, qui permet
l'accès aux paramètres et statistiques de
noyau.
Compiler et lier make –f <fichier> Utilisez un fichier make <fichier> pour
un exécutable <commande> déterminer quelles parties d'un grand
programme doivent être recompilées, et
exécuter les commandes requises pour
compiler, lier et préparer l'exécutable en vue
de son utilisation.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
LVM Linux (UnitedLinux) Description/Commentaires
LVM Gestionnaire de Ce package n'est pas fourni par Red Hat
volumes logiques Enterprise Linux AS 2.1 et ne peut pas
être ajouté sans affecter le noyau. La
prise en charge du noyau est fournie dans
United Linux.
Concepts LVM extents logiques Un volume logique est constitué d'extents
(ensembles de blocs contigus) logiques.
volume logique Ensemble d'extents logiques provenant
d'un groupe de volumes et présenté au
système d'exploitation en tant que volume
de disque. Ces extents peuvent être
répartis sur plusieurs disques.
groupe de volumes Ensemble de partitions de disque
physique créées par fdisk ou similaire,
initialisées avec pvcreate, puis
regroupées en un volume physique avec
vgcreate.
Afficher un groupe de vgdisplay -v
volumes
Modifier un volume pvchange
physique
Préparer un disque pvcreate
physique
Afficher un volume pvdisplay
physique
Supprimer un disque vgreduce
d'un groupe de
volumes
Déplacer des volumes pvmove
logiques vers un autre
volume physique
Créer un groupe de vgcreate
volumes
Supprimer un groupe vgremove
de volumes
Disponibilité des vgchange
groupes de volumes
Restaurer un groupe vgcfgrestore
de volumes
Exporter un groupe de vgexport
volumes
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Importer un groupe de vgimport
volumes
Afficher un groupe de vgscan
volumes
Modifier les lvchange
caractéristiques d'un
volume logique
Afficher un volume lvdisplay
logique
Créer un volume lvcreate
logique
Etendre un volume lvextend
logique
Réduire un volume lvreduce
logique
Supprimer un volume lvremove
logique
Créer des volumes lvcreate -i 3 -I 64
répartis
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
__________________________
Annexe D
Syntaxe des instructions SQL
__________________________
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instructions SQL
Cet extrait du manuel Oracle Database SQL Quick Reference présente la syntaxe des instructions
SQL Oracle. Ce sont les instructions SQL qui permettent aux programmes et aux utilisateurs
d'accéder aux données d'une base Oracle.
Le tableau 1 illustre chaque instruction SQL et la syntaxe associée. Le tableau 2 illustre la
syntaxe des sous-clauses du tableau 1.
Reportez-vous également au manuel Oracle Database SQL Reference pour des informations
détaillées sur les instructions SQL Oracle.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
{ level_clause
| hierarchy_clause
| attribute_clause
| extended_attribute_clause
}
]...
| DROP
{ LEVEL level
[ RESTRICT | CASCADE ]
| HIERARCHY hierarchy
| ATTRIBUTE attribute
[ LEVEL level [ COLUMN column
[, COLUMN column ]... ]
}
[ DROP
{ LEVEL level
[ RESTRICT | CASCADE ]
| HIERARCHY hierarchy
| ATTRIBUTE attribute
[ LEVEL level [ COLUMN column
[, COLUMN column ]... ]
}
]...
| COMPILE
} ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
| PARAMETERS ('ODCI_parameters')
| { ENABLE | DISABLE }
| UNUSABLE
| RENAME TO new_name
| COALESCE
| { MONITORING | NOMONITORING } USAGE
| UPDATE BLOCK REFERENCES
| alter_index_partitioning
} ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
[ { ENABLE | DISABLE } QUERY REWRITE
| COMPILE
| CONSIDER FRESH
] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
| { ENABLE | DISABLE }
]... ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
| SHRINK [ TO integer [ K | M ] ]
};
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
ALTER TABLE ALTER TABLE [ schema. ]table
[ alter_table_properties
| column_clauses
| constraint_clauses
| alter_table_partitioning
| alter_external_table_clauses
| move_table_clause
]
[ enable_disable_clause
| { ENABLE | DISABLE }
{ TABLE LOCK | ALL TRIGGERS }
[ enable_disable_clause
| { ENABLE | DISABLE }
{ TABLE LOCK | ALL TRIGGERS }
]...
] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
[ dependent_handling_clause ]
} ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
| ACCOUNT { LOCK | UNLOCK }
}
]...
| user [, user ]... proxy_clause ;
ANALYZE ANALYZE
{ TABLE [ schema. ]table
[ PARTITION (partition)
| SUBPARTITION (subpartition)
]
| INDEX [ schema. ]index
[ PARTITION (partition)
| SUBPARTITION (subpartition)
]
| CLUSTER [ schema. ]cluster
}
{ validation_clauses
| LIST CHAINED ROWS [ into_clause ]
| DELETE [ SYSTEM ] STATISTICS
| compute_statistics_clause
| estimate_statistics_clause
} ;
AUDIT AUDIT
{ sql_statement_clause | schema_object_clause }
[ BY { SESSION | ACCESS } ]
[ WHENEVER [ NOT ] SUCCESSFUL ] ;
CALL CALL
{ routine_clause
| object_access_expression
}
[ INTO :host_variable
[ [ INDICATOR ] :indicator_variable ] ] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
COMMENT COMMENT ON
{TABLE [ schema. ]
{ table | view }
| COLOMN [ schema. ]
{ table | view | materialized_view. } colomn
| OPERATOR [ schema. ] operator
| INDEXTYPE [ schema. ] indextype
| MATERIALIZED VIEW materialized_view
}
IS 'text'
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
[ logfile_clause ]
{ RESETLOGS | NORESETLOGS }
[ DATAFILE file_specification
[, file_specification ]... ]
[ { MAXLOGFILES integer
| MAXLOGMEMBERS integer
| MAXLOGHISTORY integer
| MAXDATAFILES integer
| MAXINSTANCES integer
| { ARCHIVELOG | NOARCHIVELOG }
| FORCE LOGGING
}
[ MAXLOGFILES integer
| MAXLOGMEMBERS integer
| MAXLOGHISTORY integer
| MAXDATAFILES integer
| MAXINSTANCES integer
| { ARCHIVELOG | NOARCHIVELOG }
| FORCE LOGGING
]...
]
[ character_set_clause ] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
| attribute_clause
| extended_attribute_clause
}
[ hierarchy_clause
| attribute_clause
| extended_attribute_clause
]... ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
CREATE INDEXTYPE CREATE [ OR REPLACE ] INDEXTYPE
[ schema. ]indextype FOR
[ schema. ]operator (paramater_type
[, paramater_type ]...)
[, [ schema. ]operator (paramater_type
[, paramater_type ]...)
]...
using_type_clause ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
[ FOR UPDATE ]
[ { DISABLE | ENABLE }
QUERY REWRITE
]
AS subquery ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
CREATE PFILE CREATE PFILE [= 'pfile_name' ]
FROM SPFILE [= 'spfile_name'] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
CREATE SEQUENCE CREATE SEQUENCE [ schema. ]sequence
[ { INCREMENT BY | START WITH } integer
| { MAXVALUE integer | NOMAXVALUE }
| { MINVALUE integer | NOMINVALUE }
| { CYCLE | NOCYCLE }
| { CACHE integer | NOCACHE }
| { ORDER | NOORDER }
]
[ { INCREMENT BY | START WITH } integer
| { MAXVALUE integer | NOMAXVALUE }
| { MINVALUE integer | NOMINVALUE }
| { CYCLE | NOCYCLE }
| { CACHE integer | NOCACHE }
| { ORDER | NOORDER }
]... ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
CREATE TYPE BODY CREATE [ OR REPLACE ] TYPE BODY [ schema. ]type_name
{ IS | AS }
{ subprogram_declaration
| map_order_func_declaration
}
[; { subprogram_declaration
| map_order_func_declaration
}
]...
END ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
| out_of_line_constraint
[, alias [ inline_constraint
[ inline_constraint ]... ]
| out_of_line_constraint
]...
)
| object_view_clause
| XMLType_view_clause
]
AS subquery [ subquery_restriction_clause ] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
DROP DISKGROUP DROP DISKGROUP diskgroup_name
[ { INCLUDING | EXCLUDING }
CONTENTS
] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
DROP TABLE DROP TABLE [ schema. ]table
[ CASCADE CONSTRAINTS ]
[ PURGE ] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
LOCK TABLE LOCK TABLE
[ schema. ] { table | view }
[ { PARTITION (partition)
| SUBPARTITION (subpartition)
}
| @ dblink
]
[, [ schema. ] { table | view }
[ { PARTITION (partition)
| SUBPARTITION (subpartition)
}
| @ dblink
]
]...
IN lockmode MODE
NOAUDIT NOAUDIT
{ sql_statement_clause
[, sql_statement_clause ]...
| schema_object_clause
[, schema_object_clause ]...
}
[ WHENEVER [ NOT ] SUCCESSFUL ] ;
PURGE PURGE
{ { TABLE table
| INDEX index
}
| { RECYCLEBIN | DBA_RECYCLEBIN }
| TABLESPACE tablespace
[ USER user ]
} ;
DO NOT IMPORT AS INSET problem importing file, locks
up Fr
RENAME RENAME old_name
TO new_name ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Instruction SQL Syntaxe
ROLLBACK ROLLBACK [ WORK ]
TRUNCATE TRUNCATE
{ TABLE [ schema. ]table
[ { PRESERVE | PURGE } MATERIALIZED VIEW LOG ]
| CLUSTER [ schema. ]cluster
}
[ { DROP | REUSE } STORAGE ] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Tableau 2 : Syntaxe des sous-clauses
Sous-clause Syntaxe
activate_standby_db_clause ACTIVATE
[ PHYSICAL | LOGICAL ]
STANDBY DATABASE
[ SKIP [ STANDBY LOGFILE ] ]
add_column_clause ADD
( column datatype
[ DEFAULT expr ]
[ { inline_constraint
[ inline_constraint ]...
| inline_ref_constraint
}
]
[, column datatype
[ DEFAULT expr ]
[ { inline_constraint
[ inline_constraint ]...
| inline_ref_constraint
}
]
]...
)
[ column_properties ]
add_disk_clause ADD
[ FAILGROUP failgroup_name ]
DISK qualified_disk_clause
[, qualified_disk_clause ]...
[ [ FAILGROUP failgroup_name ]
DISK qualified_disk_clause
[, qualified_disk_clause ]...
]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
add_hash_subpartition ADD subpartition_spec
[ update_index_clauses ]
[ parallel_clause ]
add_table_partition { add_range_partition_clause
| add_hash_partition_clause
| add_list_partition_clause
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ SIZE size_clause
| DATAFILE 'filename'
| INSTANCE integer
]...
)
]
alter_datafile_clause DATAFILE
{ 'filename' | filenumber }
[, 'filename' | filenumber ]...
}
{ ONLINE
| OFFLINE [ FOR DROP ]
| RESIZE size_clause
| autoextend_clause
| END BACKUP
}
alter_external_table_clauses { add_column_clause
| modify_column_clauses
| drop_column_clause
| parallel_clause
| external_data_properties
| REJECT LIMIT { integer | UNLIMITED }
| PROJECT COLUMN { ALL | REFERENCED }
}
[ add_column_clause
| modify_column_clauses
| drop_column_clause
| parallel_clause
| external_data_properties
| REJECT LIMIT { integer | UNLIMITED }
| PROJECT COLUMN { ALL | REFERENCED }
]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
alter_index_partitioning { modify_index_default_attrs
| add_hash_index_partition
| modify_index_partition
| rename_index_partition
| drop_index_partition
| split_index_partition
| coalesce_index_partition
| modify_index_subpartition
}
alter_iot_clauses { index_org_table_clause
| alter_overflow_clause
| alter_mapping_table_clauses
| COALESCE
}
alter_mv_refresh REFRESH
{ { FAST | COMPLETE | FORCE }
| ON { DEMAND | COMMIT }
| { START WITH | NEXT } date
| WITH PRIMARY KEY
| USING
{ DEFAULT MASTER ROLLBACK SEGMENT
| MASTER ROLLBACK SEGMENT
rollback_segment
}
| USING { ENFORCED | TRUSTED } CONSTRAINTS
}
alter_overflow_clause { OVERFLOW
{ allocate_extent_clause
| deallocate_unused_clause
}
[ allocate_extent_clause
| deallocate_unused_clause
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
]...
| add_overflow_clause
}
alter_system_reset_clause parameter_name
[ SCOPE = { MEMORY | SPFILE | BOTH } ]
SID = 'sid'
alter_system_set_clause parameter_name =
parameter_value [, parameter_value ]...
[ COMMENT 'text' ]
[ DEFERRED ]
[ SCOPE = { MEMORY | SPFILE | BOTH } ]
[ SID = { 'sid' | * } ]
alter_table_partitioning { modify_table_default_attrs
| set_subpartition_template
| modify_table_partition
| modify_table_subpartition
| move_table_partition
| move_table_subpartition
| add_table_partition
| coalesce_table_partition
| drop_table_partition
| drop_table_subpartition
| rename_partition_subpart
| truncate_partition_subpart
| split_table_partition
| split_table_subpartition
| merge_table_partitions
| merge_table_subpartitions
| exchange_partition_subpart
}
alter_table_properties { { physical_attributes_clause
| logging_clause
| table_compression
| supplemental_table_logging
| allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
| { CACHE | NOCACHE }
| upgrade_table_clause
| records_per_block_clause
| parallel_clause
| row_movement_clause
}
[ physical_attributes_clause
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
| logging_clause
| table_compression
| supplemental_table_logging
| allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
| { CACHE | NOCACHE }
| upgrade_table_clause
| records_per_block_clause
| parallel_clause
| row_movement_clause
]...
| RENAME TO new_table_name
}
[ alter_iot_clauses ]
alter_tempfile_clause TEMPFILE
{ 'filename' [, 'filename' ]...
| filenumber [, filenumber ]...
}
{ RESIZE size_clause
| autoextend_clause
| DROP [ INCLUDING DATAFILES ]
| ONLINE
| OFFLINE
}
analytic_clause [ query_partition_clause ]
[ order_by_clause [ windowing_clause ] ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
array_DML_clause [ WITH | WITHOUT ]
ARRAY DML
[ ([ schema. ]type
[, [ schema. ]varray_type ])
[, ([ schema. ]type
[, [ schema. ]varray_type ])...
]
autoextend_clause AUTOEXTEND
{ OFF
| ON [ NEXT size_clause ]
[ maxsize_clause ]
}
binding_clause BINDING
(parameter_type [, parameter_type ]...)
RETURN return_type
[ implementation_clause ]
using_function_clause
[, (parameter_type [, parameter_type ]...)
RETURN return_type
[ implementation_clause ]
using_function_clause
]...
bitmap_join_index_clause [ schema.]table
( [ [ schema. ]table. | t_alias. ]column
[ ASC | DESC ]
[, [ [ schema. ]table. | t_alias. ]column
[ ASC | DESC ]
]...
)
FROM [ schema. ]table [ t_alias ]
[, [ schema. ]table [ t_alias ]
]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
WHERE condition
[ local_partitioned_index ]
index_attributes
check_diskgroup_clauses CHECK
{ ALL
| DISK
disk_name
[, disk_name ]...
| DISKS IN FAILGROUP
failgroup_name
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[, failgroup_name ]...
| FILE
filename
[, filename ]...
}
[ CHECK
{ ALL
| DISK
disk_name
[, disk_name ]...
| DISKS IN FAILGROUP
failgroup_name
[, failgroup_name ]...
| FILE
filename
[, filename ]...
}
]...
[ REPAIR | NOREPAIR ]
column_clauses { { add_column_clause
| modify_column_clause
| drop_column_clause
}
[ add_column_clause
| modify_column_clause
| drop_column_clause
]...
| rename_column_clause
| modify_collection_retrieval
[ modify_collection_retrieval ]...
| modify_LOB_storage_clause
| alter_varray_col_properties
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
column_properties { object_type_col_properties
| nested_table_col_properties
| { varray_col_properties | LOB_storage_clause }
[ (LOB_partition_storage
[, LOB_partition_storage ]...
)
]
| XMLType_column_properties
}
[ { object_type_col_properties
| nested_table_col_properties
| { varray_col_properties |
LOB_storage_clause }
[ (LOB_partition_storage
[, LOB_partition_storage ]...
)
]
| XMLType_column_properties
}
]...
compile_type_clause COMPILE
[ DEBUG ]
[ SPECIFICATION | BODY ]
[ compiler_parameters_clause
[ compiler_parameters_clause ] ... ]
[ REUSE SETTINGS ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
compute_statistics_clause COMPUTE [ SYSTEM ] STATISTICS [ for_clause ]
constraint { inline_constraint
| out_of_line_constraint
| inline_ref_constraint
| out_of_line_ref_constraint
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ [ NOT ] DEFERRABLE ]
]
[ RELY | NORELY ]
[ using_index_clause ]
[ ENABLE | DISABLE ]
[ VALIDATE | NOVALIDATE ]
[ exceptions_clause ]
constructor_declaration [ FINAL ]
[ INSTANTIABLE ]
CONSTRUCTOR FUNCTION datatype
[ [ SELF IN OUT datatype, ]
parameter datatype
[, parameter datatype ]...
]
RETURN SELF AS RESULT
{ IS | AS } { pl/sql_block | call_spec }
constructor_spec [ FINAL ]
[ INSTANTIABLE ]
CONSTRUCTOR FUNCTION datatype
[ ([ SELF IN OUT datatype, ]
parameter datatype
[, parameter datatype ]...
)
]
RETURN SELF AS RESULT
[ { IS | AS } call_spec ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
create_incomplete_type CREATE [ OR REPLACE ]
TYPE [ schema. ]type_name ;
create_mv_refresh { REFRESH
{ { FAST | COMPLETE | FORCE }
| ON { DEMAND | COMMIT }
| { START WITH | NEXT } date
| WITH { PRIMARY KEY | ROWID }
| USING
{ DEFAULT [ MASTER | LOCAL ]
ROLLBACK SEGMENT
| [ MASTER | LOCAL ]
ROLLBACK SEGMENT rollback_segment
}
[ DEFAULT [ MASTER | LOCAL ]
ROLLBACK SEGMENT
| [ MASTER | LOCAL ]
ROLLBACK SEGMENT rollback_segment
]...
| USING
{ ENFORCED | TRUSTED }
CONSTRAINTS
}
[ { FAST | COMPLETE | FORCE }
| ON { DEMAND | COMMIT }
| { START WITH | NEXT } date
| WITH { PRIMARY KEY | ROWID }
| USING
{ DEFAULT [ MASTER | LOCAL ]
ROLLBACK SEGMENT
| [ MASTER | LOCAL ]
ROLLBACK SEGMENT rollback_segment
}
[ DEFAULT [ MASTER | LOCAL ]
ROLLBACK SEGMENT
| [ MASTER | LOCAL ]
ROLLBACK SEGMENT
rollback_segment
]...
| USING
{ ENFORCED | TRUSTED }
CONSTRAINTS
]...
| NEVER REFRESH
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
create_object_type CREATE [ OR REPLACE ]
TYPE [ schema. ]type_name
[ OID 'object_identifier' ]
[ invoker_rights_clause ]
{ { IS | AS } OBJECT
| UNDER [schema.]supertype
}
[ sqlj_object_type ]
[ ( attribute datatype
[ sqlj_object_type_attr ]
[, attribute datatype
[ sqlj_object_type_attr ]...
[, element_spec
[, element_spec ]...
]
)
]
[ [ NOT ] FINAL ]
[ [ NOT ] INSTANTIABLE ] ;
database_logging_clauses { LOGFILE
[ GROUP integer ] file_specification
[, [ GROUP integer ] file_specification
]...
| MAXLOGFILES integer
| MAXLOGMEMBERS integer
| MAXLOGHISTORY integer
| { ARCHIVELOG | NOARCHIVELOG }
| FORCE LOGGING
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
'filename' [, 'filename' ]...
| { DATAFILE | TEMPFILE } { ONLINE | OFFLINE }
}
datafile_tempfile_spec [ 'filename' ]
[ SIZE size_clause ]
[ REUSE ]
[ autoextend_clause ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
dependent_handling_clause { INVALIDATE
| CASCADE [ { [ NOT ] INCLUDING TABLE DATA
| CONVERT TO SUBSTITUTABLE
}
]
[ [FORCE ] exceptions_clause ]
}
disk_clauses { diskgroup_name
{ add_disk_clause
| drop_disk_clauses
| resize_disk_clauses
}
| { diskgroup_name | ALL }
undrop_disk_clause
}
diskgroup_availability { MOUNT
| DISMOUNT [ FORCE | NOFORCE ]
}
diskgroup_clauses { diskgroup_name
{ rebalance_diskgroup_clause
| check_diskgroup_clauses
| diskgroup_template_clauses
| diskgroup_directory_clauses
| diskgroup_alias_clauses
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
| drop_diskgroup_file_clause
}
| { diskgroup_name | ALL }
diskgroup_availability
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
dml_table_expression_clause { [ schema. ]
{ table
[ { PARTITION (partition)
| SUBPARTITION (subpartition)
}
| @ dblink
]
| { view | materialized view } [ @ dblink ]
}
| ( subquery [ subquery_restriction_clause ] )
| table_collection_expression
}
drop_constraint_clause DROP
{ { PRIMARY KEY
| UNIQUE (column [, column ]...)
}
[ CASCADE ]
[ { KEEP | DROP } INDEX ]
| CONSTRAINT constraint
[ CASCADE ]
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
drop_disk_clauses DROP
{ DISK
disk_name [ FORCE | NOFORCE ]
[, disk_name [ FORCE | NOFORCE ] ]...
| DISKS IN FAILGROUP
failgroup_name [ FORCE | NOFORCE ]
[, failgroup_name [ FORCE | NOFORCE ] ]...
}
element_spec [ inheritance_clauses ]
{ subprogram_spec
| constructor_spec
| map_order_function_spec
}
[ subprogram_clause
| constructor_spec
| map_order_function_spec
]...
[, pragma_clause ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ exceptions_clause ]
[ CASCADE ]
[ { KEEP | DROP } INDEX ]
expr { simple_expression
| compound_expression
| case_expression
| cursor_expression
| datetime_expression
| function_expression
| interval_expression
| object_access_expression
| scalar_subquery_expression
| model_expression
| type_constructor_expression
| variable_expression
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
DETERMINES { dependent_column
| (dependent_column
[, dependent_column ]...
)
]...
file_specification { datafile_tempfile_spec
| diskgroup_file_spec
| redo_log_file_spec
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
]
AS OF { SCN | TIMESTAMP } expr
for_clause FOR
{ TABLE
| ALL [ INDEXED ] COLUMNS [ SIZE integer ]
| COLUMNS [ SIZE integer ]
{ column | attribute } [ SIZE integer ]
[ { column | attribute }
[ SIZE integer ]
]...
| ALL [ LOCAL ] INDEXES
}
[ FOR
{ TABLE
| ALL [ INDEXED ] COLUMNS
[ SIZE integer ]
| COLUMNS [ SIZE integer ]
{ column | attribute } [ SIZE integer ]
[ { column | attribute }
[ SIZE integer ]
]...
| ALL [ LOCAL ] INDEXES
}
]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
fully_qualified_file_name +diskgroup_name/db_name/file_type/
file_type_tag.filenumber.incarnation_number
function_association { FUNCTIONS
[ schema. ]function [, [ schema. ]function
]...
| PACKAGES
[ schema. ]package [, [ schema. ]package
]...
| TYPES
[ schema. ]type [, [ schema. ]type ]...
| INDEXES
[ schema. ]index [, [ schema. ]index ]...
| INDEXTYPES
[ schema. ]indextype [, [ schema.
]indextype ]...
}
{ using_statistics_type
| { default_cost_clause
[, default_selectivity_clause ]
| default_selectivity_clause
[, default_cost_clause ]
}
}
general_recovery RECOVER
[ AUTOMATIC ]
[ FROM 'location' ]
{ { full_database_recovery
| partial_database_recovery
| LOGFILE 'filename'
}
[ { TEST
| ALLOW integer CORRUPTION
| parallel_clause
}
[ TEST
| ALLOW integer CORRUPTION
| parallel_clause
]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
]
| CONTINUE [ DEFAULT ]
| CANCEL
}
grant_system_privileges { system_privilege
| role
| ALL PRIVILEGES
}
[, { system_privilege
| role
| ALL PRIVILEGES
}
]...
TO grantee_clause
[ IDENTIFIED BY password ]
[ WITH ADMIN OPTION ]
group_by_clause GROUP BY
{ expr
| rollup_cube_clause
| grouping_sets_clause
}
[, { expr
| rollup_cube_clause
| grouping_sets_clause
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
]...
[ HAVING condition ]
implementation_clause { ANCILLARY TO
primary_operator (parameter_type
[, parameter_type ]...)
[, primary_operator ( parameter_type
[, parameter_type
]...)
]...
| context_clause
}
index_attributes [ { physical_attributes_clause
| logging_clause
| ONLINE
| COMPUTE STATISTICS
| TABLESPACE { tablespace | DEFAULT }
| key_compression
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
| { SORT | NOSORT }
| REVERSE
| parallel_clause
}
[ physical_attributes_clause
| logging_clause
| ONLINE
| COMPUTE STATISTICS
| TABLESPACE { tablespace | DEFAULT }
| key_compression
| { SORT | NOSORT }
| REVERSE
| parallel_clause
]...
]
index_org_table_clause [ { mapping_table_clause
| PCTTHRESHOLD integer
| key_compression
}
[ mapping_table_clause
| PCTTHRESHOLD integer
| key_compression
]...
]
[ index_org_overflow_clause ]
index_partition_description PARTITION
[ partition
[ { segment_attributes_clause
| key_compression
}
[ segment_attributes_clause
| key_compression
]...
]
]
index_properties [ { { global_partitioned_index
| local_partitioned_index
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
}
| index_attributes
}
[ { { global_partitioned_index
| local_partitioned_index
}
| index_attributes
}
]...
| domain_index_clause
]
individual_hash_partitions (PARTITION
[ partition partitioning_storage_clause ]
[, PARTITION
[ partition partitioning_storage_clause
]
]...
)
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
inner_cross_join_clause table_reference
{ [ INNER ] JOIN table_reference
{ ON condition
| USING (column [, column ]...)
}
| { CROSS
| NATURAL [ INNER ]
}
JOIN table_reference
}
interval_day_to_second INTERVAL
'{ integer | integer time_expr | time_expr }'
{ { DAY | HOUR | MINUTE }
[ (leading_precision) ]
| SECOND
[ (leading_precision
[, fractional_seconds_precision ]
)
]
}
[ TO { DAY | HOUR | MINUTE | SECOND
[ (fractional_seconds_precision) ]
}
]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
level_clause LEVEL level IS
{ level_table.level_column
| (level_table.level_column
[, level_table.level_column ]...
)
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
{ LOB_storage_clause | varray_col_properties
}
[ LOB_storage_clause
| varray_col_properties
]...
)
]
LOB_storage_clause LOB
{ (LOB_item [, LOB_item ]...)
STORE AS (LOB_parameters)
| (LOB_item)
STORE AS
{ LOB_segname (LOB_parameters)
| LOB_segname
| (LOB_parameters)
}
}
local_partitioned_index LOCAL
[ on_range_partitioned_table
| on_list_partitioned_table
| on_hash_partitioned_table
| on_comp_partitioned_table
]
logfile_clause LOGFILE
[ GROUP integer ] file_specification
[, [ GROUP integer ] file_specification ]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
logging_clause { LOGGING | NOLOGGING }
materialized_view_props [ column_properties ]
[ table_partitioning_clauses ]
[ CACHE | NOCACHE ]
[ parallel_clause ]
[ build_clause ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[, column = { expr | DEFAULT } ]...
[ where_clause ]
[ DELETE where_clause ]
model_clause MODEL
[ cell_reference_options ]
[ return_rows_clause ]
[ reference_model ]
[ reference_model ]...
main_model
model_rules_clause RULES
[ UPSERT | UPDATE ]
[ { AUTOMATIC | SEQUENTIAL } ORDER ]
[ ITERATE (number) [ UNTIL (condition) ] ]
([ UPDATE | UPSERT ]
cell_assignment [ order_by_clause ] = expr
[ [ UPDATE | UPSERT ]
cell_assignment [ order_by_clause ] = expr
]...
)
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
modify_column_clauses MODIFY { modify_col_properties
| modify_col_substitutable
}
modify_hash_subpartition { { allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
| { LOB LOB_item
| VARRAY varray
}
modify_LOB_parameters
[ { LOB LOB_item
| VARRAY varray
}
modify_LOB_parameters
]...
}
| [ REBUILD ] UNUSABLE LOCAL INDEXES
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
| COALESCE
| UPDATE BLOCK REFERENCES
| UNUSABLE
}
modify_list_subpartition { allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
| { LOB LOB_item | VARRAY varray }
modify_LOB_parameters
[ { LOB LOB_item | VARRAY varray }
modify_LOB_parameters
] ...
| [ REBUILD ] UNUSABLE LOCAL INDEXES
| { ADD | DROP } VALUES (value[, value ]...)
}
modify_LOB_parameters { storage_clause
| PCTVERSION integer
| RETENTION
| FREEPOOLS integer
| REBUILD FREEPOOLS
| { CACHE
| { NOCACHE | CACHE READS } [ logging_clause ]
}
| allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
}
[ storage_clause
| PCTVERSION integer
| RETENTION
| FREEPOOLS integer
| REBUILD FREEPOOLS
| { CACHE
| { NOCACHE | CACHE READS } [ logging_clause
]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
}
| allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
]...
modify_table_partition { modify_range_partition
| modify_hash_partition
| modify_list_partition
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
move_table_clause MOVE [ ONLINE ]
[ segment_attributes_clause ]
[ table_compression ]
[ index_org_table_clause ]
[ { LOB_storage_clause
| varray_col_properties
}
[ { LOB_storage_clause
| varray_col_properties
}
]...
]
[ parallel_clause ]
multiset_except nested_table1
MULTISET EXCEPT [ ALL | DISTINCT ]
nested_table2
multiset_intersect nested_table1
MULTISET INTERSECT [ ALL | DISTINCT ]
nested_table2
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
multiset_union nested_table1
MULTISET UNION [ ALL | DISTINCT ]
nested_table2
number [ + | - ]
{ digit [ digit ]... [ . ] [ digit [ digit ]...
]
| . digit [ digit ]...
}
[ e [ + | - ] digit [ digit ]... ]
[ f | d ]
numeric_file_name +diskgroup_name.filenumber.incarnation_number
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ OID_index_clause ]
[ physical_properties ]
[ table_properties ] ;
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[, PARTITION
[ partition
[ { segment_attribute_clause
| key_compression
}
[ segment_attribute_clause
| key_compression
]...
]
[ index_subpartition_clause ]
]...
]
)
on_list_partitioned_table ( PARTITION
[ partition
[ { segment_attributes_clause
| key_compression
}
[ segment_attributes_clause
| key_compression
]...
]
]
[, PARTITION
[ partition
[ { segment_attributes_clause
| key_compression
}
[ segment_attributes_clause
| key_compression
]...
]
]
]...
)
on_object_clause { schema.object
| { DIRECTORY directory_name
| JAVA { SOURCE | RESOURCE } [ schema. ]object
}
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
on_range_partitioned_table ( PARTITION
[ partition
[ { segment_attributes_clause
| key_compression
}
[ segment_attributes_clause
| key_compression
]...
]
]
[, PARTITION
[ partition
[ { segment_attributes_clause
| key_compression
}
[ segment_attributes_clause
| key_compression
]...
]
]
]...
)
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
outer_join_clause table_reference
[ query_partition_clause ]
{ outer_join_type JOIN
| NATURAL [ outer_join_type ] JOIN
}
table_reference [ query_partition_clause ]
[ ON condition
| USING ( column [, column ]...)
]
parallel_enable_clause PARALLEL_ENABLE
[ (PARTITION argument BY
{ ANY
| { HASH | RANGE } (column [, column ]...)
}
)
[ streaming_clause ]
]
partition_attributes [ { physical_attributes_clause
| logging_clause
| allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
}
[ physical_attributes_clause
| logging_clause
| allocate_extent_clause
| deallocate_unused_clause
| shrink_clause
]...
]
[ OVERFLOW
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
{ physical_attributes_clause
| logging_clause
| allocate_extent_clause
| deallocate_unused_clause
}
[ physical_attributes_clause
| logging_clause
| allocate_extent_clause
| deallocate_unused_clause
]...
]
[ table_compression ]
[ { LOB LOB_item | VARRAY varray }
modify_LOB_parameters
[ { LOB LOB_item | VARRAY varray }
modify_LOB_parameters
]...
]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
password_parameters { { FAILED_LOGIN_ATTEMPTS
| PASSWORD_LIFE_TIME
| PASSWORD_REUSE_TIME
| PASSWORD_REUSE_MAX
| PASSWORD_LOCK_TIME
| PASSWORD_GRACE_TIME
}
{ expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
{ function | NULL | DEFAULT }
}
physical_properties { segment_attributes_clause
[ table_compression ]
| ORGANIZATION
{ HEAP
[ segment_attributes_clause ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ table_compression ]
| INDEX
[ segment_attributes_clause ]
index_org_table_clause
| EXTERNAL
external_table_clause
}
| CLUSTER cluster (column [, column ]...)
}
qualified_disk_clause search_string
[ NAME disk_name ]
[ SIZE size_clause ]
[ FORCE | NOFORCE ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
qualified_template_clause template_name
ATTRIBUTES
([ MIRROR | UNPROTECTED ]
[ FINE | COARSE ]
)
query_partition_clause PARTITION BY
{ value_expr[, value_expr ]...
| ( value_expr[, value_expr ]... )
query_table_expression { query_name
| [ schema. ]
{ table [ { PARTITION (partition)
| SUBPARTITION (subpartition)
}
[ sample_clause ]
| [ sample_clause ]
| @ dblink
]
| { view | materialized view } [ @ dblink ]
}
| (subquery [ subquery_restriction_clause ])
| table_collection_expression
}
rebuild_clause REBUILD
[ { PARTITION partition
| SUBPARTITION subpartition
}
| { REVERSE | NOREVERSE }
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
]
[ parallel_clause
| TABLESPACE tablespace
| PARAMETERS ('ODCI_parameters')
| ONLINE
| COMPUTE STATISTICS
| physical_attributes_clause
| key_compression
| logging_clause
]
[ parallel_clause
| TABLESPACE tablespace
| PARAMETERS ('ODCI_parameters')
| ONLINE
| COMPUTE STATISTICS
| physical_attributes_clause
| key_compression
| logging_clause
]...
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
recovery_clauses { general_recovery
| managed_standby_recovery
| BEGIN BACKUP
| END BACKUP
}
redo_log_file_spec [ 'filename'
| ('filename' [, 'filename' ]...)
]
[ SIZE size_clause ]
[ REUSE ]
referencing_clause REFERENCING
{ OLD [ AS ] old
| NEW [ AS ] new
| PARENT [ AS ] parent }
[ OLD [ AS ] old
| NEW [ AS ] new
| PARENT [ AS ] parent ]...
register_logfile_clause REGISTER
[ OR REPLACE ]
[ PHYSICAL | LOGICAL ]
LOGFILE
[ file_specification
[, file_specification ]...
]
FOR logminer_session_name
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
]
| { out_of_line_constraint
| out_of_line_ref_constraint
| supplemental_logging_props
}
}
[, { column datatype [ SORT ]
[ DEFAULT expr ]
[ inline_constraint
[ inline_constraint ]...
| inline_ref_constraint
]
| { out_of_line_constraint
| out_of_line_ref_constraint
| supplemental_logging_props
}
]...
resize_disk_clauses RESIZE
{ ALL [ SIZE size_clause ]
| DISK
disk_name [ SIZE size_clause ]
[, disk_name [ SIZE size_clause ] ]...
| DISKS IN FAILGROUP
failgroup_name [ SIZE size_clause ]
[, failgroup_name [ SIZE size_clause ] ]...
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
resource_parameters { { SESSIONS_PER_USER
| CPU_PER_SESSION
| CPU_PER_CALL
| CONNECT_TIME
| IDLE_TIME
| LOGICAL_READS_PER_SESSION
| LOGICAL_READS_PER_CALL
| COMPOSITE_LIMIT
}
{ integer | UNLIMITED | DEFAULT }
| PRIVATE_SGA
{ integer [ K | M ] | UNLIMITED | DEFAULT }
}
revoke_system_privileges { system_privilege
| role
| ALL PRIVILEGES
}
[, { system_privilege
| role
| ALL PRIVILEGES
}
]...
FROM grantee_clause
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
row_movement_clause { ENABLE | DISABLE } ROW MOVEMENT
segment_attributes_clause { physical_attributes_clause
| TABLESPACE tablespace
| logging_clause
}
[ physical_attributes_clause
| TABLESPACE tablespace
| logging_clause
]...
select_list { *
| { query_name.*
| [ schema. ]
{ table | view | materialized view } .*
| expr [ [ AS ] c_alias ]
}
[, { query_name.*
| [ schema. ]
{ table | view | materialized view } .*
| expr [ [ AS ] c_alias ]
}
]...
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
set_subpartition_template SET SUBPARTITION TEMPLATE
{ (SUBPARTITION subpartition
[ list_values_clause ]
[ partitioning_storage_clause ]
[, SUBPARTITION subpartition
[ list_values_clause ]
[ partitioning_storage_clause ]...
]
)
| hash_subpartition_quantity
}
single_table_insert insert_into_clause
{ values_clause [ returning_clause ]
| subquery
}
size_clause integer [ K | M | G | T ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ parallel_clause ]
UPDATE MANUALLY problem importing file
split_table_partition SPLIT PARTITION current_partition
{ AT | VALUES } (value [, value ]...)
[ INTO (partition_spec, partition_spec) ]
[ update_index_clauses ]
[ parallel_clause ]
UPDATE MANUALLY problem importing file
split_table_subpartition SPLIT SUBPARTITION subpartition
VALUES ({ value | NULL }
[, value | NULL ]...)
[ INTO (subpartition_spec,
subpartition_spec
)
]
[ update_index_clauses ]
[ parallel_clause ]
UPDATE MANUALLY problem importing file
sql_statement_clause { { statement_option | ALL }
[, { statement_option | ALL } ]...
| { system_privilege | ALL PRIVILEGES }
[, { system_privilege | ALL PRIVILEGES } ]...
}
[ auditing_by_clause ]
standby_database_clauses ( activate_standby_db_clause
| maximize_standby_db_clause
| register_logfile_clause
| commit_switchover_clause
| start_standby_clause
| stop_standby_clause
)
[ parallel_clause ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
| INITIAL [ scn_value ]
| { SKIP FAILED TRANSACTION | FINISH }
]
storage_clause STORAGE
({ INITIAL integer [ K | M ]
| NEXT integer [ K | M ]
| MINEXTENTS integer
| MAXEXTENTS { integer | UNLIMITED }
| PCTINCREASE integer
| FREELISTS integer
| FREELIST GROUPS integer
| OPTIMAL [ integer [ K | M ]
| NULL
]
| BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
}
[ INITIAL integer [ K | M ]
| NEXT integer [ K | M ]
| MINEXTENTS integer
| MAXEXTENTS { integer | UNLIMITED }
| PCTINCREASE integer
| FREELISTS integer
| FREELIST GROUPS integer
| OPTIMAL [ integer [ K | M ]
| NULL
]
| BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
]...
)
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
subpartition_by_list SUBPARTITION BY LIST (column)
[ subpartition_template ]
subquery [ subquery_factoring_clause ]
SELECT
[ hint ]
[ { { DISTINCT | UNIQUE }
| ALL
}
]
select_list
FROM table_reference
[, table_reference ]...
[ where_clause ]
[ hierarchical_query_clause ]
[ group_by_clause ]
[ HAVING condition ]
[ model_clause ]
[ { UNION [ ALL ]
| INTERSECT
| MINUS
}
(subquery)
]
[ order_by_clause ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
subquery_factoring_clause WITH query_name AS (subquery)
[, query_name AS (subquery) ]...
supplemental_id_key_clause DATA
({ ALL
| PRIMARY KEY
| UNIQUE
| FOREIGN KEY
}
[, { ALL
| PRIMARY KEY
| UNIQUE
| FOREIGN KEY
}
]...
)
COLUMNS
supplemental_logging_props { supplemental_log_grp_clause
| supplemental_id_key_clause
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
}
[, SUPPLEMENTAL LOG
{ supplemental_id_key_clause
| GROUP log_group
}
]...
}
table_partition_description [ segment_attributes_clause ]
[ table_compression | key_compression ]
[ OVERFLOW [ segment_attributes_clause ] ]
[ { LOB_storage_clause
| varray_col_properties
}
[ LOB_storage_clause
| varray_col_properties
]...
]
[ partition_level_subpartition ]
table_partitioning_clauses { range_partitioning
| hash_partitioning
| list_partitioning
| composite_partitioning
}
table_properties [ column_properties ]
[ table_partitioning_clauses ]
[ CACHE | NOCACHE ]
[ parallel_clause ]
[ ROWDEPENDENCIES | NOROWDEPENDENCIES ]
[ enable_disable_clause ]
[ enable_disable_clause ]...
[ row_movement_clause ]
[ AS subquery ]
table_reference { ONLY
(query_table_expression)
[ flashback_query_clause ]
[ t_alias ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
| query_table_expression
[ flashback_query_clause ]
[ t_alias ]
| (join_clause)
| join_clause
}
tablespace_logging_clauses { logging_clause
| [ NO ] FORCE LOGGING
}
tablespace_state_clauses { ONLINE
| OFFLINE [ NORMAL | TEMPORARY | IMMEDIATE ]
}
| READ { ONLY | WRITE }
| { PERMANENT | TEMPORARY }
text [ N | n ]
{ 'c [ c ]...'
| { Q | q }
'quote_delimiter c [ c ]... quote_delimiter'
}
trace_file_clause TRACE
[ AS 'filename' [ REUSE ] ]
[ RESETLOGS | NORESETLOGS ]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
truncate_partition_subpart TRUNCATE { PARTITION partition
| SUBPARTITION subpartition
}
[ { DROP | REUSE } STORAGE ]
[ update_index_clauses [ parallel_clause ] ]
update_index_clauses { update_global_index_clause
| update_all_indexes_clause
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
update_index_subpartition SUBPARTITION [ subpartition ]
[ TABLESPACE tablespace ]
[, SUBPARTITION [ subpartition ]
[ TABLESPACE tablespace ]
]...
update_set_clause SET
{ { (column [, column ]...) = (subquery)
| column = { expr | (subquery) | DEFAULT }
}
[, { (column [, column]...) = (subquery)
| column = { expr | (subquery) | DEFAULT
}
}
]...
| VALUE (t_alias) = { expr | (subquery) }
}
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
varray_col_properties VARRAY varray_item
{ [ substitutable_column_clause ]
STORE AS LOB
{ [ LOB_segname ] (LOB_parameters)
| LOB_segname
}
| substitutable_column_clause
}
XML_attributes_clause XMLATTRIBUTES
(value_expr [ AS c_alias ]
[, value_expr [ AS c_alias ]...
)
XMLType_storage STORE AS
{ OBJECT RELATIONAL
| CLOB [ { LOB_segname [ (LOB_parameters) ]
| LOB_parameters
}
]
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Sous-clause Syntaxe
[ (oject_properties) ]
[ XMLTYPE XMLType_storage ]
[ XMLSchema_spec ]
[ ON COMMIT { DELETE | PRESERVE } ROWS ]
[ OID_clause ]
[ OID_index_clause ]
[ physical_properties ]
[ table_properties ] ;
XMLType_view_clause OF XMLTYPE
[ XMLSchema_spec ]
WITH OBJECT IDENTIFIER
{ DEFAULT | ( expr [, expr ]...) }
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
_________________
Annexe E
Acronymes et
termes
_________________
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Terme Définition
ADDM Automatic Database Diagnostic Monitor. Moniteur ADDM.
ASM Automatic Storage Management.
ASM Automatic Summary Management.
ASMM Gestion automatique de la mémoire partagée
ASSM Automatic Segment Space Management. Gestion automatique de
l'espace dans les segments.
ATO Optimiseur ATO.
Automatic Storage Mécanisme qui fournit une intégration verticale du système de
Management. fichiers et du gestionnaire de volumes, construite spécialement
pour les fichiers de base de données Oracle.
AWR Automatic Workload Repository. Référentiel AWR.
Base de données Base de donnée utilisée lors de la création d'une base de données
auxiliaire dupliquée ou lors de la récupération d'un tablespace jusqu'à un
point dans le temps.
Base de données cible Base de données à laquelle vous tentez de vous connecter.
Bibliothèque de gestion Media Management Library. Bibliothèque utilisée par RMAN
des médias lors de l'écriture ou de la lecture sur bande.
Bloc de données La plus petite unité de stockage physique dans la base de données.
Les blocs de données contiennent des lignes de données, des
informations d'index, etc.
BMR Block Media Recovery. Restauration physique de bloc.
Cache "library" Partie de la zone de mémoire partagée contenant les
représentations totalement analysées ou compilées des blocs
PL/SQL et des instructions SQL.
Cache de tampons Zone de la mémoire dans laquelle sont placés des blocs de
(buffer cache) données extraits de la base.
Cache de tampons de Zone de la mémoire SGA utilisée pour mettre en mémoire cache
conservation les données du cache de tampons pour des périodes plus longues.
Cache de tampons de Région de la mémoire SGA contenant des données qui sont
recyclage rapidement retirées du cache de tampons (buffer cache).
Cache du dictionnaire de Partie de la zone de mémoire partagée contenant les définitions
données des objets du dictionnaire en mémoire.
Canal Lien ou connexion à une base de données cible.
Canal de communication Zone de mémoire utilisée par un processus pour transmettre des
informations à un autre processus.
Catalogue de restauration Base de données distincte qui conserve des données historiques
concernant les activités de sauvegarde.
CFS Cluster File Storage.
CLI Command Line Interface. Interface de ligne de commande.
Cluster Groupement d'une ou de plusieurs tables qui partagent les mêmes
blocs de données.
Copie d'image Copie identique bit à bit d'un fichier de base de données.
Corbeille Table du dictionnaire de données qui gère les relations entre les
noms originaux des objets supprimés et les noms générés par le
système.
Corruption de bloc Corruption d'un bloc de données. Un bloc de données endommagé
est un bloc qui n'est pas dans un format Oracle reconnu ou dont le
contenu n'est pas cohérent en interne.
CRS Cluster Ready Services.
DBA DataBase Administrator. Administrateur de base de données.
DBA Data Block Address. Adresse de bloc de données, utilisée pour
identifier de manière unique un bloc de données dans la base.
DBCA DataBase Configuration Assistant.
DBVERIFY Utilitaire de ligne de commande externe qui effectue une
vérification d'intégrité de la structure de données physique sur une
base hors ligne.
Données d'annulation Copie des données originales qui est stockée chaque fois qu'une
transaction LMD change des données. Les données d'annulation
(undo) sont utilisées pour annuler (rollback) une transaction et
pour offrir des vues cohérentes de données qui changent.
Elément de sauvegarde Fichier individuel faisant partie d'un jeu de sauvegarde.
Eléments de masque de Littéral de type caractère qui décrit le format des données date-
format heure ou des données numériques stockées dans une chaîne de
caractères.
EM Enterprise Manager.
emctl Enterprise Manager Control. Utilitaire permettant de démarrer,
d'arrêter et de vérifier le statut de Database Control, de l'agent
Oracle et des serveurs Oracle Management Server.
Enterprise Manager Interface graphique utilisée pour gérer la base de données.
Database Control
Etat de tendance de Analyse de la croissance des segments de données.
croissance
Evénement Wait Statistiques qui sont incrémentées par un processus ou par un
thread serveur afin d'indiquer que le processus a dû attendre la fin
d'un événement pour poursuivre le traitement.
Exécution en parallèle Allocation de plusieurs canaux pour les opérations RMAN de
sauvegarde et de récupération.
EXTPROC Bibliothèques de code externes.
FGA Fine-Grained Auditing. Audit détaillé.
FGAC Fine-Grained Access Control. Contrôle d'accès de niveau fin.
Fichier de contrôle Fichier contenant des informations sur la structure physique de la
base de données, notamment l'emplacement de tous les fichiers de
données et fichiers de journalisation (fichiers redo log).
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
A ce stade de votre formation,
quelle peut être l'étape suivante ?
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-2
Ressources de formation continue
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-3
Oracle University
http://www.oracle.com/education
Oracle University
Oracle University est le plus grand système de formation au monde destiné aux entreprises. Il
dispose de centres de formation situés aux quatre coins de la planète et obtient l'un des taux de
satisfaction clientèle les plus élevées du marché (supérieure à 95 %). Les formateurs Oracle
University sont des experts dans le domaine des technologies Oracle qui vous aident à tirer le
meilleur parti de vos logiciels.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-4
Compléter votre formation
• Cours recommandés :
– Oracle Database 10g : Administration Workshop II
– Oracle Database 10g : Les fondamentaux du langage
SQL (I et II)
– Oracle Database 10g : Les fondamentaux du langage
PL/SQL
• Cours spécialisés dans les technologies de grid
(grille informatique) :
– Oracle Enterprise Manager 10g Grid Control
– Oracle Database 10g : Real Application Clusters
– Oracle Database 10g : Implémenter Oracle Streams
– Oracle Database 10g : Administration de Data Guard
• Autres cours spécialisés
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-5
Oracle University Knowledge Center
http://ilearning.oracle.com
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-6
Oracle Technology Network
Le site Oracle Technology Network (OTN) est une
ressource gratuite qui fournit des informations sur
les produits logiciels Oracle essentiels, notamment
Oracle database, Application Server, Collaboration Suite
et les outils de développement. Il offre les fonctionnalités
suivantes :
• Informations techniques
• Forums de discussion
• Téléchargement de logiciels Oracle
• Documentation Oracle
• Modules Oracle by Example
• Exemples de code
et bien d'autres encore ! http://www.oracle.com/technology
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-7
Oracle Technology Training
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-8
Oracle by Example
Oracle by Example
Les modules Oracle by Example (OBE) fournissent des procédures pratiques détaillées étape
par étape concernant l'utilisation des nouvelles fonctionnalités des produits Oracle. Ces
modules permettent d'apprendre plus rapidement les possibilités offertes par un nouveau
produit, et de mieux comprendre comment implémenter une fonction spécifique au sein d'un
environnement particulier. A l'heure actuelle, des modules OBE sont disponibles pour Oracle
Database, Oracle Application Server et Oracle Collaboration Suite. Vous pouvez accéder à
ces modules via le site http://www.oracle.com/technology/obe.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-9
Oracle Magazine
• Abonnement gratuit
• Archives
http://www.oracle.com/technology/oramag/index.html
Oracle Magazine
L'une des multiples ressources mises à votre disposition sur le site OTN (Oracle Technology
Network) est Oracle Magazine. Vous pouvez aussi recevoir ce magazine gratuit par courrier.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-10
Communauté Oracle Applications
Le site Oracle Technology Network (OTN) est une
ressource précieuse pour les utilisateurs d'Oracle
Applications et pour les personnes chargées
d'implémenter ces produits. Il offre différentes
fonctionnalités :
• Forums de discussion
• Groupes d'utilisateurs
• Discussion en ligne
• Documentation
• Formations
• Mises à niveaux
et bien d'autres encore !
http://www.oracle.com/technology/community/apps/index.html
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-11
Support technique : Oracle MetaLink
http://metalink.oracle.com
Oracle MetaLink
Oracle MetaLink est votre passerelle vers les ressources de support technique Oracle. Vous y
trouvez les réponses aux problèmes les plus courants que rencontrent les administrateurs et les
développeurs Oracle, ainsi que les ressources permettant de résoudre un grand nombre de ces
problèmes.
De même que le site Oracle Technology Network, MetaLink fournit les toutes dernières
informations destinées aux professionnels Oracle.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-12
Merci !
Merci !
La mission d'Oracle University est de faciliter l'utilisation des technologies Oracle. Notre
objectif est de travailler en partenariat avec vous, afin de vous proposer des informations
pertinentes adaptées à vos besoins, au moment où vous en avez besoin.
Merci de prendre quelques minutes pour remplir l'évaluation de fin de cours et de nous
indiquer comment nous pouvons améliorer nos prestations. Vous pouvez par ailleurs nous
écrire à l'adresse suivante :
customersat_us@oracle.com
Si vous avez des questions quant à la poursuite de votre formation Oracle, si vous avez besoin
d'aide pour rechercher un cours ou si vous voulez organiser une formation sur site au sein de
votre société, contactez Oracle Education Services. Aux Etats-Unis, appelez le 800 529 0165.
Pour obtenir les numéros de téléphone hors des Etats-Unis, accédez au site Web suivant :
http://www.oracle.com/education/index.html?contact.html
Encore merci et à très bientôt à l'occasion d'un autre cours !
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop II F-13
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
____________
Index
____________
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
A
ADDM (Automatic Database Diagnostic Monitor) 8-29, 12-2, 12-5, 12-10, 12-14, 12-15,
12-16, 12-17, 12-18, 12-19, 12-22, 12-27, 12-28, 12-30, 12-32, 13-11
Administrateur de base de données (DBA) 2-2, 2-3, 2-20, 3-3, 4-5, 4-10, 4-11, 5-22,
5-26, 6-5, 6-9, 6-11, 6-15, 6-20, 7-45, 7-46, 7-47, 8-8, 8-12, 8-27, 9-9, 9-11, 10-2, 10-3,
10-5, 10-8, 10-10, 10-11, 10-12, 10-14,10-19, 10-20, 10-26, 10-28, 10-30,
11-21, 11-31, 12-5, 12-6,12-12, 12-29, 13-3, 14-3, 14-5, 14-6, 14-8, 14-14,
14-15,15-3, 15-5, 17-12, 17-17, 18-37
Alerte 1-16, 4-2, 4-3, 4-5, 4-8, 4-15, 4-19, 4-21, 4-24, 4-30, 4-31, 4-32, 4-35, 4-36,
5-18, 10-22, 10-29, 12-2, 12-22, 12-25, 12-27, 12-28, 12-29, 12-31, 14-23,
16-3, 16-6, 16-8, 17-16
Archive 1-16, 4-30, 5-27, 14-2, 14-3, 14-25, 14-26, 14-25, 14-28, 14-29, 14-30, 15-17
ARCn 1-14, 1-24, 14-14
ASM (Automatic Storage Management) 1-6, 1-7, 5-2, 5-11, 5-26, 5-27, 5-28, 5-29
ASMM 13-17, 13-18, 13-19
Assistant DBCA (Database Configuration Assistant) 2-4, 2-15, 2-19, 3-2, 3-5, 3-6, 3-7,
3-8, 3-9, 3-10,3-11, 3-12, 3-13, 3-14, 3-15, 3-16, 3-17, 12-30, 14-22
Assistant de configuration 2-4, 2-15, 2-19, 3-2, 3-5, 11-9, 14-22
ASSM 5-12, 5-13, 12-17, 13-2
ATO 13-9
Audit 2-10, 4-16, 6-3, 6-13, 8-19, 10-2, 10-3, 10-4, 10-5, 10-11, 10-12, 10-13, 10-14,
10-16, 10-17, 10-18, 10-19, 10-19, 10-20, 10-22, 10-22, 10-25, 10-26, 10-27,
10-30, 10-31, 11-7, 17-23
Audit détaillé (FGA) 10-3, 10-8, 10-11, 10-14, 10-19, 10-20, 10-22, 10-22, 10-24,
10-25, 10-26, 10-27, 10-28, 17-19
Automatic Shared Memory Management (ASMM) 1-11, 13-2, 13-17, 13-18, 13-19,
13-20, 13-21, 13-27
Automatic Workload Repository 6-5, 12-2, 12-3, 12-4, 12-13, 12-31
B
Base de données cible 4-6, 18-17, 18-34
Base de données Flashback 15-19, 17-2, 17-4, 17-6, 17-7, 17-8, 17-9, 17-10, 17-29
bibliothèque de gestion des médias (MML) 15-8, 15-9
Bloc 1-15, 1-20, 1-21, 1-21, 1-24, 3-10, 4-16, 4-17, 4-30, 4-33, 5-3, 5-4, 5-5, 5-7, 5-8,
5-12, 5-13, 5-24, 5-28, 7-10, 7-29, 7-31, 8-13, 8-22, 9-7, 10-20, 15-6, 15-7, 15-10,
17-7, 18-3, 18-20, 18-30
Bloc de données 1-15, 1-20, 1-21, 5-3, 5-5, 5-12, 15-6, 15-7