Vous êtes sur la page 1sur 288

Oracle Database 10g :

Administration Workshop I

Volume I - Manuel du stagiaire

D17090FR30
Edition 3.0
Mai 2006
D42058

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Auteurs Copyright © 2005, Oracle. Tous droits réservés.

Tom Best Avertissement

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

2 Installer le logiciel de base de données Oracle


Objectifs 2-2
Tâches d'un administrateur de base de données Oracle 2-3
Outils utilisés pour administrer une base de données Oracle 2-4
Installation : Configuration système requise 2-6
Vérifier la configuration système requise 2-7
Architecture OFA (Optimal Flexible Architecture) 2-8
Utiliser l'architecture OFA 2-9
Définir les variables d'environnement 2-11
Oracle Universal Installer (OUI) 2-13
Installer le logiciel Oracle 2-14
Options de configuration de la base de données 2-15
Exécuter des scripts de configuration 2-16
Terminer l'installation 2-17
Options d'installation avancées 2-18
Option d'installation : Mode automatique 2-19
Synthèse 2-20
Présentation de l'exercice : Installer le logiciel Oracle 2-21

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

4 Gérer l'instance Oracle


Objectifs 4-2
Structure de gestion 4-3
Démarrer et arrêter Database Control 4-4
Oracle Enterprise Manager 4-5
Accéder à Oracle Enterprise Manager 4-6
Page d'accueil de la base de données 4-7
Utiliser SQL*Plus et iSQL*Plus pour accéder à la base de données 4-8
Utiliser iSQL*Plus 4-9
Configurer iSQL*Plus pour des accès SYSDBA et SYSOPER 4-10
Utiliser SQL*Plus 4-12
Appeler SQL*Plus à partir d'un script shell 4-13
Appeler un script SQL à partir de SQL*Plus 4-14
Fichiers de paramètres d'initialisation 4-15
Paramètres d'initialisation simplifiés 4-16
Afficher et modifier les paramètres d'initialisation 4-18
Démarrer et arrêter la base de données 4-19
Démarrer une instance de base de données Oracle 4-20
Démarrer une instance de base de données Oracle : NOMOUNT 4-21
Démarrer une instance de base de données Oracle : MOUNT 4-22
Démarrer une instance de base de données Oracle : OPEN 4-23
Arrêter une instance de base de données Oracle 4-24
Modes d'arrêt 4-25
Options SHUTDOWN 4-26
Utiliser SQL*Plus pour les opérations de démarrage et d'arrêt 4-29
Afficher le fichier d'alertes 4-30
Afficher l'historique des alertes 4-31
Vues dynamiques des performances 4-32

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

7 Gérer les objets de schéma


Objectifs 7-2
Qu'est-ce qu'un schéma ? 7-3
Accéder aux objets de schema 7-5
Nommer les objets de base de données 7-6
Définir des types de données pour les tables 7-8
Créer et modifier des tables 7-11
Comprendre l'intégrité des données 7-13
Définir des contraintes 7-15
Violations de contrainte 7-16
Etats possibles d'une contrainte 7-17
Vérification des contraintes 7-19
Créer des contraintes via des instructions SQL : Exemples 7-20
Afficher les colonnes d'une table 7-21
Afficher le contenu d'une table 7-22
Actions sur les tables 7-23
Supprimer une table 7-24
Vider une table 7-25
Index 7-26
Types d'index 7-27
Index B-Tree 7-28
Index bitmap 7-30
Options relatives aux index 7-32
Créer des index 7-34

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

8 Gérer les données et la simultanéité d'accès aux données


Objectifs 8-2
Manipuler les données par l'intermédiaire du langage SQL 8-3
Commande INSERT 8-4
Commande UPDATE 8-5
Commande DELETE 8-6
Commande MERGE 8-7
Commandes COMMIT et ROLLBACK 8-9
Langage PL/SQL 8-10
Administrer les objets PL/SQL 8-12
Objets PL/SQL 8-13
Fonctions 8-14
Procédures 8-15
Packages 8-16
Spécification et corps d’un package 8-17
Packages intégrés 8-18
Déclencheurs 8-19
Evénements déclencheurs 8-20
Verrous externes 8-21
Mécanisme de verrouillage 8-22
Simultanéité d'accès aux données 8-23
Verrous LMD 8-25
Mécanisme de mise en file d'attente 8-26
Conflits de verrouillage 8-27
Causes possibles des conflits de verrouillage 8-28
Détecter les conflits de verrouillage 8-29
Résoudre les conflits de verrouillage 8-30

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

10 Implémenter la sécurité de la base de données Oracle


Objectifs 10-2
Obligations en matière de sécurité dans les entreprises 10-3
Séparation des responsabilités 10-5
Sécurité de la base de données 10-6
Principe du moindre privilège 10-8
Appliquer le principe du moindre privilège 10-9
Surveiller les activités suspectes 10-11
Audit de base de données standard 10-12
Activer l'audit 10-13
Traces d'audit uniformes 10-14
Page Audit Settings d'Enterprise Manager 10-16
Définir les options d'audit 10-17
Utiliser et gérer les informations d'audit 10-18
Audit base sur les données 10-19
Audit détaillé 10-21
Stratégie d'audit détaillé 10-22
Instruction LMD auditée : Eléments à prendre en compte 10-24
Règles relatives à l'audit détaillé 10-25
Audit de DBA 10-26

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

13 Gestion des performances


Objectifs 13-2
Surveillance des performances 13-3
Surveillance des performances : Option Top Sessions 13-7
Surveillance des performances : Option Top Services 13-8
SQL Tuning Advisor : Présentation 13-9
SQL Tuning Advisor : Options et recommandations 13-10
Utiliser SQL Tuning Advisor 13-11
Utiliser SQL Tuning Advisor : Exemple 13-12
SQL Tuning Advisor : Statistiques sur une instruction SQL 13-13
SQL Tuning Advisor : Identifier les instructions SQL en double 13-14
Utiliser SQL Access Advisor 13-15
Gérer les composants de mémoire 13-17
Activer la gestion automatique de la mémoire partagée 13-18
Gérer manuellement la mémoire partagée 13-20

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

18 Déplacer des données


Objectifs 18-2
Déplacer des données : Architecture générale 18-3
Objet répertoire : Présentation 18-5
Créer des objets répertoire 18-6
SQL*Loader : Présentation 18-7
Charger des données avec SQL*Loader 18-9
Fichier de contrôle SQL*Loader 18-10
Méthodes de chargement 18-12
Data Pump : Présentation 18-14
Data Pump : Avantages 18-16
Data Pump Export et Data Pump Import : Présentation 18-17
Utilitaire Data Pump : Interfaces et modes 18-18
Sélection fine d'objets 18-19
Fonctionnalité avancée : Echantillonnage 18-20
Options d'export : Fichiers 18-21
Emplacement des fichiers Data Pump 18-22
Planifier et exécuter un travail 18-24
Nom et taille des fichiers Data Pump 18-25
Data Pump Import 18-26
Data Pump Import : Transformations 18-27
Data Pump : Considérations relatives aux performances 18-29
Paramètres d'initialisation des performances 18-30
Chemin direct Data Pump : Considérations 18-31
Utiliser Enterprise Manager pour surveiller les travaux Data Pump 18-32
Remplissage de tables externes 18-33

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

Annexe C : Commandes de base de Linux et vi

Annexe D : Syntaxe des instructions SQL

Annexe E : Acronymes et termes

Annexe F : Etapes suivantes : Poursuivre la formation

Index

xiv

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Préface

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Préface-2
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Profil

Avant de commencer
Avant de commencer ce cours, vous devez disposer des connaissances suivantes :
• Connaissance du langage SQL

Organisation du cours
OracleAS 10g : Administration Workshop I est un cours en salle comprenant un exposé théorique et
des exercices pratiques. Les démonstrations en ligne et les sessions d'exercices écrits permettent de
renforcer les concepts et les techniques présentés.

Cours suivants conseillés


Oracle Database 10g : Administration Workshop II (D17092FR30)

Préface-3
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Documentation

Documentation Oracle
Titre Référence
Oracle Database 2 Day DBA 10g Release 2 (10.2) B14196-01
Oracle Database Administrator's Guide 10g Release 2 (10.2) B14231-01
Oracle Database Backup and Recovery Basics 10g Release 2 (10.2) B14192-01
Oracle Database Concepts 10g Release 2 (10.2) B14220-01
Oracle Database Licensing Information 10g Release 2 (10.2) B14199-01
Oracle Database Net Services Administrator's Guide 10g Release 2 (10.2) B14212-01
Oracle Database Net Services Reference 10g Release 2 (10.2) B14213-01
Oracle Database New Features Guide 10g Release 2 (10.2) B14214-01
Oracle Database Performance Tuning Guide 10g Release 2 (10.2) B14211-01
Oracle Database PL/SQL Packages and Types Reference 10g Release 2 (10.2) B14258-01
Oracle Database PL/SQL User's Guide and Reference 10g Release 2 (10.2) B14261-01
Oracle Database Recovery Manager Quick Start Guide 10g Release 2 (10.2) B14193-01
Oracle Database Recovery Manager Reference 10g Release 2 (10.2) B14194-01
Oracle Database Security Guide 10g Release 2 (10.2) B14266-01
Oracle Database SQL Quick Reference 10g Release 2 (10.2) B14195-01
Oracle Database SQL Reference 10g Release 2 (10.2) B14200-01

Autre documentation
• System release bulletins (bulletins techniques)
• Guides d'installation et guides de l'utilisateur
• Fichiers readme
• Articles du groupe IOUG (International Oracle Users' Group)
• Oracle Magazine

Préface-4
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Conventions typographiques
Conventions typographiques concernant le texte
Convention Elément Exemple
Gras Locutions et mots mis en Pour naviguer dans cette application, ne cliquez
évidence, contenu Web pas sur les boutons Back (page précédente) et
uniquement Forward.(page suivante).
Gras italique Terme du glossaire Cet algorithme insère la nouvelle clé.
(s'il y a un glossaire)
Crochets Noms de touche Appuyez sur [Entrée].
Majuscules et Déclencheurs Attribuez un déclencheur When-Validate-Item au
minuscules bloc ORD.
Crochets droits Chemins de menu Sélectionnez Fichier > Sauvegarder.
Virgules Séquences de touches Appuyez sur les touches suivantes l'une après
l'autre : [Alt], [F], [D]
Courier new, Résultat de code, noms Résultat de code : debug.set ('I', 300);
respect de répertoire, Répertoire : bin (DOS), $FMHOME (UNIX)
majuscules/ noms de fichier,
minuscules mots de passe, Nom de fichier : Localisez le fichier init.ora.
(minuscules noms de chemin, Mot de passe : Utilisez tiger comme mot de
par défaut) URL, entrée utilisateur, passe.
noms d'utilisateur
Nom de chemin : Ouvrez
c:\my_docs\projects
Entrée utilisateur : Saisissez 300.
Nom d'utilisateur : Connectez-vous en tant que HR.
Initiale en Boutons, cases à cocher, Cliquez sur le bouton Exécutable
majuscule fenêtres, libellés de Sélectionnez la case à cocher Impossible
pour le premier graphique (sauf s'il s'agit de supprimer la fiche
terme d'une de noms propres)
expression Ouvrez la fenêtre Programme directeur
Adresse client (mais Oracle Payables)
Italiques Locutions et mots mis en N'enregistrez pas les modifications dans la base
évidence, titres de de données.
manuel et de cours, Pour en savoir plus, voir Oracle7 Server SQL
variables Language Reference Manual.
Entrez user_id@us.oracle.com,
où user_id correspond au nom de l'utilisateur

Préface-5
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Conventions typographiques (suite)
Conventions typographiques concernant le texte (suite)
Convention Elément Exemple
Guillemets Eléments d'interface Sélectionnez "Inclure un composant modulaire
dont les noms longs réutilisable", puis cliquez sur Terminer.
ne comportent des
majuscules Ce sujet est traité dans la section II, chapitre 3, "Gérer
qu'au début ; les objets"
titres de cours et
de chapitre cités
en référence
Majuscules Noms de colonne Utilisez la commande SELECT pour visualiser les
SQL, commandes, informations stockées dans la colonne LAST_NAME de
fonctions, schémas, la table EMP.
noms de table

Conventions typographiques concernant le code

Convention Elément Exemple


Minuscules Noms de colonne, SELECT last_name
noms de table FROM employees;

CREATE OR REPLACE TRIGGER


secure_employees

Mots de passe CREATE USER scott


IDENTIFIED BY tiger;
Objets PL/SQL items.DELETE(3);

Minuscules Variables CREATE ROLE role


italiques
Majuscules Commandes et SELECT first_name
fonctions SQL FROM employees;

Préface-6
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Conventions typographiques (suite)
Conventions typographiques concernant les chemins de navigation
Ce cours utilise des chemins de navigation simplifiés, comme dans l'exemple suivant, pour vous
orienter dans Oracle Applications.
Exemple :

Synthèse des lots de factures


(N) Facture > Saisie > Synthèse des lots de factures > (M) Interrogation > Rechercher (B) Approuver

Ce chemin simplifié correspond à la procédure suivante :


1. (N) Dans la fenêtre du Navigateur, sélectionnez Facture > Saisie > Synthèse des lots de
factures.
2. (M) Dans le menu, sélectionnez Interrogation > Rechercher.
3. (B) Cliquez sur le bouton Approuver.
Notations :
(N) = Navigateur (I) = Icône
(M) = Menu (H) = Hyperlien
(O) = Onglet (B) = Bouton

Préface-7
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Préface-8
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Introduction

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs du cours

A la fin de ce cours, vous pourrez :


• installer, créer et administrer Oracle Database 10g
• configurer la base de données pour une
application
• utiliser les procédures de surveillance de base
• implémenter une stratégie de sauvegarde
et de récupération
• déplacer des données entre des bases
de données et des fichiers

Copyright © 2005, Oracle. Tous droits réservés.

Objectifs du cours
Dans ce cours, vous allez installer le logiciel Oracle Database 10g Enterprise Edition, créer
une base de données et apprendre à l'administrer.
Vous allez également configurer la base de données afin de prendre en charge une
application, et effectuer des opérations telles que la création d'utilisateurs, la définition de
structures de stockage et la configuration de la sécurité. Ce cours utilise une application
fictive. Vous effectuerez cependant toutes les tâches fondamentales nécessaires à une
application réelle.
L'administration d'une base de données ne se limite pas à sa seule configuration. Vous
apprendrez également à protéger votre base de données grâce à l'élaboration d'une stratégie de
sauvegarde et de récupération, et à la surveiller afin de vous assurer de son bon
fonctionnement.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-2
Planification recommandée
1. Introduction 13. Performances
2. Installation 14. Concepts de sauvegarde
3. Création de base de données et de récupération
4. Instance 15. Sauvegarde

5. Stockage 16. Récupération


6. Utilisateurs 17. Flashback
18. Déplacement de données
7. Schéma
8. Données et simultanéité
d'accès aux données

9. Annulation
10. Sécurité
11. Réseau
12. Maintenance proactive

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-3
Objectifs du chapitre

A la fin de ce chapitre, vous pourrez :


• décrire les objectifs du cours
• expliquer l'architecture d'Oracle Database 10g

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-4
Produits et services Oracle

• Bases de données Oracle


• Oracle Application Server
• Oracle Applications
• Oracle Collaboration Suite
• Oracle Developer Suite
• Services Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Produits Oracle
• Bases de données Oracle : La base de données Oracle est la première base de données
conçue pour le grid computing (calcul distribué) d'entreprise, à savoir le moyen le plus
flexible et le moins coûteux de gérer les informations et les applications.
• Oracle Application Server : Le serveur Oracle certifié J2EE (Java 2 Platform, Enterprise
Edition) intègre tous les éléments nécessaires au développement et au déploiement des
applications basées sur le Web. Le serveur d'applications déploie les portails e-business, les
services Web et les applications transactionnelles, telles que les applications PL/SQL,
Oracle Forms et J2EE.
• Oracle Applications : Oracle E-Business Suite est un ensemble complet d'applications
métier pour la gestion et l'automatisation des processus au sein d'une organisation.
• Oracle Collaboration Suite : Oracle Collaboration Suite est un système intégré unique
pour toutes les données de communication d'une organisation (voix, email, fax, sans fil,
informations calendaires et fichiers).
• Oracle Developer Suite : Oracle Developer Suite est un environnement complet et intégré
qui associe des outils de développement d'applications et des outils décisionnels.
• Services Oracle : Les services tels qu'Oracle Consulting et Oracle University vous
fournissent l'expertise dont vous avez besoin pour vos projets Oracle. Pour obtenir un
ensemble de liens qui pointent vers différentes ressources utiles, reportez-vous à l'annexe
"Etapes suivantes : Poursuivre la formation".

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-5
Oracle Database 10g :
"g" signifie "grid"
• Global Grid Forum (GGF)
• Infrastructure de grid d'Oracle :
– Coût faible
– Qualité de service élevée
– Facilité de gestion
Grid de Grid de base Grid Grid
stockage de données d'application Control

Automatic Real Oracle Enterprise


Storage Application Streams Manager
Management Clusters Grid Control

Copyright © 2005, Oracle. Tous droits réservés.

Oracle Database 10g : "g" signifie "grid"


Global Grid Forum (GGF) est un organisme de normalisation dans le domaine du grid
computing (calcul distribué). Il comprend un ensemble de comités et de groupes de travail qui
s'attachent à différents aspects du grid computing. Ces comités et groupes de travail sont
composés d'universitaires, de chercheurs et (de plus en plus) de sociétés commerciales. Vous
pouvez vous rendre sur le site Web du GGF, à l'adresse suivante : http://www.gridforum.org
Oracle a développé un logiciel d'infrastructure de grid computing (calcul distribué) capable
d'équilibrer tous les types de charge globale entre différents serveurs, ces derniers pouvant
ainsi être gérés comme un même système complet. Le grid computing peut offrir le même
niveau élevé de fiabilité que les systèmes utilisant des mainframes, car tous les composants
sont clusterisés. Cependant, contrairement aux mainframes et aux gros serveurs SMP
(multitraitement symétrique) UNIX, un grid (grille informatique) peut être construit à l'aide
de technologies de systèmes ouverts, telles que les processeurs Intel et le système
d'exploitation Linux, et ce à un coût très réduit.
La technologie de grid computing d'Oracle comprend les éléments suivants :
• Automatic Storage Management (ASM)
• Real Application Clusters (RAC)
• Oracle Streams
• Enterprise Manager Grid Control

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-6
Oracle Database 10g : "g" signifie "grid" (suite)
Automatic Storage Management (ASM) propage les données de base de données sur
tous les disques, crée et gère un grid de stockage, et fournit un débit d'E/S optimal pour un
coût de gestion minimal. Lors de l'ajout ou de la suppression de disques, ASM redistribue
automatiquement les données. (Il est inutile d'utiliser un gestionnaire de volumes logiques
pour gérer le système de fichiers.) La disponibilité des données augmente avec la fonction
de mise en miroir facultative, et vous pouvez ajouter ou supprimer des disques en ligne.
Pour plus d'informations, reportez-vous au chapitre intitulé "Gérer les structures de
stockage de la base de données".
L'application Real Application Clusters (RAC) d'Oracle exécute et répartit toutes les
charges globales d'application sur un cluster de serveurs. Elle offre également les
fonctionnalités suivantes :
• Clusterware intégré : Il inclut notamment les fonctions de connectivité des clusters,
d'envoi de messages et de verrouillage, de contrôle des clusters et de récupération.
Cette fonctionnalité est disponible sur toutes les plates-formes prises en charge par
Oracle Database 10g.
• Gestion automatique de la charge globale : Vous pouvez définir des règles afin
d'allouer automatiquement des ressources de traitement à chaque service, à la fois au
cours des opérations standard et en réponse à des échecs. Ces règles peuvent être
modifiées de manière dynamique afin de répondre aux besoins professionnels en
constante évolution. Cette fonction d'allocation de ressources dynamique au sein
d'un grid de base de données est propre à Oracle RAC.
• Notification automatique des événements auprès du niveau intermédiaire
(middle tier) : Lors de la modification de la configuration des clusters, le niveau
intermédiaire (middle tier) peut opérer sur le champ un changement d'instance suite
à une panne ou la mise à disposition d'une nouvelle instance. Ainsi, lorsqu'un
incident survient dans une instance, les utilisateurs finals peuvent poursuivre leurs
tâches, sans avoir à subir les délais d'attente réseau habituels. Lorsqu'une nouvelle
instance est disponible, le niveau intermédiaire (middle tier) peut lancer
immédiatement l'équilibrage de charge des connexions sur cette instance. Les pilotes
JDBC (Java Database Connectivity) Oracle Database 10g sont dotés de la fonction
FCF (Fast Connection Failover) qui peut être activée automatiquement afin de gérer
ce type d'événement.
Oracle Streams fournit une structure unifiée de partage d'informations. Il réunit au sein
d'une même technologie les fonctions de file d'attente de messages, de réplication des
données, de notification des événements, de chargement des data warehouses, ainsi que
les opérations de publication et d'abonnement. Oracle Streams peut assurer la
synchronisation d'au moins deux copies de données source lorsque des mises à jour sont
effectuées sur l'un ou l'autre des sites. Il peut capturer automatiquement les modifications
apportées aux bases de données, les propager vers les noeuds abonnés, les appliquer, et
détecter et résoudre les conflits de mise à jour des données. Oracle Streams peut être
utilisé directement par les applications en tant que fonction de workflow ou de mise en file
d'attente des messages. Il permet ainsi la communication entre les différentes applications
du grid.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-7
Oracle Database 10g : "g" signifie "grid" (suite)
Enterprise Manager Grid Control gère les opérations réalisées au niveau du grid. Il
assure notamment la gestion de l'ensemble du logiciel, l'approvisionnement d'utilisateurs,
le clonage des bases de données et la gestion des patches. Grâce à lui, vous pouvez
surveiller les performances de toutes les applications en vous plaçant du point de vue de
l'utilisateur final. Grid Control affiche les performances et la disponibilité de
l'infrastructure de grid. Pour cela, il considère l'infrastructure comme une entité et non
comme un ensemble d'unités de stockage, de bases de données et de serveurs
d'applications distincts. Vous pouvez regrouper les serveurs d'applications, les bases de
données et les noeuds matériels dans des entités logiques uniques et gérer un groupe de
cibles comme s'il s'agissait d'une seule et même unité.
Remarque : Dans ce cours, nous utilisons Enterprise Manager Database Console pour
gérer une base de données à la fois.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-8
Architecture de base de données Oracle

Un serveur Oracle :
• est un système de gestion de base de données
qui fournit une approche intégrée, complète
et ouverte de la gestion des informations
• se compose d'une instance Oracle et d'une base
de données Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Architecture de base de données Oracle


Le serveur Oracle constitue la clé de voûte de la gestion des informations. Ce type de serveur
doit généralement gérer de manière fiable une grande quantité de données dans un
environnement multiutilisateur, de sorte que plusieurs utilisateurs puissent accéder
simultanément aux mêmes données. Cette tâche doit s'accompagner de performances élevées.
Un serveur Oracle doit également empêcher tout accès non autorisé et fournir des solutions
efficaces pour la récupération des données après incident.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-9
Structures de
Structures de base de données base de données
- Mémoire
- Processus
- Stockage

Structures mémoire Instance


Mémoire SGA
Structures (System Global Area)
de processus
Processus en arrière-plan

Structures de stockage Fichiers de base de données

Copyright © 2005, Oracle. Tous droits réservés.

Structures de base de données


Chaque base de données Oracle en cours d'exécution est associée à une instance Oracle.
Lorsque vous démarrez une base de données sur un serveur de base de données, le logiciel
Oracle alloue une zone de mémoire partagée nommée SGA (System Global Area) et lance
plusieurs processus Oracle en arrière-plan. La combinaison de la mémoire SGA et des
processus Oracle forme ce que l'on appelle une instance Oracle.
Une fois l'instance démarrée, le logiciel Oracle l'associe à une base de données précise. Ce
processus est appelé montage de la base de données. La base de données peut alors être
ouverte et mise ainsi à disposition des utilisateurs autorisés. Plusieurs instances peuvent
s'exécuter simultanément sur le même ordinateur, chacune ayant accès à sa propre base de
données physique.
L'architecture de la base de données Oracle peut être considérée comme un ensemble de
composants structurels interdépendants.
Une base de données Oracle est gérée et accessible via des processus et des structures
mémoire. Toutes les structures mémoire se trouvent dans la mémoire principale des
ordinateurs qui composent le serveur de base de données. Le terme "processus" désigne les
travaux effectués dans la mémoire de ces ordinateurs. Un processus peut être défini comme
un "thread de contrôle" ou comme le mécanisme d'un système d'exploitation capable
d'exécuter un ensemble d'étapes.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-10
Structures mémoire Oracle . Structures de base
de données
> Mémoire
Processus
Stockage

Processus Processus
Mémoire Mémoire Processus en Mémoire
serveur serveur
PGA PGA arrière-plan PGA
1 2

Mémoire SGA

Zone de mémoire Zone de mémoire Zone de mémoire


partagée Streams LARGE POOL

Cache de tampons Tampon de


Zone de mémoire
de la base journalisation
Java
de données

Copyright © 2005, Oracle. Tous droits réservés.

Structures mémoire Oracle


Les structures mémoire de base associées à une instance Oracle sont les suivantes :
• Mémoire SGA (System Global Area) : partagée par tous les processus serveur et les
processus en arrière-plan.
• Mémoire PGA (Program Global Area) : propre à chaque processus serveur et
processus en arrière-plan. Chaque processus dispose de sa mémoire PGA.
La zone de mémoire SGA comprend des informations de contrôle et des données relatives à
l'instance.
La mémoire SGA contient les structures de données suivantes :
• Cache de tampons (buffer cache) de la base de données : met en mémoire cache les
blocs de données extraits de la base.
• Tampon de journalisation (redo log buffer) : met en mémoire cache les informations
de journalisation (utilisées pour la récupération d'instance) jusqu'à ce qu'elles puissent
être écrites dans les fichiers de journalisation (redo log) physiques stockés sur le disque.
• Zone de mémoire partagée : met en mémoire cache diverses structures pouvant être
partagées par les utilisateurs.
• Zone de mémoire LARGE POOL : zone facultative qui fournit des espaces importants
d'allocation de mémoire à des processus volumineux, tels que les opérations de
sauvegarde et de récupération Oracle et les processus serveur d'E/S.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-11
Structures mémoire Oracle (suite)
• Zone de mémoire Java : utilisée pour l'ensemble du code Java et des données
propres à la session, dans la JVM (Java Virtual Machine).
• Zone de mémoire Streams : utilisée par Oracle Streams.
Lorsque vous démarrez l'instance via Enterprise Manager ou SQL*Plus, la quantité de
mémoire allouée pour la mémoire SGA s'affiche.
Une mémoire PGA (Program Global Area) est une zone de mémoire contenant des
données et des informations de contrôle pour chaque processus serveur. Un processus
serveur Oracle traite les demandes d'un client. Chaque processus serveur dispose de sa
propre mémoire PGA privée, qui est créée lors du démarrage du processus serveur.
L'accès à la mémoire PGA est exclusivement réservé à ce processus serveur, qui peut lire
le contenu de la mémoire et écrire dans celle-ci par l'intermédiaire du code Oracle.
Avec l'infrastructure dynamique de la mémoire SGA, la taille du cache de tampons de la
base de données, de la zone de mémoire partagée, de la zone de mémoire LARGE POOL,
de la zone de mémoire Java et de la zone de mémoire Streams peut être modifiée sans
arrêter l'instance.
La base de données Oracle utilise les paramètres d'initialisation pour créer et configurer
les structures mémoire. Le paramètre SGA_TARGET, par exemple, indique la quantité
totale d'espace disponible pour la mémoire SGA. Si vous attribuez à ce paramètre la
valeur 0, la fonction de gestion automatique de la mémoire partagée (Automatic Shared
Memory Management) est désactivée.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-12
Structures de processus Structures de
base de données
Mémoire
> Processus
Stockage

Mémoire Instance
PGA Mémoire SGA
Processus
utilisateur Processus
serveur
Processus
en arrière-plan

• Processus utilisateur : démarré lorsqu'un utilisateur


de base de données demande une connexion au serveur
Oracle
• Processus serveur : se connecte à l'instance Oracle
et est démarré lorsqu'un utilisateur établit une session
• Processus en arrière-plan : démarrés en même temps
qu'une instance Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Structures de processus
Lorsque vous appelez une application ou un outil Oracle tel qu'Enterprise Manager, le serveur
Oracle crée un processus serveur afin d'exécuter les commandes émises par l'application. Le
serveur Oracle crée également pour une instance un ensemble de processus en arrière-plan qui
interagissent les uns avec les autres d'une part, et avec le système d'exploitation d'autre part,
pour gérer les structures mémoire, effectuer des opérations d'E/S asynchrones afin d'écrire des
données sur le disque, ainsi que pour réaliser d'autres tâches nécessaires. Les processus en
arrière-plan qui sont disponibles dépendent des fonctionnalités utilisées dans la base de
données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-13
Gestion des instances Oracle
Mémoire SGA

Zone de mémoire Zone de mémoire Zone de mémoire


partagée Streams LARGE POOL

Cache de
Zone de mémoire Tampon de
tampons de la
Java journalisation
base de données

Processus
Processus Processus Processus Fichiers de
Log Writer
SMON PMON DBWn journalisation
(LGWR) archivés

Point de Fichiers de Processus


reprise contrôle d'archivage
(CKPT) Fichiers de Fichiers de ARCn
données journalisation

Copyright © 2005, Oracle. Tous droits réservés.

Gestion des instances Oracle


Un serveur de base de données Oracle est constitué d'une base de données Oracle et d'une
instance Oracle. Une instance Oracle est composée de structures mémoire, appelées mémoire
SGA (System Global Area), et de processus en arrière-plan qui gèrent la plupart des
opérations qui ont lieu "en coulisses" lors de l'exécution d'une instance. Les processus en
arrière-plan les plus courants sont les suivants :
• Processus SMON (System Monitor) : effectue la récupération après panne lorsque
l'instance est démarrée suite à une défaillance.
• Processus PMON (Process Monitor) : procède au nettoyage des processus utilisateur
en cas d'échec.
• Processus Database Writer (DBWn) : écrit les blocs modifiés du cache de tampons
(buffer cache) de la base de données vers les fichiers de données présents sur le disque.
• Point de reprise (CKPT) : met à jour l'ensemble des fichiers de données et de contrôle
de la base de données afin d'indiquer le point de reprise (checkpoint) le plus récent.
• Processus LGWR (Log Writer) : écrit les entrées de journalisation sur le disque.
• Processus d'archivage (ARCn) : copie les fichiers de journalisation (fichier redo log)
dans l'emplacement de stockage d'archivage en cas de changement de fichier de
journalisation.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-14
Processus serveur et cache de
tampons de base de données

Mémoire SGA Mémoires tampon


Processus
serveur
(buffers) :
Cache de tampons
de la base • Tampon faisant
de données l'objet d'opérations
pin (Pinned)
• Propre (Clean)
• Disponible/inutilisé
(Free/unused)
DBWn • "Dirty"

Fichiers de données

Copyright © 2005, Oracle. Tous droits réservés.

Processus serveur et cache de tampons de base de données


Lors du traitement d'une demande, le processus serveur Oracle recherche dans le cache de tampons
(buffer cache) de la base de données tout bloc dont il a besoin. Si le bloc recherché n'y figure pas,
le processus serveur lit le bloc du fichier de données et en place une copie dans le cache de tampons
de la base de données. Les demandes suivantes qui concernent le même bloc peuvent alors trouver
le bloc en mémoire. Par conséquent, elles ne doivent pas requérir de lectures physiques. Le serveur
Oracle se sert de l'algorithme le plus anciennement utilisé afin de retirer de la mémoire les tampons
pour lesquels aucun accès récent n'est enregistré et de libérer de l'espace pour les nouveaux blocs
dans le cache de tampons de la base de données.
Les tampons du cache de tampons peuvent se voir affecter l'un des quatre états suivants :
• Tampon faisant l'objet d'opérations pin (Pinned) : Plusieurs sessions ne peuvent pas écrire
simultanément dans le même bloc. Chaque session attend de pouvoir accéder au bloc.
• Propre (Clean) : La mémoire tampon fait à présent l'objet d'opérations unpin et est candidate
à une suppression immédiate si le contenu en cours (bloc de données) n'est pas à nouveau
référencé. Soit le contenu est synchronisé avec le contenu de bloc stocké sur le disque, soit la
mémoire tampon contient le cliché (snapshot) de lecture cohérente d'un bloc.
• Disponible/inutilisé (Free/unused) : La mémoire tampon est vide car l'instance vient juste de
démarrer. Cet état est très semblable à l'état "Propre" (Clean), sauf qu'ici la mémoire tampon
n'a pas été utilisée.
• "Dirty" : La mémoire tampon ne fait plus l'objet d'opérations pin, mais le contenu (bloc de
données) a été modifié et doit être transféré sur le disque via le processus DBWn avant de
pouvoir être retiré de la mémoire.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-15
Structure de base Structures de base
de données
de données physique . Mémoire
Processus
> Stockage

Fichiers de Fichiers de Fichiers de


contrôle données journalisation en ligne

Fichier de Fichiers de Fichiers de


paramètres sauvegarde journalisation
archivés

Fichier de Fichiers trace


mots de passe et fichiers d'alertes

Copyright © 2005, Oracle. Tous droits réservés.

Structure de base de données physique


Une base de données Oracle est composée des fichiers suivants :
• Fichiers de contrôle : contiennent des données relatives à la base de données elle-
même (c'est-à-dire des informations propres à la structure de base de données physique).
Ces fichiers sont essentiels pour la base de données. Sans eux, vous ne pouvez pas
ouvrir les fichiers de données pour accéder aux données de la base.
• Fichiers de données : contiennent les données d'application ou les données utilisateur
de la base.
• Fichiers de journalisation (fichier redo log) en ligne : permettent la récupération
d'une instance de la base de données. Si la base de données connaît une défaillance et
qu'aucun fichier de données n'est perdu, l'instance peut récupérer la base de données à
partir des informations de ces fichiers.
Les autres fichiers suivants sont essentiels au bon fonctionnement de la base de données :
• Fichier de paramètres : utilisé pour définir la façon dont l'instance est configurée au
démarrage.
• Fichier de mots de passe : permet aux utilisateurs de se connecter à distance à la base
de données et d'effectuer des tâches d'administration.
• Fichiers de sauvegarde : utilisés pour la récupération de la base de données. En règle
générale, vous restaurez un fichier de sauvegarde lorsqu'une défaillance physique ou une
erreur utilisateur a endommagé ou supprimé le fichier d'origine.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-16
Structure de base de données physique (suite)
• Fichiers de journalisation archivés : contiennent un historique des modifications
des données (informations de journalisation) générées par l'instance. A l'aide de ces
fichiers et d'une sauvegarde de la base de données, vous pouvez récupérer un fichier
de données perdu. Autrement dit, les fichiers de journalisation archivés permettent la
récupération des fichiers de données restaurés.
• Fichiers trace : Chaque processus serveur et processus en arrière-plan peut écrire
dans un fichier trace associé. Lorsqu'un processus détecte une erreur interne, il
réalise dans son fichier trace un dump des informations relatives à cette erreur.
Certaines informations écrites dans un fichier trace sont destinées à l'administrateur
de base de données, et d'autres au support technique Oracle.
• Fichiers d'alertes : Il s'agit de fichiers trace spéciaux, dans lesquels sont consignées
les alertes. Le fichier d'alertes d'une base de données est un journal chronologique
des messages et des erreurs. Oracle recommande de consulter ces fichiers.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-17
Tablespaces et fichiers de données

• Les tablespaces sont constitués d'un ou


de plusieurs fichiers de données.
• Les fichiers de données appartiennent
à un seul tablespace.

Fichier de Fichier de
données 1 données 2

Tablespace USERS

Copyright © 2005, Oracle. Tous droits réservés.

Tablespaces et fichiers de données


Une base de données est divisée en unités de stockage logiques appelées tablespaces, qui
peuvent être utilisées pour regrouper des structures logiques liées. Chaque base de données est
divisée de manière logique en un ou plusieurs tablespaces. Des fichiers de données sont créés
explicitement pour chaque tablespace afin de stocker physiquement les données de toutes les
structures logiques dans un tablespace.
Remarque : Vous pouvez également créer des tablespaces bigfile. Il s'agit de tablespaces
comportant un fichier de données unique mais très volumineux (jusqu'à 4 milliards de blocs
de données). Les tablespaces smallfile traditionnels (utilisés par défaut) peuvent contenir
plusieurs fichiers de données, mais ces fichiers ne peuvent pas être aussi volumineux. Pour
plus d'informations sur les tablespaces bigfile, reportez-vous au manuel Database
Administrator’s Guide.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-18
Tablespaces SYSTEM et SYSAUX

• Les tablespaces SYSTEM et SYSAUX sont


obligatoires.
• Ils sont créés en même temps que la base
de données.
• Ils doivent être en ligne.
• Le tablespace SYSTEM est utilisé pour
les fonctionnalités principales (les tables
du dictionnaire de données, par exemple).
• Le tablespace SYSAUX auxiliaire sert aux
composants de base de données supplémentaires
(tels que le référentiel Enterprise Manager).

Copyright © 2005, Oracle. Tous droits réservés.

Tablespaces SYSTEM et SYSAUX


Chaque base de données Oracle contient un tablespace SYSTEM et un tablespace SYSAUX.
Ceux-ci sont créés automatiquement en même temps que la base de données. Par défaut, le
système crée un tablespace smallfile. Vous pouvez également créer des tablespaces bigfile
afin de permettre à la base de données Oracle de gérer des fichiers très volumineux (jusqu'à
8 exaoctets).
Un tablespace peut être en ligne (accessible) ou hors ligne (non accessible). Le tablespace
SYSTEM reste toujours en ligne lorsque la base de données est ouverte. Il stocke les tables qui
prennent en charge les fonctionnalités principales de la base de données, telles que les tables
du dictionnaire de données.
SYSAUX est un tablespace auxiliaire du tablespace SYSTEM. Le tablespace SYSAUX stocke
plusieurs composants de base de données. Il doit être en ligne pour que tous les composants
de la base de données fonctionnent correctement.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-19
Segments, extents et blocs

• Les segments sont présents dans un tablespace.


• Ils sont constitués d'un ensemble d'extents.
• Les extents sont un ensemble de blocs de
données.
• Les blocs de données sont mis en
correspondance avec les blocs du disque.

Segment Extents Blocs de Blocs du


données disque

Copyright © 2005, Oracle. Tous droits réservés.

Segments, extents et blocs


Les objets de base de données, tels que les tables et les index, sont stockés dans les tablespaces
sous forme de segments. Chaque segment contient un ou plusieurs extents (ensembles de blocs
contigus). Un extent est constitué de blocs de données contigus, ce qui signifie que chaque extent
ne peut se trouver que dans un seul fichier de données. Les blocs de données constituent la plus
petite unité d'E/S de la base de données.
Lorsque la base de données demande un ensemble de blocs de données au système d'exploitation,
ce dernier le met en correspondance avec un bloc réel du système de fichiers ou du disque sur le
périphérique de stockage. Par conséquent, vous n'avez pas besoin de connaître l'adresse physique
des données de la base. Cela signifie également qu'un fichier de données peut être réparti
(striped) ou mis en miroir sur plusieurs disques.
La taille du bloc de données peut être définie lors de la création de la base de données. La taille
par défaut (8 ko) est adaptée à la plupart des bases de données. Si votre base de données prend en
charge une application de data warehouse qui comporte des tables et des index volumineux, il
peut être judicieux de définir une taille de bloc plus importante.
Si votre base de données prend en charge une application transactionnelle dans laquelle les
lectures et les écritures sont aléatoires, il peut s'avérer utile de définir une taille de bloc
inférieure. La taille maximale des blocs dépend du système d'exploitation utilisé. La taille
minimale des blocs Oracle est de 2 ko, mais cette taille ne doit être que rarement (voire jamais)
utilisée.
Vous pouvez utiliser des tablespaces comportant différentes tailles de bloc. Toutefois, n'ayez
recours à cette possibilité que pour les tablespaces transportables. Pour plus d'informations,
reportez-vous
Unauthorized au manuel
reproduction Database Administrator’s
or distribution Guide. 2009, Oracle and/or its affiliatesฺ
prohibitedฺ Copyright©
Oracle Database 10g : Administration Workshop I 1-20
Structures de base de données logiques
et physiques
Logique Physique

Base de données

Fichier de
Schéma Tablespace
données

Segment

Extent

Bloc de Bloc du système


données Oracle d'exploitation

Copyright © 2005, Oracle. Tous droits réservés.

Structures de base de données logiques et physiques


Une base de données Oracle est un ensemble de données traitées comme une seule et même
unité. La fonction principale d'une base de données consiste à stocker et à extraire des
informations associées. Une base de données comporte des structures logiques et des
structures physiques.
Tablespaces
Une base de données est divisée en unités de stockage logiques appelées tablespaces,
lesquelles regroupent des structures logiques liées. Par exemple, les tablespaces regroupent
généralement tous les objets d'une application afin de simplifier certaines opérations
d'administration. Vous pouvez disposer d'un tablespace pour les données de l'application et
d'un autre pour les index de l'application.
Bases de données, tablespaces et fichiers de données
La diapositive ci-dessus illustre la relation entre les bases de données, les tablespaces et les
fichiers de données. Chaque base de données est divisée de manière logique en un ou
plusieurs tablespaces. Des fichiers de données sont créés explicitement pour chaque
tablespace afin de stocker physiquement les données de toutes les structures logiques dans un
tablespace. Un tablespace TEMPORARY contient un fichier temporaire et non un fichier de
données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-21
Structures de base de données logiques et physiques (suite)
Schémas
Un schéma est un ensemble d'objets de base de données appartenant à un utilisateur de la base. Les
objets de schéma correspondent aux structures logiques qui font directement référence aux données
de la base. Ils incluent des structures telles que des tables, des vues, des séquences, des procédures
stockées, des synonymes, des index, des clusters et des liens de base de données. En règle générale,
les objets de schéma comprennent tous les éléments que votre application crée dans la base de
données.
Blocs de données
Au niveau de détail le plus élevé, les données d'une base Oracle sont stockées dans les blocs de
données. Un bloc de données correspond à un nombre d'octets précis d'espace de base de données
physique sur le disque. La taille des blocs de données est définie lors de la création de chaque
tablespace. Une base de données utilise et alloue de l'espace de base de données disponible dans les
blocs de données Oracle.
Extents
Le terme extent (ensemble de blocs contigus) désigne le niveau suivant d'espace de base de données
logique. Un extent consiste en un nombre précis de blocs de données contigus (obtenus dans une
allocation unique) qui permettent de stocker un type d'information particulier.
Segments
On appelle segment le niveau de stockage de base de données logique venant immédiatement au-
dessus d'un extent. Un segment est constitué d'un ensemble d'extents alloués à une structure logique
donnée. On rencontre notamment les types de segment suivants :
• Segments de données : Chaque table non clusterisée et non organisée en index comporte un
segment de données. L'ensemble des données de la table sont stockées dans les extents du
segment de données correspondant. Dans le cas d'une table partitionnée, chaque partition est
dotée d'un segment de données. Chaque cluster dispose, quant à lui, d'un segment de données.
Les données de toutes les tables incluses dans le cluster sont stockées dans le segment de
données du cluster.
• Segments d'index : Chaque index comporte un segment d'index dans lequel sont stockées
toutes ses données. Dans le cas d'un index partitionné, chaque partition est dotée d'un segment
d'index.
• Segments d'annulation : L'administrateur de base de données crée un tablespace d'annulation
(UNDO) afin de stocker de manière temporaire les informations d'annulation. Les informations
contenues dans un segment d'annulation permettent de générer des informations de base de
données cohérentes en lecture et, lors d'une récupération de base de données, d'annuler
(rollback) des transactions non validées pour les utilisateurs.
• Segments temporaires : Les segments temporaires sont créés par la base de données Oracle
lorsque l'exécution d'une instruction SQL requiert une zone de travail temporaire. Une fois
l'instruction exécutée, les extents du segment temporaire sont renvoyés à l'instance en vue
d'une utilisation ultérieure. Indiquez un tablespace temporaire par défaut pour chaque
utilisateur ou un qui sera appliqué au niveau de la base de données.
La base de données Oracle alloue de l'espace de manière dynamique. Lorsque les extents existants
d'un segment sont pleins, d'autres sont ajoutés. Les extents sont alloués en fonction des besoins. Par
conséquent, les extents d'un segment peuvent ne pas être contigus sur le disque.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-22
Exemples du cours : Le schéma HR
REGIONS
REGION_ID (PK)
REGION_NAME

JOBS
COUNTRIES JOB_ID (PK)
COUNTRY_ID (PK) JOB_TITLE
COUNTRY_NAME MIN_SALARY
JOB_HISTORY
REGION_ID (FK) MAX_SALARY EMPLOYEE_ID (PK)
START_DATE (PK)
END_DATE
JOB_ID (FK)
LOCATIONS EMPLOYEES DEPARTMENT_ID (FK)
LOCATION_ID (PK) EMPLOYEE_ID (PK)
STREET_ADDRESS FIRST_NAME
POSTAL_CODE LAST_NAME
CITY EMAIL
STATE_PROVINCE PHONE_NUMBER
COUNTRY_ID (FK) HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
DEPARTMENTS MANAGER_ID (FK)
DEPARTMENT_ID (PK) DEPARTMENT_ID (FK)
DEPARTMENT_NAME
MANAGER_ID
LOCATION_ID (FK)

Copyright © 2005, Oracle. Tous droits réservés.

Exemples du cours : Exemple de schéma HR


Les exemples utilisés dans ce cours sont issus d'une application dédiée aux ressources
humaines (Human Resources - HR), qui peut être créée au sein de la base de données de
départ.
L'application HR obéit à des règles essentielles, notamment :
• Chaque département peut être l'employeur d'un ou de plusieurs employés. Chaque
employé ne peut être affecté qu'à un seul département.
• Chaque poste doit pouvoir être occupé par un ou plusieurs employés. Chaque employé
ne peut être affecté qu'à un seul poste.
• Lorsqu'un employé change de département ou de poste, un enregistrement est réalisé
dans la table JOB_HISTORY afin de consigner les dates de début et de fin de
l'affectation passée.
• Les enregistrements JOB_HISTORY sont identifiés par une clé primaire composée
(PK) : colonnes EMPLOYEE_ID et START_DATE.
Notation : PK = Primary Key (clé primaire), FK = Foreign Key (clé étrangère)
Les lignes pleines représentent les contraintes de clé étrangère obligatoire (FK) et celles en
pointillé les contraintes de clé étrangère facultative.
La table EMPLOYEES se voit également appliquer une contrainte FK. Cela correspond à
l'implémentation de la règle suivante : Chaque employé ne doit être sous l'autorité que d'un
seul responsable. La clé étrangère est facultative car l'employé de plus haut niveau n'est sous
l'autorité de personne.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-23
Architecture de la base de données :
Récapitulatif des composants structurels
• Structures mémoire :
– Mémoire SGA (System Global Area) : cache de tampons
de la base de données, tampon de journalisation et zones
de mémoire diverses
– Mémoire PGA
• Structures de processus :
– Processus utilisateur et processus serveur
– Processus en arrière-plan : SMON, PMON, DBWn, CKPT,
LGWR, ARCn, etc.
• Structures de stockage :
– Logique : base de données, schéma, tablespace,
segment, extent et bloc Oracle
– Physique : fichiers pour les données, paramètres et
informations de journalisation, et bloc du système
d'exploitation

Copyright © 2005, Oracle. Tous droits réservés.

Architecture de la base de données : Récapitulatif des composants structurels


Ce chapitre vous a présenté de manière approfondie les composants structurels de la base de
données Oracle : structures mémoire, structures de processus et structures de stockage. Vous
retrouverez davantage d'informations dans les chapitres suivants.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-24
Synthèse

Ce chapitre vous a permis d'apprendre à :


• décrire les objectifs du cours
• expliquer l'architecture d'Oracle Database 10g

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 1-25
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Installer le logiciel de
base de données Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• décrire votre rôle en tant qu'administrateur
de base de données (DBA) et expliquer les outils
et tâches standard
• planifier une installation de base
de données Oracle
• utiliser l'architecture OFA
(Optimal Flexible Architecture)
• installer le logiciel Oracle à l'aide
d'Oracle Universal Installer (OUI)

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-2
Tâches d'un administrateur de base
de données Oracle
L'approche générale adoptée pour la conception,
l'implémentation et la maintenance d'une base de données
Oracle comprend différentes tâches :
1. Evaluer le matériel du serveur de base de données
2. Installer le logiciel Oracle
3. Elaborer une stratégie de base de données et de sécurité
4. Créer, migrer et ouvrir la base de données
5. Sauvegarder la base de données
6. Inscrire les utilisateurs système et définir
leur accès Oracle Network
7. Implémenter la conception de la base
de données
8. Récupérer la base de données suite
à une panne
9. Surveiller les performances de la base de données

Copyright © 2005, Oracle. Tous droits réservés.

Tâches d'un administrateur de base de données Oracle


Un administrateur de base de données est principalement chargé de l'installation du logiciel
Oracle et de la création de la base de données. En tant qu'administrateur de base de données,
vous pouvez être responsable de la création des structures de stockage de la base de données,
telles que les tablespaces. Vous pouvez également créer le schéma ou l'ensemble des objets
contenant les données de l'application.
Vous devez vous assurer que la base de données est disponible pour les utilisateurs. Vous
pouvez, pour cela, démarrer la base de données, la sauvegarder régulièrement et surveiller ses
performances. Ces tâches doivent être intégrées dans une stratégie de sécurité.
Vous apprendrez à effectuer chacune de ces opérations au fil des chapitres du cours. Vous
pouvez également vous reporter au manuel Oracle Database Administrator’s Guide pour
obtenir plus d'informations sur les tâches mentionnées dans la diapositive ci-dessus.
Dans ce chapitre, nous nous intéresserons à la phase d'installation. Cette tâche essentielle
requiert les sous-tâches suivantes :
• comprendre la place qu'occupe la phase d'installation dans l'architecture technique
globale d'une organisation,
• revoir (et mettre à jour) les plans de gestion de l'espace,
• choisir le logiciel de base de données (version et options requises),
• s'assurer que les éléments choisis respectent les exigences système.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-3
Outils utilisés pour administrer
une base de données Oracle

• Oracle Universal Installer


• Database Configuration Assistant
• Database Upgrade Assistant
• Oracle Net Manager
• Oracle Enterprise Manager
• SQL*Plus et iSQL*Plus
• Recovery Manager
• Oracle Secure Backup
• Data Pump
• SQL*Loader
• Outils en mode ligne de commande

Copyright © 2005, Oracle. Tous droits réservés.

Outils utilisés pour administrer une base de données Oracle


Les outils suivants vous permettent de réaliser les tâches d'installation et de mise à niveau :
• Oracle Universal Installer (OUI) : Oracle Universal Installer installe le logiciel et les
options Oracle. Il peut lancer automatiquement Database Configuration Assistant
(DBCA) afin de créer une base de données.
• Database Configuration Assistant (DBCA) : Cet assistant crée une base de données à
partir de modèles fournis par Oracle. Il vous permet de copier une base de données
d'origine préconfigurée. Vous pouvez également créer votre propre base de données et
vos propres modèles.
• Database Upgrade Assistant (DBUA) : Cet outil vous guide tout au long de la mise à
niveau de la base de données existante vers une nouvelle version Oracle.
• Oracle Net Manager : Cet outil permet de configurer la connectivité réseau des bases
de données et applications Oracle.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-4
Outils utilisés pour administrer une base de données Oracle (suite)
Les outils suivants vous permettent de gérer l'instance et la base de données Oracle :
• Oracle Enterprise Manager (EM) : Enterprise Manager associe une console graphique,
des agents, des services communs et des outils, et fournit ainsi une plate-forme de gestion
système complète et intégrée pour la gestion des produits Oracle. Une fois le logiciel
Oracle installé, la base de données créée ou mise à niveau, et le réseau configuré, vous
pouvez utiliser Enterprise Manager comme interface unique pour la gestion de votre base
de données. En plus de son interface utilisateur Web qui permet d'exécuter les
commandes SQL, Enterprise Manager fournit une interface transparente avec les autres
composants Oracle entrant en jeu dans l'administration de votre base de données
(Recovery Manager et Scheduler, par exemple).
Enterprise Manager offre trois principaux outils pour l'administration des bases de
données Oracle :
- Enterprise Manager Database Console : permet d'administrer une base de données
- Enterprise Manager Grid Control : permet d'administrer simultanément plusieurs
bases de données
- Java Enterprise Manager Console : permet d'accéder aux outils qui ne sont pas
compatibles avec la technologie Web
• SQL*Plus : SQL*Plus est l'interface de ligne de commande standard qui permet de gérer
votre base de données.
• iSQL*Plus : iSQL*Plus est une interface Web avec une base de données Oracle.
• Recovery Manager (RMAN) : RMAN est un outil Oracle qui fournit une solution
complète pour les opérations de sauvegarde, de restauration et de récupération appliquées
à l'ensemble de la base de données ou à des fichiers de bases de données particuliers.
• Oracle Secure Backup fournit une fonction de gestion de sauvegarde sur bande pour le
système Oracle, notamment :
- une protection de la base de données Oracle sur bande grâce à l'intégration avec
Recovery Manager,
- une prise en charge transparente d'Oracle Real Application Clusters (RAC),
- une administration centrale des serveurs de média et des clients distribués, y
compris : Oracle Application Servers, Oracle Collaboration Suites, répertoires
d'origine Oracle Home et fichiers binaires.
• Data Pump : Data Pump permet le transfert à haut débit des données d'une base de
données vers une autre. Vous pouvez, par exemple, exporter une table et l'importer dans
une autre base de données.
• SQL*Loader : L'utilitaire SQL*Loader permet de charger des données dans une base
Oracle à partir d'un fichier externe. Il s'agit de l'un des utilitaires Oracle dont vous pouvez
vous servir pour charger des données dans les tables de la base.
• Outil en mode ligne de commande :
- Pour administrer Enterprise Manager, utilisez :
emctl start | status | set | stop
- Pour arrêter et démarrer iSQL*Plus, utilisez :
isqlplusctl start | stop
- Pour administrer le processus d'écoute (listener), utilisez :
lsnrctl help | start | status | stop

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-5
Installation : Configuration système requise

• Conditions requises en termes de mémoire :


– 1 Go pour l'instance avec Database Control
• Conditions requises en termes d'espace disque :
– 1,5 Go d'espace de swap
– 400 Mo d'espace disque dans le répertoire /tmp
– Entrez 1,5 Go et 3,5 Go pour le logiciel Oracle
– 1,2 Go pour la base de données préconfigurée (facultatif)
– 2,4 Go pour la zone de récupération
rapide (facultatif)
• Système d'exploitation :
voir la documentation
correspondante

Copyright © 2005, Oracle. Tous droits réservés.

Installation : Configuration système requise


• Vous pouvez réaliser une installation standard sur un ordinateur disposant d'au moins
1 Go de RAM et 1,5 Go d'espace de swap.
• En fonction du taux d'activité de l'ordinateur sur lequel vous installez le logiciel de base
de données Oracle, l'installation standard peut prendre 20 minutes au plus.
• Voici quelques détails relatifs à l'installation :
- Oracle Database 10g ne comprend qu'un seul modèle de base de données d'origine.
- Les fichiers dupliqués sont supprimés.
- Vous pouvez installer de nombreux autres produits et démonstrations à partir de
CD-ROM supplémentaires.
Le matériel indiqué dans la diapositive ci-dessus correspond à la configuration minimale
requise pour toutes les plates-formes. Votre installation peut cependant nécessiter une
configuration supérieure (notamment en termes d'espace disque).
Remarque : Le terme "installation standard" désigne un type d'installation Enterprise Edition
qui inclut une base de données d'origine standard.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-6
Vérifier la configuration système requise

• Espace temporaire
approprié
• 64 bits ou 32 bits
• Vérifications relatives au système d'exploitation
• Niveau de patch du système d'exploitation
• Packages système
• Paramètres système et paramètres du noyau
• Permissions liées à XServer
• Swap suffisant
• Répertoire d'origine ORACLE_HOME non vide

Copyright © 2005, Oracle. Tous droits réservés.

Vérifier la configuration système requise


Le programme d'installation d'Oracle Database 10g automatise la plupart des vérifications
préliminaires requises :
• Il vérifie si l'espace temporaire approprié est disponible. L'espace temporaire minimal
nécessaire à l'installation et à la configuration est d'abord déterminé, puis validé au cours du
processus d'installation.
• Il est impossible de procéder à des installations 64 bits dans des répertoires d'origine Oracle
Home lorsqu'un logiciel 32 bits est déjà installé (et réciproquement).
• Sur la plate-forme Linux, RedHat-3.0, 4.0, Asianux 1.0, 2.0 et SUSE Linux E.S. 9.0 sont
certifiés.
• Le processus d'installation vérifie si tous les patches du système d'exploitation requis sont
installés.
• Le processus d'installation vérifie si les paramètres système et les paramètres du noyau sont
correctement définis.
• Le processus d'installation vérifie que la variable d'environnement DISPLAY est définie et
que l'utilisateur dispose des autorisations suffisantes pour afficher la variable DISPLAY
indiquée.
• Le processus d'installation s'assure que suffisamment de swap est défini sur le système.
• Le processus d'installation s'assure que le répertoire d'origine Oracle Home dans lequel est
effectuée la nouvelle installation est vide ou fait partie des versions prises en charge sur
lesquelles Oracle Database 10g peut être installé, et que ces éléments sont enregistrés dans
l'inventaire d'Oracle.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-7
Architecture OFA
(Optimal Flexible Architecture)
L'architecture OFA est conçue pour :
• organiser un grand nombre de logiciels
• faciliter les tâches d'administration répétitives
• faciliter le basculement entre plusieurs bases
de données Oracle
• gérer et administrer de manière adéquate l'expansion
de la base de données
• contribuer à éliminer la fragmentation de l'espace libre

Copyright © 2005, Oracle. Tous droits réservés.

Architecture OFA (Optimal Flexible Architecture)


L'architecture OFA est une méthode de configuration de la base de données Oracle, ainsi que
d'autres bases de données. Elle tire parti des fonctionnalités du système d'exploitation et des
sous-systèmes de disque pour créer une configuration facile à administrer, et offre une
flexibilité maximale pour les bases de données à forte croissance et hautes performances. Les
méthodes décrites ci-après constituent les bases de l'architecture OFA.
L'architecture OFA est conçue pour :
• organiser de grandes quantités de logiciels et de données complexes sur le disque, afin
d'éviter les goulets d'étranglement et les faibles performances,
• faciliter les tâches d'administration répétitives, telles que les sauvegardes de logiciels et
de données, souvent sujettes à la corruption de données,
• faciliter le basculement entre plusieurs bases de données Oracle,
• gérer et administrer de façon adéquate l'expansion de la base de données,
• contribuer à éliminer la fragmentation de l'espace libre dans le dictionnaire de données,
à isoler toute autre fragmentation et à limiter la contention des ressources.
Pour plus d'informations sur les objectifs et l'implémentation de l'architecture OFA, reportez-
vous au manuel Oracle Installation Guide for UNIX Systems.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-8
Utiliser l'architecture OFA

• Nommer les points de montage :


– /u01
– /disk01
• Nommer les répertoires :
– /u01/app/oracle
– /u01/app/applmgr
• Nommer les fichiers :
– Fichiers de contrôle : controln.ctl
– Fichiers de journalisation : redon.log
– Fichiers de données : tn.dbf

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'architecture OFA


A la base de l'architecture OFA se trouve un schème d'appellation, qui définit une norme à
appliquer aux points de montage (qui correspondent souvent aux disques physiques), aux
répertoires et aux sous-répertoires de ces points de montage, ainsi qu'aux fichiers proprement
dits.
Syntaxe d'un point de montage : Nommez tous les points de montage à l'aide de la syntaxe
/pm, où p est une constante de type chaîne et m, une clé unique de longueur fixe (généralement
un nombre à deux chiffres) utilisée pour distinguer chaque point de montage. Vous pouvez, par
exemple, nommer les points de montage /u01 et /u02.
Syntaxe d'un répertoire d'origine : Nommez tous les répertoires d'origine Oracle Home à l'aide
de la syntaxe /pm/h/u, où pm est le nom d'un point de montage, h est un nom de répertoire
standard et u, le nom du propriétaire du répertoire. Voici des exemples de répertoires d'origine
conformes à l'architecture OFA :
/u01/app/oracle
/u01/home/oracle
Syntaxe d'un répertoire logiciel : Stockez chaque version du logiciel Oracle dans un répertoire
correspondant au modèle /pm/h/u/product/v. Dans le cas présent, product est un littéral
et v une variable correspondant au numéro de version. Cette syntaxe permet d'activer la
fonctionnalité de l'architecture OFA rendant possible l'exécution simultanée de plusieurs versions
d'applications. Ainsi, une installation d'Oracle Database 10g version 10.2.0 conforme à
l'architecture OFA ressemblerait à ce qui suit :
/u01/app/oracle/product/10.2.0
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-9
Utiliser l'architecture OFA (suite)
Syntaxe d'appellation d'un sous-répertoire : Pour faciliter l'organisation des données
d'administration, stockez les fichiers d'administration propres à la base de données dans des
sous-répertoires conformes au modèle /h/admin/d/a/. Ici, h est le répertoire d'origine
Oracle Home du propriétaire du logiciel Oracle, admin est un littéral, d est le nom de la base
de données et a est un sous-répertoire pour chacun des fichiers d'administration de la base de
données. Voici la liste de ces sous-répertoires de fichiers d'administration :
• adhoc : scripts SQL ad hoc pour une base de données particulière
• arch : fichiers de journalisation archivés (archived redo logs)
• adump : fichiers d'audit (affectez le répertoire adump au paramètre d'initialisation
AUDIT_FILE_DEST et nettoyez régulièrement ce sous-répertoire.)
• Bdump : fichiers trace des processus en arrière-plan
• Cdump : fichiers dump noyau (core dump)
• Create : programmes utilisés pour créer la base de données
• Exp : fichiers d'export de la base de données
• Logbook : fichiers dans lesquels sont enregistrés le statut et l'historique de la base de
données
• Pfile : fichiers de paramètres d'instance
• udump : fichiers trace SQL de l'utilisateur
Syntaxe d'un fichier : La convention d'appellation suivante appliquée aux fichiers de base de
données facilite leur identification :
• Fichiers de contrôle : /pm/q/d/controln.ctl
• Fichiers de journalisation (fichiers redo log) : /pm/q/d/redon.log
• Fichiers de données : /pm/q/d/tn.dbf
Les variables utilisées dans ces noms de fichiers sont les suivantes :
• pm : nom d'un point de montage (décrit précédemment)
• q : chaîne qui distingue les données Oracle de tous les autres fichiers (généralement
ORACLE ou oradata)
• d : valeur du paramètre d'initialisation DB_NAME (nom de la base de données)
• t : nom d'un tablespace Oracle
• n : chaîne à deux chiffres
Remarque : Vous ne pouvez stocker dans le répertoire /pm/q/d/ que les fichiers de
contrôle, les fichiers de journalisation et les fichiers de données associés à la base de
données d.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-10
Définir les variables d'environnement

• ORACLE_BASE : base de la structure de répertoires


Oracle pour l'architecture OFA
• ORACLE_HOME : répertoire contenant le logiciel Oracle
• ORACLE_SID : nom initial de l'instance (ORCL par défaut)
• NLS_LANG : paramètres de langue, de territoire et de jeu
de caractères client

Copyright © 2005, Oracle. Tous droits réservés.

Définir les variables d'environnement


Il existe de nombreuses variables d'environnement Oracle. Celles indiquées dans la
diapositive ci-dessus sont essentielles pour la réussite de l'installation et de l'utilisation d'une
base de données Oracle. Aucune de ces variables ne doit obligatoirement être définie, mais il
est préférable de le faire avant l'installation afin d'éviter tout problème ultérieur.
• ORACLE_BASE : indique la base de la structure de répertoires Oracle pour l'architecture
OFA. L'utilisation de cette variable est facultative. Elle permet toutefois de faciliter les
installations et mises à niveau futures. Cette variable correspond à un chemin d'accès à
un répertoire, comme l'illustre l'exemple suivant :
/u01/app/oracle
• ORACLE_HOME : indique le répertoire contenant le logiciel Oracle. Cette variable
correspond à un chemin d'accès à un répertoire, comme l'illustre l'exemple suivant :
$ORACLE_BASE/product/10.2.0/db_1
• ORACLE_SID : nom initial de l'instance (ORCL par défaut). Il s'agit d'une chaîne de
chiffres et de lettres devant commencer par une lettre. Oracle Corporation recommande
d'utiliser huit caractères au maximum pour les identificateurs système.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-11
Définir les variables d'environnement (suite)
• NLS_LANG : indique les paramètres NLS (National Language Support) d'une
session, sous la forme language_territory.character set. Prenons, par
exemple, la valeur suivante :
AMERICAN_DENMARK.WE8MSWIN1252
Elle configure la session de manière à utiliser la langue AMERICAN pour les
messages Oracle, la séquence de tri alphabétique, ainsi que le nom des jours et des
mois. Le territoire étant DENMARK, le format de date et d'heure, ainsi que les
conventions numériques et monétaires, sont définis en conséquence. Le jeu de
caractères WE8MSWIN1252 indique à Oracle Net de convertir les informations
textuelles dans ce jeu de caractères. Il s'agit d'une variable d'environnement sous
UNIX et d'une clé de registre sous Windows. Vous pouvez interroger la valeur des
paramètres NLS de la session en cours via l'instruction suivante :
select * from nls_session_parameters;
Pour plus d'informations sur les langues, territoires et jeux de caractères valides,
ainsi que sur la prise en charge des langues, reportez-vous au manuel Globalization
Support Guide.
Remarque : Une installation sous Windows définit des valeurs NLS_LANG par
défaut dans le registre (la partie language provient de la langue configurée pour le
clavier). Autrement dit, l'installation par défaut sous Windows avec un clavier non
américain entraîne l'affectation de la valeur correspondante au paramètre
NLS_LANG. La variable de session NLS_SORT prend à son tour une valeur par
défaut différente de "binary", ce qui rend difficile pour l'optimiseur d'utiliser des
index basés sur les caractères pour les sessions démarrées à partir de ce noeud.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-12
Oracle Universal Installer (OUI)

Copyright © 2005, Oracle. Tous droits réservés.

Oracle Universal Installer (OUI)


Oracle Universal Installer (OUI) est une application Java qui effectue des installations au niveau
composant. Il permet également de réaliser des installations à différents niveaux de groupes de
logiciels intégrés ou de suites, une installation Web ou encore l'installation d'une logique
complexe via un package unique. Le moteur d'installation est portable entre toutes les plates-
formes Java et les problèmes propres à la plate-forme peuvent être encapsulés par le processus
d'installation global. OUI fournit les fonctionnalités suivantes pour la gestion et la distribution
des logiciels :
• Résolution automatique des dépendances et traitement automatique de la logique
complexe
• Installation à partir du Web
• Installations de composants et de suites
• Désinstallation implicite
• Prise en charge de plusieurs répertoires d'origine Oracle Home
• Prise en charge de la globalisation ou NLS
• Prise en charge des installations distribuées
• Installations automatiques sans assistance, par l'intermédiaire de fichiers de réponses
Sous Windows : Insérez le support d'installation de base de données Oracle, accédez au
répertoire client, puis cliquez deux fois sur setup.exe pour démarrer OUI. A la suite de la
page de bienvenue, sélectionnez le type d'installation souhaité : Instant Client, Administrator,
Runtime ou Custom.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-13
Installer le logiciel Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Installer le logiciel Oracle


Vous pouvez installer le logiciel Oracle à l'aide d'OUI. Pour ce faire, procédez comme suit :
1. Connectez-vous à l'ordinateur en tant que membre du groupe d'administration autorisé à
installer le logiciel Oracle, et à créer et gérer la base de données.
2. Insérez le CD-ROM de distribution de la base de données dans le lecteur de CD-ROM, ou
accédez à l'emplacement de stockage intermédiaire de la base de données Oracle.
3. Démarrez OUI. Dans une fenêtre XTerm de Linux, entrez ./runInstaller. La page
Oracle Universal Installer apparaît.
4. Accédez aux différentes pages OUI et indiquez les paramètres de pré-installation en
fonction de votre projet d'installation.
5. A partir des informations initiales, OUI exécute les vérifications relatives aux prérequis.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-14
Options de configuration
de la base de données

Copyright © 2005, Oracle. Tous droits réservés.

Options de configuration de la base de données


Le processus d'installation se poursuit :
6. Accédez aux différentes pages OUI et indiquez les options de configuration de la base
de données. OUI affiche un récapitulatif de vos choix d'installation.
7. Cliquez sur Install pour lancer l'installation du logiciel Oracle.
Si vous avez choisi de créer une base de données de départ dans le cadre de l'installation, OUI
appelle tous les assistants de configuration suivants :
• Oracle Net Configuration Assistant : Il configure les composants réseau de base au
cours de l'installation, notamment :
- nom des processus d'écoute (listeners) et adresse des protocoles,
- méthodes d'appellation qui seront utilisées par le client pour résoudre les
identificateurs de connexion en descripteurs de connexion,
- noms de service réseau dans un fichier tnsnames.ora,
- utilisation du serveur de services annuaire.
• Oracle Database Configuration Assistant (DBCA) : Cet assistant crée la base de
données de départ sélectionnée. Une fois les étapes de l'assistant de configuration
terminées, vous pouvez déverrouiller les comptes et modifier les mots de passe.
• iSQL*Plus Configuration Assistant : Il configure l'instance OC4J (Oracle Application
Server Containers for J2EE), qui permet à iSQLPlus et à d'autres outils de se connecter à
la base de données Oracle.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-15
Exécuter des scripts de configuration

Copyright © 2005, Oracle. Tous droits réservés.

Exécuter des scripts de configuration


Le processus d'installation se poursuit :
8. Au cours d'une installation Linux ou UNIX, exécutez en tant qu'utilisateur root, lorsque
vous y êtes invité, les scripts de configuration supplémentaires. Dans la fenêtre XTerm,
entrez :
$ su
# password: oracle <mot de passe root, n'apparaît pas dans la fenêtre>
# cd /u01/app/oracle/oraInventory
# ./orainstRoot.sh
# cd /u01/app/oracle/product/10.2.0/db_1
# ./root.sh
9. Lors d'une installation Linux ou UNIX, acceptez le répertoire bin local par défaut. Une
fois les scripts terminés, quittez l'ensemble des comptes et fenêtres associés afin de
terminer l'installation.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-16
Terminer l'installation

Copyright © 2005, Oracle. Tous droits réservés.

Terminer l'installation
10. Lorsque le processus d'installation touche à sa fin, relevez les différentes URL en vue
d'une utilisation ultérieure.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-17
Options d'installation avancées

• Options de stockage de la base de données :


– Système de fichiers
– Automatic Storage Management
– Raw devices
• Options de gestion de la base de données :
– Enterprise Manager Grid Control
– Enterprise Manager Database Control
• Options de sauvegarde et de récupération
de la base de données
• Options de notification par email
• CRS (Cluster Ready Services)
• Clonage

Copyright © 2005, Oracle. Tous droits réservés.

Options d'installation avancées


• A l'aide d'OUI, vous pouvez créer des configurations qui utilisent Automatic Storage
Management.
• Vous pouvez installer et configurer la structure Enterprise Manager (EM). Oracle
Enterprise Manager Database Control est installé dans le même répertoire d'origine
Oracle Home que la base de données. Il est configuré de manière à s'exécuter sur une
instance OC4J autonome. Pour bénéficier des fonctionnalités de gestion centralisée
d'Enterprise Manager, vous devez réaliser une installation distincte.
• Si vous décidez d'utiliser Oracle Enterprise Manager Database Control, vous pouvez
configurer la base de données de sorte qu'elle utilise la stratégie de sauvegarde par
défaut recommandée par Oracle.
• Si vous choisissez d'utiliser Oracle Enterprise Manager Database Control au cours de
l'installation, vous pouvez configurer Enterprise Manager de manière à envoyer des
alertes par email à l'adresse électronique indiquée. Ces alertes peuvent concerner des
problèmes tels que l'espace disque qui atteint une limite critique ou la fermeture
inopinée de la base de données.
• L'installation Oracle Database 10g prend en charge les fonctionnalités RAC, et tout
particulièrement l'installation de CRS (Cluster Ready Services).
• Les répertoires d'origine Oracle Home peuvent être clonés à l'aide de l'outil Enterprise
Configuration Management. Cet outil permet aux utilisateurs de créer des demandes de
clonage, puis de les planifier et de les traiter. Il est accessible via EM Grid Control.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-18
Option d'installation : Mode automatique

Pour installer et configurer des produits Oracle en mode


automatique à l'aide d'OUI, effectuez les opérations suivantes :
1. Créez le fichier oraInst.loc, s'il n'existe pas déjà.
2. Préparez un fichier de réponse en utilisant les modèles
de fichier fournis avec le logiciel Oracle.
3. Enregistrez un fichier de réponse :
.runInstaller –record -destinationFile
<filename>
4. Exécutez OUI en mode automatique ou semi-automatique.
5. Si nécessaire, exécutez NetCA et DBCA en mode
automatique.

Copyright © 2005, Oracle. Tous droits réservés.

Option d'installation : Mode automatique


Pour installer et configurer des produits Oracle en utilisant OUI en mode automatique ou
semi-automatique, effectuez les opérations suivantes :
1. Créez le fichier oraInst.loc, s'il n'existe pas déjà. Si vous avez installé le logiciel
Oracle auparavant, il est fort probable que ce fichier se trouve déjà dans
ORACLE_BASE/oraInventory.
2. Préparez un fichier de réponse. Des modèles de fichier pour chaque produit et type
d'installation sont fournis (enterprise.rsp, standard.rsp et netca.rsp, par
exemple).
3. Utilisez éventuellement OUI en mode interactif pour enregistrer un fichier de réponse
que vous pouvez modifier puis employer pour réaliser les installations en mode
automatique ou semi-automatique. Sous Linux et UNIX, créez le fichier de réponse à
l'aide de la commande suivante :
.runInstaller –record -destinationFile <filename>
où –destinationFile correspond à l'emplacement du fichier.
4. Exécutez OUI en mode automatique ou semi-automatique.
5. Si vous avez effectué une installation de type "logiciel seul", exécutez Oracle Net
Configuration Assistant (NetCA) et Database Configuration Assistant (DBCA) en mode
automatique ou non interactif, si cela s'avère nécessaire.
Pour plus d'informations, reportez-vous au manuel Oracle Database Installation Guide propre
à votre système d'exploitation.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-19
Synthèse

Ce chapitre vous a permis d'apprendre à :


• décrire votre rôle en tant qu'administrateur
de base de données (DBA) et expliquer les outils
et tâches utilisés
• planifier votre installation, en commençant
par consulter la documentation appropriée
• réaliser des tâches de pré-installation, telles que
la vérification des conditions requises au niveau
du système
• installer le logiciel à l'aide d'OUI

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-20
Présentation de l'exercice :
Installer le logiciel Oracle

Cet exercice porte sur l'installation du logiciel Oracle


à l'aide d'Oracle Universal Installer.
Remarque : Vous devez impérativement réaliser
cet exercice avant de pouvoir effectuer les exercices
des chapitres suivants.

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 2-21
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Créer une base de données Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• créer une base de données à l'aide de l'assistant
Database Configuration Assistant (DBCA)
• créer un modèle de conception de base
de données à l'aide de l'assistant DBCA
• générer des scripts de création de base
de données avec l'assistant DBCA

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-2
Planification de la base de données
En tant qu'administrateur de base de données,
vous devez planifier les éléments suivants :
• La structure de stockage logique de la base
et son implémentation physique :
– De combien de disques disposez-vous pour cela ?
– De combien de fichiers de données aurez-vous
besoin ? (prévoir l'expansion de la base de données)
– Combien de tablespaces utiliserez-vous ?
– Quel type d'information sera stocké ?
– Etes-vous confronté à des exigences de stockage
particulières en termes de type ou de taille ?
• La conception globale de la base de données
• Une stratégie de sauvegarde de la base
de données

Copyright © 2005, Oracle. Tous droits réservés.

Planification de la base de données


Il est essentiel de prévoir la manière dont la structure de stockage logique de la base de
données affectera les performances du système et les différentes opérations de gestion de la
base. Par exemple, avant de créer des tablespaces dans la base, vous devez identifier le
nombre de fichiers de données qui composeront chaque tablespace, le type d'information
stocké dans chaque tablespace, ainsi que les disques sur lesquels stocker physiquement les
fichiers de données. Lors de la planification du stockage logique global de la structure de base
de données, tenez compte de l'incidence que pourra avoir cette structure lorsque la base de
données sera créée et en cours d'exécution. Certains objets de base de données peuvent
présenter des exigences de stockage particulières, en termes de type ou de taille.
Dans les environnements de base de données distribués, cette phase de planification est
extrêmement importante. L'emplacement physique des données auxquelles les utilisateurs
accèdent fréquemment affecte de manière considérable les performances des applications.
Pendant la phase de planification, élaborez une stratégie de sauvegarde de la base. Vous
pouvez modifier la structure de stockage logique ou la conception de la base de données de
manière à accroître l'efficacité des opérations de sauvegarde. Les stratégies de sauvegarde
sont abordées dans un prochain chapitre.
Voici donc le type de questions et de considérations auxquelles vous vous trouverez confronté
en tant qu'administrateur de base de données. L'objectif de ce cours (dans son ensemble) est
de vous aider à répondre à chacune d'elles.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-3
Bases de données : Exemples

• Data warehouse :
– Recherche et marketing
– Impôts et taxes
– Listes de professionnels agréés
(médecins, infirmières, etc.)
• Traitement des transactions
(Transaction Processing) :
– Système de caisse enregistreuse
– Transactions des guichets automatiques
• Bases de données généralistes (General Purpose) :
– Système de facturation, par exemple, d'une société
de services et d'ingénierie informatique ou d'une crèche

Copyright © 2005, Oracle. Tous droits réservés.

Bases de données : Exemples


Les différents types de base de données disposent de leur propre instance et imposent leurs
exigences particulières en matière de stockage. Le logiciel de base de données Oracle fournit
des modèles permettant la création de ces différents types de base de données. Ces modèles
sont les suivants :
• Data warehouse : stockage des données sur le long terme et extraction des données lors
d'opérations de lecture.
• Traitement des transactions (Transaction Processing) : prise en charge d'un grand
nombre de petites transactions.
• Bases de données généralistes (General Purpose) : gestion de transactions et stockage
de celles-ci pour une durée moyenne.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-4
Assistant Database Configuration
Assistant (DBCA)

Copyright © 2005, Oracle. Tous droits réservés.

Assistant Database Configuration Assistant (DBCA)


L'assistant DBCA (Database Configuration Assistant) vous permet de créer une base de
données, de la supprimer ou de modifier sa configuration. Vous pouvez créer une base de
données à partir d'une liste de modèles prédéfinis, ou utiliser comme modèle une base de
données existante pour créer une autre base ou un autre modèle. Cette opération est parfois
désignée par le terme "clonage de base de données".
Pour appeler l'assistant DBCA, procédez comme suit :
1. Connectez-vous à l'ordinateur en tant que membre du groupe d'administration autorisé à
installer le logiciel Oracle.
2. Si nécessaire, définissez des variables d'environnement.
3. Entrez dbca pour appeler l'assistant DBCA.
4. Cliquez sur Next pour continuer.
L'assistant DBCA vous guide dans la réalisation de différentes opérations, telles que la
création d'une base de données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-5
Utiliser l'assistant DBCA pour
créer une base de données

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour créer une base de données


Pour créer une base de données à l'aide de l'assistant DBCA, procédez comme suit :
1. Sélectionnez Create a Database dans la page DBCA afin d'appeler l'assistant permettant
de configurer et de créer une base de données.
L'assistant vous invite à fournir les informations de configuration au fil des étapes. Dans
la plupart des pages, l'assistant fournit un paramètre par défaut que vous pouvez
accepter ou non.
2. Sélectionnez le type de modèle de base de données à utiliser pour la création de la base.
Vous avez le choix entre les modèles de base de données Data Warehouse, General
Purpose et Transaction Processing qui copient une base de données préconfigurée, y
compris les fichiers de données. Ces fichiers de données comprennent des fichiers de
contrôle, des fichiers de journalisation (fichiers redo log) et des fichiers de données
propres aux différents tablespaces inclus. Cliquez sur Show Details afin de voir la
configuration de chaque type de base de données.
Pour les environnements plus complexes, vous pouvez choisir l'option Custom
Database.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-6
Utiliser l'assistant DBCA pour
créer une base de données
3

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour créer une base de données (suite)


3. Database Identification : Dans le champ Global Database Name, entrez le nom global de
base de données sous la forme database_name.domain_name. Dans le champ
SID, indiquez également l'identificateur du système. Par défaut, le SID est le nom de la
base de données et il identifie de manière unique l'instance associée à la base de
données.
4. Management Options : Dans cette page, configurez la base de données de manière à
pouvoir la gérer avec Oracle Enterprise Manager. Sélectionnez l'option par défaut
"Configure the Database with Enterprise Manager".

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-7
Utiliser l'assistant DBCA pour
créer une base de données

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour créer une base de données (suite)


5. Database Credentials : Dans cette page, définissez les mots de passe des comptes
d'administration, tels que SYS et SYSTEM. Pour les besoins de ce cours, utilisez
oracle comme mot de passe pour tous les comptes d'administration.
6. Storage Options : Indiquez le type de mécanisme de stockage (File System, par
exemple) que doit utiliser la base de données.
7. Database File Locations : Indiquez l'emplacement des fichiers de base de données, selon
vos besoins. Grâce à Oracle Managed Files (OMF), vous n'avez plus besoin de gérer
directement les fichiers du système d'exploitation dont est constituée une base de
données Oracle. Vous définissez ici des opérations en termes d'objets de base de
données et non en termes de noms de fichier. Pour plus d'informations, reportez-vous au
chapitre intitulé "Gérer les structures de stockage de la base de données".

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-8
Utiliser l'assistant DBCA pour
créer une base de données
8

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour créer une base de données (suite)


8. Recovery Configuration : Si nécessaire, indiquez une zone de récupération rapide et
activez la fonction d'archivage.
9. Database Content : Ces pages vous permettent de sélectionner des composants, tels que
des exemples de schémas (Sample Schemas), et d'utiliser des scripts personnalisés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-9
Utiliser l'assistant DBCA pour
créer une base de données

10

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour créer une base de données (suite)


10. Initialization Parameters : Dans les différents onglets de cette page, vous pouvez
modifier les paramètres d'initialisation par défaut :
- Memory : Utilisez cette page pour définir les paramètres d'initialisation qui
contrôlent l'utilisation de la mémoire. Vous avez le choix entre une allocation de
mémoire standard ou personnalisée : (A) Typical ou (B) Custom.
- Sizing : Pour indiquer la taille des blocs, entrez une taille en octets ou acceptez la
valeur par défaut.
- Character Sets : Utilisez cette page pour définir les jeux de caractères de la base de
données.
Recommandation : Oracle recommande (lorsque cela s'avère possible) d'utiliser
Unicode comme jeu de caractères de base de données. En effet, ce système de
codage fournit une souplesse optimale pour la prise en charge des technologies
Web et de nombreuses langues.
- Connection Mode : Sélectionnez Dedicated ou Shared Server Mode. Pour plus
d'informations, reportez-vous au chapitre intitulé "Configurer l'environnement
réseau Oracle".
Remarque : Plusieurs paramètres d'initialisation ne sont configurés qu'une seule fois, et sont
applicables pour toute la durée de vie de la base (les paramètres DB_BLOCK_SIZE et
CHARACTER_SET, par exemple).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-10
Utiliser l'assistant DBCA pour
créer une base de données
11

12

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour créer une base de données (suite)


11. Database Storage : Si vous avez sélectionné l'un des modèles de base de données
préconfigurés, vous ne pouvez pas ajouter ou supprimer des fichiers de contrôle ou des
fichiers de données.
Remarque : Vous pouvez enregistrer la définition de base de données dans un fichier
HTML pour pouvoir vous y référer facilement.
12. Creation Options : Vous pouvez choisir de créer la base de données maintenant,
d'enregistrer la définition de base de données en tant que modèle ou de générer des
scripts. Si vous sélectionnez toutes ces options, l'assistant DBCA commence par
enregistrer le modèle de base de données, puis il génère les scripts dans le répertoire de
destination et crée ensuite la base de données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-11
Gérer les mots de passe
A

Copyright © 2005, Oracle. Tous droits réservés.

Gérer les mots de passe


Une fois les étapes de l'assistant DBCA terminées, notez les informations suivantes afin de
vous y référer ultérieurement :
• Emplacement des fichiers journaux d'installation (A)
• Nom global de base de données (B)
• Identificateur du système (SID) (B)
• Nom et emplacement du fichier de paramètres serveur (SPFILE) (B)
• URL d'Enterprise Manager (C)
Cliquez sur Password Management pour déverrouiller les comptes de base de données que
vous prévoyez d'utiliser. Lorsque vous déverrouillez un compte, fournissez un mot de passe.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-12
Créer un modèle de conception
de base de données

Copyright © 2005, Oracle. Tous droits réservés.

Créer un modèle de conception de base de données


Un modèle est une définition de base de données pré-enregistrée que vous utilisez comme
point de départ pour une nouvelle base. Si vous n'avez pas créé de modèle dans le cadre du
processus de création de base de données, vous pouvez le faire à tout moment en appelant
l'assistant DBCA. Vous pouvez créer un modèle de trois manières différentes :
• A partir d'un modèle existant
• A partir d'une base de données existante (structure uniquement)
• A partir d'une base de données existante (structure et données)
L'assistant DBCA vous guide tout au long du processus de création d'un modèle de
conception de base de données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-13
Utiliser l'assistant DBCA pour supprimer
une base de données
1

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser l'assistant DBCA pour supprimer une base de données


Pour supprimer (ou configurer) une base de données sous UNIX ou Linux, vous devez définir
ORACLE_SID dans le shell à partir duquel l'assistant DBCA est lancé. Démarrez l'assistant
en entrant dbca dans une fenêtre de terminal, puis cliquez sur Next dans la page Welcome.
Pour supprimer la base de données, procédez de la manière suivante :
1. Dans la page Operations, sélectionnez Delete a Database, puis cliquez sur Next.
2. Sélectionnez la base de données à supprimer (pour ce cours, sélectionnez hist), puis
cliquez sur Finish.
3. Cliquez sur Yes pour confirmer la suppression.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-14
Utiliser l'assistant DBCA pour supprimer une base de données (suite)
Lorsque vous supprimez une base de données, vous supprimez également ses fichiers de
données, ses fichiers de journalisation (fichiers redo log), ses fichiers de contrôle et ses
fichiers de paramètres d'initialisation. En effet, l'instruction DROP DATABASE supprime
tous les fichiers de contrôle, ainsi que tous les autres fichiers de base de données
répertoriés dans les fichiers de contrôle. Pour que l'instruction DROP DATABASE
s'exécute avec succès, l'ensemble des conditions suivantes doivent être satisfaites :
• La base de données doit être montée et fermée.
• La base de données doit être montée en mode exclusif et non en mode partagé.
• La base de données doit être montée en mode RESTRICTED.
Voici un exemple d'instruction :
DROP DATABASE;
L'instruction DROP DATABASE n'a aucune incidence sur les fichiers de journalisation
archivés, ni sur les copies ou les sauvegardes de la base de données. Il est préférable
d'utiliser Recovery Manager (RMAN) pour supprimer ce type de fichier. Si la base de
données se trouve sur des disks raws, les fichiers spéciaux des disks raw réels ne sont pas
supprimés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-15
Synthèse

Ce chapitre vous a permis d'apprendre à utiliser


l'assistant DBCA pour :
• créer une base de données
• créer un modèle de conception de base
de données
• générer des scripts de création de base
de données

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-16
Présentation de l'exercice :
Utiliser l'assistant DBCA

Cet exercice porte sur les points suivants :


• créer la base de données ORCL à l'aide
de l'assistant DBCA
• déverrouiller le schéma HR
Remarque : Vous devez impérativement créer la base
de données et déverrouiller le schéma HR pour
pouvoir réaliser les exercices des chapitres suivants.
Facultatif :
• créer le modèle de conception de base de
données ORCL à l'aide de l'assistant DBCA
• créer des scripts de création de base
de données avec l'assistant DBCA

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 3-17
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Gérer l'instance Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs
A la fin de ce chapitre, vous pourrez :
• démarrer et arrêter la base de données et
les composants Oracle
• utiliser Enterprise Manager (EM)
• accéder à une base de données à l'aide de SQL*Plus
et d'iSQL*Plus
• modifier les paramètres d'initialisation de base
de données
• décrire les étapes du démarrage d'une base
de données
• décrire les options d'arrêt d'une base de données
• afficher le fichier d'alertes
• accéder aux vues dynamiques des performances

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-2
Structure de gestion > Composants
SQL*Plus
Param. d'init.
Démarrage BdD
Arrêt BdD
Les trois composants de la structure de gestion Fichier d'alertes
d'Oracle Database 10g sont les suivants : Vues de perf.

• Instance de base de données


• Processus d'écoute
• Interface de gestion
– Database Control
– Agent de gestion (lors de l'utilisation de Grid Control)

Agent de -ou-
gestion
Database Processus
Control d'écoute
Interface de gestion

Copyright © 2005, Oracle. Tous droits réservés.

Structure de gestion
Les trois principaux composants de la structure de gestion de base de données Oracle sont les
suivants :
• l'instance de base de données gérée,
• un processus d'écoute (listener) permettant les connexions à la base de données,
• l'interface de gestion. Il peut s'agir soit d'un agent de gestion qui s'exécute sur le serveur
de base de données (et le connecte à Oracle Enterprise Manager Grid Control), soit de
l'interface Oracle Enterprise Manager Database Control autonome. Cette interface est
également appelée "Database Console".
Chacun de ces composants doit être démarré explicitement si vous souhaitez pouvoir utiliser
les services du composant. Ils doivent être fermés correctement lors de l'arrêt du serveur qui
héberge Oracle Database 10g.
Le premier composant à démarrer est l'interface de gestion. Dès lors qu'elle est activée,
l'interface de gestion peut être utilisée pour démarrer les autres composants.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-3
Démarrer et arrêter Database Control

$ emctl start dbconsole


TZ set to US/Pacific
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://edrsr9p1.us.oracle.com:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control
............. started.
----------------Logs are generated in directory
/u01/app/oracle/product/10.2.0/db_1/edrsr9p1.us.oracle.com_orcl/sy
sman/log

$ emctl stop dbconsole


TZ set to US/Pacific
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://edrsr9p1.us.oracle.com:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...
... Stopped.

Copyright © 2005, Oracle. Tous droits réservés.

Démarrer et arrêter Database Control


Pour les bases de données qui ne sont pas connectées à la structure Grid Control, Oracle
fournit une console de gestion autonome appelée Database Control. Chaque base de données
gérée à l'aide de Database Control présente une installation Database Control distincte. A
partir d'une même console Database Control, vous ne pouvez gérer qu'une seule base de
données. Avant d'utiliser Database Control, assurez-vous qu'un processus dbconsole est
démarré.
Pour démarrer le processus dbconsole, utilisez la commande suivante :
emctl start dbconsole
Pour arrêter le processus dbconsole, utilisez la commande suivante :
emctl stop dbconsole
Pour afficher le statut du processus dbconsole, utilisez la commande suivante :
emctl status dbconsole
Remarque : Il se peut que vous deviez accéder à votre répertoire $ORACLE_HOME/bin si
celui-ci ne se trouve pas dans le chemin du système d'exploitation.
Database Control utilise un processus agent côté serveur. Ce processus agent démarre et
s'arrête automatiquement en même temps que le processus dbconsole.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-4
Oracle Enterprise Manager

Copyright © 2005, Oracle. Tous droits réservés.

Oracle Enterprise Manager


Lorsque vous installez une base de données Oracle, Oracle Universal Installer installe
également Oracle Enterprise Manager (Enterprise Manager). Son interface Database Control
basée sur le Web constitue l'outil principal de gestion de la base de données Oracle. Vous
pouvez accéder à l'aide en ligne à partir de n'importe quelle page de l'outil et obtenir ainsi des
informations sur les tâches à effectuer. Dans la plupart des cas, vous pouvez effectuer une
hiérarchisation descendante des liens, afin d'obtenir des informations plus précises sur le
contenu d'une page. Il se peut que vous souhaitiez parfois écrire et exécuter des commandes
personnalisées. Toutefois, Enterprise Manager fournit une interface graphique qui vous
permet d'effectuer la plupart des tâches dont est chargé un administrateur de base de données
(DBA). Grâce à Enterprise Manager, vous pouvez notamment afficher des récapitulatifs
d'alertes et des graphiques de performances, créer et modifier des objets, et réaliser des
opérations de sauvegarde et de récupération.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-5
Accéder à Oracle Enterprise Manager

Copyright © 2005, Oracle. Tous droits réservés.

Accéder à Oracle Enterprise Manager


Ouvrez le navigateur Web et entrez l'URL suivante :
http://host name:port number/em
Si la base de données est :
• démarrée : Enterprise Manager affiche la page Database Control Login. Connectez-
vous à la base de données via un nom utilisateur autorisé à accéder à Database Control.
Il s'agit initialement de SYS, SYSMAN ou SYSTEM. Utilisez le mot de passe que vous
avez indiqué pour le compte au cours de l'installation de la base de données. Dans le
champ Connect As, sélectionnez SYSDBA ou SYSOPER pour vous connecter à la base
de données et bénéficier de privilèges d'administration de base de données spéciaux.
• arrêtée : Enterprise Manager affiche la page Startup/Shutdown and Perform Recovery.
Si tel est le cas, cliquez sur le bouton Startup/Shutdown. Vous êtes alors invité à
indiquer le nom utilisateur et le mot de passe de connexion aux bases de données hôte et
cible.
Remarque : Si vous rencontrez des difficultés pour démarrer Enterprise Manager, vérifiez
qu'un processus d'écoute (listener) est démarré.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-6
Page d'accueil de la base de données

Pages de propriétés

Copyright © 2005, Oracle. Tous droits réservés.

Page d'accueil de la base de données


La page d'accueil de la base de données affiche l'état en cours de la base. Elle contient en effet
tout un ensemble de mesures de performances qui reflètent l'état général de la base de
données. Cliquez sur les différents onglets pour accéder aux pages de propriétés Performance,
Administration et Maintenance, et gérer votre base de données.
La page d'accueil de la base de données fournit pour l'instance de base de données les
informations de performances et de statut suivantes :
• nom de l'instance, version de la base de données, emplacement du répertoire d'origine
Oracle Home, options de restauration physique, ainsi que d'autres données pertinentes
relatives à l'instance,
• disponibilité de l'instance en cours,
• alertes en suspens,
• informations de performances relatives aux sessions et aux instructions SQL,
• principales mesures d'utilisation de l'espace,
• liens avec hiérarchisation descendante (par exemple, LISTENER_<host_name>)
fournissant des informations de plus en plus détaillées.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-7
Utiliser SQL*Plus et iSQL*Plus Composants
> SQL*Plus
pour accéder à la base de données Param. d'init.
Démarrage BdD
Arrêt BdD
Fichier d'alertes
Grâce aux interfaces supplémentaires Vues de perf.
que SQL*Plus et iSQL*Plus fournissent
à votre base de données, vous pouvez :
• effectuer des opérations de gestion de base
de données
• exécuter des commandes SQL pour interroger
la base de données, ou insérer, mettre à jour
et supprimer des données dans la base

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser SQL*Plus et iSQL*Plus pour accéder à la base de données


En plus d'Enterprise Manager, vous pouvez utiliser d'autres outils Oracle, tels que SQL*Plus
et iSQL*Plus, pour exécuter des instructions SQL. Ces outils vous permettent d'effectuer un
grand nombre d'opérations de gestion de base de données, ainsi que de sélectionner, d'insérer,
de mettre à jour ou de supprimer des données dans la base.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-8
Utiliser iSQL*Plus

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser iSQL*Plus
iSQL*Plus est une interface Web vers une base de données Oracle. Il s'agit d'un composant de
SQL*Plus. Il possède un processus d'écoute (listener) côté serveur qui doit être démarré avant
toute connexion via un navigateur. Pour démarrer ce processus serveur, utilisez :
isqlplusctl start
Une fois le processus serveur démarré, connectez-vous à lui en entrant l'URL suivante dans un
navigateur :
http://host name:port/isqlplus
Le numéro de port utilisé par iSQL*Plus est généralement 5560, sauf si Oracle Universal
Installer (OUI) détecte que ce port est déjà utilisé. Consultez le fichier
$ORACLE_HOME/install/portlist.ini afin de déterminer le port utilisé par
iSQL*Plus.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-9
Configurer iSQL*Plus
pour des accès SYSDBA et SYSOPER
Pour qu'un utilisateur puisse se connecter à iSQL*Plus
en tant que SYSDBA ou SYSOPER, vous devez le définir
dans le gestionnaire d'utilisateurs OC4J. Pour ce faire,
procédez comme suit :
1. Créez un utilisateur.
2. Affectez-lui le rôle webDba.
$ cd $ORACLE_HOME/oc4j/j2ee/isqlplus/\
> application-deployments/isqlplus
$JAVA_HOME/bin/java \
> -Djava.security.properties=\
> $ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props \
> -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
> -user "iSQL*Plus DBA/admin" -password welcome -shell
JAZN> adduser "iSQL*Plus DBA" username password
JAZN> grantrole webDba "iSQL*Plus DBA" username

Copyright © 2005, Oracle. Tous droits réservés.

Configurer iSQL*Plus pour des accès SYSDBA et SYSOPER


La page iSQL*Plus Connection Role apparaît. Pour des raisons de sécurité, vous devez définir
dans cette page des informations de configuration et d'authentification spéciales pour les rôles
SYSOPER et SYSDBA. Pour ce faire, définissez un utilisateur dans le gestionnaire
d'utilisateurs d'OC4J (Oracle Application Server Containers for J2EE) et octroyez-lui un accès
au rôle webDba. Réalisez pour cela les opérations ci-dessous. Notez que la valeur
$ORACLE_HOME/jdk doit être affectée à la variable d'environnement JAVA_HOME OS.
1. Indiquez le répertoire approprié :
cd $ORACLE_HOME/oc4j/j2ee/isqlplus/\
application-deployments/isqlplus
2. Exécutez le shell JAZN :
$JAVA_HOME/bin/java \
-Djava.security.properties=\
$ORACLE_HOME\
/oc4j/j2ee/home/config/jazn.security.props \
-jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
-user "iSQL*Plus DBA/admin" \
-password welcome -shell

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-10
Configurer iSQL*Plus pour des accès SYSDBA et SYSOPER (suite)
3. Créez un utilisateur en indiquant un nom utilisateur et un mot de passe :
JAZN> adduser "iSQL*Plus DBA" username password
4. Affectez le rôle webDba à l'utilisateur :
JAZN> grantrole webDba "iSQL*Plus DBA" username
5. Quittez le shell JAZN :
JAZN> exit

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-11
Utiliser SQL*Plus

SQL*Plus est :
• un outil en mode ligne de commande
• utilisé en mode interactif ou en mode batch
$ sqlplus hr/hr

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 25 12:37:21 2005


Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select last_name from employees;

LAST_NAME
-------------------------
Abel
Ande
Atkinson

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser SQL*Plus
Vous pouvez utiliser l'interface de ligne de commande vers SQL*Plus afin d'écrire des
commandes SQL*Plus, SQL et PL/SQL pour réaliser diverses opérations :
• Entrer, modifier, exécuter, stocker, extraire et enregistrer des commandes SQL et des
blocs PL/SQL
• Mettre en forme, calculer, stocker et afficher les résultats des interrogations
• Répertorier les définitions des colonnes d'une table
• Envoyer des messages à un utilisateur final et accepter les réponses de cet utilisateur
• Procéder à l'administration de la base de données
Pour démarrer SQL*Plus, procédez comme suit :
1. Ouvrez une fenêtre de terminal.
2. A l'invite de commande, entrez la commande SQL*Plus suivante :
$ sqlplus /nolog
3. Entrez connect, suivi de l'utilisateur sous le nom duquel vous souhaitez vous
connecter.
4. Lorsque vous y êtes invité, entrez le mot de passe de l'utilisateur.
SQL*Plus démarre et établit une connexion à la base de données par défaut.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-12
Appeler SQL*Plus à partir d'un script shell

$ ./batch_sqlplus.sh

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 25 12:47:44 2005


Copyright (c) 1982, 2005, Oracle. All rights reserved.
Sortie
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
# Name of this file: batch_sqlplus.sh
SQL> # Count employees and give raise.
COUNT(*) sqlplus hr/hr <<EOF
---------- select count(*) from employees;
107 update employees set salary =
SQL> salary*1.10;
107 rows updated. commit;
SQL> quit
Commit complete. EOF
SQL> Disconnected from Oracle Database
exit 10g Enterprise Edition Release
10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@EDRSR9P1 oracle]$

Copyright © 2005, Oracle. Tous droits réservés.

Appeler SQL*Plus à partir d'un script shell


Vous pouvez appeler SQL*Plus à partir d'un script shell ou d'un fichier BAT. Vous devez,
pour cela, appeler sqlplus et utiliser la syntaxe de génération de script du système
d'exploitation pour transmettre les paramètres.
Dans l'exemple de la diapositive ci-dessus, les instructions SELECT, UPATE et COMMIT sont
exécutées avant que SQL*Plus ne redonne le contrôle au système d'exploitation.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-13
Appeler un script SQL à partir de SQL*Plus

script.sql select * from departments where location_id = 1400;


quit

Sortie
$ sqlplus hr/hr @script.sql

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 25 12:57:02 2005


Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID


------------- ------------------------------ ---------- -----------
60 IT 103 1400

Disconnected from Oracle Database 10g Enterprise Edition Release


10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
$

Copyright © 2005, Oracle. Tous droits réservés.

Appeler un script SQL à partir de SQL*Plus


Vous pouvez appeler un fichier script SQL existant à partir de SQL*Plus. Cette opération peut
être effectuée sur la ligne de commande, lorsque vous appelez SQL*Plus pour la première
fois (voir la diapositive ci-dessus). Elle peut également être réalisée depuis une session
SQL*Plus, en entrant simplement l'opérateur "@". Par exemple, la commande suivante
exécute le script à partir d'une session SQL*Plus déjà établie :
SQL> @script.sql

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-14
Fichiers de paramètres d'initialisation Composants
SQL*Plus
> Param. d'init.
Démarrage BdD
Arrêt BdD
Fichier d'alertes
Vues de perf.

spfileorcl.ora

Copyright © 2005, Oracle. Tous droits réservés.

Fichiers de paramètres d'initialisation


Lorsque vous démarrez l'instance, un fichier de paramètres d'initialisation est lu. Il existe deux
types de fichier de paramètres :
• Fichier de paramètres serveur (SPFILE) : Il s'agit du type de fichier de paramètres
d'initialisation préféré. Ce fichier binaire est accessible en lecture et en écriture par le
serveur de base de données et il ne doit pas être modifié manuellement. Il se trouve sur
le serveur sur lequel est exécutée la base de données Oracle, et est persistant en cas
d'opérations d'arrêt et de démarrage. Ce fichier de paramètres serveur (SPFILE), qui est
recherché automatiquement au démarrage, est doté d'un nom par défaut :
spfile<SID>.ora.
• Fichier de paramètres d'initialisation au format texte : Ce type de fichier de
paramètres d'initialisation peut être lu par le serveur de base de données, mais il n'est pas
accessible en écriture par le serveur. Pour être persistantes suite aux opérations d'arrêt et
de démarrage, les valeurs des paramètres d'initialisation doivent être définies et
modifiées manuellement à l'aide d'un éditeur de texte. Le nom par défaut de ce fichier,
qui est recherché automatiquement au démarrage si aucun fichier SPFILE n'est trouvé,
est : init<SID>.ora.
Il est recommandé de créer un fichier SPFILE comme moyen dynamique de gérer les
paramètres d'initialisation. Grâce à un fichier SPFILE, les paramètres d'initialisation peuvent
être stockés et gérés de manière persistante dans un fichier du disque côté serveur.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-15
Paramètres d'initialisation simplifiés

Paramètres de base Paramètres avancés

CONTROL_FILES DB_CACHE_SIZE
DB_BLOCK_SIZE DB_FILE_MULTIBLOCK
PROCESSES _READ_COUNT
UNDO_MANAGEMENT SHARED_POOL_SIZE
… …

Copyright © 2005, Oracle. Tous droits réservés.

Paramètres d'initialisation simplifiés


Les paramètres d'initialisation sont répartis en deux groupes : les paramètres de base et les
paramètres avancés.
Dans la plupart des cas, la définition et le réglage (tuning) des seuls 32 paramètres de base
sont suffisants pour obtenir des performances de base de données satisfaisantes. Dans de rares
cas, il peut s'avérer nécessaire de modifier les paramètres avancés pour obtenir des
performances optimales.
Le terme "paramètre de base" désigne un paramètre que vous êtes susceptible de devoir
définir pour assurer les bonnes performances de la base de données. Tous les autres
paramètres sont considérés comme des paramètres avancés.
Les exemples de paramètres de base incluent des noms de répertoire ou de "destinations" pour
des types de fichier particuliers : AUDIT_FILE_DEST, BACKGROUND_DUMP_DEST,
CORE_DUMP_DEST, DB_CREATE_FILE_DEST, DB_CREATE_ONLINE_LOG_DEST_n,
DB_RECOVERY_FILE_DEST et USER_DUMP_DEST.
Paramètres d'initialisation : Exemples
Le paramètre CONTROL_FILES définit un ou plusieurs noms de fichier de contrôle. Oracle
recommande vivement de multiplexer et de mettre en miroir les fichiers de contrôle. La plage
de valeurs de ce paramètre est comprise entre 1 et 8 noms de fichier (avec les chemins d'accès
correspondants). La plage par défaut dépend du système d'exploitation utilisé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-16
Paramètres d'initialisation simplifiés (suite)
Paramètres d'initialisation : Exemples (suite)
Le paramètre DB_BLOCK_SIZE détermine la taille (en octets) d'un bloc de base de données
Oracle. Cette valeur est définie lors de la création de la base de données et ne peut pas être
modifiée ultérieurement. Plage de valeurs : 1024 – 65536 (en fonction du système
d'exploitation). Valeur par défaut : 8 ko (selon le système d'exploitation).
Le paramètre DB_CACHE_SIZE définit la taille du cache de tampons de bloc standard. Plage
de valeurs : au moins 16 Mo. Valeur par défaut : 48 Mo.
Le paramètre DB_FILE_MULTIBLOCK_READ_COUNT concerne le nombre maximal de blocs
lus au cours d'une opération d'entrée/sortie (E/S) impliquant une analyse séquentielle complète.
Plage de valeurs : dépend du système d'exploitation. Valeur par défaut : 8.
Le paramètre DB_FILES définit le nombre maximal de fichiers de base de données qui peuvent
être ouverts pour cette base de données. Plage de valeurs : MAXDATAFILES (varie en fonction
du système d'exploitation). Valeur par défaut : varie en fonction du système d'exploitation (200
sous Solaris).
Le paramètre PGA_AGGREGATE_TARGET indique la quantité de mémoire PGA (Program
Global Area) allouée à tous les processus serveur liés à l'instance. Attribuez une valeur positive
à ce paramètre avant d'activer la définition automatique des zones de travail. Cette mémoire ne
réside pas dans la mémoire SGA (System Global Area). La base de données utilise ce paramètre
pour définir la quantité cible de mémoire PGA à utiliser. Lors de la définition du paramètre,
soustrayez la mémoire SGA de la quantité de mémoire totale du système disponible pour
l'instance Oracle. Vous pouvez affecter la quantité de mémoire restante à
PGA_AGGREGATE_MEMORY. Plage de valeurs : nombres entiers plus la lettre K, M ou G pour
indiquer cette limite en kilo-octets, mégaoctets ou gigaoctets. La valeur minimale est 10M et la
valeur maximale, 400G. Valeur par défaut : "Not Specified", ce qui signifie que le réglage
(tuning) automatique des zones de travail est entièrement désactivé.
Le paramètre PROCESSES définit le nombre maximal de processus utilisateur du système
d'exploitation qui peuvent se connecter simultanément à un serveur Oracle. Cette valeur doit
être suffisante pour tous les processus en arrière-plan. Plage de valeurs : entre 6 et une valeur
variant en fonction du système d'exploitation. Valeur par défaut : dépend du paramètre
PARALLEL_MAX_SERVERS.
Le paramètre SHARED_POOL_SIZE définit la taille, en octets, de la zone de mémoire
partagée. La zone de mémoire partagée contient des objets tels que les curseurs partagés, les
procédures stockées, les structures de contrôle et les mémoires tampon des messages d'exécution
parallèle. Des valeurs plus élevées peuvent améliorer les performances des systèmes
multiutilisateurs. Plage de valeurs : 300 ko (en fonction du système d'exploitation). Valeur par
défaut : avec un système 64 bits, 64 Mo, sinon 16 Mo.
Le paramètre UNDO_MANAGEMENT détermine le mode de gestion du volume d'annulation que
le système doit utiliser. Si ce paramètre se voit attribuer la valeur AUTO, l'instance est démarrée
en mode SMU (system managed undo). Sinon, elle est démarrée en mode RBU (rollback undo).
En mode RBU, le volume d'annulation est alloué de manière externe sous forme de segments
d'annulation (rollback segments). En mode SMU, le volume d'annulation est alloué de manière
externe sous forme de tablespaces d'annulation. Plage de valeurs : AUTO ou MANUAL. Valeur
par défaut : Si le paramètre UNDO_MANAGEMENT est ignoré lors du démarrage de la première
instance, la valeur par défaut MANUAL est utilisée et l'instance est démarrée en mode RBU. S'il
ne s'agit pas de la première instance, l'instance est démarrée dans le même mode d'annulation
que toutes les autres instances existantes.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-17
Afficher et modifier
les paramètres d'initialisation

Copyright © 2005, Oracle. Tous droits réservés.

Afficher et modifier les paramètres d'initialisation


Vous pouvez utiliser Enterprise Manager pour afficher et modifier les paramètres
d'initialisation. Pour ce faire, cliquez sur All Initialization Parameters dans la région Database
Configuration de l'onglet Database Administration.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-18
Composants
Démarrer et arrêter SQL*Plus
Param. d'init.
la base de données > Démarrage BdD
Arrêt BdD
Fichier d'alertes
Vues de perf.

ou

Copyright © 2005, Oracle. Tous droits réservés.

Démarrer et arrêter la base de données


Lorsque vous cliquez sur Startup ou Shutdown, vous êtes invité à saisir des informations
d'identification et de connexion qui sont utilisées pour la connexion à l'hôte (c'est-à-dire
l'ordinateur sur lequel réside la base de données) et à la base proprement dite. Entrez les
informations d'identification et de connexion.
Si nécessaire, vous pouvez ensuite cliquer sur Advanced Options pour modifier les options de
démarrage ou le mode d'arrêt. Vous pouvez également cliquer sur Show SQL pour afficher les
instructions SQL utilisées pour le démarrage ou pour l'arrêt.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-19
Démarrer une instance de base
de données Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Démarrer une instance de base de données Oracle


Si la base de données n'est pas démarrée lorsque vous accédez à la page Enterprise Manager
Database Control, cliquez sur Startup pour commander le démarrage. Entrez les informations
d'identification et de connexion (credentials) à l'hôte et, éventuellement, sélectionnez le mode
de démarrage.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-20
Démarrer une instance de base
de données Oracle : NOMOUNT
OPEN
STARTUP

MOUNT

NOMOUNT

Instance
démarrée
SHUTDOWN

Copyright © 2005, Oracle. Tous droits réservés.

Démarrer une instance de base de données Oracle : NOMOUNT


Lors du démarrage de l'instance de base de données, sélectionnez l'état dans lequel elle
démarre. Les scénarios qui suivent décrivent les différentes étapes du démarrage d'une
instance.
En règle générale, une instance est démarrée uniquement en mode NOMOUNT au cours de la
création de la base de données, au cours de la nouvelle création des fichiers de contrôle ou
lors de certains scénarios de sauvegarde et de récupération.
Le démarrage d'une instance inclut les opérations suivantes :
• Recherche dans le répertoire <oracle_home>/database d'un fichier portant un
nom particulier, dans l'ordre suivant :
- spfile<SID>.ora
- Si le fichier précédent n'est pas trouvé, spfile.ora
- Si le fichier précédent n'est pas trouvé, init<SID>.ora
Il s'agit du fichier qui contient les paramètres d'initialisation de l'instance. Le fait
de définir le paramètre PFILE avec STARTUP remplace le comportement par
défaut.
• Allocation de la mémoire SGA
• Démarrage des processus en arrière-plan
• Ouverture du fichier alert<SID>.log et des fichiers trace
Remarque : SID est l'ID système qui identifie l'instance (par exemple, ORCL).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-21
Démarrer une instance
de base de données Oracle :
MOUNT
OPEN
STARTUP

MOUNT

Fichier de
contrôle ouvert
NOMOUNT pour cette
instance
Instance
démarrée
SHUTDOWN

Copyright © 2005, Oracle. Tous droits réservés.

Démarrer une instance de base de données Oracle : MOUNT


Le montage d'une base de données inclut les opérations suivantes :
• Associer une base de données à une instance démarrée précédemment.
• Localiser et ouvrir les fichiers de contrôle indiqués dans le fichier de paramètres.
• Lire les fichiers de contrôle afin d'obtenir le nom et le statut des fichiers de données et
des fichiers de journalisation en ligne. Toutefois, aucune vérification n'est effectuée à ce
stade pour vérifier l'existence des fichiers de données et des fichiers de journalisation en
ligne.
Pour effectuer des opérations de maintenance particulières, démarrez une instance et montez
une base de données, mais n'ouvrez pas cette dernière.
Par exemple, la base de données doit être montée (mounted) mais non ouverte pour les
opérations suivantes :
• Renommer des fichiers de données (les fichiers de données d'un tablespace hors ligne
(offline) peuvent être renommés lorsque la base de données est ouverte).
• Activer et désactiver les options d'archivage des fichiers de journalisation en ligne.
• Procéder à une récupération complète de la base de données.
Remarque : Une base de données peut rester en mode MOUNT même si une demande OPEN a
été effectuée. Cela peut s'expliquer par le fait que la base de données doit être récupérée d'une
manière ou d'une autre.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-22
Démarrer une instance
de base de données Oracle :
OPEN
OPEN
STARTUP Tous les fichiers sont
ouverts, conformément à la
MOUNT description du fichier de
contrôle pour cette instance
Fichier de
contrôle ouvert
NOMOUNT pour cette
instance
Instance
démarrée
SHUTDOWN

Copyright © 2005, Oracle. Tous droits réservés.

Démarrer une instance de base de données Oracle : OPEN


Le fonctionnement normal de la base de données signifie qu'une instance est démarrée et que
la base de données est montée et ouverte. Dans le cas du fonctionnement normal de la base,
n'importe quel utilisateur valide peut se connecter à la base de données et effectuer des
opérations standard d'accès aux données.
L'ouverture de la base de données inclut les opérations suivantes :
• ouverture des fichiers de données en ligne (online)
• ouverture des fichiers de journalisation en ligne
Si certains fichiers de données ou fichiers de journalisation en ligne sont absents lorsque vous
tentez d'ouvrir la base de données, le serveur Oracle renvoie une erreur.
Au cours de cette étape finale, le serveur Oracle vérifie que tous les fichiers de données et
fichiers de journalisation en ligne peuvent être ouverts, et il vérifie la cohérence de la base de
données. Si nécessaire, le processus SMON (System Monitor) en arrière-plan engage la
récupération d'instance.
Vous pouvez démarrer une instance de base de données en mode d'accès restreint, de sorte
qu'elle soit accessible uniquement aux utilisateurs disposant de privilèges d'administration.
Pour démarrer une instance en mode restreint, sélectionnez l'option "Restrict access to
database" dans la page Advanced Startup Options.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-23
Arrêter une instance Composants
SQL*Plus
de base de données Oracle Param. d'init.
Démarrage BdD
> Arrêt BdD
Fichier d'alertes
Vues de perf.

Copyright © 2005, Oracle. Tous droits réservés.

Arrêter une instance de base de données Oracle


Si l'instance est déjà démarrée lorsque vous accédez à la page Enterprise Manager Database
Control, vous pouvez cliquer sur le bouton Shutdown pour l'arrêter. Si vous cliquez ensuite
sur le bouton Advanced Options, vous pouvez sélectionner le mode d'arrêt : Normal,
Transactional, Immediate ou Abort.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-24
Modes d'arrêt

Mode d'arrêt A I T N
Autorise les nouvelles connexions Non Non Non Non
Attend la fin des sessions en cours Non Non Non Oui
Attend la fin des transactions en cours Non Non Oui Oui
Force un point de reprise (checkpoint) Non Oui Oui Oui
et ferme les fichiers

Mode d'arrêt :
• A = ABORT
• I = IMMEDIATE
• T = TRANSACTIONAL
• N = NORMAL

Copyright © 2005, Oracle. Tous droits réservés.

Modes d'arrêt
Les modes d'arrêt ci-dessous sont indiqués dans leur ordre d'adaptation à l'activité en cours
(du moins adapté au plus adapté) :
• ABORT : effectue des tâches minimales avant l'arrêt. Ce mode requiert une opération de
récupération avant le démarrage, par conséquent, utilisez-le uniquement lorsque cela
s'avère nécessaire. Ce mode est généralement utilisé lorsqu'aucun autre mode d'arrêt ne
fonctionne, lorsque le démarrage de l'instance se révèle problématique, ou lorsque vous
avez besoin d'arrêter l'instance immédiatement en raison d'un événement imminent, tel
que l'annonce d'une coupure de courant dans les secondes qui suivent.
• IMMEDIATE : option utilisée le plus fréquemment. Les transactions non validées sont
annulées (rollback).
• TRANSACTIONAL : laisse le temps de terminer les transactions.
• NORMAL : attend la déconnexion des sessions.
Du point de vue du temps nécessaire pour effectuer l'arrêt, ABORT est le mode le plus rapide
et NORMAL, le plus lent.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-25
Options SHUTDOWN

Vers le bas : Pendant


Vers le haut :
• Les modifications les opérations • Pas de
non validées sont récupération
SHUTDOWN
annulées pour d'instance
NORMAL
IMMEDIATE ou
• Le cache de SHUTDOWN
tampons de la base TRANSACTIONAL
ou
de données est SHUTDOWN
écrit dans les IMMEDIATE
fichiers de données
• Les ressources
sont libérées
Base de données cohérente
(base de données propre)

Copyright © 2005, Oracle. Tous droits réservés.

Options SHUTDOWN
SHUTDOWN NORMAL
Le mode "normal" est le mode d'arrêt par défaut. Un arrêt "normal" de la base de données a
lieu dans les conditions suivantes :
• Aucune nouvelle connexion ne peut être établie.
• Le serveur Oracle attend que tous les utilisateurs se déconnectent avant de procéder
complètement à l'arrêt.
• Les tampons de la base de données et les tampons de journalisation (redo log buffers)
sont écrits sur le disque.
• Les processus en arrière-plan sont arrêtés et la mémoire SGA est libérée.
• Le serveur Oracle ferme et démonte la base de données avant d'arrêter l'instance.
• Le démarrage suivant ne nécessite pas de récupération d'instance.
SHUTDOWN TRANSACTIONAL
Un arrêt de type "transactional" évite aux clients de perdre des données, notamment le résultat
des activités en cours. Un arrêt "transactional" de la base de données a lieu dans les conditions
suivantes :
• Aucun client ne peut démarrer de nouvelle transaction sur cette instance particulière.
• Un client est déconnecté lorsqu'il termine la transaction en cours.
• Lorsque toutes les transactions sont terminées, l'arrêt a lieu immédiatement.
• Le démarrage suivant ne nécessite pas de récupération d'instance.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-26
Options SHUTDOWN (suite)
SHUTDOWN IMMEDIATE
Un arrêt en mode "immediate" de la base de données a lieu dans les conditions suivantes :
• Les instructions SQL en cours de traitement par la base de données Oracle ne sont pas
terminées.
• Le serveur Oracle n'attend pas que les utilisateurs actuellement connectés à la base de
données se déconnectent.
• Le serveur Oracle annule (rollback) les transactions actives et déconnecte tous les
utilisateurs connectés.
• Le serveur Oracle ferme et démonte la base de données avant d'arrêter l'instance.
• Le démarrage suivant ne nécessite pas de récupération d'instance.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-27
Options SHUTDOWN

Vers le bas : Vers le haut :


Pendant
• Les mémoires • Les fichiers de
les opérations
tampon modifiées journalisation en
ne sont pas écrites SHUTDOWN ABORT ligne sont utilisés
dans les fichiers ou pour réappliquer
de données Echec les modifications
d'une instance
• Les modifications • Les segments
ou
non validées ne STARTUP FORCE d'annulation
sont pas annulées sont utilisés
pour annuler
les modifications
non validées
• Les ressources
Base de données incohérente sont libérées
(base de données "dirty")

Copyright © 2005, Oracle. Tous droits réservés.

Options SHUTDOWN (suite)


SHUTDOWN ABORT
Si les options d'arrêt NORMAL et IMMEDIATE ne fonctionnent pas, vous pouvez abandonner
l'instance de base de données en cours. L'abandon d'une instance a lieu dans les conditions
suivantes :
• Les instructions SQL en cours de traitement par le serveur Oracle sont immédiatement
interrompues.
• Le serveur Oracle n'attend pas que les utilisateurs actuellement connectés à la base de
données se déconnectent.
• Les mémoires tampon de la base de données et les tampons de journalisation (redo log
buffers) ne sont pas écrits sur le disque.
• Les transactions non validées ne sont pas annulées (rollback).
• L'instance est arrêtée sans fermeture des fichiers.
• La base de données n'est ni fermée, ni démontée.
• Le démarrage suivant nécessite au préalable la récupération de l'instance, qui a lieu
automatiquement.
Remarque : Il n'est pas recommandé de sauvegarder une base de données qui se trouve dans
un état incohérent.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-28
Utiliser SQL*Plus pour les opérations
de démarrage et d'arrêt

[oracle@EDRSR9P1 oracle]$ sqlplus dba1/oracle as sysdba

SQL> shutdown immediate


Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 285212672 bytes


Fixed Size 1218472 bytes
Variable Size 250177624 bytes
Database Buffers 33554432 bytes
Redo Buffers 262144 bytes
Database mounted.
Database opened.
SQL>

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser SQL*Plus pour les opérations de démarrage et d'arrêt


SQL*Plus vous permet également d'effectuer des opérations de démarrage et d'arrêt, ou bien
encore de modifier l'état de la base de données. Si vous souhaitez utiliser SQL*Plus pour
réaliser ces tâches, vous devez vous connecter en tant qu'utilisateur SYSDBA ou SYSOPER.
Utilisez ensuite les commandes équivalant aux fonctionnalités Enterprise Manager traitées
précédemment :

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

STARTUP [FORCE] [RESTRICT] [MOUNT | OPEN | NOMOUNT]

Vous pouvez ainsi inclure des opérations de démarrage et d'arrêt dans un script ou dans un
processus en mode batch qui effectue des tâches sur la base de données, et pour lequel la base
de données doit se trouver dans un état particulier.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-29
Afficher le fichier d'alertes Composants
SQL*Plus
Param. d'init.
Démarrage BdD
Arrêt BdD
Page d'accueil de la base de données > > Fichiers d'alerte
Vues de perf.
Région Related Links > Alert Log Content

Copyright © 2005, Oracle. Tous droits réservés.

Afficher le fichier d'alertes


Chaque base de données comporte un fichier alert_<sid>.log. Ce fichier se trouve sur le
serveur où est installée la base de données. Il est stocké dans le répertoire indiqué par le biais du
paramètre d'initialisation background_dump_dest. Le fichier d'alertes d'une base de
données est un journal chronologique des messages et des erreurs, comprenant les éléments
suivants :
• tout paramètre d'initialisation qui n'est pas un paramètre par défaut et qui est utilisé au
démarrage,
• l'ensemble des erreurs internes (ORA-600), des erreurs de corruption de bloc
(ORA-1578) et des erreurs de "verrou mortel" (deadlock) (ORA-60) qui se sont produites,
• les opérations d'administration, telles que les instructions SQL CREATE, ALTER, DROP
DATABASE et TABLESPACE et les instructions Enterprise Manager ou SQL*Plus
STARTUP, SHUTDOWN, ARCHIVE LOG et RECOVER,
• divers messages et erreurs liés aux fonctions des processus de serveur partagé et aux
processus répartiteur,
• les erreurs survenues au cours de la régénération automatique d'une vue matérialisée.
Enterprise Manager surveille le fichier d'alertes et vous informe des erreurs critiques. Vous
pouvez également afficher le journal afin de voir les erreurs non critiques et les messages
d'information. La taille de ce fichier peut croître jusqu'à devenir ingérable. Vous pouvez
éventuellement sauvegarder le fichier d'alertes et supprimer celui en cours. Lorsque la base de
données tente d'écrire à nouveau dans le fichier d'alertes, elle en recrée un nouveau.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-30
Afficher l'historique des alertes

Copyright © 2005, Oracle. Tous droits réservés.

Afficher l'historique des alertes


La page Alert History contient un graphique qui présente l'historique des alertes de la base de
données en cours, réparti en segments de temps que vous définissez. Une alerte signale un
problème potentiel : un seuil d'avertissement ou un seuil critique relatif à une mesure
surveillée, ou une cible qui n'est plus disponible.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-31
Vues dynamiques des performances Composants
SQL*Plus
Param. d'init.
Les vues dynamiques des Démarrage BdD
Arrêt BdD
performances permettent Fichiers d'alerte
d'accéder aux informations > Vues de perf.

relatives aux changements d'état Session data


et de condition survenant dans Wait events

la base de données. Memory allocations


Running SQL
UNDO usage
Open cursors
Redo log usage
Etc.

Instance Oracle

Copyright © 2005, Oracle. Tous droits réservés.

Vues dynamiques des performances


La base de données Oracle gère également un ensemble plus dynamique de données relatives
aux opérations et aux performances de l'instance de base de données. Ces vues dynamiques
des performances reposent sur des tables virtuelles qui sont construites à partir des structures
mémoire au sein du serveur de base de données. Autrement dit, il ne s'agit pas de tables
conventionnelles résidant dans une base de données. C'est pourquoi certaines d'entre elles
peuvent vous fournir des données avant le montage ou l'ouverture d'une base.
Les vues dynamiques des performances contiennent des informations sur les éléments
suivants :
• sessions
• état des fichiers
• progression des travaux et des tâches
• verrous externes (locks)
• statut de sauvegarde
• utilisation et allocation de mémoire
• paramètres système et paramètres de session
• exécution d'instructions SQL
• statistiques et mesures de performances
Remarque : Les vues DICT et DICT_COLUMNS contiennent le nom de ces vues dynamiques
de performances.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-32
Vues dynamiques des performances :
Exemples d'utilisation

SQL> SELECT sql_text, executions FROM v$sql


a
WHERE cpu_time > 200000;

SQL> SELECT * FROM v$session WHERE machine =


b
'EDRSR9P1' and logon_time > SYSDATE - 1;

SQL> SELECT sid, ctime FROM v$lock WHERE


c
block > 0;

Copyright © 2005, Oracle. Tous droits réservés.

Vues dynamiques des performances : Exemples d'utilisation


Enterprise Manager a souvent recours à ces vues, mais les utilisateurs peuvent également
interroger ces vues selon les besoins. Les trois exemples présentés dans la diapositive ci-
dessus répondent aux questions suivantes :
a. Quelles sont les instructions SQL, et le nombre d'exécutions associées, pour lesquelles le
temps CPU consommé est supérieur à 200 000 microsecondes ?
b. Quelles sont les sessions qui se sont connectées à partir de l'ordinateur EDRSR9P1 au
cours des dernières 24 heures ?
c. Quels sont les ID des sessions qui contiennent actuellement un verrou externe (lock)
bloquant un autre utilisateur, et depuis combien de temps le verrou est-il stocké ?

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-33
Vues dynamiques des performances :
Considérations

• Ces vues appartiennent à l'utilisateur SYS.


• Des vues différentes sont disponibles
à des moments différents :
– L'instance a été démarrée.
– La base de données est montée.
– La base de données est ouverte.
• Vous pouvez interroger la table V$FIXED_TABLE
afin d'afficher le nom de toutes les vues.
• Ces vues sont souvent appelées "vues V$".
• La cohérence en lecture n'est pas garantie
sur ces vues car les données sont dynamiques.

Copyright © 2005, Oracle. Tous droits réservés.

Vues dynamiques des performances : Remarques


Certaines vues dynamiques contiennent des données qui ne s'appliquent pas à tous les états
d'une instance ou d'une base de données. Par exemple, si une instance vient d'être démarrée
mais qu'aucune base de données n'est montée, vous pouvez interroger la vue V$BGPROCESS
afin d'afficher la liste des processus en arrière-plan en cours d'exécution. En revanche, vous ne
pouvez pas interroger la vue V$DATAFILE pour afficher le statut des fichiers de données
d'une base. En effet, c'est le montage d'une base de données qui lit le fichier de contrôle et
recherche les fichiers de données associés à la base.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-34
Synthèse
Ce chapitre vous a permis d'apprendre à :
• démarrer et arrêter la base de données
et les composants Oracle
• utiliser Enterprise Manager et décrire
ses fonctionnalités de haut niveau
• accéder à une base de données à l'aide de SQL*Plus
et d'iSQL*Plus
• modifier les paramètres d'initialisation de base
de données
• décrire les étapes du démarrage d'une base
de données
• décrire les options d'arrêt d'une base de données
• afficher le fichier d'alertes
• accéder aux vues dynamiques des performances

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-35
Présentation de l'exercice :
Gérer l'instance Oracle

Cet exercice porte sur les points suivants :


• naviguer dans Enterprise Manager
• afficher et modifier les paramètres d'initialisation
• arrêter et démarrer l'instance de base de données
• afficher le fichier d'alertes
• se connecter à la base de données à l'aide
de SQL*Plus et d'iSQL*Plus

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 4-36
Gérer les structures de stockage
de la base de données

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• décrire comment les données des lignes
des tables sont stockées dans des blocs
• définir le rôle des tablespaces et des fichiers
de données
• créer et gérer des tablespaces
• obtenir des informations sur les tablespaces
• décrire les principaux concepts et les principales
fonctionnalités d'Automatic Storage Management (ASM)

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-2
Structures de stockage
Structure logique Structure physique

Base de données

Fichier du système
Tablespace
d'exploitation

Segment

Extent

Bloc de Bloc du système


données Oracle d'exploitation

Copyright © 2005, Oracle. Tous droits réservés.

Structures de stockage
Une base de données est divisée en unités de stockage logiques appelées tablespaces. Chaque
tablespace comporte plusieurs blocs de données Oracle logiques. Le paramètre
DB_BLOCK_SIZE définit la taille d'un bloc logique. La taille d'un bloc logique peut être
comprise entre 2 ko et 32 ko. La valeur par défaut est de 8 ko. Un nombre donné de blocs
logiques contigus constitue un extent. Un ensemble d'extents alloué à une certaine structure
logique forme à son tour un segment. Un bloc de données Oracle est la plus petite unité d'E/S
logique.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-3
Mode de stockage des données d'une table

Colonnes Blocs

Table A Table B

Lignes

Segment Segment
Table
Tablespace

Morceau de ligne Extent

Copyright © 2005, Oracle. Tous droits réservés.

Mode de stockage des données d'une table


Lorsqu'une table est créée, un segment est créé pour le stockage de ses données. Un
tablespace contient un ensemble de segments. D'un point de vue logique, une table contient
des lignes qui incluent les valeurs des colonnes. Enfin, une ligne est stockée dans un bloc de
base de données sous la forme d'un morceau de ligne. On parle de "morceau de ligne" car,
dans certaines conditions, une ligne n'est pas stockée intégralement dans le même
emplacement. C'est le cas lorsqu'une ligne insérée est trop volumineuse pour tenir dans un
bloc unique ou lorsque, suite à une mise à jour, la taille d'une ligne existante dépasse l'espace
en cours.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-4
Anatomie d'un bloc de base de données

En-tête du bloc
Croissance
Espace libre

Données des lignes

Copyright © 2005, Oracle. Tous droits réservés.

Bloc de base de données : Contenu


Les blocs de données Oracle contiennent les éléments suivants :
• En-tête du bloc : L'en-tête d'un bloc contient le type de segment (table ou index, par
exemple), l'adresse du bloc, le répertoire des tables, le répertoire des lignes, et des
espaces de transaction de 23 octets chacun, utilisés lors de la modification des lignes du
bloc. L'en-tête de bloc croît du haut vers le bas.
• Données des lignes : Il s'agit des données réelles des lignes contenues dans le bloc.
L'espace réservé aux données des lignes augmente du bas vers le haut.
• Espace libre : L'espace libre se trouve au centre du bloc. Il permet à l'espace d'en-tête et
à l'espace des données des lignes d'augmenter en fonction des besoins. Les données des
lignes occupent l'espace libre à mesure que de nouvelles lignes sont insérées ou que des
colonnes sont mises à jour avec des valeurs plus importantes dans les lignes existantes.
L'en-tête peut également augmenter, par exemple lorsque le répertoire des lignes
nécessite des entrées de ligne supplémentaires ou lorsqu'il faut davantage d'espaces de
transaction que ceux initialement configurés. A l'origine, l'espace libre d'un bloc est d'un
seul tenant. Ensuite, cet espace peut être fragmenté en raison des suppressions et mises à
jour effectuées. L'espace libre du bloc est fusionné par le serveur Oracle lorsque cela
s'avère nécessaire.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-5
Tablespaces et fichiers de données
D'un point de vue logique, les données sont stockées
par la base Oracle dans des tablespaces. D'un point
de vue physique, elles sont stockées dans des fichiers
de données.
• Les tablespaces :
– ne peuvent appartenir qu'à une seule base de données
– sont constitués d'un ou plusieurs fichiers de données
– sont divisés en unités de stockage logiques
• Les fichiers de données :
Base de données
– ne peuvent appartenir qu'à un seul
tablespace et à une seule base Tablespace
de données
– servent de référentiels pour
les données des objets de schéma Fichiers de données

Copyright © 2005, Oracle. Tous droits réservés.

Tablespaces et fichiers de données


Les bases de données, les tablespaces et les fichiers de données sont étroitement liés, mais ils
présentent des différences importantes :
• Une base de données Oracle est constituée d'une ou de plusieurs unités de stockage
logiques appelées tablespaces, dans lesquelles sont stockées de manière collective toutes
les données de la base.
• Chaque tablespace d'une base Oracle est constitué d'un ou de plusieurs fichiers appelés
fichiers de données. Il s'agit de structures physiques compatibles avec le système
d'exploitation sur lequel le logiciel Oracle s'exécute.
• Les données d'une base sont stockées collectivement dans les fichiers de données, qui
constituent les différents tablespaces de la base. Considérons par exemple la base de
données Oracle la plus simple qui soit. Elle contient deux tablespaces (c'est-à-dire les
deux tablespaces obligatoires SYSTEM et SYSAUX), comportant chacun un fichier de
données. Autre exemple : une base peut comporter trois tablespaces comprenant chacun
deux fichiers de données (soit un total de six fichiers de données). Une base de données
peut comprendre jusqu'à 65 534 fichiers de données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-6
Oracle Managed Files (OMF)
Permet de définir les opérations sur les fichiers
en termes d'objets de base de données plutôt
qu'en termes de noms de fichier.
Paramètre Description

DB_CREATE_FILE_DEST Définit l'emplacement du répertoire


par défaut du système de fichiers
destiné aux fichiers de données et
aux fichiers temporaires
DB_CREATE_ONLINE_LOG_DEST_n Indique l'emplacement des fichiers
de journalisation et l'emplacement
de création du fichier de contrôle
DB_RECOVERY_FILE_DEST Définit l'emplacement des
sauvegardes RMAN

Exemple :
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
SQL> CREATE TABLESPACE tbs_1;

Copyright © 2005, Oracle. Tous droits réservés.

Oracle Managed Files (OMF)


Avec Oracle Managed Files (OMF), vous n'avez plus besoin de gérer directement les fichiers du
système d'exploitation constituant une base de données Oracle. Vous définissez les opérations en
termes d'objets de base de données plutôt qu'en termes de noms de fichier. La base de données
utilise en interne les interfaces standard du système de fichiers afin de créer et de supprimer des
fichiers, selon les besoins, pour les structures suivantes :
• Tablespaces
• Fichiers de journalisation (fichiers redo log)
• Fichiers de contrôle
• Fichiers de journalisation archivés
• Fichiers de suivi des modifications de bloc
• Journaux Flashback
• Sauvegardes RMAN
Une base de données peut être constituée de fichiers pris en charge par OMF et de fichiers non
pris en charge. Le répertoire du système de fichiers indiqué par l'un ou l'autre des paramètres
indiqués dans la diapositive doit exister. Il n'est pas créé par la base de données. Les droits définis
sur ce répertoire doivent permettre à la base de données de créer des fichiers dans celui-ci.
Comme le montre l'exemple de la diapositive, lorsque le paramètre DB_CREATE_FILE_DEST
est défini, la clause DATAFILE peut être omise d'une instruction CREATE TABLESPACE. Le
fichier de données est créé dans l'emplacement indiqué par DB_CREATE_FILE_DEST.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-7
Gestion de l'espace dans les tablespaces
• Tablespace géré localement :
– Les extents libres sont gérés dans le tablespace.
– Un bitmap est utilisé pour enregistrer les extents libres.
– Chaque bit correspond à un bloc ou à un groupe
de blocs.
– La valeur du bit indique si les extents sont libres
ou utilisés.
– Il est recommandé d'utiliser des tablespaces gérés
localement.
• Tablespace géré au moyen du dictionnaire :
– Les extents libres sont gérés par le dictionnaire
de données.
– Les tables appropriées sont mises à jour lorsque
des extents sont alloués ou libérés.
– Ces tablespaces ne restent pris en charge que pour
des raisons de compatibilité descendante.

Copyright © 2005, Oracle. Tous droits réservés.

Gestion de l'espace dans les tablespaces


Les tablespaces allouent l'espace par l'intermédiaire d'extents (ensembles de blocs contigus).
Les tablespaces peuvent être configurés pour utiliser l'une ou l'autre des deux méthodes
suivantes de suivi de l'espace libre :
• Tablespaces gérés localement : Les extents sont gérés dans le tablespace par
l'intermédiaire de bitmaps. Chaque bit du bitmap correspond à un bloc ou à un groupe
de blocs. Lorsqu'un extent est alloué ou bien libéré pour pouvoir être réutilisé, le serveur
Oracle modifie les valeurs du bitmap de manière à refléter le nouveau statut des blocs.
• Tablespaces gérés au moyen du dictionnaire : Les extents sont gérés par le
dictionnaire de données. Le serveur Oracle met à jour les tables appropriées dans le
dictionnaire de données chaque fois qu'un extent est alloué ou libéré. Ce mode est pris
en charge à des fins de compatibilité descendante, mais il est recommandé d'utiliser des
tablespaces gérés localement.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-8
Explorer la structure de stockage

Cliquez sur les liens pour afficher


des informations détaillées.

Copyright © 2005, Oracle. Tous droits réservés.

Explorer la structure de stockage


Les structures de données logiques sont stockées dans les fichiers physiques de la base de
données. Vous pouvez facilement afficher les structures logiques de la base via Enterprise
Manager. Cliquez sur les liens de la région Storage (page Administration) pour obtenir des
informations détaillées sur chaque structure.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-9
Créer un tablespace

Copyright © 2005, Oracle. Tous droits réservés.

Créer un tablespace
Pour créer un tablespace, procédez de la manière suivante :
1. Cliquez sur l'onglet Administration, puis sur Tablespaces sous l'en-tête Storage.
2. Cliquez sur Create.
Remarque : Si vous souhaitez créer un tablespace semblable à un tablespace existant,
sélectionnez le tablespace existant de votre choix, puis cliquez sur Create Like dans le
menu Actions. Cliquez sur Go.
La page Create Tablespace apparaît.
3. Saisissez le nom du tablespace.
4. Sous l'en-tête Extent Management, sélectionnez Locally Managed. Les extents
(ensembles de blocs contigus) d'un tablespace administré localement sont gérés plus
efficacement par le serveur de base de données Oracle. Dans le cas d'un tablespace géré
au moyen du dictionnaire, vous êtes plus sollicité pour la gestion des extents, et vous
devez disposer d'un accès au dictionnaire de données pour le suivi. Les tablespaces
gérés au moyen du dictionnaire sont en phase d'abandon. Oracle déconseille leur
utilisation.
5. Sous l'en-tête Type, sélectionnez Permanent. Les tablespaces permanents contiennent
les objets de base de données permanents créés par le système ou par les utilisateurs.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-10
Créer un tablespace (suite)
6. Sous l'en-tête Status, sélectionnez Read Write. Ce statut indique que les utilisateurs
disposent d'un droit d'accès en lecture et en écriture sur le tablespace, une fois ce
dernier créé. Il s'agit de l'option par défaut.
7. Dans la région Datafiles de la page, cliquez sur Add afin d'ajouter des fichiers de
données au tablespace. Un tablespace doit comporter au moins un fichier de
données. Les tablespaces bigfile sont utilisés avec les bases de données très
volumineuses, pour lesquelles la fonctionnalité Automatic Storage Management
(ASM) Oracle ou d'autres gestionnaires de volumes logiques assurent la prise en
charge du striping ou de la technologie RAID, ainsi que des volumes logiques
extensibles de manière dynamique.
8. Dans la page Add Datafiles, entrez un nom de fichier. Acceptez la valeur par défaut
de File Directory, puis indiquez la taille de fichier.
9. Dans la région Storage, vous pouvez sélectionner l'option "Automatically extend
datafile when full (AUTOEXTEND)" et indiquer une valeur dans le champ
Increment. Cela permet au fichier de données de croître automatiquement chaque
fois qu'il manque d'espace. La taille du fichier est toutefois limitée par le support
physique sur lequel réside le fichier. Conservez la valeur Unlimited du champ
Maximum File Size. Cliquez sur OK. Vous revenez à la page Create Tablespace.
10. Cliquez sur l'onglet Storage. La page Edit Tablespace apparaît.
11. Acceptez toutes les valeurs par défaut de la page Storage.
Remarque : La procédure qui précède permet de créer rapidement un tablespace dans la
plupart des situations. Vous pouvez être amené à modifier certaines options en fonction
d'exigences particulières.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-11
Gestion du stockage dans les tablespaces
gérés localement

Copyright © 2005, Oracle. Tous droits réservés.

Gestion du stockage dans les tablespaces gérés localement


Les extents (ensembles de blocs contigus) d'un tablespace géré localement peuvent être
alloués de deux façons :
• Automatic : Dans ce mode, la taille des extents du tablespace est gérée par le système.
Vous ne pouvez pas indiquer de taille d'extent. Vous ne pouvez pas utiliser ce mode
pour un tablespace temporaire.
• Uniform : Dans ce mode, le tablespace est géré à l'aide d'extents uniformes, dont vous
définissez la taille. La taille par défaut est de 1 Mo. Tous les extents du tablespace
temporaire sont uniformes et ont par défaut cette taille. Vous ne pouvez pas définir ce
mode pour un tablespace d'annulation.
Dans un tablespace géré localement, la gestion de l'espace des segments peut être effectuée
selon deux modes :
• Automatic : La base de données Oracle utilise des bitmaps pour gérer l'espace libre des
segments. Le bitmap décrit le statut de chaque bloc de données d'un segment, en
fonction de la quantité d'espace disponible dans le bloc pour l'insertion de lignes. Le
statut indiqué dans le bitmap est actualisé à mesure que l'espace disponible dans un bloc
de données augmente ou diminue. Grâce aux bitmaps, la base de données Oracle gère
l'espace libre de manière plus automatisée. Cette forme de gestion de l'espace est
appelée gestion automatique de l'espace dans les segments.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-12
Gestion du stockage dans les tablespaces gérés localement (suite)
• Manual : Sélectionnez ce mode lorsque vous souhaitez utiliser des listes de blocs libres (free
lists) pour la gestion de l'espace libre dans les segments. Les listes de blocs libres sont des
listes de blocs de données qui contiennent de l'espace disponible pour l'insertion de lignes.
Cette forme de gestion est appelée gestion manuelle de l'espace dans les segments, en raison
de la nécessité de définir et de régler les paramètres de stockage PCTUSED, FREELISTS et
FREELIST GROUPS pour les objets de schéma créés dans le tablespace. Ce mode de gestion
reste pris en charge à des fins de compatibilité descendante. Il est recommandé d'utiliser la
gestion automatique de l'espace dans les segments.
Avantages des tablespaces gérés localement
Les tablespaces gérés localement présentent les avantages suivants par rapport aux tablespaces
gérés au moyen du dictionnaire :
• La gestion locale évite les opérations récursives de gestion de l'espace. Celles-ci se produisent
dans les tablespaces gérés au moyen du dictionnaire lorsque la consommation ou la libération
d'espace dans un extent (ensemble de blocs contigus) entraîne une autre opération qui
consomme ou libère de l'espace dans un segment d'annulation ou dans une table du
dictionnaire de données.
• Etant donné que les tablespaces gérés localement n'enregistrent pas l'espace libre dans les
tables du dictionnaire de données, la contention sur ces tables est réduite.
• La gestion locale des extents procède automatiquement au suivi de l'espace libre adjacent, ce
qui rend inutile la fusion des extents libres.
• La taille des extents gérés localement peut être déterminée automatiquement par le système.
• Les modifications apportées aux bitmaps d'extent ne génèrent pas d'informations d'annulation,
car elles ne mettent pas à jour les tables du dictionnaire de données (sauf dans des cas
particuliers, tels que les informations relatives au quota de tablespace).
Remarque : Si vous administrez une base de données dans laquelle vous souhaitez convertir les
tablespaces gérés au moyen du dictionnaire en tablespaces gérés localement, utilisez la procédure
DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL. Pour plus d'informations sur
l'utilisation de cette procédure, reportez-vous aux manuels PL/SQL Packages and Types Reference
et Database Administrator’s Guide.
Journalisation
Les modifications apportées aux objets contenus dans le tablespace sont consignées dans le fichier
de journalisation (redo log). Lorsque la journalisation n'est pas activée, les créations d'objets et les
chargements de données par chemin direct effectués ensuite ne sont pas consignées dans le fichier
de journalisation. Les objets ne peuvent donc pas être récupérés en cas de pertes de données. Par
conséquent, lorsque vous créez un objet alors que la journalisation est désactivée, vous devez
sauvegarder cet objet pour qu'il puisse être récupéré ultérieurement.
Pour plus d'informations sur la clause de journalisation, reportez-vous au manuel Oracle Database
SQL Reference.
Informations sur les blocs
La région Block Information indique la taille de bloc utilisée pour le tablespace en cours de
création. Il s'agit d'une valeur en lecture seule. Toutefois, si vous avez défini d'autres paramètres
d'initialisation de la taille de bloc (DB_nK_CACHE_SIZE), les valeurs correspondantes sont
proposées en option. Pour plus d'informations sur la définition d'autres tailles de bloc, reportez-vous
au manuel Database Administrator’s Guide.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-13
Tablespaces de la base de données
préconfigurée

• SYSTEM • UNDOTBS1
• SYSAUX • USERS
• TEMP • EXAMPLE

Copyright © 2005, Oracle. Tous droits réservés.

Tablespaces de la base de données préconfigurée


La base de données préconfigurée utilisée dans ce cours comprend les tablespaces suivants :
• SYSTEM : Le tablespace SYSTEM est utilisé par le serveur Oracle pour gérer la base de
données. Il contient le dictionnaire de données et les tables comprenant les informations
d'administration sur la base. Tous ces éléments sont contenus dans le schéma SYS. Ils ne
sont accessibles que par l'utilisateur SYS ou par les autres administrateurs dotés du
privilège approprié.
• SYSAUX : Il s'agit d'un tablespace auxiliaire du tablespace SYSTEM. Certains composants
et produits qui utilisaient le tablespace SYSTEM ou leurs propres tablespaces dans les
versions antérieures de la base de données Oracle utilisent désormais le tablespace
SYSAUX. Chaque instance Oracle Database10g ou d'une version antérieure doit comporter
un tablespace SYSAUX.
Dans Enterprise Manager, vous pouvez afficher le contenu de ce tablespace sous la forme
d'un graphique à secteurs. Pour ce faire, cliquez sur Tablespaces dans la page
Administration. Sélectionnez SYSAUX, puis cliquez sur Edit. Cliquez ensuite sur l'onglet
Occupants. Une fois l'opération de création réalisée, vous pouvez surveiller l'utilisation de
l'espace de chaque occupant du tablespace SYSAUX à l'aide d'Enterprise Manager. Si vous
constatez qu'un composant prend trop d'espace dans le tablespace SYSAUX, ou si vous
prévoyez que cela risque de se produire, vous pouvez déplacer l'occupant dans un
tablespace différent. Pour ce faire, sélectionnez-le, puis cliquez sur Change Tablespace.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-14
Tablespaces de la base de données préconfigurée (suite)
• TEMP : Le tablespace temporaire est utilisé lorsque vous exécutez une instruction
SQL qui requiert la création de segments temporaires (par exemple une opération de
tri volumineuse ou la création d'un index). Un tablespace par défaut est affecté à
chaque utilisateur pour le stockage des objets de données créés. De même, chaque
utilisateur se voit attribuer un tablespace temporaire. Il est recommandé de définir
un tablespace temporaire par défaut pour la base de données. Sauf indication
contraire, ce tablespace est affecté à chaque utilisateur nouvellement créé. Dans la
base de données préconfigurée, le tablespace TEMP est désigné comme tablespace
temporaire par défaut. Si, lors de la création d'un compte, aucun tablespace
temporaire n'est désigné, la base de données Oracle affecte le tablespace TEMP à
l'utilisateur.
• UNDOTBS1 : Il s'agit du tablespace d'annulation utilisé par le serveur de base de
données pour le stockage des informations d'annulation (undo). Si une base de
données utilise la gestion automatique des annulations (AUM), elle doit comporter à
tout moment un seul et unique tablespace d'annulation actif. Ce tablespace est créé
en même temps que la base de données.
• USERS : Ce tablespace est utilisé pour le stockage des données et objets utilisateur
permanents. Dans la base de données préconfigurée, le tablespace USERS est le
tablespace par défaut pour tous les objets créés par les utilisateurs autres que les
utilisateurs système. Pour les utilisateurs SYS et SYSTEM (les utilisateurs système),
le tablespace permanent par défaut reste SYSTEM.
• EXAMPLE : Ce tablespace contient les exemples de schéma pouvant être installés
lors de la création de la base de données. Ceux-ci fournissent une plate-forme
commune pour les exemples. La documentation et les cours Oracle contiennent des
exemples basés sur ces schémas.
Remarque : Pour simplifier l'administration, il est fréquent de réserver un tablespace pour
les seuls index.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-15
Modifier un tablespace

Copyright © 2005, Oracle. Tous droits réservés.

Modifier un tablespace
Une fois créé, un tablespace peut être modifié de différentes façons, en fonction de l'évolution
du système.
Modification du nom : Entrez un nouveau nom pour le tablespace et cliquez sur Apply.
Modification du statut : Un tablespace peut présenter trois statuts (ou états) différents. La
disponibilité de ces statuts dépend du type du tablespace :
• Read Write : Le tablespace est en ligne (online) et peut faire l'objet de lectures et
d'écritures.
• Read Only : Cette option place le tablespace en mode lecture seule. Les transactions
existantes peuvent être terminées au moyen d'une validation (commit) ou d'une
annulation (roll back), mais aucune autre opération LMD (langage de manipulation de
données) n'est autorisée sur les objets du tablespace. Le tablespace est en ligne tout en
étant en mode lecture seule. Vous ne pouvez pas affecter ce mode aux tablespaces
SYSTEM et SYSAUX.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-16
Modifier un tablespace (suite)
• Offline : Vous pouvez mettre hors ligne (offline) un tablespace qui est en ligne
(online), de sorte que cette partie de la base de données soit temporairement
indisponible pour une utilisation générale. Le reste de la base est ouvert et permet
aux utilisateurs d'accéder aux données. Lorsque vous placez un tablespace hors
ligne, vous disposez des options suivantes :
- Normal : Un tablespace peut être mis hors ligne en mode normal s'il n'existe
aucune condition d'erreur pour aucun de ses fichiers de données. La base de
données Oracle veille à ce que toutes les données soient écrites sur le disque.
Elle définit pour cela un point de reprise (checkpoint) pour tous les fichiers de
données du tablespace à mesure qu'elle les met hors ligne.
- Temporary : Un tablespace peut être mis hors ligne temporairement, même
s'il existe des conditions d'erreur pour un ou plusieurs de ses fichiers. La base
Oracle met hors ligne les fichiers de données (ceux qui ne le sont pas déjà), en
créant un point de reprise sur chacun d'eux. Si vous sélectionnez le mode
Temporary alors qu'aucun fichier n'est hors ligne, il est inutile de recourir à une
restauration physique pour remettre le tablespace en ligne. En revanche, si un
ou plusieurs fichiers du tablespace sont hors ligne suite à des erreurs d'écriture
et que vous placez temporairement le tablespace hors ligne, ce dernier
nécessite une récupération avant d'être remis en ligne.
- Immediate : Un tablespace peut être mis hors ligne immédiatement, sans que
la base de données Oracle crée de point de reprise sur ses fichiers de données.
Lorsque vous indiquez le mode Immediate, la restauration physique du
tablespace est nécessaire pour sa remise en ligne. Vous ne pouvez pas mettre
un tablespace hors ligne en mode Immediate si la base de données fonctionne
en mode NOARCHIVELOG.
- For Recover : Le mode FOR RECOVER est en phase d'abandon. Il reste
toutefois pris en charge pour des raisons de compatibilité descendante.
Modification de la taille : Vous pouvez ajouter de l'espace à un tablespace existant en
ajoutant des fichiers de données ou en modifiant la taille d'un fichier de données existant.
• Pour ajouter un nouveau fichier de données au tablespace, cliquez sur Add, puis
indiquez les informations concernant le fichier de données dans la page Add
Datafile.
• Pour modifier la taille d'un fichier de données existant, cliquez sur le nom du fichier
dans la région Datafiles de la page Edit Tablespace, ou sélectionnez le fichier et
cliquez sur Edit. Dans la page Edit Datafile, vous pouvez alors modifier la taille du
fichier de données. Il est possible d'augmenter ou de réduire la taille du tablespace.
En revanche, vous ne pouvez pas réduire la taille d'un fichier de données en deçà de
l'espace utilisé dans le fichier. Si vous tentez cette opération, vous recevez l'erreur
suivante :
ORA-03297: file contains used data beyond requested
RESIZE value
Options de stockage : Cliquez sur Storage pour modifier les options de journalisation du
tablespace.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-17
Modifier un tablespace (suite)
Seuils : Cliquez sur Thresholds pour modifier les pourcentages d'utilisation du tablespace
correspondant au niveau d'avertissement et au niveau critique. Vous avez le choix entre
trois options :
• Use Database Default Thresholds : Sélectionnez cette option pour utiliser les
valeurs par défaut prédéfinies, que vous pouvez modifier.
• Specify Thresholds : Cette option vous permet de définir des seuils spécifiques pour
le tablespace.
• Disable Thresholds : Cette option désactive les alertes relatives à d'utilisation de
l'espace du tablespace.
Remarque : L'enregistrement d'une alerte avec seuil peut prendre quelques minutes.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-18
Actions sur les tablespaces

Copyright © 2005, Oracle. Tous droits réservés.

Actions sur les tablespaces


Le menu Actions vous permet d'effectuer différentes opérations sur les tablespaces.
Sélectionnez un tablespace, puis l'action que vous souhaitez réaliser :
• Add Datafile : Ajoute un fichier de données au tablespace, ce qui a pour effet
d'augmenter la taille de ce dernier.
• Create Like : Crée un tablespace en utilisant un autre tablespace comme modèle.
• Generate DDL : Génère l'instruction LDD (langage de définition de données) qui crée
le tablespace. Cette instruction peut ensuite être copiée et collée dans un fichier texte
afin d'être utilisée en tant que script ou à des fins de documentation.
• Make Locally Managed : Si le tablespace est actuellement géré au moyen du
dictionnaire, il est converti en tablespace géré localement. Cette conversion est
irréversible. Vous ne pouvez pas revenir à un tablespace géré au moyen du dictionnaire.
• Make Readonly : Arrête toutes les opérations d'écriture dans le tablespace. Les
transactions en cours peuvent se terminer, mais aucune nouvelle instruction LMD ni
aucune autre activité d'écriture n'est autorisée à démarrer sur le tablespace. Cette option
n'est proposée que si le tablespace n'est pas actuellement en mode lecture seule.
• Make Writable : Permet le lancement d'instructions LMD et d'autres activités d'écriture
sur les objets du tablespace. Cette option n'est proposée que si le tablespace n'est pas
actuellement accessible en écriture.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-19
Actions sur les tablespaces (suite)
• Place Online : Remet en ligne (online) un tablespace actuellement hors ligne
(offline).
• Reorganize : Démarre l'assistant Reorganization Wizard, qui permet de déplacer des
objets dans le tablespace afin de récupérer de l'espace inutilisé. Cette tâche doit être
réalisée à un moment où les objets du tablespace sont peu utilisés.
• Run Segment Advisor : Démarre Segment Advisor, qui vous aide à déterminer si
un objet comporte de l'espace disponible pouvant être récupéré, en fonction du
niveau de fragmentation de l'espace dans l'objet. Au niveau tablespace, un conseil est
généré pour chaque segment.
• Show Dependencies : Affiche les objets dont dépend le tablespace, ou les objets qui
dépendent du tablespace.
• Show Tablespace Contents : Affiche des informations relatives à l'ensemble des
segments du tablespace, notamment une représentation graphique de tous les extents
(ensembles de blocs contigus).
• Take Offline : Rend inaccessible un tablespace actuellement en ligne. Le tablespace
n'est toutefois pas supprimé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-20
Supprimer des tablespaces

Copyright © 2005, Oracle. Tous droits réservés.

Supprimer des tablespaces


Vous pouvez supprimer de la base de données un tablespace et son contenu (c'est-à-dire les
segments inclus dans le tablespace) s'ils ne sont plus nécessaires. Vous devez pour cela
disposer du privilège système DROP TABLESPACE.
Lorsque vous supprimez un tablespace, les pointeurs du fichier de contrôle de la base de
données associée sont supprimés. Vous pouvez éventuellement ordonner au serveur Oracle de
supprimer les fichiers du système d'exploitation (fichiers de données) qui constituaient le
tablespace supprimé. Sinon, vous devrez supprimer ces fichiers ultérieurement au moyen des
commandes appropriées du système d'exploitation.
Vous ne pouvez pas supprimer un tablespace contenant des segments actifs. Par exemple, si
une table du tablespace est actuellement utilisée ou que le tablespace contient des données
d'annulation (undo) nécessaires pour annuler (rollback) des transactions non validées, vous ne
pouvez pas supprimer le tablespace. Le tablespace peut être en ligne (online) ou hors ligne
(offline), mais il est préférable de le placer hors ligne avant de le supprimer.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-21
Afficher les informations relatives
aux tablespaces

Copyright © 2005, Oracle. Tous droits réservés.

Afficher les informations relatives aux tablespaces


Cliquez sur View pour afficher les informations relatives au tablespace sélectionné. Dans la
page View Tablespace, vous pouvez également cliquer sur Edit afin de modifier le tablespace.
Les informations relatives aux tablespaces et aux fichiers de données peuvent aussi être
obtenues via l'interrogation des vues suivantes :
• Informations relatives aux tablespaces :
- DBA_TABLESPACES
- V$TABLESPACE
• Informations relatives aux fichiers de données :
- DBA_DATA_FILES
- V$DATAFILE
• Informations relatives aux fichiers temporaires :
- DBA_TEMP_FILES
- V$TEMPFILE

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-22
Collecter des informations
sur les tablespaces

Copyright © 2005, Oracle. Tous droits réservés.

Collecter des informations sur les tablespaces


Pour afficher et modifier des informations relatives aux tablespace dans Enterprise Manager,
sélectionnez Administration > Tablespaces. Utilisez les boutons appropriés ou la liste
déroulante Actions pour effectuer votre sélection.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-23
Afficher le contenu d'un tablespace

12061_1_sel_ts_3

Copyright © 2005, Oracle. Tous droits réservés.

Afficher le contenu d'un tablespace


La page Show Tablespace Contents fournit des informations détaillées sur le tablespace
affiché, notamment la liste des segments du tablespace, le type et la taille de chaque segment,
et le nombre d'extents (ensembles de blocs contigus) dont est constitué chaque segment. Vous
pouvez trier la liste en fonction de l'un de ces quatre éléments, en cliquant sur l'en-tête de
colonne souhaité, ou filtrer la liste en entrant des valeurs dans la région Search. Dans le cas
d'un tablespace géré au moyen du dictionnaire, des colonnes supplémentaires apparaissent :
• Max Extents
• Next
• Percent Increase
Pour afficher la liste des extents d'un tablespace, cliquez sur le lien correspondant dans la
colonne Extents.
Pour représenter les extents sous forme graphique, développez le lien "Extent map" et amenez
le curseur sur chaque extent. Les informations suivantes apparaissent :
• Nom du segment auquel appartient l'extent
• ID de l'extent
• ID du bloc
• Taille de l'extent en termes de blocs
• Fichier de données dans lequel est stocké l'extent

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-24
Etendre la base de données
Vous pouvez étendre la base de données de différentes façons :
• En créant un tablespace
• En ajoutant un fichier de données à un tablespace existant
• En augmentant la taille d'un fichier de données
• En permettant la croissance dynamique d'un fichier
de données

Base de données

Tablespace Tablespace
SYSTEM INVENTORY

Copyright © 2005, Oracle. Tous droits réservés.

Etendre la base de données


Vous pouvez réaliser les activités indiquées dans la diapositive via Enterprise Manager ou par
le biais d'instructions SQL. La taille globale de la base de données correspond à la somme de
tous ses tablespaces.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-25
Automatic Storage Management :
Présentation

Automatic Storage Management


• est un système de fichiers clusterisé
portable aux performances élevées
Application
• gère les fichiers de base
de données Oracle
Base de données
• répartit les données entre
Système
les différents disques pour
de fichiers
équilibrer la charge ASM
Gestionnaire
• met les données en miroir de volumes
• résout de nombreux problèmes
Système d'exploitation
de gestion du stockage

Copyright © 2005, Oracle. Tous droits réservés.

Automatic Storage Management : Présentation


Automatic Storage Management (ASM) fournit une intégration verticale du système de
fichiers et du gestionnaire de volumes, construite tout spécialement pour les fichiers de base
de données Oracle. ASM permet la gestion d'ordinateurs SMP (multitraitement symétrique)
ou de plusieurs noeuds d'un cluster, afin d'assurer la prise en charge d'Oracle Real Application
Clusters (RAC).
ASM distribue la charge d'entrée/sortie (E/S) entre toutes les ressources disponibles. Il
optimise ainsi les performances et rend inutile le réglage (tuning) manuel des E/S. Grâce à
ASM, les administrateurs de base de données (DBA) peuvent gérer un environnement de base
de données dynamique. En effet, ils peuvent augmenter la taille de la base de données sans
avoir à fermer celle-ci pour ajuster l'allocation de l'espace de stockage.
ASM permet de gérer des copies redondantes des données afin d'assurer la tolérance de panne.
Il peut également être basé sur des mécanismes de stockage fiables fournis par les fabricants.
La gestion des données s'effectue via la sélection des caractéristiques de fiabilité et de
performances souhaitées pour des classes de données, et non par interaction humaine fichier
par fichier.
Les fonctionnalités ASM permettent aux DBA de gagner du temps, grâce à l'automatisation
du stockage. Ces derniers peuvent ainsi gérer des bases de données et plus volumineuses et
plus nombreuses.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-26
ASM : Fonctionnalités clés
et principaux avantages

ASM
• répartit les fichiers mais pas les volumes logiques
• fournit un rééquilibrage dynamique et une
reconfiguration de disque en ligne
• permet de régler la vitesse de rééquilibrage
• fournit une fonction de redondance par fichier
• ne prend en charge que les fichiers de base
de données Oracle
• prend en charge les clusters
• est installé automatiquement

Copyright © 2005, Oracle. Tous droits réservés.

ASM : Fonctionnalités clés et principaux avantages


ASM divise chaque fichier en extents (structures différentes des extents de fichier de données
traités précédemment), qu'il répartit de manière uniforme entre tous les disques. Il utilise une
technique d'indexation pour assurer le suivi de l'emplacement de chaque extent. Lorsque la
capacité de stockage change, ASM ne procède pas au restriping de toutes les données. Il
déplace seulement une quantité de données proportionnelle à l'espace de stockage ajouté ou
supprimé, afin de redistribuer les fichiers de manière uniforme pour préserver l'équilibre de la
charge entre les différents disques. Cette opération est effectuée alors que la base de données
est active.
Vous pouvez augmenter la vitesse d'une opération de rééquilibrage pour qu'elle se termine
plus rapidement ou la diminuer pour réduire son impact sur le sous-système d'E/S. ASM
fournit une protection par mise en miroir, et ce sans qu'il soit nécessaire d'acquérir un
gestionnaire de volumes logiques tiers. L'avantage unique d'ASM est que la mise en miroir est
appliquée fichier par fichier, plutôt que volume par volume. Par conséquent, un même groupe
de disques peut contenir des fichiers protégés par miroir et d'autres qui ne le sont pas.
ASM prend en charge les fichiers de données, les fichiers journaux, les fichiers de contrôle,
les fichiers de journalisation archivés, les jeux de sauvegarde RMAN (Recovery Manager),
ainsi que d'autres types de fichier de base de données Oracle. Il prend en charge RAC et rend
inutile l'utilisation d'un gestionnaire de volumes logiques clusterisés ou d'un système de
fichiers clusterisé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-27
ASM : Concepts

Groupe de
Base de données
disques ASM

Fichier de
Tablespace Fichier ASM
données

Segment Disque ASM

Extent Fichier Unité


du système d'allocation
de fichiers
Bloc de ou
données Oracle raw device Bloc
physique

Copyright © 2005, Oracle. Tous droits réservés.

ASM : Concepts
ASM ne supprime aucune des fonctionnalités de base de données existantes. Les bases de
données existantes continent de fonctionner comme avant. Vous pouvez créer les nouveaux
fichiers en tant que fichiers ASM et conserver l'ancienne méthode d'administration pour les
fichiers existants, ou migrer ces derniers vers ASM.
Le schéma de la diapositive ci-dessus illustre les relations qui existent entre les différents
composants de stockage d'une base de données utilisant ASM. Les liens entre la partie gauche et
la partie centrale du schéma illustrent les relations qui existaient dans les versions antérieures. La
partie de droite représente les nouveaux concepts introduits par ASM.
Les fichiers de base de données peuvent être stockés en tant que fichiers ASM. Au sommet de la
nouvelle hiérarchie se trouvent les groupes de disques ASM. Un fichier ASM donné n'est contenu
que dans un seul groupe de disques. En revanche, un groupe de disques peut comporter des
fichiers qui appartiennent à plusieurs bases de données, et une même base de données peut
utiliser l'espace de stockage de plusieurs groupes de disques. Comme vous pouvez le constater,
un groupe de disques est composé de plusieurs disques ASM, qui appartiennent chacun à un seul
groupe de disques. Les fichiers ASM sont toujours répartis entre tous les disques ASM du
groupe. Les disques ASM sont partitionnés en unités d'allocation d'un mégaoctet chacune. Une
unité d'allocation constitue le plus petit espace disque contigu alloué par ASM. ASM n'autorise
pas la division d'un bloc Oracle en plusieurs unités d'allocation.
Remarque : Le schéma ci-dessus ne traite que d'un seul type de fichier ASM, à savoir le fichier
de données. ASM peut toutefois être utilisé pour stocker d'autres types de fichier de base de
données.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-28
Synthèse

Ce chapitre vous a permis d'apprendre à :


• décrire comment les données des lignes
des tables sont stockées dans des blocs
• définir le rôle des tablespaces et des fichiers
de données
• créer et gérer des tablespaces
• obtenir des informations sur les tablespaces
• décrire les principaux concepts et les principales
fonctionnalités d'Automatic Storage Management (ASM)

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-29
Présentation de l'exercice :
Gérer les structures de stockage
de base de données
Cet exercice porte sur les points suivants :
• créer des tablespaces
• collecter des informations sur les tablespaces

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 5-30
Administrer la sécurité utilisateur

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• créer et gérer des comptes utilisateur de base
de données
– authentifier les utilisateurs
– affecter des zones de stockage par défaut
(tablespaces)
• accorder et révoquer des privilèges
• créer et gérer des rôles
• créer et gérer des profils
– implémenter des fonctionnalités standard
de sécurité utilisant des mots de passe
– contrôler l'utilisation des ressources par
les utilisateurs

Copyright © 2005, Oracle. Tous droits réservés.

Objectifs
Les termes suivants, qui ont trait à l'administration des utilisateurs de base de données, vous
aideront à comprendre les objectifs du chapitre :
Un compte utilisateur de base de données constitue un moyen d'organiser l'appartenance
des objets de base de données et l'accès à ces objets.
Un mot de passe est un mode d'authentification par la base de données Oracle.
On nomme privilège le droit d'exécuter un type particulier d'instruction SQL ou d'accéder à
l'objet d'un autre utilisateur.
Un rôle est un groupe nommé de privilèges liés qui sont accordés à des utilisateurs ou à
d'autres rôles.
Les profils imposent un ensemble nommé de limites concernant l'utilisation de la base de
données et les ressources des instances.
Un quota est une allocation d'espace dans un tablespace donné. Il constitue l'un des moyens
permettant de contrôler l'utilisation des ressources par les utilisateurs.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-2
> Utilisateur
Comptes utilisateur Authentification
Privilège
de base de données Rôle
Profil
Mot de passe
Quota

Chaque compte utilisateur de base


de données comporte :
• un nom utilisateur unique
• une méthode d'authentification
• un tablespace par défaut
• un tablespace temporaire
• un profil utilisateur
• un groupe de consommateurs
de ressources
• un statut de verrouillage

Copyright © 2005, Oracle. Tous droits réservés.

Comptes utilisateur de base de données


Pour accéder à la base de données, un utilisateur doit indiquer un compte utilisateur de base
de données valide et s'authentifier via ce compte. Chaque utilisateur de base de données
possède son propre compte. Cette méthode est recommandée par Oracle car elle permet
d'éviter toute faille dans la sécurité et fournit des données significatives pour certaines
activités d'audit. Toutefois, dans de rares cas, des utilisateurs sont amenés à partager un même
compte de base de données. Le système d'exploitation et les applications doivent alors
permettre de sécuriser la base de données de manière adéquate. Chaque compte utilisateur
comporte les éléments suivants :
• Un nom utilisateur unique : Les noms utilisateur ne peuvent pas dépasser 30 octets, ne
doivent pas contenir de caractères spéciaux et doivent commencer par une lettre.
• Une méthode d'authentification : La méthode la plus courante est l'authentification par
mot de passe, mais Oracle Database 10g prend en charge plusieurs autres méthodes
d'authentification, notamment l'authentification par biométrie, par certificat et par
système tiers.
• Un tablespace par défaut : Il s'agit de l'emplacement dans lequel l'utilisateur crée des
objets s'il n'a pas indiqué d'autre tablespace. Notez que le fait qu'un utilisateur dispose
d'un tablespace par défaut n'implique pas qu'il bénéficie du privilège permettant de créer
des objets dans ce tablespace, ni qu'il dispose d'un quota d'espace dans ce tablespace. En
effet, les privilèges et les quotas sont accordés séparément.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-3
Comptes utilisateur de base de données (suite)
• Un tablespace temporaire : Il s'agit de l'emplacement dans lequel l'utilisateur peut
créer des objets temporaires, tels que des tris et des tables temporaires.
• Un profil utilisateur : Il s'agit d'un ensemble de restrictions concernant les
ressources et les mots de passe qui est affecté à l'utilisateur.
• Un groupe de consommateurs de ressources : Il est utilisé par le gestionnaire de
ressources.
• Un statut de verrouillage : Les utilisateurs n'ont accès qu'aux comptes
"déverrouillés".

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-4
Comptes prédéfinis : SYS et SYSTEM

• Le compte SYS :
– reçoit le rôle d'administrateur de base de données (DBA)
– dispose de tous les privilèges associés à ADMIN OPTION
– est requis pour les opérations de démarrage et d'arrêt,
ainsi que pour certaines commandes de maintenance
– est le propriétaire du dictionnaire de données
– est le propriétaire du référentiel AWR (Automatic
Workload Repository)
• Le compte SYSTEM a le rôle d'administrateur de base
de données (DBA).
• Ces comptes ne sont pas utilisés pour les opérations
de routine.

Copyright © 2005, Oracle. Tous droits réservés.

Comptes prédéfinis : SYS et SYSTEM


Le rôle d'administrateur de base de données (DBA) est affecté par défaut aux comptes SYS et
SYSTEM.
Le compte SYS dispose, en outre, de tous les privilèges associés à ADMIN OPTION. Il est
également le propriétaire du dictionnaire de données. Pour vous connecter au compte SYS,
vous devez utiliser la clause AS SYSDBA. Tout utilisateur qui dispose du privilège SYSDBA
peut se connecter au compte SYS à l'aide de la clause AS SYSDBA. De plus, seuls les
utilisateurs bénéficiant du privilège SYSDBA ou SYSOPER sont autorisés à démarrer et
arrêter l'instance de base de données.
Le compte SYSTEM a par défaut le rôle DBA, mais pas le privilège SYSDBA.
Recommandation : Selon le principe du moindre privilège, ces comptes ne sont pas utilisés
pour les opérations de routine. Les utilisateurs qui ont besoin de privilèges DBA disposent de
comptes distincts auxquels sont affectés les privilèges requis. Ainsi, Jim peut avoir un compte
ayant peu de privilèges, nommé jim, et un compte doté de privilèges élevés, appelé
jim_dba. Cette méthode permet d'appliquer le principe du moindre privilège. Elle élimine
tout besoin de recourir à un partage de compte et permet de réaliser des audits sur des actions
individuelles.
Les comptes SYS et SYSTEM sont obligatoires dans la base de données. Par conséquent, vous
ne pouvez pas les supprimer.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-5
Créer un utilisateur

Sélectionnez Administration > Schema > Users &


Privileges > Users, puis cliquez sur le bouton Create.

Copyright © 2005, Oracle. Tous droits réservés.

Créer un utilisateur
Dans Enterprise Manager, vous pouvez gérer la liste des utilisateurs de base de données
autorisés à accéder à la base actuelle, via la page Users. Dans cette page, vous pouvez créer,
supprimer et modifier les paramètres d'un utilisateur.
Pour créer un utilisateur de base de données, procédez de la manière suivante :
1. Dans Enterprise Manager Database Control, sélectionnez Administration > Schema >
Users & Privileges > Users.
2. Cliquez sur le bouton Create.
Fournissez les informations requises. Les éléments obligatoires, tels que le champ Name, sont
signalés par une étoile.
Les pages suivantes vous fournissent davantage d'informations sur l'authentification. Les
profils sont traités plus loin dans ce chapitre.
Affectez un tablespace par défaut et un tablespace temporaire à chaque utilisateur. Cette
opération vous permet de contrôler l'emplacement dans lequel les objets d'un utilisateur sont
créés si ce dernier n'indique pas de tablespace.
Si vous ne choisissez pas de tablespace par défaut, le tablespace permanent par défaut défini
par le système est utilisé. Il en va de même pour le tablespace temporaire. Si vous ne le
définissez pas, le tablespace temporaire défini par le système est utilisé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-6
Authentification des utilisateurs Utilisateur
> Authentification
Privilège
Rôle
Profil
Mot de passe
• Password Quota

• External
• Global

Copyright © 2005, Oracle. Tous droits réservés.

Authentification des utilisateurs


L'authentification consiste à vérifier l'identité d'une entité (utilisateur, périphérique ou
autre) qui souhaite utiliser des données, des ressources ou des applications. La validation de
cette identité établit une relation de confiance pour les interactions ultérieures.
L'authentification permet également la responsabilisation, car il est possible de lier l'accès
et les actions à des identités spécifiques. Après l'authentification, le processus d'autorisation
peut autoriser ou restreindre l'accès et les actions associés à cette entité.
Lorsque vous créez un utilisateur, vous devez décider de la technique d'authentification à
utiliser, laquelle pourra être modifiée ultérieurement.
Password : Ce mode est appelé authentification par la base de données Oracle. Associez à
chaque utilisateur créé un mot de passe qu'il devra saisir lors de chaque connexion. Lorsque
vous définissez un mot de passe, vous pouvez le configurer afin qu'il expire
immédiatement, ce qui oblige l'utilisateur à le changer lors de la première connexion. Dans
ce cas, assurez-vous que les utilisateurs ont la possibilité de changer le mot de passe.
Certaines applications n'offrent pas cette possibilité.
Les mots de passe sont toujours cryptés de manière automatique et transparente lors des
connexions réseau (client/serveur et serveur/serveur), à l'aide d'un algorithme DES (Data
Encryption Standard), et ce avant d'être envoyés sur le réseau.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-7
Authentification des utilisateurs (suite)
External : Ce mode est appelé authentification par le système d'exploitation. Les
utilisateurs peuvent se connecter à la base de données Oracle sans fournir de nom
utilisateur ou de mot de passe. Avec l'authentification externe, la base de données utilise
le système d'exploitation sous-jacent ou le service d'authentification réseau pour limiter
l'accès aux comptes de base de données. Aucun mot de passe de base de données n'est
utilisé pour ce type de connexion. Si le système d'exploitation ou le service réseau le
permet, vous pouvez le configurer pour l'authentification des utilisateurs. Dans ce cas,
définissez le paramètre d'initialisation OS_AUTHENT_PREFIX et utilisez ce préfixe
dans les noms utilisateur Oracle. Le paramètre OS_AUTHENT_PREFIX définit un
préfixe qui est ajouté par la base de données Oracle au début du nom de compte du
système d'exploitation de chaque utilisateur. La valeur par défaut de ce paramètre est
OPS$ (pour des raisons de compatibilité descendante avec les versions antérieures du
logiciel Oracle). Lorsqu'un utilisateur tente de se connecter, la base de données Oracle
compare le nom utilisateur doté du préfixe avec les noms utilisateur Oracle de la base
de données. Par exemple, supposons que le paramètre OS_AUTHENT_PREFIX soit
défini comme suit :
OS_AUTHENT_PREFIX=OPS$
Si un utilisateur doté d'un compte de système d'exploitation nommé tsmith doit se
connecter à une base de données Oracle et être authentifié par le système d'exploitation,
la base vérifie s'il existe un utilisateur de base de données OPS$tsmith correspondant
et, si tel est le cas, elle autorise l'utilisateur à se connecter. Toutes les références à un
utilisateur authentifié par le système d'exploitation doivent inclure le préfixe, comme
dans OPS$tsmith.
Remarque : Dans certains systèmes d'exploitation, le texte du paramètre d'initialisation
OS_AUTHENT_PREFIX distingue les majuscules des minuscules. Reportez-vous à la
documentation Oracle propre à votre système d'exploitation pour plus d'informations
sur ce paramètre d'initialisation.
Global : Associée à l'option Oracle Advanced Security, l'authentification globale (qui
est une authentification forte) permet l'identification des utilisateurs via la biométrie, les
certificats x509, les systèmes tiers et Oracle Internet Directory. Pour plus d'informations
sur les méthodes d'authentification avancées, reportez-vous au cours Oracle Enterprise
Identity Management.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-8
Authentification de l'administrateur
Sécurité au niveau du système d'exploitation
• Les administrateurs de base de données doivent disposer
des privilèges de création et de suppression de fichiers au niveau
du système d'exploitation.
• Les utilisateurs de base de données ne bénéficient normalement pas
des privilèges de création ou de suppression de fichiers de base
de données au niveau du système d'exploitation.
Sécurité au niveau de l'administrateur
• Les connexions SYSBA et SYSOPER sont autorisées via le fichier
de mots de passe ou le système d'exploitation.
– L'authentification par fichier de mots de passe enregistre
l'utilisateur DBA par son nom.
– L'authentification par le système d'exploitation n'enregistre
pas l'utilisateur.
– L'authentification par le système d'exploitation est prioritaire sur
l'authentification par fichier de mots de passe pour les privilèges
SYSDBA et SYSOPER.

Copyright © 2005, Oracle. Tous droits réservés.

Authentification de l'administrateur
Sécurité au niveau du système d'exploitation : Sous UNIX et Linux, les administrateurs de
base de données (DBA) appartiennent par défaut au groupe install du système
d'exploitation, qui bénéficie des privilèges requis pour la création et la suppression des fichiers
de base de données.
Sécurité au niveau de l'administrateur : Les connexions SYSBA et SYSOPER ne sont
autorisées qu'après une vérification basée sur le fichier de mots de passe, ou les privilèges et
permissions définis au niveau du système d'exploitation. Lorsque vous employez
l'authentification par le système d'exploitation, la base de données n'utilise pas le nom
utilisateur et le mot de passe fournis. Ce type d'authentification est appliqué dans les cas
suivants : si aucun fichier de mots de passe n'est présent, si le nom utilisateur et le mot de passe
fournis ne figurent pas dans le fichier de mots de passe, ou si aucun nom utilisateur ni mot de
passe n'est fourni.
Quoi qu'il en soit, si l'authentification par le biais du fichier de mots de passe réussit, la
connexion est établie via le nom utilisateur. Si c'est l'authentification par le biais du système
d'exploitation qui aboutit, une connexion CONNECT / est établie et cette dernière n'enregistre
pas l'utilisateur concerné.
Remarque : L'authentification par le système d'exploitation est prioritaire sur l'authentification
par fichier de mots de passe. Plus particulièrement, si vous êtes membre du groupe OSDBA ou
OSOPER propre au système d'exploitation, et que vous vous connectez en tant que SYSDBA ou
SYSOPER, vous êtes connecté avec les privilèges d'administration associés, quels que soient le
nom utilisateur et le mot de passe indiqués.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-9
Déverrouiller un compte utilisateur
et redéfinir le mot de passe

Sélectionnez l'utilisateur, puis cliquez


sur Unlock User.

Copyright © 2005, Oracle. Tous droits réservés.

Déverrouiller un compte utilisateur et redéfinir le mot de passe


Au cours de l'installation et de la création d'une base de données, vous pouvez déverrouiller
plusieurs des comptes utilisateur définis par Oracle et redéfinir les mots de passe associés.
Vous pouvez aussi réaliser ces opérations ultérieurement, en sélectionnant un utilisateur
dans la page Users, puis en cliquant sur Unlock User.
Vous pouvez également effectuer les opérations suivantes dans la page Edit Users :
1. Entrez le nouveau mot de passe dans les champs Enter Password et Confirm
Password.
2. Cochez la case Unlocked.
3. Cliquez sur Apply pour redéfinir le mot de passe et déverrouiller le compte utilisateur.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-10
Utilisateur
Authentification
Privilèges > Privilège
Rôle
Profil
Mot de passe
Il existe deux types de privilège utilisateur : Quota

• Système : permet aux utilisateurs d'effectuer


des actions particulières dans la base de données
• Objet : permet aux utilisateurs d'accéder à un objet
spécifique et de le manipuler

HR_DBA

Privilège objet : Privilège système :


Mettre à jour Créer une session.
les employés.

Copyright © 2005, Oracle. Tous droits réservés.

Privilèges
On nomme privilège le droit d'exécuter un type particulier d'instruction SQL ou d'accéder à
l'objet d'un autre utilisateur. La base de données Oracle vous permet de contrôler les
opérations que les utilisateurs peuvent effectuer ou non au sein de la base. Les privilèges sont
répartis en deux catégories :
• Privilèges système : Chaque privilège système autorise un utilisateur à effectuer une
certaine opération de base de données ou une certaine classe d'opérations. Par exemple,
le privilège permettant de créer des tablespaces est un privilège système. Les privilèges
système peuvent être accordés par l'administrateur ou par quelqu'un à qui la permission
d'administrer le privilège a été accordée explicitement. Il existe plus d'une centaine de
privilèges système différents. Un grand nombre d'entre eux contiennent la clause ANY.
• Privilèges objet : Les privilèges objet permettent à un utilisateur d'effectuer une action
particulière sur un objet spécifique, tel qu'une table, une vue, une séquence, une
procédure, une fonction ou un package. Sans permission spécifique, les utilisateurs ne
peuvent accéder qu'à leurs propres objets. Les privilèges objet peuvent être octroyés par
le propriétaire d'un objet, par l'administrateur, ou par un utilisateur auquel la permission
d'accorder des privilèges sur l'objet a été attribuée explicitement.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-11
Privilèges système

Copyright © 2005, Oracle. Tous droits réservés.

Privilèges système
Pour accorder des privilèges système, cliquez sur l'onglet Systems Privileges de la page Edit
User. Sélectionnez les privilèges appropriés dans la liste des privilèges disponibles, puis
déplacez-les vers la liste Selected System Privileges en cliquant sur le bouton Move.
Les privilèges contenant la clause ANY s'étendent au-delà des limites du schéma. Par exemple,
le privilège CREATE TABLE vous permet de créer une table, mais uniquement dans votre
propre schéma. Le privilège SELECT ANY TABLE vous permet, quant à lui, d'effectuer une
opération SELECT dans des tables appartenant à d'autres utilisateurs.
Cochez la case Admin Option pour pouvoir administrer le privilège système considéré et
l'accorder à d'autres utilisateurs.
Tenez bien compte des exigences de sécurité avant d'octroyer des permissions système.
Certains privilèges système sont généralement accordés uniquement aux administrateurs :
• RESTRICTED SESSION : Ce privilège vous autorise à vous connecter même si la base
de données a été ouverte en mode d'accès restreint.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-12
Privilèges système (suite)
• SYSDBA et SYSOPER : Ces privilèges vous autorisent à arrêter et à démarrer la base de
données, ainsi qu'à effectuer des opérations de récupération et d'autres tâches
d'administration. SYSOPER vous permet d'effectuer des tâches opérationnelles de base,
mais ne vous autorise pas à voir les données utilisateur. Il inclut les privilèges système
suivants :
- STARTUP et SHUTDOWN
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Récupération complète uniquement. Pour toute
forme de récupération incomplète, telle que
UNTIL TIME|CHANGE|CANCEL|CONTROLFILE, vous devez vous connecter
en tant que SYSDBA.)
- RESTRICTED SESSION
Le privilège système SYSDBA autorise également les opérations de récupération
incomplète et la suppression d'une base de données. En fait, il autorise un utilisateur à se
connecter en tant qu'utilisateur SYS.
• DROP ANY object : Le privilège DROP ANY vous permet de supprimer des objets qui
appartiennent à d'autres utilisateurs du schéma.
• CREATE, MANAGE, DROP et ALTER TABLESPACE : Ces privilèges permettent les
opérations d'administration des tablespaces, notamment la création, la suppression et la
modification des attributs.
• CREATE ANY DIRECTORY : La base de données Oracle autorise les développeurs à
appeler du code externe (par exemple une bibliothèque C) à partir de code PL/SQL. Pour
des raisons de sécurité, le répertoire du système d'exploitation dans lequel réside le code
doit être lié à un objet de répertoire Oracle virtuel. Avec le privilège CREATE ANY
DIRECTORY, vous pouvez potentiellement appeler des objets de code non sécurisés.
Le privilège CREATE ANY DIRECTORY permet à un utilisateur de créer un objet
répertoire (Directory) avec un accès en lecture et en écriture pour tous les répertoires
auxquels le propriétaire du logiciel Oracle a accès. Cela signifie que l'utilisateur peut
accéder aux procédures externes figurant dans ces répertoires. Il peut tenter d'effectuer
des opérations de lecture et d'écriture directement dans un fichier de base de données
(fichier de données, fichier de journalisation (redo log) et journal d'audit, par exemple).
Assurez-vous que votre organisation dispose d'une stratégie de sécurité qui évite toute
mauvaise utilisation de privilèges puissants tels que celui-ci.
• GRANT ANY OBJECT PRIVILEGE : Ce privilège vous autorise à accorder des
permissions sur des objets qui ne vous appartiennent pas.
• ALTER DATABASE et ALTER SYSTEM : Très puissants, ces privilèges vous autorisent à
modifier la base de données et l'instance Oracle. Vous pouvez, par exemple, renommer
un fichier de données ou vider le cache de tampons (buffer cache).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-13
Privilèges objet

Pour octroyer des privilèges


objet, procédez comme suit :
1. Sélectionnez le type d'objet.
2. Sélectionnez les objets.
3. Sélectionnez les privilèges.

Copyright © 2005, Oracle. Tous droits réservés.

Privilèges objet
Pour accorder des privilèges objet, cliquez sur l'onglet Object Privileges de la page Edit User.
Sélectionnez le type d'objet pour lequel vous voulez octroyer des privilèges, puis cliquez sur
le bouton Add. Indiquez les objets concernés sous la forme
<nom_utilisateur.nom_objet> ou sélectionnez-les dans la liste.
Sélectionnez ensuite les privilèges appropriés dans la liste Available Privileges, puis cliquez
sur le bouton Move. Une fois les privilèges sélectionnés, cliquez sur OK.
Dans la page Edit User, cochez la case Grant si l'utilisateur est autorisé à octroyer le même
accès aux autres utilisateurs.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-14
Révoquer des privilèges système
accordés avec ADMIN OPTION
DBA Jeff Emi
Utilisateur

GRANT
Privilège

Objet

DBA Jeff Emi


REVOKE

REVOKE CREATE
TABLE FROM jeff;

Copyright © 2005, Oracle. Tous droits réservés.

Révoquer des privilèges système


Les privilèges système qui ont été octroyés directement à l'aide de la commande GRANT
peuvent être révoqués via l'instruction SQL REVOKE. Les utilisateurs disposant de l'option
ADMIN OPTION pour un privilège système peuvent révoquer ce privilège pour tout autre
utilisateur de la base de données. La révocation peut être effectuée par un utilisateur différent
de celui qui a initialement octroyé le privilège.
Aucune répercussion en cascade ne se produit lorsqu'un privilège système est révoqué, que
celui-ci ait été ou non accordé avec l'option ADMIN OPTION.
A titre d'exemple, considérons le scénario ci-après.
Scénario
1. L'administrateur de base de données (DBA) octroie à Jeff le privilège système CREATE
TABLE, avec l'option ADMIN OPTION.
2. Jeff crée une table.
3. Jeff accorde le privilège système CREATE TABLE à Emi.
4. Emi crée une table.
5. Le DBA révoque le privilège système CREATE TABLE pour Jeff.
Résultat
La table de Jeff existe toujours mais aucune autre table ne peut être créée.
La table d'Emi existe toujours et Emi conserve le privilège système CREATE TABLE.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-15
Révoquer des privilèges objet
accordés avec GRANT OPTION
Bob Jeff Emi
GRANT

REVOKE Bob Jeff Emi

Copyright © 2005, Oracle. Tous droits réservés.

Révoquer des privilèges objet


Des effets en cascade peuvent être observés lors de la révocation d'un privilège système lié à
une opération LMD (Langage de manipulation de données). Par exemple, si le privilège
SELECT ANY TABLE est octroyé à un utilisateur et que ce dernier a créé des procédures qui
utilisent la table concernée, toutes les procédures contenues dans le schéma de l'utilisateur
doivent être recompilées pour pouvoir être utilisées à nouveau.
La révocation de privilèges objet accordés avec l'option WITH GRANT OPTION produit
également des effets en cascade.
A titre d'exemple, considérons le scénario ci-après.
Scénario
1. Jeff se voit octroyer le privilège objet SELECT sur la table EMPLOYEES, avec l'option
GRANT OPTION.
2. Jeff accorde à Emi le privilège SELECT sur la table EMPLOYEES.
3. Ultérieurement, le privilège SELECT de Jeff est révoqué. Cette révocation est
répercutée sur Emi.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-16
Avantages des rôles Utilisateur
Authentification
Privilège
> Rôle
Profil
Mot de passe
Quota
• Gestion plus facile des privilèges
• Gestion dynamique des privilèges
• Disponibilité sélective des privilèges

Copyright © 2005, Oracle. Tous droits réservés.

Avantages des rôles


• Gestion simplifiée des privilèges : Utilisez des rôles pour simplifier la gestion des
privilèges. Plutôt que d'accorder le même ensemble de privilèges à plusieurs utilisateurs,
vous pouvez accorder ces privilèges à un rôle, puis octroyer ce rôle à chaque utilisateur.
• Gestion dynamique des privilèges : Si les privilèges associés à un rôle sont modifiés,
tous les utilisateurs auxquels ce rôle est accordé bénéficient automatiquement et
immédiatement des privilèges modifiés.
• Disponibilité sélective des privilèges : Les rôles peuvent être activés et désactivés afin
d'activer ou de désactiver temporairement les privilèges correspondants. L'activation
d'un rôle peut également être utilisée pour vérifier que le rôle a été accordé à un
utilisateur.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-17
Affecter des privilèges à des rôles
et des rôles à des utilisateurs

Utilisateurs
Jenny David Rachel

Rôles HR_MGR HR_CLERK

Privilèges Supprimer Sélectionner Mettre à jour


des employés des employés des employés

Insérer des
employés

Copyright © 2005, Oracle. Tous droits réservés.

Affecter des privilèges à des rôles et des rôles à des utilisateurs


Dans la plupart des systèmes, il est trop fastidieux d'accorder à chaque utilisateur les
privilèges nécessaires et le risque d'erreur est trop important. Le logiciel Oracle permet la
gestion facile et contrôlée des privilèges par l'intermédiaire de rôles. Les rôles sont des
groupes nommés de privilèges liés qui sont accordés aux utilisateurs ou à d'autres rôles. Ils
sont conçus pour faciliter l'administration des privilèges dans la base de données, et donc
améliorer la sécurité.
Caractéristiques des rôles
• Les privilèges sont accordés aux rôles (et révoqués) comme si le rôle était un utilisateur.
• Les rôles peuvent être accordés aux utilisateurs ou à d'autres rôles (et révoqués) comme
s'il s'agissait de privilèges système.
• Un rôle peut être constitué de privilèges système et objet.
• Un rôle peut être activé ou désactivé pour chaque utilisateur auquel il est accordé.
• L'activation d'un rôle peut nécessiter un mot de passe.
• Les rôles n'appartiennent à personne et ne résident dans aucun schéma.
Dans l'exemple de la diapositive, les privilèges SELECT et UPDATE sont accordés au rôle
HR_CLERK sur la table employees. Les privilèges DELETE et INSERT sur la table
employees, ainsi que le rôle HR_CLERK, sont accordés au rôle HR_MGR. Le rôle HR_MGR
est accordé au manager, lequel peut à présent effectuer des sélections, des suppressions, des
insertions et des mises à jour dans la table employees.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-18
Rôles prédéfinis

CONNECT CREATE SESSION

RESOURCE CREATE CLUSTER, CREATE INDEXTYPE, CREATE


OPERATOR, CREATE PROCEDURE, CREATE
SEQUENCE, CREATE TABLE, CREATE TRIGGER,
CREATE TYPE
SCHEDULER_ CREATE ANY JOB, CREATE EXTERNAL JOB, CREATE
ADMIN JOB, EXECUTE ANY CLASS, EXECUTE ANY
PROGRAM, MANAGE SCHEDULER

DBA La plupart des privilèges système et plusieurs autres


rôles. Ce rôle ne doit pas être accordé aux
utilisateurs qui ne sont pas administrateurs.
SELECT_ Aucun privilège système, mais le rôle
CATALOG_ HS_ADMIN_ROLE et plus de 1 700 privilèges objet sur
ROLE le dictionnaire de données.

Copyright © 2005, Oracle. Tous droits réservés.

Rôles prédéfinis
Il existe plusieurs rôles qui sont définis automatiquement pour les bases de données Oracle
lorsque vous exécutez les scripts de création de la base. Le rôle CONNECT est accordé
automatiquement à tout utilisateur créé avec Enterprise Manager. Dans les versions
antérieures de la base de données (avant Oracle Database 10g Release 2), le rôle CONNECT
incluait davantage de privilèges, tels que CREATE TABLE et CREATE DATABASE LINK.
Ces privilèges ont été supprimés pour des raisons de sécurité.
Remarque : Lorsque vous octroyez le rôle RESOURCE, vous devez accorder également le
privilège UNLIMITED TABLESPACE.
Rôles fonctionnels
D'autres rôles permettant l'administration de fonctions spéciales sont créés lors de
l'installation des fonctions correspondantes. Par exemple, le rôle XDBADMIN dispose des
privilèges requis pour administrer XML Database si cette fonctionnalité est installée. Le rôle
AQ_ADMINISTRATOR_ROLE fournit les privilèges permettant d'administrer Advanced
Queuing. Le rôle HS_ADMIN_ROLE inclut les privilèges requis pour administrer les services
hétérogènes (Heterogeneous Services). Vous ne devez pas modifier les privilèges accordés à
ces rôles fonctionnels sans l'assistance du support technique Oracle, car vous risqueriez de
désactiver par inadvertance des fonctionnalités nécessaires.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-19
Créer un rôle

Sélectionnez Administration > Schema > Users & Privileges > Roles.

Copyright © 2005, Oracle. Tous droits réservés.

Créer un rôle
Un rôle est un groupe nommé de privilèges liés qui sont accordés à des utilisateurs ou à
d'autres rôles. Un administrateur de base de données (DBA) gère les privilèges via des rôles.
Pour créer un rôle, procédez de la manière suivante :
1. Dans Enterprise Manager Database Control, sélectionnez Administration > Schema >
Users & Privileges > Roles.
2. Cliquez sur le bouton Create.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-20
Rôles sécurisés
• Les rôles peuvent ne pas être activés par défaut.
SET ROLE vacationdba;

• Les rôles peuvent être protégés par authentification.

• Les rôles peuvent également être sécurisés


par programmation.
CREATE ROLE secure_application_role
IDENTIFIED USING <security_procedure_name>;

Copyright © 2005, Oracle. Tous droits réservés.

Rôles sécurisés
Les rôles sont généralement activés par défaut, ce qui signifie que si un rôle est accordé à un
utilisateur, cet utilisateur peut exercer les privilèges accordés à ce rôle. Vous pouvez effectuer
les opérations suivantes :
• Rendre un rôle inactif par défaut. Lorsque le rôle est affecté à un utilisateur,
désélectionnez la case DEFAULT. L'utilisateur doit à présent activer explicitement le
rôle pour pouvoir exercer les privilèges correspondants.
• Configurer un rôle afin qu'il nécessite une authentification. L'authentification par défaut
d'un rôle est None, mais il est possible de configurer le rôle afin qu'il ne puisse être
activé qu'après authentification.
• Créer des rôles applicatifs sécurisés qui ne peuvent être activés que via l'exécution d'une
procédure PL/SQL. La procédure PL/SQL peut vérifier des éléments tels que l'adresse
réseau de l'utilisateur, le programme exécuté par l'utilisateur, l'heure ou tout autre
élément nécessaire pour sécuriser correctement un groupe de permissions.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-21
Affecter des rôles aux utilisateurs

Copyright © 2005, Oracle. Tous droits réservés.

Affecter des rôles aux utilisateurs


Un rôle est un ensemble de privilèges pouvant être accordés à des utilisateurs ou à d'autres
rôles. Vous pouvez utiliser les rôles pour administrer les privilèges de base de données. Vous
pouvez ajouter des privilèges à un rôle, puis accorder le rôle à un utilisateur. L'utilisateur peut
alors activer le rôle et exercer les privilèges octroyés par ce rôle. Un rôle a tous les privilèges
qui lui ont été accordés, ainsi que tous les privilèges des autres rôles qui lui sont affectés.
Par défaut, Enterprise Manager accorde automatiquement le rôle CONNECT aux nouveaux
utilisateurs. Ces derniers peuvent ainsi se connecter à la base de données et créer des objets
dans leur propre schéma.
Pour affecter un rôle à un utilisateur, procédez de la manière suivante :
1. Dans Enterprise Manager Database Control, sélectionnez Administration > Schema >
Users & Privileges > Users.
2. Sélectionnez l'utilisateur, puis cliquez sur le bouton Edit.
3. Cliquez sur l'onglet Roles, puis sur le bouton Edit List.
4. Sous Available Roles, sélectionnez le rôle souhaité et déplacez-le sous Selected Roles.
5. Une fois que vous avez affecté tous les rôles appropriés, cliquez sur le bouton OK.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-22
Profils et utilisateurs Utilisateur
Authentification
Privilège
Rôle
> Profil
Mot de passe
Quota
Un seul profil
est affecté à
un utilisateur à
un instant donné.
Les profils :
• contrôlent la
consommation
des ressources
• gèrent le statut
des comptes et
l'expiration des
mots de passe

Copyright © 2005, Oracle. Tous droits réservés.

Profils et utilisateurs
Les profils imposent un ensemble nommé de limites concernant l'utilisation de la base de
données et les ressources des instances. Les profils gèrent également le statut des comptes et
imposent des restrictions sur les mots de passe des utilisateurs (longueur, délai d'expiration,
etc.). Chaque utilisateur se voit affecter un profil et ne peut appartenir qu'à un seul profil à la
fois. Si des utilisateurs sont connectés lorsque vous modifiez leur profil, le changement ne
prend effet que lors de leur prochaine connexion.
Le profil par défaut sert de base pour tous les autres profils. Comme l'illustre la diapositive ci-
dessus, les limitations associées à un profil peuvent être définies implicitement
(CPU/Session), être illimitées (CPU/Call) ou faire référence à un paramètre du profil par
défaut (Connect Time).
Les profils ne peuvent imposer des limitations de ressources aux utilisateurs que si la valeur
TRUE est affectée au paramètre d'initialisation RESOURCE_LIMIT. Avec la valeur par
défaut (FALSE) de RESOURCE_LIMIT, les limitations des profils sont ignorées.
Les profils permettent à l'administrateur de contrôler les ressources système suivantes :
• CPU : Les ressources CPU peuvent être limitées par session ou par appel. Avec une
limite CPU/Session de 1 000, une session qui utilise ce profil et qui consomme plus de
10 secondes de temps CPU (les limites de temps CPU étant exprimées en centièmes de
seconde) reçoit une erreur et est déconnectée :
ORA-02392: exceeded session limit on CPU usage, you are
being logged off
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-23
Profils et utilisateurs (suite)
Une limitation par appel a le même effet, mais au lieu de limiter la session globale
de l'utilisateur, elle empêche chaque commande de consommer trop de temps CPU.
Si une limite CPU/Call est définie et que l'utilisateur la dépasse, la commande
s'arrête et l'utilisateur reçoit un message d'erreur semblable à ce qui suit :
ORA-02393: exceeded call limit on CPU usage
• Network/Memory : Chaque session de base de données consomme des ressources
mémoire du système et (si la session est ouverte par un utilisateur qui ne se trouve
pas en local sur le serveur) des ressources réseau. Vous pouvez définir les éléments
suivants :
- Connect Time : Indique le nombre de minutes pendant lesquelles un utilisateur
peut rester connecté avant d'être automatiquement déconnecté.
- Idle Time : Définit le nombre de minutes pendant lesquelles la session d'un
utilisateur peut rester inactive avant d'être automatiquement déconnectée. Le
temps d'inactivité est calculé pour le processus serveur uniquement. Il ne tient
pas compte de l'activité des applications. La limite IDLE_TIME n'est pas
affectée par les interrogations longues et les autres opérations.
- Concurrent Sessions : Indique le nombre de sessions simultanées pouvant être
créées à l'aide d'un compte utilisateur de base de données.
- Private SGA : Limite la quantité d'espace consommé dans la mémoire SGA
(System Global Area) pour le tri, la fusion de bitmaps, etc. Cette restriction ne
prend effet que si la session utilise un serveur partagé. (Les serveurs partagés
sont traités dans le chapitre intitulé "Configurer l'environnement réseau
Oracle".)
• Disk I/O : Cette option limite la quantité de données qu'un utilisateur peut lire, par
session ou par appel. Les options Reads/Session et Reads/Call limitent le nombre
total de lectures réalisées à partir de la mémoire et du disque. Elles permettent de
s'assurer, par exemple, qu'aucune instruction consommant beaucoup d'E/S n'utilise
trop intensément la mémoire et les disques.
Les profils autorisent également une limite composite. Les limites composites sont basées
sur une combinaison pondérée des limites CPU/Session, Reads/Session, Connect Time et
Private SGA. Elles sont étudiées plus en détail dans le manuel Oracle Database Security
Guide.
Pour créer un profil, sélectionnez Administration > Schema > Users & Privileges >
Profiles, puis cliquez sur le bouton Create.
Remarque : Vous pouvez également utiliser Resource Manager à la place de la plupart
des paramètres de profil. Pour plus d'informations sur Resource Manager, reportez-vous
au manuel Oracle Database Administrator’s Guide.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-24
Implémenter des fonctionnalités de Utilisateur
Authentification
sécurité utilisant des mots de passe Privilège
Rôle
Profil
> Mot de passe
Quota

Vérification de la
Historique des complexité des
mots de passe mots de passe

Utilisateur Configuration
des profils

Durée de vie Verrouillage


et expiration des des comptes
mots de passe
Remarque : N'utilisez pas de profils qui entraînent l'expiration des
mots de passe SYS, SYSMAN et DBSNMP et le verrouillage des comptes.

Copyright © 2005, Oracle. Tous droits réservés.

Implémenter des fonctionnalités de sécurité utilisant des mots de passe


La gestion des mots de passe Oracle est implémentée par l'intermédiaire de profils utilisateur. Les
profils peuvent fournir de nombreuses fonctionnalités de sécurité standard, telles que :
Verrouillage des comptes : Permet le verrouillage automatique des comptes pour une durée
définie lorsque les utilisateurs ne parviennent pas à se connecter au système après un nombre
déterminé de tentatives.
• Le paramètre FAILED_LOGIN_ATTEMPTS indique le nombre d'échecs de connexion
autorisés avant le verrouillage du compte.
• Le paramètre PASSWORD_LOCK_TIME définit le nombre de jours pendant lesquels le
compte est verrouillé une fois le nombre d'échecs de connexion atteint.
Durée de vie des mots de passe et expiration : Permet de définir la durée de vie des mots de
passe utilisateur. Au terme de cette durée, ils expirent et doivent être modifiés.
• Le paramètre PASSWORD_LIFE_TIME détermine la durée de vie du mot de passe (en
nombre de jours). Au terme de cette durée, le mot de passe expire.
• Le paramètre PASSWORD_GRACE_TIME définit la période de grâce (en nombre de jours)
permettant de changer le mot de passe après la première connexion réussie suite à
l'expiration du mot de passe.
Remarque : L'utilisation de la fonction d'expiration des mots de passe et de verrouillage des
comptes SYS, SYSMAN et DBSNMP entrave le bon fonctionnement d'Enterprise Manager. Les
applications doivent récupérer le message d'avertissement "password expired" et gérer la
modification du mot de passe. Si elles n'y parviennent pas, la période de grâce expire et
l'utilisateur subit une déconnexion et un verrouillage sans en connaître la raison.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-25
Implémenter des fonctionnalités de sécurité utilisant des mots de passe
(suite)
Historique des mots de passe : Vérifie le nouveau mot de passe afin de garantir qu'il
n'est pas réutilisé pendant une durée déterminée ou avant un certain nombre de
changements de mot de passe. Ces vérifications peuvent être implémentées via l'un des
paramètres suivants :
• PASSWORD_REUSE_TIME : Indique qu'un utilisateur ne peut pas réutiliser un
mot de passe pendant un nombre déterminé de jours.
• PASSWORD_REUSE_MAX : Indique le nombre de changements de mot de passe
requis avant réutilisation du mot de passe actuel.
Ces deux paramètres s'excluent mutuellement, ce qui veut dire que lorsqu'une valeur
différente de UNLIMITED (ou DEFAULT si la valeur UNLIMITED est affectée au
profil DEFAULT) est affectée à l'un des paramètres, la valeur UNLIMITED doit être
affectée à l'autre paramètre.
Vérification de la complexité des mots de passe : Effectue une vérification de
complexité du mot de passe afin de garantir qu'il respecte certaines règles. La
vérification doit permettre de garantir que le mot de passe est suffisamment complexe
pour offrir une protection contre les intrus qui tenteraient de pénétrer dans le système en
devinant le mot de passe.
Le paramètre PASSWORD_VERIFY_FUNCTION nomme une fonction PL/SQL qui
effectue une vérification de complexité avant l'affectation d'un mot de passe. Les
fonctions de vérification des mots de passe doivent appartenir à l'utilisateur SYS et
renvoyer une valeur booléenne (TRUE ou FALSE).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-26
Créer un profil de mot de passe

Copyright © 2005, Oracle. Tous droits réservés.

Créer un profil de mot de passe


Pour créer un profil de mot de passe, sélectionnez Administration > Schema > Users &
Privileges > Profiles, puis cliquez sur le bouton Create.
Vous pouvez choisir les valeurs courantes de chaque paramètre dans une liste de valeurs
(cliquez sur l'icône représentant une torche), ou entrer une valeur personnalisée.
Toutes les périodes sont exprimées en jours, mais elles peuvent également être indiquées sous
forme de fractions. Une journée compte 1440 minutes. Par conséquent, 5/1440 représente cinq
minutes.
Enterprise Manager peut également être utilisé pour modifier des profils de mot de passe
existants.
Supprimer un profil de mot de passe
Dans Enterprise Manager, vous ne pouvez pas supprimer un profil dont se servent des
utilisateurs. Toutefois, si vous supprimez un profil à l'aide de l'option CASCADE (par
exemple, dans SQL*Plus), tous les utilisateurs dotés de ce profil se voient affecter
automatiquement le profil DEFAULT.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-27
Fonction de vérification des mots
de passe fournie : VERIFY_FUNCTION
La fonction de vérification des mots de passe fournie
applique les restrictions suivantes :
• La longueur minimale est de quatre caractères.
• Le mot de passe doit être différent du nom utilisateur.
• Le mot de passe doit comporter au moins un caractère
alphabétique, un chiffre et un caractère spécial.
• Le mot de passe doit comporter au moins trois lettres
différentes du précédent mot de passe.
Conseil : Utilisez cette fonction comme modèle
pour la création d'une fonction personnalisée
de vérification des mots de passe.

Copyright © 2005, Oracle. Tous droits réservés.

Fonction de vérification des mots de passe fournie : VERIFY_FUNCTION


Le serveur Oracle fournit une fonction de vérification de la complexité des mots de passe,
nommée VERIFY_FUNCTION. Cette fonction est créée à l'aide du script
<oracle_home>/rdbms/admin/utlpwdmg.sql. Elle doit être créée dans le
schéma SYS. Elle peut servir de modèle pour la définition d'une fonction de vérification
personnalisée.
En plus de créer la fonction VERIFY_FUNCTION, le script utlpwdmg change le profil
DEFAULT via la commande ALTER PROFILE suivante :
ALTER PROFILE default LIMIT
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function;
Rappelez-vous que lorsque les utilisateurs sont créés, le profil DEFAULT leur est affecté, sauf
si un autre profil est indiqué.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-28
Utilisateur
Affecter des quotas aux utilisateurs Authentification
Privilège
Rôle
Profil
Mot de passe
> Quota

Les utilisateurs qui ne disposent pas du privilège système


UNLIMITED TABLESPACE doivent se voir attribuer
un quota pour pouvoir créer des objets dans un tablespace.
Les quotas peuvent être les suivants :
• Une valeur précise exprimée en mégaoctets ou
en kilo-octets
• Unlimited

Copyright © 2005, Oracle. Tous droits réservés.

Affecter des quotas aux utilisateurs


Un quota est une allocation d'espace dans un tablespace donné. Par défaut, un utilisateur ne
dispose d'aucun quota sur aucun des tablespaces. Trois options vous permettent d'affecter un
quota utilisateur sur un tablespace.
• Unlimited : Cette option permet à l'utilisateur d'employer tout l'espace disponible dans
le tablespace.
• Value : Il s'agit de l'espace pouvant être employé par l'utilisateur, exprimé en kilo-octets
ou en mégaoctets. Cette valeur ne garantit cependant pas que l'espace est réservé pour
l'utilisateur. Elle peut être supérieure ou inférieure à l'espace actuellement disponible
dans le tablespace.
• Privilège système UNLIMITED TABLESPACE : Ce privilège système remplace chaque
quota de tablespace et accorde à l'utilisateur un quota illimité sur tous les tablespaces, y
compris SYSTEM et SYSAUX. Il doit être accordé avec précaution.
Remarque : Lorsque vous octroyez le rôle RESOURCE, vous devez également accorder
le privilège UNLIMITED TABLESPACE.
Vous ne devez pas accorder de quota aux utilisateurs sur les tablespaces SYSTEM et SYSAUX.
En général, seuls les utilisateurs SYS et SYSTEM doivent pouvoir créer des objets dans les
tablespaces SYSTEM et SYSAUX.
Vous n'avez pas besoin de quota pour un tablespace temporaire qui vous est affecté ou pour
un tablespace d'annulation.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-29
Affecter des quotas aux utilisateurs (suite)
• Quand l'instance Oracle utilise-t-elle des quotas ?
Les quotas sont employés lorsqu'un utilisateur crée ou étend un segment.
• Quelles activités n'ont pas d'incidence sur les quotas ?
Les activités qui n'utilisent pas l'espace disponible dans le tablespace désigné
n'affectent pas les quotas. Il s'agit, par exemple, de la création de vues ou de
l'utilisation du tablespace temporaire.
• Quand le quota est-il renouvelé ?
Le quota est renouvelé lorsque les objets dont l'utilisateur est le propriétaire sont
supprimés à l'aide de la clause PURGE ou lorsque les objets contenus dans la
corbeille sont purgés automatiquement.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-30
Synthèse

Ce chapitre vous a permis d'apprendre à :


• créer et gérer des comptes utilisateur
de base de données
– authentifier les utilisateurs
– affecter des zones de stockage par défaut
(tablespaces)
• accorder et révoquer des privilèges
• créer et gérer des rôles
• créer et gérer des profils
– implémenter des fonctionnalités standard
de sécurité utilisant des mots de passe
– contrôler l'utilisation des ressources par
les utilisateurs

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-31
Présentation de l'exercice :
Administrer les utilisateurs

Cet exercice porte sur les points suivants :


• créer un profil afin de limiter la consommation
des ressources
• créer deux rôles :
– HRCLERK
– HRMANAGER
• créer quatre utilisateurs :
– un manager et deux opérateurs
– un utilisateur de schéma pour l'exercice suivant

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 6-32
Gérer les objets de schéma

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• définir des objets de schéma et des types
de données
• créer et modifier des tables
• définir des contraintes
• afficher les colonnes et le contenu d'une table
• créer des index
• créer des vues
• créer des séquences
• expliquer l'utilisation des tables temporaires
• utiliser le dictionnaire de données

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-2
> Schéma
Qu'est-ce qu'un schéma ? Contraintes
Index
Vues
Séquences
Tables temp.
Dict. de données

possède

Schéma HR
Utilisateur HR

Copyright © 2005, Oracle. Tous droits réservés.

Qu'est-ce qu'un schéma ?


Un schéma est un ensemble d'objets de base de données appartenant à un utilisateur
particulier. Généralement, dans le cadre d'une base de données de production, le terme
"utilisateur" ne désigne pas une personne mais une application. Un schéma porte le même
nom que l'utilisateur auquel il appartient. Les objets de schéma sont les structures logiques qui
font directement référence aux données de la base. Ils incluent des structures telles que les
tables, les vues et les index.
Vous pouvez créer et manipuler les objets de schéma à l'aide de code SQL ou d'Enterprise
Manager. Lorsque vous utilisez Enterprise Manager, le code SQL sous-jacent est généré
automatiquement.
Remarque : Il n'est pas nécessaire qu'un schéma soit directement lié à un tablespace unique.
Vous pouvez définir des configurations dans lesquelles les objets d'un même schéma se
trouvent dans des tablespaces différents, ou dans lesquelles un tablespace contient des objets
issus de différents schémas.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-3
Qu'est-ce qu'un schéma ? (suite)
Lorsque vous créez la base de données, plusieurs schémas sont créés automatiquement.
Deux d'entre eux sont particulièrement importants :
• Schéma SYS : Il contient le dictionnaire de données, comme indiqué dans le
chapitre intitulé "Administrer la sécurité utilisateur".
• Schéma SYSTEM : Il contient des tables et des vues supplémentaires dans lesquelles
sont stockées des informations d'administration. Il est décrit dans le chapitre
"Administrer la sécurité utilisateur".
Lors de l'installation complète d'une base de données Oracle, différents exemples de
schémas liés entre eux sont installés automatiquement. Les exemples présentés dans la
documentation et dans les supports de formation Oracle utilisent ainsi une plate-forme
commune. Ces exemples peuvent avoir différents niveaux de complexité. Les schémas
fournis sont les suivants :
• HR : Le schéma Human Resources est un schéma simple utilisé pour présenter les
notions de base de ce cours. Une extension de ce schéma permet les démonstrations
relatives à Oracle Internet Directory (OID).
• OE : Le schéma Order Entry permet de traiter de sujets présentant une complexité
moyenne. Une multitude de types de données y sont disponibles. Le sous-schéma OC
(Online Catalog) est un ensemble d'objets de base de données relationnelle objet créé
dans le schéma OE.
• PM : Le schéma Product Media est dédié aux types de données multimédias.
• QS : Le schéma Queued Shipping contient un ensemble de schémas utilisés pour
illustrer les fonctionnalités d'Oracle Advanced Queuing.
• SH : Le schéma Sales History permet les démonstrations impliquant des quantités
importantes de données. Une extension de ce schéma fournit la prise en charge du
traitement analytique avancé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-4
Accéder aux objets de schéma

Copyright © 2005, Oracle. Tous droits réservés.

Accéder aux objets de schéma


Vous pouvez accéder rapidement à de nombreux types d'objet de schéma à partir de la région
Schema de la page Database Administration.
Lorsque vous cliquez sur l'un des liens, la page Results apparaît. Dans la région Search de la
page, vous pouvez entrer un nom de schéma et un nom d'objet afin de rechercher un objet
spécifique. En outre, vous pouvez rechercher d'autres types d'objet via la région Search, en
effectuant des sélections dans la liste déroulante. Cette liste inclut des types d'objet
supplémentaires qui ne sont pas présentés sous forme de liens dans la page Database
Administration.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-5
Nommer les objets de base de données

• La longueur des noms doit être comprise entre 1


et 30 octets, à deux exceptions près :
– Les noms de base de données sont limités à 8 octets.
– Les noms de lien de base de données peuvent
comporter jusqu'à 128 octets.
• Les noms qui ne sont pas inclus entre guillemets
ne peuvent pas être des mots réservés Oracle.
• Les noms qui ne sont pas inclus entre guillemets
doivent commencer par un caractère alphabétique
du jeu de caractères de la base de données.
• Il est déconseillé d'utiliser des noms entre
guillemets.

Copyright © 2005, Oracle. Tous droits réservés.

Nommer les objets de base de données


Lorsque vous indiquez le nom d'un objet de base de données, vous pouvez l'inclure entre des
guillemets (""). En procédant ainsi, vous pouvez contourner plusieurs des règles d'appellation
indiquées dans la diapositive ci-dessus. Toutefois, cette pratique est déconseillée car si vous
nommez un objet de cette manière, vous devez toujours y faire référence en faisant figurer le
nom entre guillemets. Par exemple, si vous nommez une table "Local Temp", vous devez
procéder de la façon suivante :
SQL> select * from "Local Temp";
TEMP_DATE LO_TEMP HI_TEMP
--------- ---------- ----------
01-DEC-03 30 41
Si vous entrez le nom en ne respectant pas les majuscules et les minuscules, vous obtenez une
erreur :
SQL> select * from "local temp";
select * from "local temp"
*
ERROR at line 1:
ORA-00942: table or view does not exist
Les noms qui ne sont pas inclus entre guillemets sont stockés en majuscules et ne sont pas
sensibles à la casse. Lorsqu'une instruction SQL est traitée, les noms qui ne sont pas inclus
entre guillemets sont convertis en majuscules.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-6
Nommer les objets de base de données (suite)
Les identificateurs qui ne sont pas inclus entre guillemets peuvent uniquement contenir
des caractères alphanumériques issus du jeu de caractères de la base de données, ainsi que
le caractère de soulignement (_), le symbole dollar ($) et le symbole dièse (#). Les liens de
base de données peuvent en outre contenir des points (.) et le symbole "arobas" (@). Il est
vivement déconseillé d'utiliser les symboles $ et # dans les identificateurs qui ne sont pas
inclus entre guillemets.
Les identificateurs inclus entre guillemets peuvent contenir n'importe quel caractère ou
signe de ponctuation, ainsi que des espaces. Toutefois, ni les identificateurs qui sont inclus
entre guillemets, ni ceux qui ne le sont pas ne peuvent contenir de guillemets.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-7
Définir des types de données pour les tables
Types de données courants :
• CHAR(size [BYTE|CHAR]) : chaîne de caractères
de longueur fixe, dont la taille est de size octets
ou caractères
• VARCHAR2(size [BYTE|CHAR]) : chaîne de
caractères de longueur variable, dont la taille
maximale est de size octets ou caractères
• DATE : date valide comprise entre le 1er janvier 4712
avant J.C. et le 31 décembre 9999 après J.C.
• NUMBER(p,s) : nombre dont la précision est p
et l'échelle s

Copyright © 2005, Oracle. Tous droits réservés.

Définir des types de données pour les tables


Lorsque vous créez une table, vous devez indiquer un type de données pour chacune de ses
colonnes. Lorsque vous créez une procédure ou une fonction, vous devez indiquer un type de
données pour chacun de ses arguments. Ces types de données définissent le domaine des
valeurs que chaque colonne peut contenir ou que chaque argument peut comporter.
La base Oracle peut notamment contenir les types de données intégrés suivants :
• CHAR(size) : chaîne de caractères de longueur fixe, dont la taille est de size octets
ou caractères. La taille maximale est de 2 000 octets ou caractères, tandis que la taille
minimale est de 1 octet (valeur par défaut).
- BYTE indique que la longueur de la chaîne est exprimée en octets.
- CHAR indique que la longueur de la chaîne est exprimée en nombre de caractères.
• VARCHAR2(size) : chaîne de caractères de longueur variable, dont la taille maximale
est de size octets ou caractères. La taille maximale est de 4 000 octets. Vous devez
impérativement indiquer la taille du type de données VARCHAR2.
• DATE : date valide comprise entre le 1er janvier 4712 avant JC et le 31 décembre 9999
après JC. Ce type de données contient également l'heure (en heures, minutes et
secondes).
• NUMBER : nombre dont la précision est p et l'échelle s. La précision peut être comprise
entre 1 et 38, et l'échelle entre -84 et 127.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-8
Définir des types de données pour les tables (suite)
• BINARY_FLOAT : nombre en virgule flottante sur 32 bits. Ce type de données
requiert 5 octets, en comptant l'octet de longueur.
• BINARY_DOUBLE : nombre en virgule flottante sur 64 bits. Ce type de données
requiert 9 octets.
• FLOAT(p) : type de données ANSI (American National Standards Institute). Le
type de données FLOAT est un nombre en virgule flottante dont la précision binaire
est p. La précision par défaut de ce type de données est de 126 en binaire, soit 38 en
décimal.
• INTEGER : type de données équivalent au type NUMBER(p,0).
• NCHAR(length) : type de données Unicode exclusivement. Lorsque vous créez
une table comportant une colonne NCHAR, vous définissez la longueur de la colonne
en nombre de caractères. Vous définissez le jeu de caractères nationaux lors de la
création de la base de données. La longueur maximale d'une colonne est déterminée
par la définition du jeu de caractères nationaux. Les spécifications de largeur du type
de données NCHAR font référence au nombre de caractères. La taille maximale
autorisée pour une colonne est de 2000 octets. Si vous insérez une valeur dont la
longueur est inférieure à celle de la colonne, la base de données Oracle lui ajoute des
espaces pour qu'elle atteigne la longueur totale de la colonne. Vous ne pouvez pas
insérer une valeur CHAR dans une colonne NCHAR, ni insérer une valeur NCHAR
dans une colonne CHAR.
• NVARCHAR2(size [BYTE|CHAR]) : type de données Unicode exclusivement.
Il est semblable au type de données NCHAR, à ceci près que sa longueur maximale
est de 4 000 octets et que le serveur Oracle n'ajoute pas d'espaces pour compléter la
longueur.
• LONG : données alphanumériques de longueur variable (longueur maximale de
2 gigaoctets ou 231 –1 octets). Le type de données LONG est obsolète. Utilisez à sa
place le type LOB (Large Object).
• LONG RAW : données binaires raw de longueur variable (longueur maximale de
2 gigaoctets).
• RAW(size) : données binaires raw, dont la longueur est de size octets. La taille
maximale est de 2 000 octets. Vous devez obligatoirement définir la taille d'une
valeur RAW.
• ROWID : chaîne en base 64, représentant l'adresse unique d'une ligne dans la table.
Ce type de données est destiné essentiellement aux valeurs renvoyées par la pseudo-
colonne ROWID.
• UROWID : chaîne en base 64, représentant l'adresse logique d'une ligne d'une table
organisée en index. La taille (facultative) est celle d'une colonne de type UROWID.
La taille maximale (valeur par défaut) est de 4000 octets.
• BLOB : objet binaire de grande taille.
• CLOB : objet de type caractère de grande taille, contenant des caractères mono-
octets ou multi-octets. Les jeux de caractères de longueur fixe et de longueur
variable sont pris en charge. Ils utilisent tous le jeu de caractères CHAR de la base de
données.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-9
Définir des types de données pour les tables (suite)
• NCLOB : objet de type caractère de grande taille, contenant des caractères Unicode. Les
jeux de caractères de longueur fixe et de longueur variable sont pris en charge. Ils utilisent
tous le jeu de caractères NCHAR de la base de données. Ce type d'objet contient des données
utilisant le jeu de caractères nationaux.
Remarque : La taille maximale de tous les types de données LOB (BLOB, CLOB et
NCLOB) est la suivante : (4 gigaoctets – 1) * (valeur de CHUNK).
CHUNK est un attribut facultatif que vous pouvez définir en même temps qu'un objet LOB
(Large Object). Il indique le nombre d'octets à allouer pour la manipulation des objets LOB.
Si la taille n'est pas un multiple de la taille de bloc de la base de données, la base arrondit la
taille en octets au multiple suivant. Par exemple, si la taille de bloc de la base de données
est de 2048 et que la taille de CHUNK est de 2050, la base de données alloue 4 096 octets
(2 blocs). La valeur maximale est de 32768 (32 ko), c'est-à-dire la taille de bloc maximale
autorisée par la base de données Oracle. La taille de CHUNK par défaut correspond à un bloc
de base de données Oracle.
• BFILE : type de données contenant un pointeur vers un fichier binaire de grande taille
stocké en-dehors de la base. Il permet un accès d'E/S de type flux d'octets aux objets LOB
externes résidant sur le serveur de base de données. La taille maximale est de 4 gigaoctets.
• TIMESTAMP(fractional_seconds_precision) : type de données permettant
d'indiquer les valeurs année/mois/jour de la date, ainsi que les valeurs heure/minute/seconde
de l'heure, où fractional_seconds_precision correspond au nombre de chiffres
avec lesquels sont exprimées les fractions de seconde. Les valeurs acceptées sont comprises
entre 0 et 9 (la valeur par défaut étant 6).
Pour obtenir la liste complète des types de données intégrés et des types définis par l'utilisateur,
reportez-vous au manuel Oracle Database SQL Reference.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-10
Créer et modifier des tables

Indiquez le nom
de la table et le
schéma.

Indiquez le nom, le type


de données et la longueur
des colonnes.

Copyright © 2005, Oracle. Tous droits réservés.

Créer et modifier des tables


Les tables sont les unités de base utilisées pour le stockage des données dans une base Oracle.
Elles contiennent toutes les données accessibles par les utilisateurs. Chaque table est
constituée de colonnes et de lignes.
Créer une table
Pour créer une table à l'aide d'Enterprise Manager, effectuez les opérations suivantes :
1. Cliquez sur Tables dans la région Schema de la page Administration. La page Tables
apparaît.
2. Si vous connaissez le nom du schéma, entrez tout ou partie de ce nom dans le champ
Schema de la région Search. Si vous ne connaissez pas le nom du schéma, cliquez sur
l'icône représentant une torche, en regard du champ Schema. La fenêtre Search and
Select: Schema apparaît. Vous pouvez parcourir les noms des schémas et sélectionner
celui que vous recherchez.
3. Cliquez sur Create. La page Create Table: Table Organization apparaît.
4. Acceptez la valeur par défaut (Standard, Heap Organized) et cliquez sur Continue. La
page Create Table apparaît.
5. Entrez le nom de la table dans le champ Name.
6. Entrez le nom du schéma dans le champ Schema, ou cliquez sur l'icône représentant une
torche afin d'appeler la fonction de recherche.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-11
Créer et modifier des tables (suite)
7. Entrez le nom du tablespace dans le champ Tablespace, ou cliquez sur l'icône
représentant une torche afin d'appeler la fonction de recherche.
8. Dans la région Columns, entrez le nom et le type de données des colonnes.
9. Cliquez sur OK. Un message de mise à jour apparaît, indiquant que la table a été
créée avec succès.
Modifier une table
Vous pouvez modifier une table avec Enterprise Manager, en suivant la procédure ci-
dessous. Dans l'exemple considéré, une colonne est ajoutée à une table.
1. Dans la page Tables, sélectionnez la table dans la liste des résultats, puis cliquez sur
Edit.
2. Dans la page Edit Table, cliquez sur le bouton Add 5 Table Columns. Une liste
modifiable de colonnes apparaît.
3. Entrez le nom, le type de données et la taille de la nouvelle colonne.
4. Cliquez sur Apply. Un message de mise à jour apparaît, indiquant que la table a été
modifiée avec succès.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-12
Schéma
Comprendre l'intégrité des données > Contraintes
Index
Vues
Séquences
Tables temp.
Dict. de données

JOB_HISTORY DEPARTMENTS LOCATIONS


EMPLOYEE_ID DEPARTMENT_ID (PK) LOCATION_ID (PK)
(PK,FK) EMPLOYEES DEPARTMENT_NAME STREET_ADDRESS
START_DATE (PK) EMPLOYEE_ID (PK) MANAGER_ID POSTAL_CODE
END_DATE FIRST_NAME LOCATION_ID (FK) CITY
JOB_ID (FK) LAST_NAME STATE_PROVINCE
DEPARTMENT_ID (FK) EMAIL COUNTRY_ID (FK)
PHONE_NUMBER
HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
MANAGER_ID (FK)
DEPARTMENT_ID (FK) COUNTRIES
COUNTRY_ID (PK)
JOBS COUNTRY_NAME
JOB_ID (PK) REGION_ID (FK)
JOB_TITLE
MIN_SALARY
MAX_SALARY

REGIONS
REGION_ID (PK)
REGION_NAME

Copyright © 2005, Oracle. Tous droits réservés.

Comprendre l'intégrité des données


Vous pouvez utiliser les contraintes d'intégrité suivantes pour imposer des restrictions
concernant la saisie des valeurs dans les colonnes :
• NOT NULL : Par défaut, toutes les colonnes d'une table autorisent les valeurs NULL. La
valeur NULL signifie l'absence de valeur. Une contrainte NOT NULL impose qu'une
colonne d'une table ne contienne aucune valeur NULL. Par exemple, vous pouvez définir
une contrainte NOT NULL afin d'imposer la saisie d'une valeur dans la colonne
LAST_NAME pour chaque ligne de la table EMPLOYEES.
• Clé UNIQUE : Une contrainte d'intégrité de clé UNIQUE impose que chaque valeur
d'une colonne ou d'un ensemble de colonnes (clé) soit unique. Autrement dit, deux
lignes d'une table ne doivent pas comporter de valeurs en double dans une colonne ou un
ensemble de colonnes donné. Par exemple, une contrainte UNIQUE est définie sur la
colonne DEPARTMENT_NAME de la table DEPARTMENTS afin d'interdire que plusieurs
lignes comportent le même nom de département. Sauf cas particulier, cette contrainte est
appliquée par le biais d'un index unique.
• PRIMARY KEY : Une table de la base de données ne peut pas comporter plus d'une
contrainte PRIMARY KEY. Les valeurs du groupe de colonnes soumis à cette contrainte
constituent l'identificateur unique de la ligne. En effet, chaque ligne est nommée par ses
valeurs de clé primaire.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-13
Comprendre l'intégrité des données (suite)
L'implémentation de la contrainte d'intégrité PRIMARY KEY par le serveur Oracle
garantit que les deux conditions suivantes sont vraies :
- Deux lignes d'une table ne comportent pas de valeurs en double dans la
colonne ou l'ensemble de colonnes désigné.
- Les colonnes de clé primaire n'autorisent pas les valeurs NULL. Autrement dit,
une valeur doit être présente dans les colonnes de clé primaire de chaque ligne.
En règle générale, la base de données applique les contraintes PRIMARY KEY par le
biais d'index. La contrainte de clé primaire créée pour la colonne DEPARTMENT_ID
de la table DEPARTMENTS est mise en oeuvre par la création implicite des éléments
suivants :
- un index unique sur cette colonne,
- une contrainte NOT NULL pour cette colonne.
• Contraintes d'intégrité référentielle : Différentes tables d'une base de données
relationnelle peuvent être liées par l'intermédiaire de colonnes communes. Les règles
qui régissent les relations entre les colonnes doivent être respectées. Les règles
d'intégrité référentielle garantissent que ces relations sont préservées.
Une contrainte d'intégrité référentielle impose que pour chaque ligne d'une table, la
valeur de la clé étrangère corresponde à une valeur d'une clé parent.
Par exemple, une clé étrangère est définie sur la colonne DEPARTMENT_ID de la
table EMPLOYEES. Elle permet de s'assurer que chaque valeur de cette colonne
correspond à une valeur de la clé primaire de la table DEPARTMENTS. Par
conséquent, il ne peut exister aucun numéro de département erroné dans la colonne
DEPARTMENT_ID de la table DEPARTMENTS.
Il existe un autre type de contrainte d'intégrité référentielle, appelé contrainte
d'intégrité auto-référentielle. Ce type de clé étrangère fait référence à une clé parent
qui se trouve dans la même table.
• Contraintes CHECK : Une contrainte d'intégrité CHECK appliquée sur une colonne
ou un ensemble de colonnes impose qu'une condition particulière soit vraie ou
inconnue pour chaque ligne de la table. Si une instruction LMD (Langage de
manipulation de données) entraîne une valeur false pour l'évaluation de la
contrainte CHECK, l'instruction est annulée (rollback).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-14
Définir des contraintes

Copyright © 2005, Oracle. Tous droits réservés.

Définir des contraintes


Pour ajouter une contrainte à une table à l'aide d'Enterprise Manager, effectuez les opérations
suivantes :
1. Sélectionnez la table dans la page Tables, puis cliquez sur Edit.
2. Cliquez sur Constraints. Vous accédez à la page Constraints, qui indique toutes les
contraintes définies sur la table.
3. Dans la liste déroulante, sélectionnez le type de contrainte à ajouter, puis cliquez sur
Add.
4. Entrez les informations appropriées concernant le type de contrainte que vous
définissez. Cliquez sur OK.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-15
Violations de contrainte

Voici quelques exemples de violations de contrainte :


• Insertion d'une valeur de clé primaire en double
• Suppression du parent d'une ligne enfant dans
une contrainte d'intégrité référentielle
• Mise à jour d'une colonne en lui affectant une valeur
qui se trouve en-dehors des limites d'une contrainte
CHECK
ID AGE
101 … X …

22
49
–30
102 …
101
103 … … 16
… 5

Copyright © 2005, Oracle. Tous droits réservés.

Violations de contrainte
Une violation de contrainte se produit lors de l'exécution d'une instruction LMD (Langage de
manipulation de données) qui ne respecte pas la contrainte. Les violations de contrainte
peuvent revêtir diverses formes. Elles concernent notamment les points suivants :
• Unicité : Un utilisateur tente d'inclure des valeurs en double dans une colonne à laquelle
est appliquée une contrainte UNIQUE (lorsqu'une colonne constitue la clé primaire ou
lorsqu'elle est associée à u index unique).
• Intégrité référentielle : La règle imposant que toutes les lignes enfant aient une ligne
parent est enfreinte.
• CHECK : Un utilisateur tente de stocker dans une colonne une valeur qui n'est pas
conforme aux règles appliquées à cette colonne. Par exemple, une contrainte CHECK
imposant un nombre positif est appliquée à une colonne AGE.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-16
Etats possibles d'une contrainte

DISABLE DISABLE ENABLE ENABLE


NOVALIDATE VALIDATE NOVALIDATE VALIDATE

Pas
d'instruction
LMD

Nouvelles données

Données existantes

Copyright © 2005, Oracle. Tous droits réservés.

Etats possibles d'une contrainte


Pour pouvoir gérer les situations dans lesquelles des données doivent enfreindre
temporairement une contrainte, vous pouvez appliquer différents états à une contrainte. Une
contrainte d'intégrité peut être activée (ENABLE) ou désactivée (DISABLE). Lorsqu'elle est
activée, les données sont vérifiées au fur et à mesure de leur saisie ou de leur mise à jour dans
la base. Les données qui ne respectent pas la règle de la contrainte ne sont pas acceptées.
Lorsqu'une contrainte est désactivée, il est possible d'entrer dans la base des données non
conformes à cette contrainte. Vous pouvez appliquer les états suivants à une contrainte
d'intégrité :
• DISABLE NOVALIDATE
• DISABLE VALIDATE
• ENABLE NOVALIDATE
• ENABLE VALIDATE

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-17
Etats possibles d'une contrainte (suite)
DISABLE NOVALIDATE : Les données ne sont pas vérifiées, qu'elles soient nouvelles ou
existantes. Elles peuvent ne pas être conformes à la contrainte. Cet état est souvent utilisé
lorsque les données proviennent d'une source déjà validée et que la table est en lecture
seule (aucune nouvelle donnée n'est entrée dans la table).
DISABLE VALIDATE : Lorsqu'une contrainte se trouve dans cet état, il n'est pas possible
de modifier les colonnes auxquelles elle s'applique. En effet, il serait illogique d'avoir
validé les données existantes, puis d'autoriser la saisie de données non vérifiées dans la
table. Cet état est souvent utilisé lorsque les données existantes doivent faire l'objet d'une
validation mais ne seront pas modifiées ultérieurement, et que le recours à l'index n'est pas
nécessaire pour assurer de bonnes performances.
ENABLE NOVALIDATE : Les nouvelles données doivent être conformes à la contrainte
mais les données existantes se trouvent dans un état inconnu. Cet état est fréquemment
utilisé pour permettre la correction des violations de contrainte existantes tout en
empêchant de nouvelles violations de se produire dans le système.
ENABLE VALIDATE : Toutes les données doivent être conformes à la contrainte, qu'elles
soient nouvelles ou existantes. Il s'agit de l'état standard d'une contrainte (état par défaut).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-18
Vérification des contraintes
La vérification des contraintes s'effectue :
• lors de l'exécution de l'instruction pour les contraintes
immédiates
• lors de l'exécution de la commande COMMIT pour les
contraintes différées
Instruction LMD, suivie par la commande COMMIT

1 Vérification des contraintes immédiates

2 Exécution de la commande COMMIT

3 Vérification des contraintes différées

4 Fin de la commande COMMIT

Copyright © 2005, Oracle. Tous droits réservés.

Vérification des contraintes


Vous pouvez reporter la vérification de la validité par rapport aux contraintes à la fin de la
transaction.
Les contraintes immédiates, ou contraintes non différées, sont appliquées à la fin de chaque
instruction LMD (Langage de manipulation de données). Une violation de contrainte entraîne
l'annulation (rollback) de l'instruction. Si une contrainte produit une action telle que delete
cascade, l'action est considérée comme faisant partie de l'instruction qui l'a provoquée.
Vous ne pouvez pas transformer une contrainte immédiate en contrainte pouvant être différée.
Les contraintes différées ne sont vérifiées que lorsqu'une transaction est validée (commit). Si
une violation de contrainte est détectée lors de la phase de validation, l'intégralité de la
transaction est annulée (rollback). Ce type de contrainte s'avère particulièrement utile lors de
la saisie simultanée de lignes parent et de lignes enfant liées par une relation de clé étrangère.
C'est le cas, par exemple, d'un système de gestion des commandes client, dans lequel la
commande et les articles concernés sont entrés en même temps.
Vous pouvez appliquer l'un des paramètres suivants à une contrainte pouvant être différée :
• Initially immediate indique que, par défaut, la contrainte doit être traitée
comme une contrainte immédiate, sauf indication contraire explicite.
• Initially deferred stipule que, par défaut, la contrainte ne doit être appliquée
qu'à la fin de la transaction.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-19
Créer des contraintes via des
instructions SQL : Exemples
ALTER TABLE countries
a
ADD (UNIQUE(country_name) ENABLE NOVALIDATE);

ALTER TABLE employees ADD CONSTRAINT pk PRIMARY KEY


b
(employee_id)

CREATE TABLE t1 (pk NUMBER PRIMARY KEY, fk NUMBER, c1 NUMBER,


c2 NUMBER,
c
CONSTRAINT ri FOREIGN KEY (fk) REFERENCES t1, CONSTRAINT ck1
CHECK (pk > 0 and c1 > 0));

Copyright © 2005, Oracle. Tous droits réservés.

Créer des contraintes via des instructions SQL : Exemples


La diapositive ci-dessus présente trois exemples de création de contrainte :
a. Après l'exécution de cette instruction, toute insertion ou mise à jour effectuée dans la
table COUNTRIES doit comporter une valeur COUNTRY_NAME unique. Toutefois, il se
peut que la table contienne déjà des valeurs COUNTRY_NAME non uniques. Le mot-clé
NOVALIDATE ordonne d'ignorer ces valeurs en double. La contrainte ne s'applique
qu'aux nouvelles lignes.
b. Cette instruction ajoute une clé primaire à la table EMPLOYEE. Le nom de la contrainte
est PK et la clé primaire correspond à la colonne EMPLOYEE_ID.
c Cette instruction définit les contraintes au moment de la création de la table, plutôt que
d'utiliser ultérieurement une instruction ALTER TABLE. La contrainte RI impose aux
valeurs de la colonne FK d'être présentes dans la colonne de clé primaire de la table T1.
La contrainte CK1 stipule que les colonnes PK et C1 doivent contenir une valeur
supérieure à zéro.
Remarque : Chaque contrainte est dotée d'un nom. Si vous ne l'indiquez pas dans
l'instruction LDD (Langage de définition de données), un nom fourni pas le système et
commençant par SYS_ est affecté.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-20
Afficher les colonnes d'une table

Copyright © 2005, Oracle. Tous droits réservés.

Afficher les colonnes d'une table


Pour afficher les attributs d'une table à l'aide d'Enterprise Manager, effectuez les opérations
suivantes :
1. Cliquez sur le lien Tables dans la région Schema de la page Database Administration.
2. Sélectionnez une table dans la liste Results et cliquez sur le bouton View afin d'afficher
les attributs de cette table.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-21
Afficher le contenu d'une table

Copyright © 2005, Oracle. Tous droits réservés.

Afficher le contenu d'une table


Pour afficher les lignes d'une table à l'aide d'Enterprise Manager, effectuez les opérations
suivantes :
1. Sélectionnez la table dans la page Tables.
2. Sélectionnez View Data dans le menu Actions, puis cliquez sur Go.
La page View Data for Table apparaît. Les données des lignes de la table s'affichent dans la
région Result. La zone Query affiche l'interrogation SQL qui est exécutée pour générer les
résultats. Dans cette page, vous pouvez cliquer sur le nom de n'importe quelle colonne et trier
les données de cette colonne par ordre croissant ou décroissant. Si vous souhaitez modifier
l'interrogation, cliquez sur le bouton Refine Query. Dans la page Refine Query for Table,
vous pouvez sélectionner les colonnes que vous souhaitez afficher et indiquer une clause
WHERE dans l'instruction SQL afin de limiter les résultats.
Pour plus d'informations sur les clauses WHERE incluses dans les instructions SQL, reportez-
vous au manuel Oracle Database SQL Reference.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-22
Actions sur les tables

Copyright © 2005, Oracle. Tous droits réservés.

Actions sur les tables


Vous pouvez sélectionner une table, puis effectuer des actions sur cette table. Vous pouvez
notamment effectuer les actions suivantes :
• Create Like : Cette action permet de créer une table présentant la même structure que
la table sélectionnée. Vous devez modifier le nom des contraintes. Vous pouvez ajouter
ou supprimer des colonnes, et apporter d'autres modifications à la structure de la table
avant de créer cette dernière.
• Create Index : Utilisez cette option pour créer des index sur une table.
• Generate DDL : Cette action génère l'instruction LDD (Langage de définition de
données) qui représente la table telle qu'elle existe. Cette instruction peut ensuite être
copiée dans un fichier texte afin d'être utilisée en tant que script ou à des fins de
documentation.
• Grant Privileges : Par défaut, lorsqu'une table est créée, seul son propriétaire peut
l'utiliser. Le propriétaire doit octroyer des privilèges aux autres utilisateurs pour qu'ils
puissent exécuter des instructions LMD ou LDD sur la table.
• Show Dependencies : Cette opération affiche les objets dont dépend la table, ou les
objets qui dépendent de la table.
• View Data : Cette action permet de sélectionner et d'afficher les données de la table en
mode lecture seule.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-23
Supprimer une table

La suppression d'une table entraîne la suppression


des éléments suivants :
• Données DROP TABLE hr.employees PURGE;
• Structure de la table
• Déclencheurs de base de données
• Index correspondants
• Privilèges objet associés
Clauses facultatives pouvant être intégrées
à l'instruction DROP TABLE :
• CASCADE CONSTRAINTS : contraintes d'intégrité
référentielle dépendantes
• PURGE : aucun flashback possible

Copyright © 2005, Oracle. Tous droits réservés.

Supprimer une table


Syntaxe :
DROP TABLE [schema.] table [CASCADE CONSTRAINTS] [PURGE]
La commande DROP TABLE supprime les données, la structure de la table, et les privilèges
objet associés. Voici quelques points à prendre en compte concernant la commande DROP
TABLE :
• En l'absence de la clause PURGE, la définition de la table, les index associés et les
déclencheurs (triggers) sont placés dans la corbeille. Les données de la table sont
conservées, mais elles sont inaccessibles sans la définition de la table. Lorsque vous
supprimez une table via Enterprise Manager, la clause PURGE n'est pas utilisée.
• Utilisez la commande FLASHBACK TABLE pour récupérer les objets de schéma dans la
corbeille. La commande PURGE RECYCLEBIN vide la corbeille.
• L'option CASCADE CONSTRAINTS permet de supprimer toutes les contraintes
d'intégrité référentielle dépendantes.
Remarque : Si vous n'utilisez pas l'option PURGE, l'espace occupé par la table et ses index
entre toujours en compte dans le calcul du quota autorisé pour l'utilisateur dans les
tablespaces concernés. En d'autres termes, l'espace reste considéré comme étant utilisé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-24
Vider une table

TRUNCATE TABLE hr.employees;

• Lorsque vous videz une table, vous rendez les


données des lignes indisponibles et libérez
éventuellement l'espace utilisé.
• Les index correspondants sont vidés.

Copyright © 2005, Oracle. Tous droits réservés.

Vider une table


Syntaxe :
TRUNCATE TABLE [schema.] table [{DROP | REUSE} STORAGE]
L'utilisation de cette commande produit les effets suivants :
• La table est marquée comme étant vide. En effet, le repère high-water mark (HWM) est
placé au début de la table, de sorte que les lignes de celle-ci ne sont plus disponibles.
• Aucune donnée d'annulation (undo) n'est générée et la commande procède implicitement
à une validation (commit) car TRUNCATE TABLE est une commande LDD (Langage
de définition de données).
• Les index correspondants sont également vidés.
• Une table à laquelle une clé étrangère fait actuellement référence ne peut pas être vidée.
• Les déclencheurs (triggers) de suppression ne sont pas exécutés lors de l'utilisation de
cette commande.
La commande TRUNCATE s'avère généralement beaucoup plus rapide qu'une instruction
DELETE pour supprimer toutes les lignes de la table, pour les raisons suivantes :
• La base de données Oracle réinitialise le repère high-water mark de la table au lieu
d'appliquer l'opération DELETE à chaque ligne.
• Aucune donnée d'annulation n'est générée.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-25
Schéma
Index Contraintes
> Index
Vues
Séquences
Tables temp.
Dict. de données
… WHERE key = 22

Pointeur
Clé de ligne

22

22

Index Table

Copyright © 2005, Oracle. Tous droits réservés.

Index
Les index sont des structures facultatives associées aux tables. Ils peuvent être créés afin
d'améliorer les performances de mise à jour et d'extraction des données. Un index Oracle
fournit un chemin d'accès direct vers une ligne de données.
Les index peuvent être créés sur une ou plusieurs colonnes d'une table. Dès lors qu'un index
créé, il est automatiquement tenu à jour et utilisé par le serveur Oracle. Les mises à jour des
données d'une table, telles que l'ajout, la mise à jour ou la suppression de lignes, sont
automatiquement propagées vers tous les index concernés, de manière totalement transparente
pour l'utilisateur.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-26
Types d'index

Vous disposez de plusieurs types de structure d'index,


adaptés à différents besoins :
• Un index B-tree se présente sous la forme d'une
arborescence binaire. Il s'agit du type d'index
par défaut.
• Un index bitmap comporte un bitmap pour chaque
valeur indexée. Chaque bit du bitmap représente
une ligne et indique si celle-ci contient ou non
la valeur indexée. Ce type d'index est recommandé
pour les colonnes de faible cardinalité.

Copyright © 2005, Oracle. Tous droits réservés.

Types d'index
Les types d'index les plus courants sont les suivants :
• B-tree
• Bitmap
Les valeurs de clé d'un index B-tree sont stockées dans une arborescence équilibrée (Balanced
tree - B-tree), ce qui permet d'effectuer des recherches binaires rapides.
Un index bitmap inclut un bitmap pour chaque valeur de clé indexée. Chaque bit du bitmap
correspond à une ligne de la table indexée. Cela permet d'effectuer des recherches rapides
lorsqu'il existe un nombre restreint de valeurs distinctes (on dit que la colonne indexée
présente une faible cardinalité). Prenons comme exemple l'indicateur du sexe d'une personne.
Cet indicateur ne peut comporter que les valeurs "M" et "F". La recherche ne porte donc que
sur deux bitmaps. En revanche, supposons qu'un index bitmap soit utilisé pour une colonne
phone_number. Il faudrait gérer et explorer un si grand nombre de bitmaps que l'opération
deviendrait totalement inefficace. Par conséquent, n'utilisez les index bitmap que pour les
colonnes de faible cardinalité.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-27
Index B-Tree

Entrée d'index

Racine

Branche

En-tête de l'entrée d'index


Feuille Longueur de la colonne de clé
Valeur de la colonne de clé
ROWID

Copyright © 2005, Oracle. Tous droits réservés.

Index B-Tree
Structure d'un index B-tree
Au sommet de l'index se trouve la racine, qui contient les entrées pointant vers le niveau
suivant de l'index. Le niveau suivant comprend les blocs branche, qui pointent vers les blocs
du niveau suivant de l'index. Au plus bas niveau se trouvent les noeuds feuille, qui
contiennent les entrées d'index pointant vers les lignes de la table. Les blocs feuille font l'objet
d'une liaison double, afin de faciliter le balayage de l'index dans l'ordre croissant ou
décroissant des valeurs de clé.
Format des entrées d'index
Une entrée d'index est composée des éléments suivants :
• Un en-tête, dans lequel sont stockés le nombre de colonnes et les informations de
verrouillage.
• Des paires longueur-valeur qui définissent la taille d'une colonne de clé suivie de la
valeur de la colonne (le nombre de paires de ce type ne doit pas excéder le nombre de
colonnes présentes dans l'index).
• Le ROWID d'une ligne qui contient les valeurs de clé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-28
Index B-Tree (suite)
Caractéristiques des entrées d'index
Dans un index B-tree généré sur une table non partitionnée :
• Les valeurs de clé sont répétées si plusieurs lignes comportent la même valeur de
clé, à moins que l'index ne soit compressé.
• Aucune entrée d'index ne correspond à une ligne dont les colonnes de clé comportent
toutes la valeur NULL. Par conséquent, une clause WHERE stipulant la valeur NULL
entraîne toujours un balayage complet de table (full table scan).
• Le ROWID restreint est utilisé pour pointer vers les lignes de la table car toutes les
lignes appartiennent au même segment.
Effet des opérations LMD sur un index
Le serveur Oracle tient à jour l'ensemble des index lorsque des opérations LMD (Langage
de manipulation de données) sont effectuées sur la table. Les commandes LMD agissent
de la façon suivante sur un index :
• Les opérations d'insertion entraînent l'insertion d'une entrée d'index dans le bloc
approprié.
• La suppression d'une ligne ne cause que la suppression logique de l'entrée d'index.
L'espace utilisé par la ligne supprimée n'est pas disponible pour les nouvelles entrées
tant que toutes les entrées du bloc n'ont pas été supprimées.
• Les mises à jour effectuées dans les colonnes de clé provoquent une suppression
logique et une insertion dans l'index. Le paramètre PCTFREE n'a aucune incidence
sur l'index, sauf lors de la phase de création. Il est possible d'ajouter une nouvelle
entrée à un bloc d'index, et ce même si ce dernier dispose d'une quantité d'espace
inférieure à celle indiquée par PCTFREE.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-29
Index bitmap

Table Fichier 3
Bloc 10

Bloc 11

Index Bloc 12

ROWID ROWID
Clé de début de fin Bitmap
<Blue, 10.0.3, 12.8.3, 1000100100010010100>
<Green, 10.0.3, 12.8.3, 0001010000100100000>
<Red, 10.0.3, 12.8.3, 0100000011000001001>
<Yellow, 10.0.3, 12.8.3, 0010001000001000010>

Copyright © 2005, Oracle. Tous droits réservés.

Index bitmap
Il est plus judicieux d'utiliser des index bitmap que des index B-tree dans les cas suivants :
• Lorsqu'une table contient des millions de lignes et que les colonnes de clé présentent
une faible cardinalité (c'est-à-dire que chaque colonne de clé contient un nombre très
restreint de valeurs distinctes). Par exemple, les index bitmap peuvent être préférables
aux index B-tree pour les colonnes concernant le sexe des personnes et leur situation
familiale dans une table qui contient des enregistrements de passeports.
• Lorsque les interrogations utilisent souvent une combinaison de plusieurs conditions
WHERE incluant l'opérateur OR.
• Lorsque les colonnes de clé ne sont utilisées qu'en lecture ou font rarement l'objet de
mises à jour.
Structure d'un index bitmap
Un index bitmap est organisé comme un index B-tree, à ceci près que les noeuds feuille
stockent un bitmap pour chaque valeur de clé et non une liste de ROWID. Chaque bit du
bitmap correspond à un ROWID possible. Le bit a la valeur 1 lorsque la ligne correspondante
contient la valeur de clé.
Comme l'illustre le diagramme de la diapositive, un noeud feuille d'un index bitmap contient
les éléments suivants :
• Un en-tête, qui contient le nombre de colonnes et les informations de verrouillage.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-30
Index bitmap (suite)
Structure d'un index bitmap (suite)
• Des valeurs de clé consistant en des paires longueur-valeur pour chaque colonne de
clé. Dans l'exemple de la diapositive, la clé est une colonne unique, et la première
entrée comporte la valeur de clé Blue.
• Un ROWID de début. Dans l'exemple considéré, il correspond au numéro de bloc dix,
au numéro de ligne zéro et au numéro de fichier trois.
• Un ROWID de fin. Dans l'exemple, il correspond au numéro de bloc douze, au
numéro de ligne huit et au numéro de fichier trois.
• Un segment bitmap composé d'une chaîne de bits. (Un bit est égal à 1 lorsque la
ligne correspondante contient la valeur de clé. Sinon, il est égal à 0. Le serveur
Oracle utilise une technique de compression brevetée pour le stockage des segments
bitmap.)
Le ROWID de début est le ROWID de la première ligne vers laquelle pointe le segment
bitmap. Autrement dit, le premier bit du bitmap correspond à ce ROWID, le deuxième bit
correspond à la ligne suivante du bloc et le ROWID de fin pointe vers la dernière ligne de
la table incluse dans le segment bitmap. Les index bitmap utilisent des ROWID restreints.
Utilisation d'un index bitmap
La structure B-tree est utilisée pour repérer les noeuds feuille qui contiennent les segments
bitmap pour une valeur donnée de la clé. Le ROWID de début et les segments bitmap
permettent de repérer les lignes qui contiennent la valeur de clé.
Lorsque la colonne de clé de la table est modifiée, les bitmaps doivent également être
modifiés. Cette opération entraîne le verrouillage des segments bitmap concernés. Les
verrous externes (locks) sont appliqués à l'ensemble du segment bitmap. Par conséquent,
une ligne comprise dans le bitmap ne peut pas être mise à jour par d'autres transactions
tant que la première transaction n'est pas terminée.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-31
Options relatives aux index

• Un index unique permet de garantir que chaque


valeur indexée est unique.
• Les valeurs de clé d'un index peuvent être
stockées dans l'ordre croissant ou décroissant.
• Dans un index à clé inversée, les octets
constituant les valeurs de clé sont stockés
dans l'ordre inverse.
• Un index composé est basé sur plusieurs
colonnes.
• Un index basé sur une fonction repose sur
la valeur renvoyée par une fonction.
• Un index compressé supprime les valeurs
de clé en double.

Copyright © 2005, Oracle. Tous droits réservés.

Options relatives aux index


Pour faciliter les opérations d'extraction, il peut être intéressant d'utiliser un index qui stocke
les clés dans l'ordre décroissant. Le choix de cette option dépend du mode d'accès aux
données le plus fréquemment utilisé.
Dans un index à clé inversée, les octets de la valeur indexée sont stockés dans l'ordre inverse.
Cela peut entraîner une réduction de l'activité au niveau d'un point sensible de l'index. Si de
nombreux utilisateurs traitent les données dans le même ordre, les préfixes des valeurs de clé
(qui sont en cours de traitement) présentent des valeurs proches à un instant donné. Par
conséquent, une activité importante a lieu dans cette zone de la structure d'index. Un index à
clé inversée répartit l'activité sur l'ensemble de la structure d'index en indexant une version à
octets inversés des valeurs de clé.
Un index créé par la combinaison de plusieurs colonnes est appelé index composé. Vous
pouvez, par exemple, créer un index basé sur le nom et le prénom d'une personne :
CREATE INDEX name_ix ON employees
(last_name, first_name);

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-32
Options relatives aux index (suite)
Un index basé sur une fonction procède à l'indexation de la valeur renvoyée par une
fonction. Il peut s'agir d'une fonction SQL intégrée, d'une fonction PL/SQL fournie ou
d'une fonction définie par l'utilisateur. Ainsi, le serveur n'a pas besoin d'appeler la
fonction pour chaque valeur de clé lorsqu'il effectue une recherche sur l'expression
indexée. L'exemple suivant permet de baser l'index sur le volume renvoyé par la
fonction pour chaque arbre selon le type (species), la hauteur (height) et la
circonférence (circumference), qui correspondent à des colonnes de la table
TREES :
CREATE INDEX tree_vol_ix ON
TREES(volume(species,height,circumference));
Par conséquent, toute interrogation dont la clause WHERE contient l'expression
volume(species,height,circumference) peut utiliser cet index. Cela
réduit considérablement son temps d'exécution puisque le calcul de volume est déjà
effectué pour chaque arbre. Les index basés sur une fonction sont tenus à jour
automatiquement, comme tout autre index standard.
Vous pouvez utiliser un index compressé pour réduire la consommation d'espace disque
lors de la phase d'exécution. Les valeurs de clé répétées étant supprimées, une même
quantité d'espace disque peut contenir davantage d'entrées d'index. Le système peut
ainsi lire un plus grand nombre d'entrées sur le disque dans un même laps de temps.
Une compression et une décompression doivent être effectuées respectivement pour les
opérations d'écriture et de lecture de l'index.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-33
Créer des index

CREATE INDEX my_index ON


employees(last_name, first_name);

Copyright © 2005, Oracle. Tous droits réservés.

Créer des index


Vous pouvez cliquer sur le lien Indexes sous l'en-tête Schema de la page Administration afin
d'afficher la page Indexes. Vous pouvez afficher les attributs des index ou utiliser le menu
Actions pour visualiser les dépendances d'un index.
Les index peuvent être créés explicitement, ou implicitement par l'intermédiaire de
contraintes placées sur une table. Un index créé implicitement peut résulter, par exemple, de
la définition d'une clé primaire. Un index unique est alors créé automatiquement pour la mise
en oeuvre de l'unicité des valeurs de la colonne.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-34
Schéma
Qu'est-ce qu'une vue ? Contraintes
Index
> Vues
Table LOCATION …

Table COUNTRY
Vue

CREATE VIEW v AS SELECT location_id, country_name FROM


locations l, countries c
WHERE l.country_id = c.country_id AND c.country_id in
('AU','BR');

Copyright © 2005, Oracle. Tous droits réservés.

Qu'est-ce qu'une vue ?


Les vues sont des représentations personnalisées de données provenant d'une ou de plusieurs
tables, ou d'autres vues. Elles peuvent être considérées comme des interrogations stockées car
elles peuvent masquer des conditions et des jointures très complexes, ainsi que d'autres
expressions et structures SQL complexes. Une vue ne contient pas de données à proprement
parler. Ses données sont issues des tables sur lesquelles elle est basée. Ces tables sont
appelées tables de base de la vue.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-35
Créer des vues

Copyright © 2005, Oracle. Tous droits réservés.

Créer des vues


A l'instar des tables, les vues peuvent faire l'objet d'interrogations, de mises à jour, d'insertions
et de suppressions, avec cependant quelques restrictions. Toutes les opérations effectuées sur
une vue affectent les tables de base de cette vue. Les vues fournissent un niveau de sécurité
supplémentaire en limitant l'accès à un ensemble prédéterminé de lignes et de colonnes d'une
table. Elles masquent également la complexité des données et permettent le stockage
d'interrogations complexes.
Pour afficher les vues définies dans la base de données, cliquez sur le lien Views sous l'en-tête
Schema de la page Administration.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-36
Schéma
Séquences Contraintes
Index
Vues
> Séquences
Une séquence est un mécanisme de génération Tables temp.
automatique de nombres entiers selon Dict. de données
un modèle spécifique.
• Une séquence comporte un nom, 1
2
qui est utilisé pour la demande de 3
4
la valeur suivante. 5
• Une séquence n'est associée à
aucune table ou colonne particulière.
• La progression peut s'effectuer de manière
croissante ou décroissante.
• L'intervalle entre les numéros peut être de n'importe
quelle taille.
• Une séquence peut effectuer une boucle lorsqu'une
limite est atteinte.
Copyright © 2005, Oracle. Tous droits réservés.

Séquences
Pour obtenir la valeur suivante d'une séquence, vous devez référencer celle-ci par son nom.
En effet, il n'existe aucune association entre une séquence et une table ou une colonne.
Un numéro fourni par une séquence n'est jamais émis de nouveau, sauf si la séquence est
définie comme étant cyclique. Une application demande parfois une valeur qu'elle n'utilise
jamais ou qu'elle ne stocke jamais dans la base de données. Il peut ainsi y avoir des décalages
entre les numéros figurant dans la table de stockage.
La mise en mémoire cache des numéros de séquence améliore les performances du système
car un ensemble de numéros est préalloué et conservé en mémoire afin de garantir un accès
rapide. En cas d'échec de l'instance, les numéros de séquence mis en mémoire cache ne sont
pas utilisés, ce qui génère des décalages.
Remarque : Si une application interdit les décalages, elle doit implémenter un générateur de
numéros personnalisé. Cette méthode risque toutefois de réduire considérablement les
performances du système. Si vous utilisez une table pour stocker une valeur, et que vous
incrémentez cette valeur et mettez à jour la table pour chaque demande, vous générez un
goulet d'étranglement au niveau du système tout entier. En effet, chaque session doit attendre
que le mécanisme soit disponible, et ce dernier ne peut traiter qu'une demande à la fois afin de
garantir qu'aucune valeur n'est en double ou manquante.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-37
Créer une séquence

Copyright © 2005, Oracle. Tous droits réservés.

Créer une séquence


Vous pouvez afficher et créer des séquences à l'aide d'Enterprise Manager, en cliquant sur le
lien Sequences sous l'en-tête Schema de la page Administration. Voici un récapitulatif des
options de création de séquence disponibles :
• Name : Nom de la séquence, utilisé pour faire référence à la séquence.
• Schema : Propriétaire de la séquence.
• Maximum Value : Indiquez la valeur maximale que la séquence peut générer. Cette
valeur entière peut comporter 28 chiffres au plus. Elle doit être supérieure aux valeurs
Minimum Value et Initial. L'option Unlimited indique une valeur maximale de 1027 pour
une séquence croissante et de –1 pour une séquence décroissante. La valeur par défaut
est Unlimited.
• Minimum Value : Indiquez la valeur minimale de la séquence. Cette valeur entière peut
comporter 28 chiffres au plus. Elle doit être inférieure ou égale à Initial, et strictement
inférieure à Maximum Value. L'option Unlimited indique une valeur minimale de 1
pour une séquence croissante et de –1026 pour une séquence décroissante. La valeur par
défaut est Unlimited.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-38
Créer une séquence (suite)
• Interval : Indiquez l'intervalle entre les numéros de séquence. Cette valeur entière
peut être un entier positif ou négatif quelconque, différent de zéro. Elle peut
comporter 28 chiffres au plus. La valeur par défaut est de un.
• Initial : Indiquez le premier numéro de séquence à générer. Une séquence croissante
générera des numéros supérieurs à cette valeur, tandis qu'une séquence décroissante
générera des numéros inférieurs.
• Cycle Values : Lorsqu'une séquence croissante atteint sa valeur maximale, elle
poursuit en générant à nouveau sa valeur minimale. Lorsqu'une séquence
décroissante atteint sa valeur minimale, elle poursuit en générant à nouveau sa
valeur maximale. Lorsque vous ne choisissez pas l'option Cycle Values, une erreur
est renvoyée si vous tentez d'obtenir un numéro alors que toutes les valeurs possibles
pour la séquence sont épuisées.
• Order Values : Cette option garantit que les numéros de séquence sont générés dans
l'ordre dans lequel ils sont demandés. Cette clause s'avère utile si vous utilisez les
numéros de séquence comme valeurs d'horodatage. Il n'est généralement pas
essentiel d'assurer l'ordre des numéros lorsqu'une séquence est utilisée pour générer
des clés primaires. Cette option n'est nécessaire que pour garantir l'ordre de
génération si vous utilisez la base de données Oracle avec Real Application Clusters.
• Cache Options : Indiquez le nombre de numéros de séquence que la base de
données Oracle préalloue et conserve en mémoire pour un accès plus rapide. Cette
valeur entière peut comporter 28 chiffres au plus. La valeur minimale de ce
paramètre est 2. Pour les séquences cycliques, cette valeur doit être inférieure au
nombre de valeurs du cycle. Vous ne pouvez pas mettre en cache plus de valeurs que
n'en comporte un cycle donné de numéros de séquence.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-39
Utiliser une séquence

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser une séquence


Pour faire référence à des valeurs de séquence dans des instructions SQL, utilisez les pseudo-
colonnes suivantes :
• CURRVAL : renvoie la valeur actuelle d'une séquence.
• NEXTVAL : incrémente la séquence et renvoie la valeur suivante.
Vous devez qualifier CURRVAL et NEXTVAL avec le nom de la séquence :
sequence.CURRVAL
sequence.NEXTVAL
La première référence à NEXTVAL renvoie la valeur initiale de la séquence. Les références
suivantes à NEXTVAL incrémentent la valeur de la séquence du nombre indiqué et renvoient
la nouvelle valeur. Une référence à CURRVAL renvoie toujours la valeur actuelle de la
séquence, qui est la valeur renvoyée par la dernière référence à NEXTVAL.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-40
Schéma
Tables temporaires Contraintes
Index
Vues
Séquences
> Tables temp.
Une table temporaire : Dict. de données

• fournit un espace de stockage des données


qui est nettoyé automatiquement à la fin
de la session ou de la transaction
• fournit un espace de stockage privé des données
pour chaque session
• peut être utilisée par toutes les sessions,
sans risque d'affecter les données privées
des autres sessions

Copyright © 2005, Oracle. Tous droits réservés.

Tables temporaires
Vous pouvez utiliser des tables temporaires lorsque vous avez besoin de stocker des données
de manière privée pour la réalisation d'une tâche, et que vous souhaitez supprimer ces
données une fois la tâche terminée, à la fin d'une transaction ou d'une session. Les tables
temporaires vous évitent d'avoir à masquer vos données pour les autres sessions et à
supprimer les données générées lorsque vous avez terminé. Les seules données d'une table
temporaire visibles par une session sont celles que la session a insérées.
Une table temporaire peut être propre à une transaction ou à une session. Dans le cas des
tables temporaires propres à une transaction, les données sont présentes pendant toute la durée
de la transaction. Pour les tables temporaires propres à une session, elles sont présentes
pendant toute la durée de la session. Dans les deux cas, les données insérées par une session
sont réservées à la session. Une session ne peut afficher et modifier que les données qui lui
sont propres. Par conséquent, aucun verrou LMD n'est appliqué aux données d'une table
temporaire. Les clauses suivantes contrôlent la durée de vie des lignes :
• ON COMMIT DELETE ROWS : Indique que la durée de vie des lignes insérées
correspond à la durée de la transaction uniquement.
• ON COMMIT PRESERVE ROWS : Indique que la durée de vie des lignes insérées
correspond à la durée de la session.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-41
Tables temporaires (suite)
L'instruction CREATE GLOBAL TEMPORARY TABLE permet de créer une table
temporaire. Vous pouvez créer des index, des vues et des déclencheurs (triggers) sur des
tables temporaires. Vous pouvez également recourir aux utilitaires d'export et d'import ou
à Data Pump pour exporter et importer la définition d'une table temporaire. Toutefois,
aucune donnée n'est exportée, même si vous utilisez l'option ROWS.
Les données des tables temporaires sont supprimées suite aux événements mentionnés
précédemment. Il est aussi possible de forcer la suppression des données à l'aide de la
commande TRUNCATE TABLE. Cette opération supprime toutes les données que vous
avez insérées. Elle s'avère plus efficace que la commande DELETE.
Vous pouvez créer des index, des vues et des déclencheurs sur les tables temporaires.
Pour créer des tables temporaires à l'aide d'Enterprise Manager, cliquez sur l'option
Temporary, dans la page Create Table: Table Organization. Cliquez sur Continue. La page
qui apparaît vous permet de préciser si la table temporaire est propre à la session ou à une
transaction. Le champ Tablespace est désactivé car une table temporaire est toujours créée
dans le tablespace temporaire de l'utilisateur. Aucun autre tablespace ne peut être indiqué.
Remarque : Le mot-clé GLOBAL suit la terminologie définie par la norme ISO
(International Organization for Standardization) pour le code SQL.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-42
Tables temporaires : Utilisation

• Utilisez la clause GLOBAL TEMPORARY pour créer


une table temporaire :
CREATE GLOBAL TEMPORARY TABLE employees_temp
ON COMMIT PRESERVE ROWS
AS SELECT * FROM employees;

• Utilisez la commande TRUNCATE TABLE pour


supprimer le contenu de la table.
• Vous pouvez créer les éléments suivants
sur une table temporaire :
– Index
– Vues
– Déclencheurs

Copyright © 2005, Oracle. Tous droits réservés.

Tables temporaires : Utilisation


L'instruction CREATE GLOBAL TEMPORARY TABLE permet de créer une table temporaire.
Vous pouvez créer des index, des vues et des déclencheurs (triggers) sur des tables
temporaires. Vous pouvez également recourir aux utilitaires d'export et d'import ou à Data
Pump pour exporter et importer la définition d'une table temporaire. Toutefois, aucune donnée
n'est exportée, même si vous utilisez l'option ROWS.
Les données des tables temporaires sont supprimées suite aux événements mentionnés
précédemment. Il est aussi possible de forcer la suppression des données à l'aide de la
commande TRUNCATE TABLE. Cette opération supprime toutes les données que vous avez
insérées. Elle s'avère plus efficace que la commande DELETE.
Remarque : Le mot-clé GLOBAL suit la terminologie définie par la norme ISO (International
Organization for Standardization) pour le code SQL.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-43
Schéma
Dictionnaire de données : Contraintes
Index
Présentation Vues
Séquences
Tables temp.
> Dict. de données
Tables
Index
Vues
Utilisateurs
Schémas
Procédures
etc.

SELECT * FROM dictionary;

Copyright © 2005, Oracle. Tous droits réservés.

Dictionnaire de données : Présentation


Le dictionnaire de données d'Oracle constitue la description d'une base de données. Il contient
le nom et les attributs de tous les objets de la base. Lors de la création ou de la modification
d'un objet, il est mis à jour afin de refléter les changements opérés. Les informations du
dictionnaire sont stockées dans les tables de base gérées par la base de données Oracle. Vous
ne lisez pas directement ces tables mais vous y accédez par le biais de vues prédéfinies.
Le dictionnaire de données :
• est utilisé par le serveur de base de données Oracle pour la recherche d'informations sur
les utilisateurs, les objets, les contraintes et le stockage,
• est mis à jour par le serveur de base de données Oracle lorsque des définitions ou des
structures d'objet sont modifiées,
• peut être utilisé par n'importe quel utilisateur pour la recherche d'informations sur la
base de données,
• appartient à l'utilisateur SYS,
• ne doit jamais être modifié directement à l'aide d'une instruction SQL.
Remarque : La vue DICTIONARY du dictionnaire de données, ou le synonyme DICT
correspondant, contient le nom et la description de tous les éléments inclus dans le
dictionnaire de données. Utilisez la vue DICT_COLUMNS pour afficher les colonnes des vues
et leur définition. Pour obtenir la définition complète de chaque vue, reportez-vous au manuel
Oracle Database Reference.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-44
Vues du dictionnaire de données

Personnes Contenu Sous- Remarques


autorisées ensemble
à interroger de
DBA_ DBA Tout N/A Peut comporter des
colonnes supplémentaires
destinées au DBA
uniquement
ALL_ Tous Tous les Vues DBA_ Inclut les objets propres
éléments que à l'utilisateur
l'utilisateur
est autorisé
à voir
USER_ Tous Tous les Vues ALL_ Généralement identique
éléments dont à ALL_, hormis la colonne
l'utilisateur OWNER manquante.
est le Certaines vues sont dotées
propriétaire de noms abrégés comme
synonymes PUBLIC.

Copyright © 2005, Oracle. Tous droits réservés.

Vues du dictionnaire de données


Chaque nom de vue a un préfixe qui indique le type et la quantité de données qu'un utilisateur
est autorisé à voir. La vue globale, identifiée par le préfixe DBA_, n'est accessible qu'aux
utilisateurs disposant de privilèges DBA. Le niveau suivant de privilège est déterminé par le
préfixe ALL_, qui représente tous les objets que l'utilisateur exécutant l'interrogation est
autorisé à voir, qu'il en soit le propriétaire ou non. Par exemple, si l'utilisateur USER_A est
autorisé à accéder à une table dont USER_B est le propriétaire, USER_A voit cette table dans
toutes les vues ALL_ concernant les noms de table. Le préfixe USER_ est associé aux vues
les plus restreintes. Ces vues affichent seulement les objets dont l'utilisateur exécutant
l'interrogation est le propriétaire, c'est-à-dire les objets présents dans le schéma de l'utilisateur.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-45
Vues du dictionnaire de données (suite)
D'une manière générale, chaque ensemble de vues est un sous-ensemble de l'ensemble
de vues nécessitant des privilèges supérieurs, au niveau des lignes et des colonnes.
Toutefois, les vues d'un ensemble donné n'ont pas toutes leur pendant dans les autres
ensembles de vues. Cela dépend de la nature des informations contenues dans la vue.
Par exemple, il existe une vue DBA_LOCK mais pas de vue ALL_LOCK. En effet, seul
un administrateur de base de données (DBA) est intéressé par les données relatives aux
verrous externes (locks). Assurez-vous de choisir l'ensemble de vues adapté à vos
besoins. Même si vous êtes autorisé à accéder aux vues DBA, vous pouvez parfois
interroger la version USER d'une vue lorsque vous souhaitez visualiser les objets dont
vous êtes le propriétaire sans inclure d'autres objets dans l'ensemble de résultats.
Les vues DBA_ peuvent être interrogées par les utilisateurs disposant du privilège
SYSDBA ou SELECT ANY DICTIONARY.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-46
Dictionnaire de données :
Exemples d’utilisation

a
SELECT table_name, tablespace_name FROM
user_tables;

SELECT sequence_name, min_value, max_value,


b increment_by FROM all_sequences WHERE
sequence_owner IN ('MDSYS','XDB');

c SELECT USERNAME, ACCOUNT_STATUS FROM


dba_users WHERE ACCOUNT_STATUS = 'OPEN';

d DESCRIBE dba_indexes;

Copyright © 2005, Oracle. Tous droits réservés.

Dictionnaire de données : Exemples d'utilisation


Les interrogations présentées dans la diapositive ci-dessus permettent de répondre
aux questions suivantes :
a. Quel est le nom des tables qui ont été créées dans votre schéma (et quel est le nom du
tablespace dans lequel elles résident) ?
b. A quelles informations importantes relatives aux séquences de la base de données avez-
vous accès ?
c Quels utilisateurs de la base de données sont autorisés actuellement à se connecter ?
d. Quelles sont les colonnes de la vue DBA_INDEXES ? Cette interrogation permet de
connaître les informations que vous pouvez consulter au sujet de tous les index de la
base de données. Voici un exemple de sortie partielle résultant de l'exécution de cette
commande :
SQL> DESCRIBE dba_indexes;
Name Null? Type
--------------- -------- -------------
OWNER NOT NULL VARCHAR2(30)
INDEX_NAME NOT NULL VARCHAR2(30)
INDEX_TYPE VARCHAR2(27)
TABLE_OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-47
Synthèse

Ce chapitre vous a permis d'apprendre à :


• définir des objets de schéma et des types
de données
• créer et modifier des tables
• définir des contraintes
• afficher les colonnes et le contenu d'une table
• créer des index
• créer des vues
• créer des séquences
• expliquer l'utilisation des tables temporaires
• utiliser le dictionnaire de données

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-48
Présentation de l'exercice :
Administrer les objets de schéma

Cet exercice porte sur les points suivants :


• créer des tables contenant plusieurs colonnes
• créer des contraintes :
– clé primaire
– clé étrangère
– contrainte CHECK
• créer des index

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 7-49
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Gérer les données et la simultanéité
d'accès aux données

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• gérer les données en utilisant le langage SQL
• identifier et administrer des objets PL/SQL
• décrire les déclencheurs et les événements
déclencheurs
• surveiller et résoudre les conflits de verrouillage

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-2
> SQL
Manipuler les données par PL/SQL
Verrous
l'intermédiaire du langage SQL . externes

SQL> INSERT INTO employees VALUES


2 (9999,'Bob','Builder','bob@abc.net',NULL,SYSDATE,
3 'IT_PROG',NULL,NULL,100,90);

1 row created.

SQL> UPDATE employees SET SALARY=6000


2 WHERE EMPLOYEE_ID = 9999;

1 row updated.

SQL> DELETE from employees


2 WHERE EMPLOYEE_ID = 9999;

1 row deleted.

Copyright © 2005, Oracle. Tous droits réservés.

Manipuler les données par l'intermédiaire du langage SQL


Les instructions LMD (Langage de manipulation de données) élémentaires permettent la
manipulation des données dans la base. Bien que ces instructions soient abordées brièvement
dans le chapitre intitulé "Déplacer des données", elles sont étudiées en détail dans le présent
chapitre.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-3
Commande INSERT

• Crée une ligne à la fois.


• Permet d'insérer plusieurs lignes à partir
d'une autre table.

Copyright © 2005, Oracle. Tous droits réservés.

Commande INSERT
L'instruction INSERT de base crée une ligne à la fois. Via l'utilisation d'une sous-
interrogation SELECT, vous pouvez faire en sorte que la commande INSERT copie des
lignes d'une table vers une autre. Cette méthode est également appelée instruction INSERT
SELECT. L'exemple de la diapositive ci-dessus utilise la commande INSERT suivante :
insert into dept_80 (select * from employees
where department_id = 80);
Dans cet exemple, la table dept_80 présente exactement la même structure que la table
employees. Si tel n'est pas le cas, vous pouvez nommer les colonnes de chaque table. Les
valeurs sélectionnées dans l'instruction SELECT sont associées respectivement aux colonnes
de la table dans laquelle elles sont insérées. La correspondance des valeurs des colonnes suit
l'ordre dans lequel les colonnes sont nommées dans les instructions INSERT et SELECT. Il
suffit que les types de données correspondent. Par exemple :
insert into just_names (first, last)
(select first_name, last_name from employees);
Dans cet exemple, la table just_names ne comporte que deux colonnes qui présentent le
même type de données que les colonnes first_name et last_name de la table
employees.
La méthode INSERT SELECT permet de charger en masse des données d'une ou de plusieurs
tables vers une autre table.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-4
Commande UPDATE

Utilisez la commande UPDATE pour modifier un nombre


quelconque de lignes d'une table.

Copyright © 2005, Oracle. Tous droits réservés.

Commande UPDATE
La commande UPDATE est utilisée pour modifier les lignes existantes d'une table. Le nombre
de lignes modifiées par la commande UPDATE dépend de la condition WHERE. Si la clause
WHERE est omise, toutes les lignes sont modifiées. Si aucune ligne ne satisfait à la condition
WHERE, aucune ligne n'est modifiée.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-5
Commande DELETE

Utilisez la commande DELETE pour supprimer


un nombre quelconque de lignes d'une table.

Copyright © 2005, Oracle. Tous droits réservés.

Commande DELETE
La commande DELETE est utilisée pour supprimer des lignes existantes d'une table. Le
nombre de lignes supprimées par la commande DELETE dépend de la condition WHERE. Si la
clause WHERE est omise, toutes les lignes sont supprimées. Si aucune ligne ne satisfait à la
condition WHERE, aucune ligne n'est supprimée. Comme le montre l'exemple de la diapositive
ci-dessus, lorsqu'aucune ligne n'est supprimée, aucune erreur n'est générée. Le message
renvoyé indique simplement qu'aucune ligne n'a été supprimée de la table.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-6
Commande MERGE

Utilisez la commande MERGE pour effectuer une


insertion (INSERT) et une mise à jour (UPDATE)
via une commande unique.

Copyright © 2005, Oracle. Tous droits réservés.

Commande MERGE
La commande MERGE réunit en une commande unique les opérations de mise à jour
(UPDATE) et d'insertion (INSERT). Elle permet de fusionner les données d'une source avec
celles d'une autre source, et éventuellement d'insérer de nouvelles lignes ou de mettre à jour
certaines colonnes d'une ligne existante.
Considérons l'exemple de la diapositive. Certaines des données de la table JOBS sont
semblables à ce qui suit :

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY


---------- -------------- ---------- ----------
AD_PRES President 20000 40000
FI_ACCOUNT Accountant 4200 9000
ST_CLERK Stock Clerk 2000 5000
IT_PROG Programmer 4000 10000

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-7
Commande MERGE (suite)
La table JOBS_ACQUISITION contient les données suivantes :

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY


---------- -------------- ---------- ----------
AD_PRES VP 20000 40000
DBA DB Admin 4200 9000
SA Sys Admin 2000 5000

La commande MERGE insère dans la table JOBS toute ligne qui comporte une nouvelle
valeur JOB_ID, et met à jour la ligne JOBS existante avec les données JOB_TITLE si
l'ID JOB_ID existe déjà. Ainsi, le poste "President" est remplacé par "VP", et les
nouveaux postes "SA" et "DBA" sont ajoutés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-8
Commandes COMMIT et ROLLBACK

Les commandes suivantes sont utilisées pour terminer


une transaction :
• COMMIT : rend la modification permanente
• ROLLBACK : annule la modification

Copyright © 2005, Oracle. Tous droits réservés.

Commandes COMMIT et ROLLBACK


Par défaut, une commande LMD exécutée n'est pas validée (commit). Divers outils
(notamment iSQL*Plus) disposent d'options pouvant être configurées pour valider chaque
commande ou un groupe de commandes.
Avant l'exécution d'une commande COMMIT ou ROLLBACK, les modifications sont en
attente. Seul l'utilisateur ayant apporté la modification est autorisé à voir les données
modifiées. Les autres utilisateurs peuvent sélectionner ces mêmes données, mais elles leur
apparaissent telles qu'elles étaient avant la modification. Les autres utilisateurs ne peuvent pas
exécuter d'opération LMD sur les données qu'un autre utilisateur a modifiées.
Par défaut, un utilisateur qui tente d'apporter une modification à la même ligne qu'un autre
utilisateur attend que le premier utilisateur valide ou annule (rollback) la modification. Cette
opération est contrôlée automatiquement par le mécanisme de verrouillage de la base de
données Oracle. Etant donné que le mécanisme de verrouillage est intégré à la ligne
proprement dite, il n'est pas possible que la base de données manque de verrous externes
(locks).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-9
Langage PL/SQL SQL
> PL/SQL
Verrous
externes

Le langage PL/SQL (Procedural Language extension


to SQL) d'Oracle est un langage de programmation
de quatrième génération. Il fournit :
• des extensions procédurales du langage SQL
• une portabilité entre plates-formes et produits
• un plus haut niveau de sécurité et de protection
de l'intégrité des données
• la prise en charge de la programmation orientée
objet

Copyright © 2005, Oracle. Tous droits réservés.

Langage PL/SQL
Le langage PL/SQL est un langage de programmation Oracle de quatrième génération, qui
fournit des extensions procédurales du langage SQL. Il offre un environnement de
programmation commun pour les bases de données et les applications Oracle, quel que soit le
système d'exploitation ou la plate-forme matérielle.
Grâce au langage PL/SQL, vous pouvez manipuler les données à l'aide d'instructions SQL et
contrôler le flux des programmes par le biais de structures procédurales telles que IF-THEN,
CASE et LOOP. Vous pouvez également déclarer des constantes et des variables, définir des
procédures et des fonctions, utiliser des ensembles et des types d'objet, ou encore intercepter les
erreurs lors de l'exécution. Un programme PL/SQL peut également appeler des programmes
écrits dans d'autres langages, tels que C, C++ et Java.
Le langage PL/SQL permet par ailleurs de protéger les données. Pour pouvoir effectuer un appel,
l'appelant n'a pas besoin de connaître les structures de données lues ou manipulées. Il n'est pas
non plus obligé de disposer de droits d'accès pour ces objets. Il lui suffit d'être autorisé à exécuter
le programme PL/SQL. Il existe également un autre mode de permission pour appeler un
programme PL/SQL : l'appelant doit être autorisé à réaliser toutes les instructions exécutées par
le programme appelé.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-10
Langage PL/SQL (suite)
Etant donné qu'il s'exécute dans la base de données, le code PL/SQL est très efficace pour
les opérations impliquant des volumes importants de données et limite le trafic réseau des
applications.
Pour plus d'informations sur les structures procédurales et les utilisations du langage
PL/SQL, reportez-vous au manuel PL/SQL User’s Guide and Reference.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-11
Administrer les objets PL/SQL

Les administrateurs de base de données doivent


pouvoir :
• identifier les objets PL/SQL qui posent problème
• recommander l'utilisation appropriée du langage
PL/SQL
• charger des objets PL/SQL dans la base
de données
• assister les développeurs
PL/SQL dans la résolution
des problèmes

Copyright © 2005, Oracle. Tous droits réservés.

Administrer les objets PL/SQL


En tant qu'administrateur de base de données (DBA), vous n'êtes généralement pas
responsable du chargement du code PL/SQL dans la base de données, ni de l'assistance aux
développeurs pour la résolution des problèmes. Vous n'êtes généralement pas non plus censé
écrire des applications en langage PL/SQL, mais vous devez être suffisamment familiarisé
avec les différents objets PL/SQL pour adresser des recommandations aux développeurs
d'applications et pour identifier les objets qui posent problème.
Database Control vous permet d'accéder aux objets PL/SQL (cliquez sur l'onglet
Administration sous Schema). Lorsque vous cliquez sur le type d'objet, vous pouvez afficher,
modifier et créer le type d'objet PL/SQL sélectionné.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-12
Objets PL/SQL

Il existe de nombreux types d'objet de base


de données PL/SQL :
• Package
• Corps du package
• Corps du type
• Procédure
• Fonction
• Déclencheur

Copyright © 2005, Oracle. Tous droits réservés.

Objets PL/SQL
• Package : Un package est un ensemble de procédures et de fonctions liées de façon
logique. Cette partie d'un package est également appelée spécification et constitue
l'interface avec les applications. Elle déclare les types, variables, constantes, exceptions,
curseurs et sous-programmes pouvant être utilisés.
• Corps du package : Le corps définit de manière complète les curseurs et les sous-
programmes, implémentant ainsi la spécification. Il contient les détails de
l'implémentation et les déclarations privées, lesquels sont masqués pour l'appelant.
• Corps du type : Il s'agit de l'ensemble de méthodes (procédures et fonctions) associées
à des types de données définis par l'utilisateur. Pour plus d'informations sur les types de
données définis par l'utilisateur, reportez-vous au manuel Oracle Database Application
Developer’s Guide—Object Relational Features.
• Procédure : Une procédure est un bloc PL/SQL qui effectue une opération spécifique.
• Fonction : Une fonction est un bloc PL/SQL qui renvoie une valeur unique à l'aide de la
commande PL/SQL RETURN. Il s'agit d'une procédure qui comporte une valeur
renvoyée.
• Déclencheur : Un déclencheur (trigger) est un bloc PL/SQL exécuté lorsqu'un
événement particulier se produit dans la base de données. Ces événements peuvent être
basés sur une table, par exemple lorsqu'une ligne est insérée dans la table. Il peut
également s'agir d'événements de base de données (lorsqu'un utilisateur se connecte à la
base de données, par exemple).
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-13
Fonctions

Copyright © 2005, Oracle. Tous droits réservés.

Fonctions
Les fonctions PL/SQL sont généralement utilisées pour calculer une valeur. Il existe de
nombreuses fonctions intégrées, telles que SYSDATE, SUM, AVG et TO_DATE. Les
développeurs créent également leurs propres fonctions lors de l'écriture d'applications. Le
code d'une fonction PL/SQL doit contenir une instruction RETURN. Pour créer des fonctions
PL/SQL, vous devez entrer un nom, un schéma et un code source, comme l'indique la
diapositive ci-dessus.
La fonction compute_tax présentée dans la diapositive est créée à l'aide de la commande
SQL suivante :
CREATE OR REPLACE FUNCTION compute_tax (salary NUMBER)
RETURN NUMBER
AS
BEGIN
IF salary<5000 THEN
RETURN salary*.15;
ELSE
RETURN salary*.33;
END IF;
END;
/

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-14
Procédures

Les procédures sont utilisées pour effectuer une


action spécifique. Elles présentent les caractéristiques
suivantes :
• Elles transmettent et reçoivent des valeurs par
l'intermédiaire d'une liste d'arguments.
• Elles sont appelées à l'aide de la commande CALL.

Copyright © 2005, Oracle. Tous droits réservés.

Procédures
Les procédures PL/SQL effectuent une action spécifique. A l'instar des fonctions, les
procédures peuvent accepter des valeurs en entrée et exécuter des instructions conditionnelles
telles que IF-THEN, CASE et LOOP.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-15
Packages

Les packages sont des ensembles de fonctions


et de procédures. Chaque package doit être constitué
de deux objets :
• La spécification du package
• Le corps du package

Spécification du package

Copyright © 2005, Oracle. Tous droits réservés.

Packages
Les packages sont des regroupements de fonctions et de procédures. Le regroupement de
fonctions et de procédures dans un même package présente des avantages en termes de
performances et de maintenance. Chaque package doit être constitué de deux objets de base
de données compilés séparément :
• Spécification du package : Cet objet (parfois appelé en-tête du package) est de type
PACKAGE et contient uniquement la définition des procédures, des fonctions et des
variables du package.
• Corps du package : Cet objet est de type PACKAGE BODY et contient le code
proprement dit des sous-programmes définis dans la spécification du package.
Les procédures et fonctions appelées à partir d'un package sont appelées par l'intermédiaire
d'une notation à points :
nom_package.nom_procédure ou nom_function
Pour le package présenté dans la diapositive ci-dessus, les sous-programmes peuvent être
appelés de la manière suivante :
SQL> SELECT money.compute_tax(salary) FROM hr.employees
WHERE employee_id=107;
SQL> EXECUTE money.give_raise_to_all;

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-16
Spécification et corps d'un package

Copyright © 2005, Oracle. Tous droits réservés.

Corps du package
Le corps du package présente les caractéristiques suivantes :
• Il est distinct de la spécification du package. Par conséquent, le code du corps peut être
modifié et recompilé sans que les autres objets qui dépendent de la spécification soient
marqués comme non valides.
• Il contient le code des sous-programmes définis dans la spécification du package. C'est à
ce stade qu'a lieu le travail. La spécification indique comment appeler les sous-
programmes dans le package. Le corps constitue la section de code.
• Il ne peut pas être compilé tant que la spécification du package n'a pas été compilée.
Vous pouvez créer une spécification sans corps, mais vous ne pouvez pas créer un corps
sans spécification.
• Il peut être encapsulé afin de masquer les détails du code. Wrap est un programme
autonome qui crypte le code source PL/SQL afin que vous puissiez fournir des
applications PL/SQL sans exposer le code source. Pour plus d'informations sur
l'utilisation de wrap, reportez-vous au manuel PL/SQL User’s Guide and Reference.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-17
Packages intégrés

• La base de données Oracle est fournie avec plus


de 350 packages PL/SQL intégrés, qui offrent :
– des utilitaires d'administration et de maintenance
– des fonctionnalités étendues
• Utilisez la commande DESCRIBE pour afficher
les sous-programmes.

Copyright © 2005, Oracle. Tous droits réservés.

Packages intégrés
Les packages PL/SQL intégrés fournis avec la base Oracle permettent l'accès à des fonctionnalités
de base de données étendues, telles que Advanced Queuing, les fonctions de cryptage et les
entrées/sorties (E/S) de fichiers. Ils comprennent également de nombreux utilitaires
d'administration et de maintenance.
Les packages utilisés par un administrateur dépendent du type d'application que la base de données
exécute. Voici quelques-uns des packages d'administration et de maintenance les plus courants :
• DBMS_STATS : Collecte, affichage et modification des statistiques destinées à l'optimiseur.
• DBMS_OUTPUT : Génération d'une sortie à partir d'un programme PL/SQL.
• DBMS_SESSION : Accès PL/SQL aux instructions ALTER SESSION et SET ROLE.
• DBMS_RANDOM : Génération de nombres aléatoires.
• DBMS_UTILITY : Obtention d'informations relatives à l'heure, au temps CPU et à la version.
Calcul d'une valeur de hachage (hash value) et réalisation de nombreuses autres
fonctionnalités.
• DBMS_SCHEDULER : Fonctions et procédures de planification pouvant être appelées à partir
de n'importe quel programme PL/SQL.
• DBMS_CRYPTO : Cryptage et décryptage des données de la base.
• UTL_FILE : Opérations de lecture et d'écriture dans les fichiers du système d'exploitation à
partir d'un programme PL/SQL.
Remarque : Pour plus d'informations sur ces packages intégrés ou sur d'autres packages, reportez-
vous au manuel PL/SQL Packages and Types Reference.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-18
Déclencheurs

Copyright © 2005, Oracle. Tous droits réservés.

Déclencheurs
Les déclencheurs (triggers) sont des objets de code PL/SQL stockés dans la base de données,
qui s'exécutent automatiquement lorsqu'un événement se produit. La base de données Oracle
permet d'utiliser de nombreuses actions comme événement déclencheur, par exemple
l'insertion dans une table, la connexion d'un utilisateur à la base, ou bien encore la tentative de
suppression d'une table ou de modification des paramètres d'audit.
Les déclencheurs peuvent appeler d'autres procédures ou fonctions. Il est préférable que le
code d'un déclencheur soit très court. Placez dans un package distinct tout élément qui
nécessite davantage de code.
Les administrateurs de base de données utilisent des déclencheurs pour faciliter l'audit basé
sur les données (ce qui sera étudié dans le chapitre "Implémenter la sécurité de la base de
données Oracle"), pour appliquer des contraintes complexes et pour automatiser de
nombreuses tâches. Par exemple, le déclencheur SECURE_EMPLOYEES illustré dans la
diapositive ci-dessus enregistre toutes les instructions LMD exécutées sur une table.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-19
Evénements déclencheurs

Type Exemples d'événements


d'événement
LMD INSERT, UPDATE, DELETE
LDD CREATE, DROP, ALTER, GRANT, REVOKE,
RENAME
Base de LOGON, LOGOFF, STARTUP, SHUTDOWN,
données SERVERERROR

Copyright © 2005, Oracle. Tous droits réservés.

Evénements déclencheurs
De nombreux événements peuvent servir de déclencheur (trigger). Ils sont répartis en trois
catégories.
• Les déclencheurs de type événement LMD s'exécutent lorsque les instructions modifient
des données.
• Les déclencheurs de type événement LDD s'exécutent lorsque les instructions créent un
objet ou modifient un objet de quelque manière que ce soit.
• Les déclencheurs de type événement de base de données s'exécutent lorsque certaines
actions se produisent dans la base de données.
Pour la plupart des déclencheurs, vous pouvez indiquer si l'exécution doit avoir lieu avant ou
après l'événement. Un déclencheur LMD peut être conçu de manière à s'exécuter une seule
fois pour l'instruction, ou pour chaque ligne modifiée.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-20
Verrous externes SQL
PL/SQL
> Verrous
externes
• Les verrous externes empêchent plusieurs
sessions de modifier les mêmes données
en même temps.
• Ils sont obtenus automatiquement au niveau
le plus bas possible pour une instruction donnée.
• Ils n'y a pas d'escalade des verrous.

Transaction 1 Transaction 2

SQL> UPDATE employees SQL> UPDATE employees


2 SET salary=salary+100 2 SET salary=salary*1.1
3 WHERE employee_id=100; 3 WHERE employee_id=100;

Copyright © 2005, Oracle. Tous droits réservés.

Verrous externes
Avant que la base de données n'autorise une session à modifier des données, la session doit
d'abord verrouiller ces données. Un verrou externe (lock) accorde à la session le contrôle
exclusif des données, de sorte qu'aucune autre transaction ne puisse modifier les données
verrouillées jusqu'à la libération du verrou.
Les transactions peuvent verrouiller certaines lignes de données, plusieurs lignes ou même
des tables entières. Oracle Database 10g prend en charge le verrouillage manuel et le
verrouillage automatique. Les verrous obtenus automatiquement choisissent toujours le
niveau de verrouillage le plus bas possible, afin de limiter les conflits potentiels avec d'autres
transactions.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-21
Mécanisme de verrouillage
• Haut niveau de simultanéité des données :
– Verrous au niveau ligne pour les insertions,
les mises à jour et les suppressions
– Aucun verrou externe nécessaire pour
les interrogations
• Gestion automatique des files d'attente
• Verrous détenus jusqu'à la fin de la transaction
(avec l'opération COMMIT ou ROLLBACK)

Transaction 1 Transaction 2

SQL> UPDATE employees SQL> UPDATE employees


2 SET salary=salary+100 2 SET salary=salary*1.1
3 WHERE employee_id=100; 3 WHERE employee_id=101;

Copyright © 2005, Oracle. Tous droits réservés.

Mécanisme de verrouillage
Le mécanisme de verrouillage est conçu pour fournir le degré maximal de simultanéité
d'accès aux données dans la base. Les transactions qui modifient des données acquièrent des
verrous externes (locks) au niveau ligne plutôt qu'au niveau bloc ou table. Les modifications
apportées aux objets (telles que les déplacements de tables) obtiennent des verrous externes
au niveau objet, plutôt qu'au niveau de la base de données complète ou du schéma.
Les interrogations de données ne nécessitent pas de verrous externes et une interrogation
réussit même si quelqu'un a verrouillé les données (en effet, c'est toujours la valeur originale
avant verrouillage qui est affichée, reconstruite à partir des informations d'annulation).
Lorsque plusieurs transactions doivent verrouiller la même ressource, la première transaction
qui demande le verrou externe l'obtient. Les autres transactions attendent jusqu'à la fin de la
première transaction. Le mécanisme de mise en file d'attente est automatique et ne nécessite
aucune intervention de l'administrateur.
Tous les verrous externes sont libérés à la fin d'une transaction. Les transactions sont
terminées lorsqu'une opération de validation (COMMIT) ou d'annulation (ROLLBACK) est
exécutée. En cas d'échec d'une transaction, le processus en arrière-plan qui annule
automatiquement les modifications apportées par la transaction libère également tous les
verrous détenus par cette transaction.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-22
Simultanéité d'accès aux données

Heure : Transaction 1 UPDATE hr.employees


SET salary=salary+100
WHERE employee_id=100;
Transaction 2 UPDATE hr.employees
SET salary=salary+100
WHERE employee_id=101;
09:00:00 Transaction 3 UPDATE hr.employees
SET salary=salary+100
WHERE employee_id=102;
... ...
Transaction x UPDATE hr.employees
SET salary=salary+100
WHERE employee_id=xxx;

Copyright © 2005, Oracle. Tous droits réservés.

Simultanéité d'accès aux données


Le mode de verrouillage par défaut est un verrouillage détaillé au niveau ligne. Différentes
transactions peuvent mettre à jour différentes lignes de la même table sans interférer les unes
avec les autres.
Le modèle par défaut est le verrouillage au niveau ligne, mais la base de données Oracle
prend également en charge le verrouillage manuel à des niveaux supérieurs, si nécessaire :
SQL> LOCK TABLE employees IN EXCLUSIVE MODE;
Table(s) Locked.
Avec l'instruction ci-dessus, toute autre transaction qui tente de mettre à jour une ligne dans la
table verrouillée doit attendre que la transaction ayant généré la demande de verrouillage soit
terminée. EXCLUSIVE est le mode de verrouillage le plus strict. Vous disposez également
des modes de verrouillage suivants :
• ROW SHARE : Permet des accès simultanés à la table verrouillée, mais empêche les
sessions de verrouiller l'ensemble de la table pour un accès exclusif.
• ROW EXCLUSIVE : Identique au mode ROW SHARE, mais empêche également le
verrouillage en mode partagé (SHARE). Les verrous externes ROW EXCLUSIVE sont
obtenus automatiquement lors de la mise à jour, de l'insertion ou de la suppression de
données.
• SHARE : Permet les interrogations simultanées, mais empêche les mises à jour de la
table verrouillée. Un verrou SHARE est nécessaire (et automatiquement demandé) pour
la création d'un index sur une table.
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-23
Simultanéité d'accès aux données (suite)
• SHARE ROW EXCLUSIVE : Utilisé pour l'interrogation d'une table entière et pour
autoriser d'autres utilisateurs à interroger des lignes de la table, mais empêche les
autres utilisateurs de verrouiller la table en mode SHARE ou de mettre à jour des
lignes.
• EXCLUSIVE : Autorise les interrogations sur la table verrouillée, mais empêche
toute autre activité sur cette table. Un verrou externe EXCLUSIVE est nécessaire
pour supprimer une table.
Comme pour n'importe quelle demande de verrou externe, les instructions de verrouillage
manuel attendent que toutes les sessions détenant déjà des verrous (ou ayant
précédemment demandé des verrous) aient libéré ces verrous. La commande LOCK
accepte un argument spécial qui contrôle le comportement d'attente, à savoir NOWAIT.
L'argument NOWAIT vous redonne immédiatement le contrôle si la table désignée est déjà
verrouillée par une autre session.
SQL> LOCK TABLE hr.employees IN SHARE MODE NOWAIT;
LOCK TABLE hr.employees IN SHARE MODE NOWAIT
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT
specified
Il est généralement inutile de verrouiller manuellement des objets. Le mécanisme de
verrouillage automatique fournit la simultanéité d'accès aux données nécessaire pour la
plupart des applications.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-24
Verrous LMD

Transaction 1 Transaction 2
SQL> UPDATE employees SQL> UPDATE employees
2 SET salary=salary*1.1 2 SET salary=salary*1.1
3 WHERE employee_id= 107; 3 WHERE employee_id= 106;
1 row updated. 1 row updated.

Chaque transaction LMD doit acquérir deux verrous :


• Un verrou sur ligne de type EXCLUSIVE pour
les lignes mises à jour
• Un verrou sur table de type ROW EXCLUSIVE
pour la table contenant les lignes

Copyright © 2005, Oracle. Tous droits réservés.

Verrous LMD
Chaque transaction LMD acquiert deux verrous :
• Un verrou sur ligne de type EXCLUSIVE pour les lignes mises à jour.
• Un verrou sur table de type ROW EXCLUSIVE pour la table mise à jour. Ce verrou
permet d'empêcher une autre session de verrouiller la table entière (par exemple pour la
supprimer ou la vider) pendant que la modification est apportée.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-25
Mécanisme de mise en file d'attente

Le mécanisme de mise en file d'attente effectue le suivi :


• des sessions en attente de verrous externes
• du mode de verrouillage demandé
• de l'ordre dans lequel les sessions ont demandé
le verrou

Copyright © 2005, Oracle. Tous droits réservés.

Mécanisme de mise en file d'attente


Les demandes de verrous externes (locks) sont automatiquement mises en file d'attente. Dès
que la transaction détenant un verrou est terminée, la session suivante de la file reçoit le
verrou.
Le mécanisme de mise en file d'attente effectue le suivi de l'ordre dans lequel les verrous sont
demandés, ainsi que le suivi du mode de verrouillage demandé.
Les sessions qui détiennent déjà un verrou peuvent demander la conversion de ce verrou sans
avoir à accéder à la fin de la file d'attente. Par exemple, supposons qu'une session détienne un
verrou sur table de type SHARE. La session peut demander la conversion de ce verrou en un
verrou de type EXCLUSIVE. Dès lors que personne d'autre ne détient de verrou de type
EXCLUSIVE ou SHARE sur la table, un verrou de type EXCLUSIVE est accordé à la session
qui détient le verrou de type SHARE sans que celle-ci ait à patienter de nouveau dans la file
d'attente.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-26
Conflits de verrouillage
Transaction 1 Heure Transaction 2
UPDATE employees SET 9:00:00 UPDATE employees SET
salary=salary+100 WHERE salary=salary+100 WHERE
employee_id=100; employee_id=101;
1 row updated. 1 row updated.
UPDATE employees SET 9:00:05 SELECT sum(salary) FROM
COMMISION_PCT=2 WHERE employees;
employee_id=101; SUM(SALARY)
La session patiente en file -----------
d'attente en raison d'un conflit 692634
de verrouillage.
La session est toujours en Nombreuses opérations de
attente. 16:30:00 sélection, d'insertion, de mise à
jour et de suppression au cours
des dernières 7,5 heures, mais
pas de validation ni d'annulation.
1 row updated. 16:30:01 commit;
La session se poursuit.

Copyright © 2005, Oracle. Tous droits réservés.

Conflits de verrouillage
Les conflits de verrouillage sont fréquents, mais ils sont généralement résolus avec le temps
ou via le mécanisme de mise en file d'attente. Dans de rares cas, un conflit de verrouillage
peut nécessiter l'intervention de l'administrateur. Dans l'exemple de la diapositive ci-dessus, la
transaction 2 obtient un verrou externe (lock)sur une ligne unique à 9:00:00 et l'utilisateur
oublie de valider (commit) la transaction, laissant ainsi le verrou en place. A 9:00:05, la
transaction 1 tente de mettre à jour la table entière, opération qui nécessite un verrou sur
toutes les lignes. La transaction 1 est bloquée par la transaction 2 jusqu'à la validation de cette
dernière, à 16:30:01.
L'utilisateur qui tente d'effectuer la transaction 1 est amené à demander l'aide de
l'administrateur, qui doit détecter et résoudre le conflit.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-27
Causes possibles des conflits
de verrouillage

• Modifications non validées


• Transactions longues
• Niveaux de verrouillage inutilement élevés

Copyright © 2005, Oracle. Tous droits réservés.

Causes possibles des conflits de verrouillage


Le plus souvent, les conflits de verrouillage sont dus à une modification non validée, mais il
existe d'autres causes possibles :
• Transactions longues : De nombreuses applications utilisent le traitement batch pour
effectuer des mises à jour en masse. Ces traitements batch sont généralement planifiés
pendant les périodes de faible activité (ou d'absence d'activité) des utilisateurs, mais il
peut arriver qu'ils ne soient pas terminés ou que leur exécution soit trop longue pour
tenir dans la période de faible activité. Les conflits de verrouillage se produisent
fréquemment lorsque le traitement des transactions et le traitement batch sont effectués
simultanément.
• Niveaux de verrouillage inutilement élevés : Les bases de données n'admettent pas
toutes le verrouillage au niveau ligne (Oracle a inclus la prise en charge des verrous au
niveau ligne en 1988, dans la version 6). Certaines bases de données nécessitent donc
toujours un verrouillage au niveau page ou au niveau table. Les développeurs qui
écrivent des applications devant s'exécuter sur de nombreuses bases de données
différentes appliquent souvent des niveaux de verrouillage très élevés, de sorte que la
base de données Oracle se comporte de la même façon que les systèmes de base de
données les moins performants. En outre, les développeurs qui débutent sur Oracle
écrivent parfois du code avec des niveaux de verrouillage plus élevés que nécessaires
pour la base de données Oracle.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-28
Détecter les conflits de verrouillage

Sélectionnez Blocking Sessions dans la page


Performance.

Cliquez sur le lien Session ID afin d'afficher


des informations sur la session qui a provoqué
le verrouillage, y compris l'instruction SQL concernée.

Copyright © 2005, Oracle. Tous droits réservés.

Détecter les conflits de verrouillage


Utilisez la page Blocking Sessions d'Enterprise Manager pour localiser les conflits de
verrouillage. Les demandes de verrous externes (locks) qui provoquent des conflits sont
indiquées de façon hiérarchique. La session détenant le verrou figure en haut. Elle est suivie
des sessions en attente de verrou.
Pour chaque session impliquée dans le conflit, le nom utilisateur, l'ID de session et la durée
d'attente de la session (en secondes) sont indiqués. Procédez à une hiérarchisation
descendante sur l'ID de session afin de voir les instructions SQL actuellement exécutées ou
demandées par la session.
Par ailleurs, le moniteur ADDM (Automatic Database Diagnostic Monitor) détecte
automatiquement les conflits de verrouillage et peut vous informer des verrouillages
inefficaces.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-29
Résoudre les conflits de verrouillage

Pour résoudre un conflit de verrouillage :


• Provoquez la validation ou l'annulation de la
transaction par la session détenant le verrou.
• En dernier recours, mettez fin à la session
détenant le verrou.

Copyright © 2005, Oracle. Tous droits réservés.

Résoudre les conflits de verrouillage


La résolution d'un conflit de verrouillage passe par la libération du verrou détenu par la
session. Le meilleur moyen d'y parvenir consiste à contacter l'utilisateur et à lui demander de
mettre fin à la transaction.
En cas d'urgence, l'administrateur peut mettre fin à la session détenant le verrou en cliquant
sur le bouton Kill Session. N'oubliez pas que lorsqu'une session est fermée, tout le travail de
la transaction en cours est perdu (la transaction est annulée (roll back)). Un utilisateur dont la
session est fermée doit se reconnecter et effectuer de nouveau tout le travail réalisé depuis la
dernière validation (commit) de la session.
Les utilisateurs dont les sessions ont été fermées reçoivent l'erreur suivante lors de leur
tentative suivante d'exécution d'une instruction SQL :
ORA-03135: connection lost contact

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-30
Résoudre les conflits de verrouillage
à l'aide d'instructions SQL

Les instructions SQL peuvent permettre de déterminer


la session bloquante et de la fermer.

SQL> select sid, serial#, username


1 from v$session where sid in
(select blocking_session from v$session)

Résultat :

2 SQL> alter system kill session '144,8982' immediate;

Copyright © 2005, Oracle. Tous droits réservés.

Résoudre les conflits de verrouillage à l'aide d'instructions SQL


Les manipulations de session, comme la plupart des tâches réalisées dans Enterprise Manager,
peuvent s'effectuer par le biais d'instructions SQL. La table v$session contient des détails
sur toutes les sessions connectées. blocking_session est l'ID de la session bloquante.
Par conséquent, si vous exécutez une interrogation afin d'obtenir les valeurs SID et
SERIAL#, où SID correspond à un ID de session bloquante, vous disposerez des
informations nécessaires pour réaliser l'opération kill session.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-31
"Verrous mortels"

Transaction 1 Transaction 2

UPDATE employees UPDATE employees


SET salary = salary x 1.1 9:00 SET manager = 1342
WHERE employee_id = 1000; WHERE employee_id = 2000;
UPDATE employees UPDATE employees
SET salary = salary x 1.1 9:15 SET manager = 1342
WHERE employee_id = 2000; WHERE employee_id = 1000;
ORA-00060:
Deadlock detected while 9:16
waiting for resource

Copyright © 2005, Oracle. Tous droits réservés.

"Verrous mortels"
Un "verrou mortel" (deadlock) est un type particulier de conflit de verrouillage. Un "verrou
mortel" apparaît lorsque plusieurs sessions attendent des données verrouillées par l'une d'elles.
Etant donné que chacune attend l'autre, aucune d'entre elles ne peut terminer la transaction
afin de résoudre le conflit.
La base de données Oracle détecte automatiquement les "verrous mortels" et met fin à
l'instruction en générant une erreur. En réponse à cette erreur, il convient de réaliser une
opération de validation (commit) ou d'annulation (rollback), ce qui a pour effet de libérer
touts les verrous de la session et de permettre à l'autre session de poursuivre sa transaction.
Dans la Transaction 1 de l'exemple de la diapositive, l'utilisateur doit effectuer une validation
ou une annulation en réponse à l'erreur "deadlock detected". S'il procède à une validation, il
doit soumettre à nouveau la deuxième mise à jour pour terminer sa transaction. S'il effectue
une annulation, il doit soumettre à nouveau les deux instructions pour réaliser la transaction.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-32
Synthèse

Ce chapitre vous a permis d'apprendre à :


• gérer les données en utilisant le langage SQL
• identifier et administrer des objets PL/SQL
• décrire les déclencheurs et les événements
déclencheurs
• surveiller et résoudre les conflits de verrouillage

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-33
Présentation de l'exercice :
Gérer les données et la simultanéité
d'accès aux données

Cet exercice porte sur les points suivants :


• identifier les conflits de verrouillage
• résoudre les conflits de verrouillage

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 8-34
Gérer les données d'annulation

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Objectifs

A la fin de ce chapitre, vous pourrez :


• décrire les instructions LMD et les données
d'annulation
• surveiller et administrer les données d'annulation
• décrire les différences entre les données
d'annulation et les données de journalisation
• configurer la période de conservation
des informations d'annulation
• garantir la conservation des informations
d'annulation
• utiliser la fonction de conseil Undo Advisor

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-2
Manipulation des données

• Le langage de manipulation de données (LMD)


est composé des instructions SQL suivantes :
– INSERT
– UPDATE
– DELETE
– MERGE
• Une instruction LMD s'exécute toujours au sein
d'une transaction, qui peut être :
– annulée à l'aide de la commande ROLLBACK
– validée à l'aide de la commande COMMIT

Copyright © 2005, Oracle. Tous droits réservés.

Manipulation des données


Les données sont manipulées ou modifiées à l'aide des instructions constituant la classe LMD
: INSERT, UPDATE, DELETE et MERGE. Ces instructions s'exécutent dans le cadre d'une
transaction, qui commence par la première instruction LMD réussie et se termine par une
commande COMMIT ou ROLLBACK. Une transaction est soit entièrement validée (commit)
soit entièrement annulée (rollback).
Une opération d'annulation peut également se produire en cas d'échec système ou d'échec de
processus.
Remarque : La commande MERGE effectue une combinaison d'insertions et de mises à jour
afin de fusionner les données d'une table dans une autre table. Elle est traitée dans le chapitre
intitulé "Gérer les données et la simultanéité d'accès aux données".

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-3
Données d'annulation
Les données d'annulation (undo) :
• sont une copie des données d'origine avant une
modification
• sont capturées pour toute transaction qui modifie
des données
• sont conservées au minimum jusqu'à la fin
de la transaction
• permettent :
– les opérations d'annulation (rollback)
– les interrogations cohérentes en lecture
et les interrogations flashback
– la récupération suite à l'échec
de transactions
Utilisateur

Copyright © 2005, Oracle. Tous droits réservés.

Données d'annulation
La base de données Oracle enregistre les anciennes valeurs (données d'annulation) lorsqu'un
processus modifie des données. Ces données sont stockées telles qu'elles étaient avant la
modification. La capture des données d'annulation permet d'annuler (rollback) les données qui
ne sont pas validées (commit). Les données d'annulation permettent également la prise en
charge des interrogations cohérentes en lecture et des interrogations flashback.
Les interrogations cohérentes en lecture fournissent des résultats qui sont conformes aux
données telles qu'elles apparaissaient au début de l'interrogation. Pour qu'une interrogation
cohérente en lecture réussisse, les informations d'origine doivent être présentes sous forme
d'informations d'annulation. Tant que ces informations sont conservées, la base de données
Oracle peut recréer les données afin de satisfaire aux interrogations cohérentes en lecture.
Les interrogations flashback sont des interrogations qui demandent, dans un but précis, une
version des données telles qu'elles apparaissaient à un instant passé. Tant que les informations
d'annulation correspondant à cet instant sont conservées, les interrogations flashback peuvent
être exécutées.
Les données d'annulation sont également utilisées pour la récupération suite à l'échec de
transactions. Une transaction échoue lorsqu'une session utilisateur se termine de façon
anormale (suite à des erreurs réseau ou à la défaillance de l'ordinateur client, par exemple),
avant que l'utilisateur ait décidé de valider (commit) ou d'annuler (rollback) la transaction.
Les transactions peuvent également échouer suite à une défaillance de l'instance.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-4
Données d'annulation (suite)
En cas d'échec d'une transaction, le comportement le plus sûr est adopté. La base de
données Oracle supprime toutes les modifications effectuées par un utilisateur et restaure
les données d'origine.
Des informations d'annulation sont conservées pour chaque transaction, au moins jusqu'à
la fin de la transaction, qui se produit de l'une des manières suivantes :
• L'utilisateur annule la transaction.
• L'utilisateur termine la transaction (validation).
• La session utilisateur se termine de façon anormale (annulation).
• La session utilisateur se termine de façon normale et l'utilisateur quitte la session
(validation).
La quantité de données d'annulation conservées et leur durée de conservation dépendent
du degré d'activité et de la configuration de la base.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-5
Transactions et données d'annulation
Ancienne
valeur

Table

Segment Nouvelle
d'annulation valeur

• Chaque transaction est


affectée à un seul segment
d'annulation.
• Un segment d'annulation peut
traiter plusieurs transactions
simultanément.
Transaction
de mise à jour

Copyright © 2005, Oracle. Tous droits réservés.

Transactions et données d'annulation


Lorsqu'une transaction commence, elle est affectée à un segment d'annulation. Pendant la
durée de vie de la transaction, lorsque des données sont modifiées, les valeurs d'origine (avant
modification) sont copiées dans le segment d'annulation. Vous pouvez déterminer quelles
transactions sont affectées à quels segments d'annulation en examinant la vue dynamique des
performances v$transaction.
Les segments d'annulation sont des segments spécialisés créés automatiquement par l'instance
pour la prise en charge des transactions. Comme n'importe quel segment, les segments
d'annulation sont constitués d'extents (ensembles de blocs contigus), eux-mêmes constitués de
blocs de données. La taille des segments d'annulation augmente et diminue automatiquement.
Les segments d'annulation jouent ainsi le rôle de mémoire tampon (buffer) de stockage
circulaire pour les transactions qui leur sont affectées.
Les transactions insèrent les extents dans les segments d'annulation jusqu'à la fin de la
transaction ou jusqu'à ce que tout l'espace soit consommé. Si un extent est rempli et que
davantage d'espace est nécessaire, la transaction utilise l'espace de l'extent suivant du
segment. Une fois tous les extents consommés, la transaction revient au premier extent ou
demande à ce qu'un nouvel extent soit alloué au segment d'annulation.
Remarque : Les opérations LMD en parallèle peuvent forcer une transaction à utiliser
plusieurs segments d'annulation. Pour plus d'informations sur l'exécution d'instructions LMD
en parallèle, reportez-vous au manuel Oracle Database Administrator’s Guide 10g.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-6
Stockage des informations d'annulation

Les informations d'annulation sont stockées dans


des segments d'annulation, lesquels sont à leur tour
stockés dans un tablespace d'annulation.
Les tablespaces d'annulation :
• sont utilisés uniquement pour les segments
d'annulation
• présentent des exigences particulières en termes
de récupération
• sont associés à une instance unique
• nécessitent qu'un seul tablespace
d'annulation soit accessible en écriture
pour une instance donnée à un instant précis

Copyright © 2005, Oracle. Tous droits réservés.

Stockage des informations d'annulation


Les segments d'annulation ne peuvent exister que dans une forme particulière de tablespace,
appelée tablespace d'annulation. Une base de données peut comporter plusieurs tablespaces
d'annulation mais, à un instant donné, un seul d'entre eux peut être désigné comme le
tablespace en cours dans lequel les données d'annulation sont écrites.
Les segments d'annulation appartiennent toujours à l'utilisateur SYS. Etant donné que les
segments jouent le rôle de mémoire tampon (buffer) réutilisable, chaque segment comprend
un minimum de deux extents (ensembles de blocs contigus). Le nombre maximal d'extents par
défaut dépend de la taille des blocs de base de données, mais il est très élevé
(32 765 pour une taille de bloc de 8 ko).
Les tablespaces d'annulation sont des tablespaces permanents gérés localement, avec
allocation automatique d'extents. Ils sont gérés comme n'importe quel autre tablespace, sauf
en ce qui concerne la récupération. En effet, étant donné que les données d'annulation sont
nécessaires pour la récupération suite à l'échec d'une transaction (par exemple en cas de
défaillance d'une instance), les tablespaces d'annulation ne peuvent être récupérés que lorsque
l'instance est en mode MOUNT. Pour consulter les remarques relatives à la récupération des
tablespaces d'annulation, reportez-vous au chapitre intitulé "Procéder à une récupération de la
base de données".

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-7
Données d'annulation et données
de journalisation
Données Données de
d'annulation journalisation
Enregistrement de Mode d'annulation d'une Mode de reproduction
modification d'une modification
Utilisation pour Annulation (rollback), Réimplémentation
cohérence en lecture des modifications de
la base de données
Stockage dans Segments d'annulation Fichiers de
journalisation
Protection contre Lectures incohérentes Pertes de données
dans les systèmes
multi-utilisateurs

Copyright © 2005, Oracle. Tous droits réservés.

Données d'annulation et données de journalisation


Les données d'annulation (undo) et les données de journalisation (redo) sont semblables à
première vue, mais elles remplissent des fonctions différentes. Les données d'annulation
permettent, si nécessaire, d'annuler une modification. C'est ce qui se produit pour les
opérations de cohérence en lecture et d'annulation (rollback). Les données de journalisation
permettent, quant à elles, d'appliquer à nouveau les modifications qui ont été perdues pour
une raison quelconque.
Le processus de validation (commit) impose de vérifier que les modifications apportées dans
la transaction ont été écrites dans le fichier de journalisation (fichier redo log). Ce fichier
constitue un emplacement de stockage persistant sur le disque (contrairement à la mémoire).
En outre, il est généralement multiplexé. Il existe donc plusieurs copies des données de
journalisation sur le disque. Même si les modifications n'ont pas encore été écrites dans les
fichiers de données contenant les blocs de la table, il est suffisant de garantir que les
modifications ont été écrites dans le fichier de journalisation.
Si une coupure de courant se produit juste avant que les modifications validées n'aient été
répercutées dans les fichiers de données, cela ne pose aucun problème puisque la transaction a
été validée (commit). Par conséquent, lorsque le système redémarre, il peut réimplémenter les
enregistrements de journalisation qui n'ont pas été consignés dans les fichiers de données au
moment de la coupure.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-8
Surveiller les informations d'annulation

La gestion des informations d'annulation est


généralement limitée. Les domaines à surveiller
sont les suivants :
• espace libre dans un tablespace d'annulation
• erreurs "Snapshot too old"

DBA

Copyright © 2005, Oracle. Tous droits réservés.

Surveiller les informations d'annulation


Pour l'essentiel, les informations d'annulation sont gérées automatiquement par l'instance.
L'intervention de l'administrateur de base de données (DBA) n'est que rarement nécessaire.
Voici quelques-uns des événements pouvant nécessiter l'intervention de l'administrateur :
• Espace insuffisant pour les informations d'annulation
• Messages d'erreur ORA-01555 snapshot too old envoyés aux utilisateurs
Les informations d'annulation sont systématiquement conservées jusqu'à la fin d'une
transaction. Si des quantités très importantes de données sont supprimées ou mises à jour sans
validation des modifications (les opérations d'insertion consomment très peu de volume
d'annulation car l'image d'origine des données insérées est une valeur NULL), le tablespace
d'annulation doit être assez volumineux pour contenir les données d'origine. Imaginez une
table de 50 Go dont toutes les lignes sont supprimées via la commande suivante :
SQL> DELETE FROM reallybigtable;
Le tablespace d'annulation doit disposer de suffisamment d'espace pour les 50 Go de données
d'origine, au cas où l'utilisateur ayant exécuté la commande changerait d'avis et souhaiterait
annuler (roll back) la modification. Lorsque le tablespace d'annulation manque d'espace,
l'utilisateur reçoit un message d'erreur tel que le suivant :
ORA-01650: unable to extend rollback segment
La surveillance proactive détecte les problèmes d'espace survenant dans un tablespace
d'annulation avant qu'ils n'affectent les utilisateurs.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-9
Surveiller les informations d'annulation (suite)
Un autre problème auquel l'administrateur peut être confronté concernant les informations
d'annulation se produit lorsqu'une interrogation doit accéder à des informations
d'annulation qui ont déjà été remplacées par d'autres. Cela peut arriver lors de l'exécution
d'une interrogation longue ou d'une interrogation flashback. Lorsqu'une interrogation a
besoin d'un cliché (snapshot) de données à un instant passé et que la reconstruction du
cliché nécessite des données d'annulation qui n'existent plus, l'interrogation renvoie
l'erreur suivante :
ORA-01555: snapshot too old
Un tel cas de figure peut se produire lorsque la base Oracle présente à l'utilisateur une vue
cohérente des données telles qu'elles apparaissaient au début de l'exécution de
l'interrogation. Si une table comportant des modifications non validées fait l'objet d'une
interrogation, la base Oracle lit les données d'annulation afin d'obtenir la version validée
de ces données. C'est ce que l'on appelle la cohérence en lecture. Si l'exécution de
l'interrogation dure longtemps, il se peut que les modifications soient validées entre-temps
et que, par conséquent, les données d'annulation correspondantes soient libérées et
remplacées. Dans ce cas, l'interrogation longue ne peut plus obtenir une vue cohérente des
données telles qu'elles apparaissaient au début de son exécution. C'est pourquoi la période
de conservation des informations d'annulation doit être définie en fonction des
interrogations les plus longues.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-10
Administrer les informations d'annulation
L'administration des informations d'annulation consiste
à éviter les situations suivantes :
• Erreurs liées à une manque d'espace dans un tablespace
d'annulation :
– Dimensionnez correctement le tablespace d'annulation.
– Assurez-vous de la validation périodique des transactions
volumineuses.
• Erreurs "Snapshot too old"
– Configurez une période appropriée de conservation
des informations d'annulation.
– Dimensionnez correctement le tablespace d'annulation.
– Envisagez de garantir la période de conservation
des informations d'annulation.
Utilisation de la gestion automatique des annulations :

UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS1 DBA

Copyright © 2005, Oracle. Tous droits réservés.

Administrer les informations d'annulation


Il est recommandé d'utiliser la gestion automatique des annulations, en attribuant la valeur
AUTO au paramètre d'initialisation UNDO_MANAGEMENT. La gestion manuelle des
annulations est prise en charge pour des raisons de compatibilité descendante avec Oracle8i et
les versions antérieures, mais elle nécessite plus d'interventions du DBA.
Avec la gestion automatique des annulations, le DBA gère les informations d'annulation au
niveau tablespace, en contrôlant, via le paramètre d'initialisation UNDO_TABLESPACE, le
tablespace d'annulation utilisé par une instance. Après la sélection du tablespace d'annulation,
l'administrateur doit simplement faire en sorte que l'espace soit suffisant et qu'une période de
conservation des informations d'annulation soit configurée.
Avec la gestion manuelle, le DBA doit également effectuer les opérations suivantes :
• Dimensionner les segments, notamment le nombre maximal d'extents (ensembles de
blocs contigus) et la taille des extents.
• Identifier et éliminer les transactions provoquant un blocage.
• Créer suffisamment de segments d'annulation pour la gestion des transactions (en mode
manuel, les segments d'annulation sont également appelés "rollback segments").
• Choisir un tablespace pour le stockage des segments d'annulation (les tablespaces
d'annulation ne sont utilisés qu'avec la gestion automatique des annulations).

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-11
Configurer la période de conservation
des informations d'annulation

Le paramètre UNDO_RETENTION indique (en secondes)


la quantité d'informations d'annulation déjà validées
à conserver. Vous ne devez configurer ce paramètre
que dans les cas suivants :
• L'option AUTOEXTEND du tablespace d'annulation
est activée.
• Vous souhaitez définir la période de conservation
des informations d'annulation pour les objets LOB.
• Vous souhaitez garantir la conservation.

DBA

Copyright © 2005, Oracle. Tous droits réservés.

Configurer la période de conservation des informations d'annulation


Le paramètre UNDO_RETENTION indique (en secondes) la valeur de seuil inférieure de la
période de conservation des informations d'annulation. Pour les tablespaces d'annulation en
mode AUTOEXTEND, le système conserve les informations d'annulation pendant une durée
au moins égale à la valeur de ce paramètre. Il règle (tune) automatiquement la période de
conservation de manière à répondre aux besoins des interrogations en termes d'espace
d'annulation. Pour les tablespaces d'annulation de taille fixe, le système adopte
automatiquement la période de conservation la plus longue possible, en fonction de la taille
du tablespace d'annulation et de l'historique de son utilisation. Il ignore le paramètre
UNDO_RETENTION, sauf si la fonction de garantie de la période de conservation des
informations d'annulation est activée. En résumé, le paramètre UNDO_RETENTION est
utilisé pour la gestion automatique des annulations dans les trois cas mentionnés dans la
diapositive ci-dessus. Dans tous les autres cas, ce paramètre est ignoré.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-12
Configurer la période de conservation des informations d'annulation (suite)
Les informations d'annulation sont divisées en trois catégories :
• Informations d'annulation non validées : Elles correspondent à une transaction en
cours d'exécution. Elles sont nécessaires au cas où l'utilisateur souhaiterait annuler
(rollback) la transaction ou en cas d'échec de celle-ci. Les informations d'annulation
non validées ne sont jamais écrasées par d'autres.
• Informations d'annulation validées : Ces informations ne sont plus nécessaires
pour une transaction en cours d'exécution, mais elles le sont pour la prise en charge
de la période de conservation. Elles sont également appelées informations
d'annulation "non expirées". Les informations d'annulation validées sont conservées
dès lors que cela n'entraîne pas l'échec d'une transaction active en raison d'un
manque d'espace.
• Informations d'annulation expirées : Ces informations ne sont plus nécessaires
pour une transaction en cours d'exécution. Elles sont remplacées lorsque l'espace est
requis par une transaction active.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-13
Garantir la période de conservation
des informations d'annulation

Garantie : 15 minutes

Données d'annulation

Les instructions SELECT Une transaction qui génère


dont l'exécution prend 15 minutes trop d'informations d'annulation
ou moins sont toujours satisfaites. par rapport à l'espace
disponible échoue.

Copyright © 2005, Oracle. Tous droits réservés.

Garantir la période de conservation des informations d'annulation


Le comportement par défaut consiste à écraser les informations d'annulation des transactions
validées et qui n'ont pas encore expiré, dès lors qu'il s'agit d'éviter l'échec d'une transaction en
raison d'un manque d'espace.
Ce comportement peut toutefois être modifié via la garantie de la période de conservation.
Lorsque la période de conservation des informations d'annulation est garantie, les paramètres de
conservation sont appliqués même si cela entraîne l'échec d'une transaction.
RETENTION GUARANTEE est un attribut de tablespace et non un paramètre d'initialisation. Cet
attribut ne peut être modifié que par le biais d'instructions SQL de ligne de commande. La
syntaxe permettant de modifier un tablespace d'annulation afin de garantir la période de
conservation des informations d'annulation est la suivante :
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;
Pour rétablir le comportement par défaut, utilisez la commande suivante :
SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;
La garantie de la période de conservation des informations d'annulation s'applique uniquement
aux tablespaces d'annulation. Toute tentative d'appliquer cette fonction à un autre type de
tablespace provoque l'erreur suivante :
SQL> ALTER TABLESPACE example RETENTION GUARANTEE;
ERROR at line 1:
ORA-30044: 'Retention' can only specified for undo
tablespace
Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-14
Dimensionner le tablespace d'annulation

Taille actuelle
du tablespace

Taux de consommation des


informations d'annulation

Copyright © 2005, Oracle. Tous droits réservés.

Dimensionner le tablespace d'annulation


Les tablespaces d'annulation doivent être dimensionnés de façon à pouvoir contenir les
informations d'origine de toutes les transactions. Cliquez sur le lien Undo Management dans
la page Administration d'Enterprise Manager pour afficher une vue d'ensemble des
informations d'annulation du système, notamment les paramètres actuels, la consommation
d'informations d'annulation par minute et la longueur de l'interrogation la plus longue
observée au cours d'une période donnée.
Les fichiers de données appartenant à un tablespace d'annulation peuvent subir une extension
automatique en cas de manque d'espace. Oracle Corporation recommande de ne pas activer
l'extension automatique des fichiers de données associés à des tablespaces d'annulation (à
l'inverse de ce qui est recommandé pour les autres tablespaces). Lors de la première
détermination des besoins en termes de volume d'annulation, vous pouvez activer l'extension
automatique des fichiers de données, mais vous devez ensuite la désactiver une fois le
tablespace correctement dimensionné. La désactivation de l'extension automatique des
fichiers de données d'un tablespace d'annulation empêche un utilisateur unique de consommer
par inadvertance de grandes quantités d'espace disque lorsqu'il oublie de valider les
transactions.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-15
Utiliser Undo Advisor

Copyright © 2005, Oracle. Tous droits réservés.

Utiliser Undo Advisor


La fonction de conseil Undo Advisor est accessible via la page de propriétés Undo
Management. Elle fournit une estimation de l'espace requis dans le tablespace d'annulation
pour satisfaire une période de conservation donnée.
Entrez la période de conservation souhaitée. La région d'analyse d'Undo Advisor affiche la
taille que doit avoir le tablespace pour prendre en charge la période indiquée. Vous pouvez
également cliquer sur un point du graphique afin de voir la taille requise du tablespace pour
prendre en charge la période sélectionnée.
Une fois que vous avez sélectionné une période de conservation des informations
d'annulation, cliquez sur OK pour l'implémenter.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-16
Synthèse

Ce chapitre vous a permis d'apprendre à :


• décrire les instructions LMD et les données
d'annulation
• surveiller et administrer les segments d'annulation
• décrire les différences entre les données
d'annulation et les données de journalisation
• configurer la période de conservation
des informations d'annulation
• garantir la conservation des informations
d'annulation
• utiliser la fonction de conseil Undo Advisor

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-17
Présentation de l'exercice :
Gérer les segments d'annulation

Cet exercice porte sur les points suivants :


• calculer la taille du tablespace d'annulation pour
prendre en charge une période de conservation
des informations d'annulation de 48 heures
• modifier un tablespace d'annulation pour prendre
en charge une période de conservation des
informations d'annulation de 48 heures

Copyright © 2005, Oracle. Tous droits réservés.

Unauthorized reproduction or distribution prohibitedฺ Copyright© 2009, Oracle and/or its affiliatesฺ
Oracle Database 10g : Administration Workshop I 9-18

Vous aimerez peut-être aussi