0% ont trouvé ce document utile (0 vote)
325 vues452 pages

D50102FR10 sg1

Transféré par

jacqueline gbedevi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
325 vues452 pages

D50102FR10 sg1

Transféré par

jacqueline gbedevi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY.

COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

D53093
Edition 1.0
Février 2008
D50102FR10
Manuel du stagiaire - Volume 1
Oracle Database 11g :
Administration Workshop I

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Auteurs Copyright © 2007, Oracle. Tous droits réservés.

Priya Vennapusa Avertissement

James Spiller Cette documentation contient des informations qui sont la propriété d'Oracle
Maria Billings 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 lors de la participation à une formation dispensée par Oracle.
Révisions et Le document ne peut être 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
contributions techniques d'auteur, vous ne pouvez pas utiliser, partager, télécharger, copier, imprimer, afficher,
exécuter, reproduire, publier, breveter, diffuser, transmettre ou distribuer ce
Christian Bauwens document, en partie ou en totalité, sans l'autorisation expresse d'Oracle.
Sangram Dash
Les informations fournies dans ce document sont susceptibles de modification sans
Andy Fortunak préavis. Par ailleurs, Oracle Corporation ne garantit pas qu'elles soient exemptes
d'erreurs et vous invite, le cas échéant, à lui en faire part par écrit à l'adresse

Oracle University and Catalyst Business Solutions use only


Gerlinde Frenzen suivante : Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065
USA.
Steve Friedberg
Restrictions applicables au gouvernement américain :
Joel Goodman Restricted Rights Notice

Magnus Isaksson If this documentation is delivered to the United States Government or anyone using
the documentation on behalf of the United States Government, the following notice is
Akira Kinutani applicable:

Pete Jones U.S. GOVERNMENT RIGHTS


The U.S. Government’s rights to use, modify, reproduce, release, perform, display,
Pierre Labrousse or disclose these training materials are restricted by the terms of the applicable
Oracle license agreement and/or the applicable U.S. Government contract.
Gwen Lazenby
Hakan Lindfors Marques

Srinivas Putrevu Oracle est une marque déposée d'Oracle Corporation et/ou de ses filiales. Tout autre
nom de produit ou de société peut être une marque de son propriétaire.
Andreas Reinhardt
Ira Singer
Jenny Tsai

Rédacteurs
Richard Wallis
Amitha Narayan

Concepteur graphique
Rajiv Chandrabhanu

Editeurs
Nita Brozowski
Michael Sebastian Almeida
Table des matières
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Préface

I Introduction
Objectifs du cours I-2
Planification recommandée I-3
Produits et services Oracle I-4

Oracle University and Catalyst Business Solutions use only


Oracle Database 11g : "g" signifie "grid" I-5
Exemples du cours : Schéma HR I-7

1 Examiner l'architecture de la base de données Oracle


Objectifs 1-2
Base de données Oracle 1-3
Se connecter à un serveur 1-4
Architecture de base de données Oracle : Présentation 1-6
Se connecter à la base de données 1-7
Interagir avec une base de données Oracle 1-8
Structures du serveur de base de données Oracle 1-10
Structures mémoire de la base de données Oracle 1-11
Cache de tampons de la base de données 1-13
Tampon de journalisation 1-14
Zone de mémoire partagée 1-15
Allocation et réutilisation de mémoiredans la zone de mémoire partagée 1-17
Zone de mémoire LARGE POOL 1-19
Zone de mémoire Java et zone de mémoire Streams 1-20
Architecture des processus 1-21
Structures des processus 1-22
Processus DBWn (Database Writer) 1-24
Processus LGWR (LogWriter) 1-26
Processus CKPT (Checkpoint) 1-28
Processus SMON (System Monitor) 1-29
Processus PMON (Process Monitor) 1-30
Processus RECO (Recoverer) 1-31
Processus ARCn (Archiver) 1-32
Autres processus 1-33
Processus serveur et cache de tampons de base de données 1-35
Architecture de stockage de la basede données 1-36
Structures de base de données logiques et physiques 1-38
Tablespaces et fichiers de données 1-40
Tablespaces SYSTEM et SYSAUX 1-41

i
Segments, extents et blocs 1-42
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


structurels 1-43
Synthèse 1-44
Exercice 1 : Présentation 1-45

2 Préparer l'environnement de la base de données


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

Oracle University and Catalyst Business Solutions use only


Vérifier la configuration système requise 2-7
Architecture OFA (Optimal Flexible Architecture) 2-8
Architecture OFA : Convention d'appellation 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
Options d'installation avancées 2-17
Option d'installation : Mode automatique 2-18
Synthèse 2-19
Exercice 2 : Préparer l'environnement de base de données 2-20

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
Configurer le processus d'écoute 3-5
Assistant Database Configuration Assistant (DBCA) 3-8
Utiliser l'assistant DBCA pour créer une base de données 3-9
Gestion des mots de passe 3-15
Créer un modèle de conception de base de données 3-16
Utiliser l'assistant DBCA pour supprimer une base de données 3-17
Autres tâches effectuées via l'assistant DBCA 3-19
Synthèse 3-20
Exercice 3 : Utiliser l'assistant DBCA 3-21

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

ii
Page d'accueil de la base de données 4-7
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Autres outils Oracle 4-8


Utiliser SQL*Plus 4-9
Appeler SQL*Plus à partir d'un script shell 4-10
Appeler un script SQL à partir de SQL*Plus 4-11
Fichiers de paramètres d'initialisation 4-12
Paramètres d'initialisation simplifiés 4-14
Paramètres d'initialisation : Exemples 4-15
Utiliser SQL*Plus pour afficher les paramètres 4-20
Modifier les valeurs des paramètres d'initialisation 4-22
Modifier les valeurs des paramètres : Exemples 4-24

Oracle University and Catalyst Business Solutions use only


Démarrer et arrêter la base de données 4-25
Démarrer une instance de base de données Oracle 4-26
Démarrer une instance de base de données Oracle : NOMOUNT 4-27
Démarrer une instance de base de données Oracle : MOUNT 4-28
Démarrer une instance de base de données Oracle : OPEN 4-29
Options de démarrage : Exemples 4-30
Arrêter une instance de base de données Oracle 4-31
Modes d'arrêt 4-32
Options d'arrêt 4-33
Options d'arrêt : Exemples 4-34
Options d'arrêt 4-35
Utiliser SQL*Plus pour les opérations de démarrage et d'arrêt 4-36
Administration des arrêts temporaires 4-37
Afficher le fichier d'alertes 4-39
Afficher l'historique des alertes 4-41
Utiliser les fichiers trace 4-42
Vues dynamiques des performances 4-44
Vues dynamiques des performances : Exemples d'utilisation 4-45
Vues dynamiques des performances : Remarques 4-46
Dictionnaire de données : Présentation 4-47
Vues du dictionnaire de données 4-48
Dictionnaire de données : Exemples d'utilisation 4-50
Synthèse 4-51
Exercice 4 : Gérer l'instance Oracle 4-52

5 Configurer l'environnement réseau Oracle


Objectifs 5-2
Services Oracle Net 5-3
Processus d'écoute Oracle Net 5-4
Etablir des connexions réseau 5-5
Etablir une connexion 5-6

iii
Sessions utilisateur 5-7
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Outils de configuration et de gestion de l'environnement réseau Oracle 5-8


Utilitaire de contrôle des processus d'écoute 5-10
Syntaxe de l'utilitaire de contrôle de processus d'écoute 5-11
Page d'accueil Listener 5-13
Pages Net Services Administration 5-14
Créer un processus d'écoute 5-15
Ajouter des adresses de processus d'écoute 5-16
Enregistrement d'un service de base de données 5-17
Méthodes de résolution des noms 5-19
Easy Connect 5-20

Oracle University and Catalyst Business Solutions use only


Résolution locale de noms 5-21
Résolution de noms d'annuaire 5-22
Méthode de résolution de noms externe 5-23
Configurer des alias de service 5-24
Options de connexion avancées 5-25
Tester la connectivité Oracle Net 5-27
Sessions utilisateur : Serveurs dédiés 5-28
Sessions utilisateur : Serveurs partagés 5-29
Mémoire SGA et mémoire PGA 5-30
Serveur partagé : Concentration des connexions 5-31
Dans quel cas ne pas utiliser de serveur partagé ? 5-32
Configurer la communication entre bases de données 5-33
Se connecter à une autre base de données 5-34
Synthèse 5-35
Exercice 5 : Utiliser les composants réseau Oracle 5-36

6 Gérer les structures de stockage de base de données


Objectifs 6-2
Structures de stockage 6-3
Mode de stockage des données d'une table 6-4
Bloc de base de données : Contenu 6-5
Tablespaces et fichiers de données 6-6
Gestion de l'espace dans les tablespaces 6-7
Explorer la structure de stockage 6-8
Créer un tablespace 6-9
Gestion du stockage dans les tablespaces gérés localement 6-11
Tablespaces de la base de données préconfigurée 6-13
Modifier un tablespace 6-15
Actions sur les tablespaces 6-18
Supprimer des tablespaces 6-20
Afficher les informations relatives aux tablespaces 6-21
Collecter des informations sur les tablespaces 6-22

iv
Afficher le contenu d'un tablespace 6-23
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Managed Files (OMF) 6-24


Etendre la base de données 6-25
Automatic Storage Management 6-26
ASM : Fonctionnalités clés et principaux avantages 6-27
ASM : Concepts 6-28
Synthèse 6-29
Exercice 6 : Gérer les structures de stockage de base de données 6-30

7 Administrer la sécurité utilisateur


Objectifs 7-2

Oracle University and Catalyst Business Solutions use only


Comptes utilisateur de base de données 7-3
Comptes prédéfinis : SYS et SYSTEM 7-5
Créer un utilisateur 7-6
Authentification des utilisateurs 7-7
Authentification de l'administrateur 7-9
Déverrouiller un compte utilisateur et redéfinir le mot de passe 7-11
Privilèges 7-12
Privilèges système 7-13
Privilèges objet 7-15
Révoquer des privilèges système accordés avec ADMIN OPTION 7-16
Révoquer des privilèges objet accordés avec GRANT OPTION 7-17
Avantages des rôles 7-18
Affecter des privilèges à des rôles et des rôles à des utilisateurs 7-19
Rôles prédéfinis 7-20
Créer un rôle 7-21
Rôles sécurisés 7-22
Affecter des rôles aux utilisateurs 7-23
Profils et utilisateurs 7-24
Implémenter des fonctionnalités de sécurité utilisant des mots de passe 7-26
Créer un profil de mot de passe 7-28
Fonction prédéfinie de vérification des mots de passe :
VERIFY_FUNCTION_11G 7-29
Affecter des quotas aux utilisateurs 7-30
Synthèse 7-32
Exercice 7 : Administrer les utilisateurs 7-33

8 Gérer les objets de schéma


Objectifs 8-2
Qu'est-ce qu'un schéma ? 8-3
Accéder aux objets de schéma 8-5
Nommer les objets de base de données 8-6
Définir des types de données pour les tables 8-8
Créer et modifier des tables 8-11

v
Créer et modifier des tables 8-12
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Comprendre l'intégrité des données 8-13


Définir des contraintes 8-15
Violations de contrainte 8-16
Etats possibles d'une contrainte 8-17
Créer des contraintes via des instructions SQL : Exemples 8-21
Afficher les colonnes d'une table 8-23
Afficher le contenu d'une table 8-24
Actions sur les tables 8-25
Supprimer une table 8-26
Vider une table 8-27

Oracle University and Catalyst Business Solutions use only


Index 8-28
Types d'index 8-29
Index B-Tree 8-30
Index bitmap 8-32
Options relatives aux index 8-34
Créer des index 8-36
Vues 8-37
Créer des vues 8-38
Séquences 8-39
Créer une séquence 8-40
Utiliser une séquence 8-42
Tables temporaires 8-43
Tables temporaires : Utilisation 8-44
Synthèse 8-45
Exercice 8 : Administrer les objets de schéma 8-46

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


Objectifs 9-2
Manipuler les données à l'aide d'instructions SQL 9-3
Commande INSERT 9-4
Commande UPDATE 9-5
Commande DELETE 9-6
Commande MERGE 9-7
Commandes COMMIT et ROLLBACK 9-9
PL/SQL 9-10
Administrer les objets PL/SQL 9-11
Objets PL/SQL 9-12
Fonctions 9-13
Procédures 9-14
Packages 9-15
Spécification et corps d'un package 9-16
Packages intégrés 9-17
Déclencheurs 9-18

vi
Evénements déclencheurs 9-19
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Verrous externes 9-20


Mécanisme de verrouillage 9-21
Simultanéité d'accès aux données 9-22
Verrous LMD 9-24
Mécanisme de mise en file d'attente 9-25
Conflits de verrouillage 9-26
Causes possibles des conflits de verrouillage 9-27
Détecter les conflits de verrouillage 9-28
Résoudre les conflits de verrouillage 9-29
Résoudre les conflits de verrouillage à l'aide d'instructions SQL 9-30

Oracle University and Catalyst Business Solutions use only


"Verrous mortels" 9-31
Synthèse 9-32
Exercice 9 : Gérer les données et la simultanéité d'accès aux données 9-33

10 Gérer les données d'annulation


Objectifs 10-2
Manipulation des données 10-3
Données d'annulation 10-4
Transactions et données d'annulation 10-6
Stockage des informations d'annulation 10-7
Données d'annulation et données de journalisation 10-8
Gérer les informations d'annulation 10-9
Configurer la période de conservation des informations d'annulation 10-10
Garantir la période de conservation des informations d'annulation 10-12
Passer à un tablespace d'annulation de taille fixe 10-13
Gestion des annulations : Informations générales 10-14
Utiliser Undo Advisor 10-15
Afficher l'activité du système 10-16
Synthèse 10-17
Exercice 10 : Gérer les segments d'annulation 10-18

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


Objectifs 11-2
Obligations en matière de sécurité dans les entreprises 11-3
Séparation des responsabilités 11-6
Sécurité de la base de données 11-7
Principe du moindre privilège 11-9
Appliquer le principe du moindre privilège 11-10
Protéger les comptes dotés de privilèges 11-12
Surveiller la conformité aux règles de sécurité 11-13
Audit de base de données standard 11-14

vii
Activer l'audit 11-15
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Traces d'audit uniformes 11-16


Définir les options d'audit 11-17
Page Audit Settings d'Enterprise Manager 11-18
Utiliser et gérer les informations d'audit 11-19
Audit basé sur les données 11-20
Audit détaillé 11-22
Stratégie d'audit détaillé 11-23
Instruction LMD auditée : Eléments à prendre en compte 11-25
Règles relatives à l'audit détaillé 11-26
Audit de DBA 11-27

Oracle University and Catalyst Business Solutions use only


Gérer la trace d'audit 11-28
Mises à jour de sécurité 11-29
Appliquer des patches de sécurité 11-30
Synthèse 11-31
Exercice 11 : Implémenter la sécurité de la base de données Oracle 11-32

12 Maintenance de la base de données


Objectifs 12-2
Maintenance de la base de données 12-3
Terminologie 12-4
Présentation de l'optimiseur Oracle 12-5
Statistiques destinées à l'optimiseur 12-6
Utiliser la page Manage Optimizer Statistics 12-7
Collecter manuellement les statistiques destinées à l'optimiseur 12-8
Niveaux de statistiques 12-10
Préférences relatives à la collecte des statistiques 12-11
Référentiel AWR (Automatic Workload Repository) 12-13
Infrastructure du référentiel AWR 12-14
Lignes de base 12-15
Enterprise Manager et référentiel AWR 12-16
Gérer le référentiel AWR 12-17
Moniteur ADDM (Automatic Database Diagnostic Monitor) 12-18
Résultats ADDM 12-19
Recommandations ADDM 12-20
Infrastructure de conseil 12-21
Enterprise Manager et les fonctions de conseil 12-24
Package DBMS_ADVISOR 12-25
Tâches de maintenance automatisées 12-26
Configuration des tâches de maintenance automatisées 12-28
Alertes générées par le serveur 12-29
Définir des seuils 12-30

viii
Créer et tester une alerte 12-31
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Notification des alertes 12-32


Réagir aux alertes 12-34
Types d'alerte et effacement des alertes 12-35
Synthèse 12-36
Exercice 12 : Maintenance proactive 12-37

13 Gérer les performances


Objectifs 13-2
Contrôler les performances 13-3
Page Performance d'Enterprise Manager 13-4

Oracle University and Catalyst Business Solutions use only


Page Performance : Onglet Throughput 13-6
Contrôler les performances : Option Top Sessions 13-7
Contrôler les performances : Option Top Services 13-8
Gérer les composants de mémoire 13-9
Activer la gestion automatique de la mémoire (AMM) 13-10
Activer la gestion automatique de la mémoire partagée (ASMM) 13-11
Fonction de conseil ASMM 13-12
Configurer manuellement les composants de la mémoire partagée 13-13
Utiliser les fonctions de conseil sur la mémoire 13-14
Statistiques dynamiques des performances 13-16
Vues de résolution des problèmes et de réglage 13-18
Objets non valides et inutilisables 13-19
Synthèse 13-21
Exercice 13 : Contrôler et optimiser les performances 13-22

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
Récupération d'instance : Processus de point de reprise (CKPT) 14-11
Récupération d'instance : Fichiers de journalisation et LogWriter 14-12
Récupération d'instance : Processus d'archivage (ARCn) 14-13
Comprendre la récupération d'instance 14-14
Phases de la récupération d'instance 14-15
Régler la récupération d'instance 14-16

ix
Utiliser MTTR Advisor 14-17
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Défaillance physique 14-18


Configurer la base de données afin d'optimiser la possibilité
de récupération 14-19
Configurer la zone de récupération rapide 14-21
Multiplexer les fichiers de contrôle 14-22
Fichiers de journalisation 14-24
Multiplexer le fichier de journalisation 14-25
Fichiers de journalisation archivés 14-26
Fichier de journalisation archivé : Appellation et destinations 14-27
Activer le mode ARCHIVELOG 14-29

Oracle University and Catalyst Business Solutions use only


Synthèse 14-30
Exercice 14 : Configurer la base de données afin d'optimiser la capacité
de récupération 14-31

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
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-17
Afficher les états de sauvegarde 15-18
Surveiller la zone de récupération rapide 15-19
Utiliser la ligne de commande RMAN 15-20
Synthèse 15-21
Exercice 15 : Créer des sauvegardes de la base de données 15-22

16 Procéder à une récupération de la base de données


Objectifs 16-2
Ouvrir une base de données 16-3
Maintenir une base de données ouverte 16-5
Data Recovery Advisor 16-6
Perte d'un fichier de contrôle 16-8

x
Perte d'un fichier de journalisation 16-9
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Perte d'un fichier de données en mode NOARCHIVELOG 16-10


Perte d'un fichier de données non essentiel en mode ARCHIVELOG 16-11
Perte d'un fichier de données essentiel pour le système
en mode ARCHIVELOG 16-12
Data Recovery Advisor 16-13
Evaluer les défaillances 16-14
Défaillances de données 16-15
Défaillances de données : Exemples 16-16
Afficher la liste des défaillances de données 16-17
Obtenir un conseil de réparation 16-18

Oracle University and Catalyst Business Solutions use only


Exécuter les réparations 16-19
Vues de la fonction de conseil Data Recovery Advisor 16-20
Synthèse 16-21
Exercice 16 : Procéder à une récupération de la base de données 16-22

17 Déplacer des données


Objectifs 17-2
Déplacer des données : Architecture générale 17-3
Objets répertoire : Présentation 17-4
Créer des objets répertoire 17-5
SQL*Loader : Présentation 17-6
Charger des données avec SQL*Loader 17-8
Fichier de contrôle SQL*Loader 17-9
Méthodes de chargement 17-11
Remplissage de tables externes 17-13
Utiliser des tables externes 17-14
Remplissage d'une table externe avec ORACLE_DATAPUMP 17-15
Remplissage d'une table externe avec ORACLE_LOADER 17-16
Oracle Data Pump : Présentation 17-17
Oracle Data Pump : Avantages 17-18
Data Pump Export et Data Pump Import : Présentation 17-20
Utilitaire Data Pump : Interfaces et modes 17-21
Sélection fine d'objets 17-22
Fonction avancée : Echantillonnage 17-23
Options d'export : Fichiers 17-24
Emplacement des fichiers Data Pump 17-25
Planifier et exécuter un travail 17-27
Nom et taille des fichiers Data Pump 17-28
Data Pump Import 17-29
Data Pump Import : Transformations 17-30
Data Pump : Considérations relatives aux performances 17-32

xi
Paramètres d'initialisation des performances 17-33
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Chemin d'accès Data Pump : Considérations 17-34


Utiliser Enterprise Manager pour surveiller les travaux Data Pump 17-35
Dictionnaire de données 17-36
Synthèse 17-37
Exercice 17 : Déplacer des données 17-38

18 Optimiser les capacités de la base de données


Objectifs 18-2
Utiliser l'outil Support Workbench 18-3
Afficher les alertes d'erreur critique dans Enterprise Manager 18-4

Oracle University and Catalyst Business Solutions use only


Afficher des détails sur les problèmes 18-5
Afficher des détails sur les incidents : Fichiers dump 18-6
Afficher des détails sur les incidents : Résultats des vérifications 18-7
Créer une "Service Request" (SR) 18-8
Préparer les données de diagnostic et les envoyer au Support
technique Oracle 18-9
Effectuer le suivi de la "Service Request" (SR) et implémenter les solutions 18-10
Fermer des incidents et des problèmes 18-12
Configuration du packaging des incidents 18-13
Utiliser le Support technique Oracle 18-14
Intégration avec MetaLink 18-15
Utiliser MetaLink 18-16
Rechercher des informations sur un problème 18-18
Soumettre une "Service Request" (SR) 18-20
Gérer les patches 18-22
Appliquer un patch logiciel 18-23
Utiliser Patch Advisor 18-24
Utiliser l'assistant pour patches 18-25
Appliquer un patch 18-26
Mettre un patch en zone de stockage temporaire 18-27
Synthèse 18-28
Exercice 18 : Utiliser les outils EM pour les alertes et les patches 18-29

Annexe A - Exercices et solutions


Annexe B - Commandes de base de Linux et vi
Annexe C - Syntaxe des instructions SQL
Annexe D - Acronymes et termes
Annexe E - Etapes suivantes : Poursuivre la formation

xii
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Introduction

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

Oracle University and Catalyst Business Solutions use only


Objectifs du cours
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce cours, vous pourrez :


• installer, créer et administrer Oracle Database 11g
• configurer la base de données pour une application
• utiliser les procédures élémentaire de contrôle
• implémenter une stratégie de sauvegarde et de
récupération

Oracle University and Catalyst Business Solutions use only


• déplacer des données entre des bases de données
et des fichiers

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

Objectifs du cours
Dans ce cours, vous allez installer le logiciel Oracle Database 11g 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 devez
également apprendre à protéger votre base de données en élaborant une stratégie de
sauvegarde et de récupération, et à la surveiller pour vous assurer de son bon fonctionnement.

Oracle Database 11g : Administration Workshop I I - 2


Planification recommandée
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

1. Introduction 12. Maintenance proactive


2. Installation 13. Performances
3. Création de la base 14. Concepts de sauvegarde et
de données de récupération
4. Instance

5. Réseau

Oracle University and Catalyst Business Solutions use only


6. Stockage
7. Utilisateurs
8. Schéma 15. Sauvegarde
16. Récupération
9. Données et simultanéité 17. Déplacement de données
d'accès aux données 18. Extension de la base de
données
10. Annulation
11. Sécurité

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

Oracle Database 11g : Administration Workshop I I - 3


Produits et services Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• Oracle Services

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

Produits et services Oracle


• Oracle Database : 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.
• Oracle Services : Les services tels qu'Oracle Consulting et Oracle University fournissent
l'expertise dont vous avez besoin pour vos projets Oracle. Pour obtenir des liens d'accès à
différentes ressources utiles, reportez-vous à l'annexe intitulée "Etapes suivantes :
Poursuivre la formation".

Oracle Database 11g : Administration Workshop I I - 4


Oracle Database 11g :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

"g" signifie "grid"

• Global Grid Forum (GGF)


• Infrastructure de grid d'Oracle :
– Coût faible
– Qualité de service élevée
– Facilité de gestion

Oracle University and Catalyst Business Solutions use only


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 © 2007, Oracle. Tous droits réservés.

Oracle Database 11g : "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

Oracle Database 11g : Administration Workshop I I - 5


Oracle Database 11g : "g" signifie "grid" (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


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.
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 contrôler 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.
Oracle Database 11g : Administration Workshop I I - 6
Exemples du cours : Schéma HR
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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)

Oracle University and Catalyst Business Solutions use only


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 © 2007, Oracle. Tous droits réservés.

Exemples du cours : 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 à un moment donné.
• 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 selon laquelle chaque employé ne peut avoir qu'un seul
responsable hiérarchique. La clé étrangère est facultative car l'employé de plus haut niveau
n'est sous l'autorité de personne.

Oracle Database 11g : Administration Workshop I I - 7


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Examiner l'architecture
de la base de données Oracle

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• énumérer les principaux composants de l'architecture
de la base de données Oracle
• décrire les structures mémoire
• décrire les processus en arrière-plan
• définir la relation entre les structures de stockage

Oracle University and Catalyst Business Solutions use only


logiques et physiques

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

Objectifs
Ce chapitre décrit en détail l'architecture de la base de données Oracle. Il présente les
structures physiques et logiques ainsi que les divers composants de la base de données.

Oracle Database 11g : Administration Workshop I 1 - 2


Base de données Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Le système de gestion de base de données relationnelle


(SGBDR) Oracle fournit une approche ouverte, complète
et intégrée de la gestion des informations.

Oracle University and Catalyst Business Solutions use only


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

Base de données Oracle


Une base de données 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.
Oracle Database gère de manière fiable une grande quantité de données dans un
environnement multiutilisateur, permettant ainsi à de nombreux utilisateurs d'accéder
simultanément aux mêmes données. Les opérations effectuées par les utilisateurs ne nuisent
pas à ses performances. En outre, son mode de fonctionnement empêche tout accès non
autorisé et fournit des solutions efficaces pour la récupération des données après incident.

Oracle Database 11g : Administration Workshop I 1 - 3


Se connecter à un serveur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Client Niveau Serveur
intermédiaire

Architecture multiniveau (multi-tiers)

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

Se connecter à un serveur
Un utilisateur de base de données peut se connecter à un serveur Oracle de trois manières :
• L'utilisateur se connecte au système d'exploitation qui exécute l'instance Oracle et
démarre une application ou un outil qui accède à la base de données stockée sur ce
système. La voie de communication est établie à l'aide des mécanismes de
communication interprocessus disponibles dans le système d'exploitation hôte.
• L'utilisateur démarre l'application ou l'outil sur un ordinateur local et se connecte via un
réseau à l'ordinateur qui exécute la base de données Oracle. Dans cette configuration
(appelée client/serveur), un logiciel réseau est utilisé pour la communication entre
l'utilisateur et le serveur de base de données.
L'architecture client/serveur comprend une partie frontale (client) et une partie dorsale
(serveur) connectées via un réseau. La communication entre l'utilisateur et le serveur
Oracle est assurée par un logiciel réseau.
- Le client est une application de base de données qui lance une demande pour
effectuer une opération sur le serveur de base de données. Il demande, traite et
présente les données gérées par le serveur. La station de travail client peut être
optimisée pour sa fonction. Par exemple, le client n'a pas forcément besoin d'une
grande capacité de disque, ou encore il peut tirer profit de fonctionnalités
graphiques. Le client est souvent exécuté sur un ordinateur différent du serveur de
base de données. Plusieurs clients peuvent accéder simultanément à un même
serveur.

Oracle Database 11g : Administration Workshop I 1 - 4


Se connecter à un serveur (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

- Le serveur exécute le logiciel Oracle Database et gère les fonctions permettant les
accès simultanés aux données partagées. Le serveur reçoit et traite les demandes
en provenance des applications client. L'ordinateur qui fait office de serveur peut
être optimisé pour ses fonctions. Par exemple, il peut être doté d'une grande
capacité de disque et de processeurs rapides.
• L'utilisateur accède à un serveur d'applications à l'aide d'un outil (navigateur Web, par
exemple) exécuté sur l'ordinateur local (client). Le serveur d'applications entre alors en
interaction avec un serveur de base de données back-end pour le compte du client.
Une architecture à plusieurs niveaux (multi-tiers) classique comprend les composants
suivants :

Oracle University and Catalyst Business Solutions use only


• Un processus client ou initiateur qui démarre une opération.
• Un ou plusieurs serveurs d'applications qui effectuent différentes parties de l'opération.
Un serveur d'applications contient une grande partie de la logique applicative, permet
au client d'accéder aux données et traite certaines interrogations, ce qui allège la
charge du serveur de base de données. En outre, il peut servir d'interface entre les
clients et plusieurs serveurs de base de données, apportant ainsi un niveau de sécurité
supplémentaire.
• Un serveur final ou serveur de base de données qui héberge la plus grande partie des
données utilisées pour l'opération effectuée.
Cette architecture permet d'utiliser un serveur d'applications pour les tâches suivantes :
• Validation des informations d'identification et de connexion (credentials) d'un client
(navigateur Web, par exemple)
• Connexion à un serveur Oracle Database
• Exécution de l'opération demandée pour le compte du client

Oracle Database 11g : Administration Workshop I 1 - 5


Architecture de base de données Oracle : Présentation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Instance

SMON PMON RECO Autres

SGA Zone de mémoire


partagée
Cache
Cache Tampon "library"
de tampons de
de la base journali- Cache du
de données sation dictionnaire
de données
PGA
Processus

Oracle University and Catalyst Business Solutions use only


DBWn CKPT LGWR ARCn
serveur

Fichiers de
Processus Fichiers de journalisation
utilisateur Fichiers de journalisation
Fichiers archivés
de données contrôle en ligne
Base de données

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

Architecture de base de données Oracle


Une base de données Oracle se compose d'une instance et des bases de données associées.
L'instance comprend les structures mémoire et les processus en arrière-plan. A chaque
démarrage d'une instance, une zone de mémoire partagée appelée SGA (System Global Area)
est allouée et les processus en arrière-plan sont lancés.
La base de données est constituée de structures physiques et de structures logiques. Celles-ci
étant distinctes, il est possible de gérer le stockage physique des données sans affecter l'accès
aux structures de stockage logiques.

Oracle Database 11g : Administration Workshop I 1 - 6


Se connecter à la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Connexion : Communication entre un processus


utilisateur et une instance
• Session : Connexion spécifique d'un utilisateur
à une instance via un processus utilisateur

Oracle University and Catalyst Business Solutions use only


Processus Processus
SQL> Select … utilisateur serveur
Utilisateur
Session

Connexion

Session

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

Se connecter à la base de données


Les concepts de connexion et de session sont étroitement liés aux processus utilisateur, mais
ils ont des significations très différentes.
Une connexion est une voie de communication entre un processus utilisateur et une instance
Oracle Database. Elle est établie à l'aide des mécanismes de communication interprocessus
disponibles (sur un ordinateur qui exécute à la fois le processus utilisateur et Oracle Database)
ou via un logiciel réseau (lorsque différents ordinateurs exécutent l'application de base de
données et Oracle Database en communiquant via un réseau).
Une session représente l'activité d'un utilisateur spécifique connecté à l'instance de base de
données. Par exemple, quand un utilisateur démarre SQL*Plus, il doit fournir un nom
utilisateur et un mot de passe valides ; une session est alors établie spécialement pour lui. Une
session commence au moment où l'utilisateur se connecte et se termine lorsqu'il se déconnecte
ou qu'il quitte l'application de base de données.
Dans le cas d'une connexion dédiée, la session est desservie par un processus dédié
permanent. Pour les connexions partagées, un processus serveur disponible est sélectionné
dans un pool par le niveau intermédiaire (middle tier) ou par l'architecture "serveur partagé"
d'Oracle.
Plusieurs sessions peuvent être créées et exister simultanément pour un même utilisateur de la
base de données Oracle et sous le même nom utilisateur. Ainsi, un utilisateur peut se
connecter plusieurs fois à la même instance Oracle Database avec le nom utilisateur HR et le
mot de passe HR.

Oracle Database 11g : Administration Workshop I 1 - 7


Interagir avec une base de données Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Instance
Processus Processus
utilisateur serveur SGA Zone de mémoire
partagée

Cache Cache "library"


Tampon de
de tampons
journali-
de la base
sation Cache du
de données dictionnaire
de données

DBWn CKPT LGWR SMON PMON ARCn RECO Autres

Oracle University and Catalyst Business Solutions use only


Utilisateur

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

Interagir avec une base de données Oracle


L'exemple suivant décrit le niveau le plus élémentaire des interactions avec la base de
données Oracle. Il utilise une configuration de base de données dans laquelle l'utilisateur et le
processus serveur associé se trouvent sur des ordinateurs distincts connectés via un réseau.
1. Une instance a été démarrée sur un noeud où Oracle Database est installé. Ce noeud est
souvent appelé hôte ou serveur de base de données.
2. Un utilisateur démarre une application qui lance un processus utilisateur. L'application
essaie d'établir une connexion au serveur. (Il peut s'agir d'une connexion locale,
client/serveur ou d'une connexion à trois niveaux (3-tiers) fournie par un niveau
intermédiaire.)
3. Le serveur exécute un processus d'écoute (listener) qui contient le gestionnaire Oracle
Net Services approprié. Le serveur détecte la demande de connexion émise par
l'application et crée un processus serveur dédié pour le compte du processus utilisateur.
4. L'utilisateur exécute une instruction SQM de type LMD (langage de manipulation de
données) et valide (commit) la transaction. Par exemple, il change l'adresse d'un client
dans une table et valide la modification dans la base de données.
5. Le processus serveur reçoit l'instruction et recherche dans la zone de mémoire partagée
(composant SGA) une zone SQL partagée contenant une instruction SQL semblable. S'il
trouve cette zone SQL partagée, le processus serveur vérifie les privilèges de l'utilisateur
pour l'accès aux données demandées et utilise la zone SQL partagée existante pour traiter
l'instruction. A défaut, une nouvelle zone SQL partagée est allouée à l'instruction pour
que celle-ci puisse être analysée et traitée.

Oracle Database 11g : Administration Workshop I 1 - 8


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Interagir avec une base de données Oracle (suite)


6. Le processus serveur extrait les valeurs de données nécessaires, à partir du fichier de
données réel (table) ou à partir de la mémoire SGA (System Global Area).
7. Le processus serveur modifie les données dans la mémoire SGA. Comme la transaction
est validée, le processus LogWriter (LGWR) enregistre immédiatement la transaction
dans le fichier de journalisation (fichier redo log). Le processus Database Writer (DBWn)
écrit les blocs modifiés sur le disque au moment opportun.
8. Si la transaction réussit, le processus serveur envoie un message à l'application via le
réseau. Si elle échoue, un message d'erreur est transmis.
9. Tout au long de cette procédure, les autres processus en arrière-plan s'exécutent pour
détecter les conditions nécessitant leur intervention. Par ailleurs, le serveur de base de

Oracle University and Catalyst Business Solutions use only


données gère les transactions d'autres utilisateurs et empêche les problèmes de contention
entre les transactions qui demandent les mêmes données.

Oracle Database 11g : Administration Workshop I 1 - 9


Structures du serveur de base de données Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Instance
Structures mémoire SGA Zone de mémoire
partagée

Cache Cache "library"


Tampon de
Processus Processus de tampons
journali-
utilisateur serveur de la base Cache du
sation
de données dictionnaire
de données

Processus DBWn CKPT LGWR SMON PMON ARCn RECO Autres

Oracle University and Catalyst Business Solutions use only


Base de données

Structures de stockage

Fichiers de
Fichiers Fichiers de journalisation
de données contrôle en ligne

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

Structures du serveur de base de données 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 instance 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.

Oracle Database 11g : Administration Workshop I 1 - 10


Structures mémoire de la base Structures de base
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de données

de données Oracle Æ Mémoire


- Processus
- Stockage

Processus Processus Processus


PGA PGA PGA
serveur 1 serveur 2 en arrière-plan

SGA
Cache du dictionnaire
Zone SQL
de données
partagée

Oracle University and Catalyst Business Solutions use only


Cache Autre
"library"

Tampon de Zone de mémoire partagée


journalisation
Tampon Mémoire
Cache de tampons d'E/S disponible
de la base de
données File d'attente File d'attente
de réponses de demandes
Zone de Zone de
mémoire mémoire Zone de mémoire
Java Streams LARGE POOL

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

Structures mémoire de la base de données Oracle


Oracle Database crée et utilise des structures mémoire à des fins diverses. La mémoire
contient, par exemple, le code des programmes en cours d'exécution, les données partagées
entre utilisateurs et des zones de données privées pour chaque utilisateur connecté.
A une instance sont associées deux structures mémoire élémentaires :
• Mémoire SGA (System Global Area) : Groupe de structures mémoire partagées
(appelées composants SGA) qui contiennent les données et les informations de contrôle
correspondant à une seule instance Oracle Database. La mémoire SGA est partagée par
tous les processus serveur et processus d'arrière-plan. Elle contient notamment les blocs
de données en mémoire cache et les zones SQL partagées.
• Mémoire PGA (Program Global Area) : Régions de la mémoire qui contiennent des
données et des informations de contrôle pour chaque processus serveur ou processus
d'arrière-plan. Il s'agit d'une mémoire non partagée qui est créée par Oracle Database au
démarrage d'un processus serveur ou processus d'arrière-plan. Seul ce processus a accès à
sa zone de mémoire PGA. Chaque processus serveur ou d'arrière-plan a sa propre
mémoire PGA.

Oracle Database 11g : Administration Workshop I 1 - 11


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Structures mémoire de la base de données Oracle (suite)


La mémoire SGA contient 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 : Il met en mémoire cache les
blocs de données extraits de la base.
• Tampon de journalisation (redo log buffer) : Il 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 (fichiers redo log) physiques stockés sur le
disque.
• Zone de mémoire partagée : Elle met en mémoire cache diverses structures pouvant
être partagées par les utilisateurs.

Oracle University and Catalyst Business Solutions use only


• Zone de mémoire LARGE POOL : Il s'agit d'une 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.
• Zone de mémoire Java : Elle est 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 : Elle est utilisée par Oracle Streams pour stocker les
informations nécessaires aux opérations de capture et d'application des modifications.
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 gérer les
structures mémoire. La manière la plus simple de gérer la mémoire est de laisser la base de
données le faire automatiquement. Pour cela, il suffit (sur la plupart des plates-formes) de
définir un paramètre d'initialisation de la taille mémoire cible (MEMORY_TARGET) et un
paramètre d'initialisation de la taille mémoire maximale (MEMORY_MAX_TARGET).

Oracle Database 11g : Administration Workshop I 1 - 12


Cache de tampons de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Fait partie de la mémoire SGA


• Contient les copies de blocs de données lus dans les
fichiers de données
• Est partagé par tous les utilisateurs simultanés

Instance

Oracle University and Catalyst Business Solutions use only


SGA Zone de mémoire
partagée

Cache de Cache "library"


Tampon de
tampons
journali-
de la base Cache
sation
de données du dictionnaire
de données

DBWn CKPT LGWR SMON PMON ARCn RECO Autres

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

Cache de tampons de la base de données


Le cache de tampons (buffer cache) de la base de données est la partie de la mémoire SGA
qui contient les copies des blocs lus dans les fichiers de données. Son accès est partagé par
tous les utilisateurs connectés simultanément à l'instance.
La première fois qu'un processus utilisateur Oracle Database a besoin de données
particulières, il va les chercher dans le cache de tampons. Si les données se trouvent déjà dans
le cache (succès en mémoire cache), il peut les lire directement en mémoire. Si le processus
ne trouve pas les données dans le cache (échec en mémoire cache), il doit les copier depuis un
fichier de données sur disque vers un tampon du cache avant d'y accéder. L'accès aux données
est plus rapide lorsqu'elles se trouvent déjà dans le cache.
Les tampons du cache sont gérés par un algorithme complexe qui utilise une combinaison de
listes LRU (Least Recently Used) et de nombres d'accès (touch count).

Oracle Database 11g : Administration Workshop I 1 - 13


Tampon de journalisation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Mémoire tampon réutilisable située dans la mémoire SGA


• Contient des informations sur les modifications apportées
à la base de données
• Contient des entrées de journalisation dont les
informations permettent d'annuler les modifications
effectuées par des opérations LMD et LDD
Instance

Oracle University and Catalyst Business Solutions use only


SGA Zone de mémoire
partagée

Cache "library"
Tampon de
journali-
Cache de tampons de la base de données
sation Cache du
dictionnaire
de données

DBWn CKPT LGWR SMON PMON ARCn RECO Autres

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

Tampon de journalisation
Le tampon de journalisation (redo log buffer) est une mémoire tampon (buffer) réutilisable
située dans la mémoire SGA qui contient des informations sur les modifications effectuées
dans la base de données. Ces informations sont stockées sous la forme d'entrées de
journalisation. Les entrées de journalisation contiennent les informations nécessaires à
l'annulation (redo) des modifications apportées à la base de données par des opérations LMD
(langage de manipulation de données), LDD (langage de définition de données) ou internes.
Elles sont utilisées pour procéder à la récupération de la base de données.
Les entrées de journalisation sont copiées par les processus Oracle Database depuis l'espace
mémoire de l'utilisateur vers le tampon de journalisation en mémoire SGA. Elles occupent un
espace séquentiel continu dans le tampon. Le processus en arrière-plan LGWR écrit le tampon
de journalisation dans le fichier (ou le groupe de fichiers) de journalisation (redo log) actif
stocké sur disque.

Oracle Database 11g : Administration Workshop I 1 - 14


Zone de mémoire partagée
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Portion de la mémoire SGA


• Contenu :
– Cache "library"
— Zone SQL partagée
– Cache du dictionnaire de données
– Structures de contrôle

Oracle University and Catalyst Business Solutions use only


Instance

SGA Zone de mémoire Zone SQL


partagée partagée Cache du
dictionnaire
Cache de Cache "library" de données
Tampon de
tampons
journali-
de la base Cache du
sation
de données dictionnaire
de données Cache Autre
"library"
DBWn CKPT LGWR SMON PMON ARCn RECO Autres

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

Zone de mémoire partagée


La zone de mémoire partagée est une portion de la mémoire SGA qui contient le cache
"library", le cache du dictionnaire de données, le cache des résultats d'interrogations SQL, le
cache des résultats de fonctions PL/SQL, des mémoires tampons (buffers) pour les messages
d'exécution en parallèle et des structures de contrôle.
Le dictionnaire de données est un ensemble de tables et de vues de la base de données.
Il présente des informations de référence sur la base de données, ses structures et ses
utilisateurs. Oracle Database accède fréquemment au dictionnaire de données lors de l'analyse
des instructions SQL. Cet accès est essentiel pour un fonctionnement continu d'Oracle
Database.
Comme le dictionnaire de données fait l'objet d'accès très fréquents, deux emplacements
spécifiques sont prévus en mémoire pour contenir ses données. L'un de ces emplacements est
le cache du dictionnaire de données, également appelé cache de lignes (row cache) parce que
les données y sont organisées en lignes, pas en tampons (lesquels contiennent des blocs
entiers de données). L'autre zone de mémoire qui contient les données du dictionnaire est le
cache "library". Tous les processus utilisateur d'Oracle Database partagent ces deux caches
pour accéder aux informations du dictionnaire de données.
Chaque instruction SQL exécutée par Oracle Database est représentée par une zone SQL
partagée (plus une zone SQL privée en mémoire PGA). Oracle Database réutilise la zone SQL
partagée quand deux utilisateurs exécutent la même instruction SQL.

Oracle Database 11g : Administration Workshop I 1 - 15


Zone de mémoire partagée (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Une zone SQL partagée contient l'arborescence de l'analyse (parse) et le plan d'exécution pour
une instruction SQL donnée. Oracle Database économise de l'espace mémoire en utilisant une
seule zone SQL partagée pour les instructions SQL lancées plusieurs fois, ce qui est souvent
le cas lorsque plusieurs utilisateurs exécutent la même application.
Quand une nouvelle instruction SQL est analysée, Oracle Database lui alloue de la mémoire à
partir de la zone de mémoire partagée afin de la stocker dans la zone SQL partagée. La taille
de cette mémoire dépend de la complexité de l'instruction.
Les unités de programme PL/SQL (procédures, fonctions, packages, blocs anonymes et
déclencheurs de base de données) sont traitées quasiment de la même manière que les
instructions SQL individuelles. Oracle Database alloue une zone partagée pour contenir la

Oracle University and Catalyst Business Solutions use only


forme analysée et compilée d'une unité de programme. Une zone privée est allouée pour les
valeurs propres à la session qui exécute l'unité de programme, à savoir les variables locales,
les variables globales et les variables de package (on parle d'instanciation de package), ainsi
que les tampons (buffers) pour l'exécution du code SQL. Si plusieurs utilisateurs exécutent la
même unité de programme, ils utilisent tous la même zone partagée, mais ils gèrent des copies
distinctes de leurs zones SQL privées contenant les valeurs spécifiques à leurs propres
sessions.
Les instructions SQL contenues dans une unité de programme PL/SQL sont traitées de la
même manière que les autres instructions SQL. Bien qu'elles proviennent d'une unité de
programme PL/SQL, elles utilisent une zone partagée contenant leurs représentations
analysées et une zone privée pour chaque session exécutant l'instruction.
Le cache des résultats d'interrogations SQL et le cache des résultats de fonctions PL/SQL sont
de nouvelles structures mémoire fournies avec Oracle Database 11g. Ces caches partagent la
même infrastructure, ils apparaissent dans les mêmes vues dynamiques des performances ($V)
et ils sont administrés à l'aide du même package (fourni avec le produit).
Les résultats des interrogations et des fragments d'interrogation peuvent être placés dans le
cache des résultats d'interrogations SQL. La base de données peut ensuite les utiliser pour
répondre aux nouvelles exécutions de ces interrogations et fragments d'interrogation. En effet,
il est plus rapide d'extraire des résultats du cache de résultats d'interrogations SQL que de
réexécuter une interrogation. La mise en cache des résultats peut donc optimiser
considérablement les performances des interrogations exécutées fréquemment.
Une fonction PL/SQL est parfois utilisée pour renvoyer le résultat d'un calcul dont les
données d'entrée sont une ou plusieurs interrogations paramétrées et exécutées par la fonction.
Dans certains cas, ces interrogations accèdent à des données qui ne sont que très rarement
modifiées par rapport à la fréquence d'appel de la fonction. Vous pouvez inclure dans le texte
source d'une fonction PL/SQL une syntaxe qui demande la mise en mémoire cache de ses
résultats dans le cache de résultats de fonctions PL/SQL et déclenche la purge du cache (dans
un souci d'exactitude) lorsque les tables d'une liste font l'objet d'une opération LMD.

Oracle Database 11g : Administration Workshop I 1 - 16


Allocation et réutilisation de mémoire
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

dans la zone de mémoire partagée


• Le processus serveur examine la zone de mémoire
partagée afin de savoir s'il existe une zone SQL
partagée pour une instruction identique.
• Le processus serveur alloue une zone SQL privée
pour la session.

Oracle University and Catalyst Business Solutions use only


Cache du dictionnaire
Zone SQL
de données
partagée
Processus
serveur
Cache Autre
"library"

Zone de mémoire
partagée

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

Allocation et réutilisation de mémoire dans la zone de mémoire partagée


En règle générale, tout élément est conservé dans la zone de mémoire partagée (zone SQL
partagée ou ligne du dictionnaire) jusqu'à ce qu'il soit transféré sur disque, conformément à un
algorithme LRU (Least Recently Used) modifié. La mémoire allouée à des éléments qui ne
sont pas utilisés régulièrement est libérée pour stocker de nouveaux éléments dans la zone de
mémoire partagée. Un algorithme LRU modifié permet aux éléments de la zone de mémoire
partagée qui sont utilisés par plusieurs sessions de rester en mémoire tant qu'ils sont utiles,
même si le processus qui les a créés prend fin. Cela permet de réduire les surcharges et les
tâches de traitement des instructions SQL dans un système Oracle Database multiutilisateur.
Quand une instruction SQL est soumise à Oracle Database pour exécution, les étapes
d'allocation de mémoire suivantes sont effectuées automatiquement :
1. Oracle Database vérifie dans la zone de mémoire partagée s'il existe déjà une zone SQL
partagée pour une instruction identique. Le cas échéant, cette zone SQL partagée est
utilisée pour l'exécution des prochaines instances de l'instruction. Dans le cas contraire,
Oracle Database en alloue une nouvelle dans la zone de mémoire partagée. Dans les deux
cas, la zone SQL privée de l'utilisateur est associée à la zone SQL partagée qui contient
l'instruction.

Oracle Database 11g : Administration Workshop I 1 - 17


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Allocation et réutilisation de mémoire dans la zone de mémoire partagée (suite)


2. Oracle Database alloue une zone SQL privée pour la session. L'emplacement de cette
zone dépend du type de la connexion établie.
Remarque : Une zone SQL partagée peut être transférée sur disque depuis la zone de
mémoire partagée même si elle correspond à un curseur ouvert qui n'a pas été utilisé pendant
un certain temps. Si le curseur ouvert est utilisé ultérieurement pour exécuter l'instruction,
Oracle Database va de nouveau analyser (parse) l'instruction et lui allouer une nouvelle zone
SQL partagée dans la zone de mémoire partagée.
Oracle Database transfère également une zone SQL partagée depuis la zone de mémoire
partagée dans les cas suivants :

Oracle University and Catalyst Business Solutions use only


• Lorsque le package DBMS_STATS est utilisé pour mettre à jour ou supprimer les
statistiques d'une table, d'un cluster ou d'un index, toutes les zones SQL partagées qui
contiennent des instructions faisant référence à l'objet de schéma analysé sont transférées
sur disque depuis la zone de mémoire partagée. Lorsqu'une instruction qui a été
transférée est à nouveau exécutée, elle est analysée dans une nouvelle zone SQL partagée
pour tenir compte des statistiques en cours de l'objet de schéma.
• Si un objet de schéma est référencé dans une instruction SQL et qu'il est ensuite modifié
(d'une manière ou d'une autre), la zone SQL partagée est invalidée (c'est-à-dire marquée
comme n'étant pas valide) et l'instruction devra être de nouveau analysée lors de sa
prochaine exécution.
• Si vous modifiez le nom global d'une base de données, toutes les informations sont
transférées sur disque depuis la zone de mémoire partagée.
• L'administrateur peut transférer manuellement toutes les informations de la zone de
mémoire partagée pour évaluer les performances (concernant la zone de mémoire
partagée et non le cache de tampons de données) qu'il peut espérer obtenir après un
démarrage d'instance sans arrêt de l'instance en cours. Il utilise à cette fin l'instruction
ALTER SYSTEM FLUSH SHARED_POOL.

Oracle Database 11g : Administration Workshop I 1 - 18


Zone de mémoire LARGE POOL
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Elle fournit des allocations de mémoire de grande taille


pour les éléments suivants :
• Mémoire de session pour le serveur partagé
et l'interface Oracle XA
• Processus serveur d'E/S
• Opérations de sauvegarde et de restauration
d'Oracle Database

Oracle University and Catalyst Business Solutions use only


Cache de
Tampon de Zone de
tampons
journali- mémoire
de la base
sation partagée
de données

Tampon Mémoire
d'E/S disponible

File d'attente File d'attente


de réponses de demandes
Zone de Zone de Zone de
mémoire mémoire mémoire Zone de mémoire
Java Streams LARGE POOL LARGE POOL

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

Zone de mémoire LARGE POOL


L'administrateur de base de données peut configurer une zone de mémoire facultative appelée
LARGE POOL pour allouer des zones de mémoire de grande taille aux éléments suivants :
• Mémoire de session pour le serveur partagé et l'interface Oracle XA (lorsque les
transactions interagissent avec plusieurs bases de données)
• Processus serveur d'E/S
• Opérations de sauvegarde et de restauration d'Oracle Database
En allouant de l'espace mémoire de session à partir de la mémoire LARGE POOL
(configuration avec serveur partagé, Oracle XA ou mémoires tampons d'interrogations en
parallèle), Oracle Database peut réserver la zone de mémoire partagée à la mise en cache des
interrogations SQL partagées. Cela évite la perte de performances causée par la réduction du
cache SQL partagé.
Par ailleurs, la mémoire destinée aux opérations de sauvegarde et de restauration d'Oracle
Database, aux processus serveur d'E/S et aux tampons d'exécution en parallèle est allouée par
tampons de quelques centaines de kilo-octets (Ko). La zone de mémoire LARGE POOL est
plus apte que la zone de mémoire partagée à répondre à des besoins aussi importants.
La zone de mémoire LARGE POOL n'a pas de liste LRU (Least Recently Used),
contrairement à l'espace réservé dans la zone de mémoire partagée qui utilise la même liste
LRU que les autres zones allouées dans la zone de mémoire partagée.

Oracle Database 11g : Administration Workshop I 1 - 19


Zone de mémoire Java et zone
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de mémoire Streams
• La zone de mémoire Java du serveur est utilisée pour
l'ensemble du code Java et des données propres à la
session dans la JVM (Java Virtual Machine).
• La zone de mémoire Streams est utilisée exclusivement
par Oracle Streams.
– Stockage des messages de la file d'attente tampon
– Fourniture de mémoire pour les processus Oracle

Oracle University and Catalyst Business Solutions use only


Streams

Zone de Zone de
mémoire mémoire
Java Streams

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

Zone de mémoire Java et zone de mémoire Streams


La zone de mémoire Java du serveur est utilisée pour l'ensemble du code Java et des données
propres à la session dans la JVM (Java Virtual Machine). Elle est utilisée de différentes
manières, en fonction du mode d'exécution d'Oracle Database.
Les statistiques de la fonction de conseil Java Pool Advisor fournissent des informations sur la
taille de la mémoire cache "library" utilisée pour Java et prédisent l'impact des modifications
de la taille de la zone Java sur le taux d'analyse. La fonction de conseil est activée en interne
quand statistics_level a pour valeur TYPICAL ou un niveau supérieur. Ces
statistiques sont réinitialisées quand la fonction de conseil est désactivée.
La zone de mémoire Streams est utilisée par Oracle Streams exclusivement. La zone de
mémoire Streams contient les messages en file d'attente tampon et fournit la mémoire
nécessaire aux processus Oracle Streams de capture et d'application des modifications.
La taille de la zone de mémoire Streams est initialement égale à zéro (sauf configuration
spécifique). Elle augmente dynamiquement en fonction de vos besoins quand Oracle Streams
est utilisé.
Remarque : Ce cours ne traite pas en détail de la programmation Java ni d'Oracle Streams.

Oracle Database 11g : Administration Workshop I 1 - 20


Architecture des processus Structures de base
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de données
- Mémoire
Æ Processus
• Processus utilisateur - Stockage

– Il démarre quand un utilisateur de base de données ou un


processus en mode batch se connecte à Oracle Database
• Processus de base de données
– Processus serveur : Il se connecte à l'instance Oracle
et démarre lorsqu'un utilisateur établit une session
– Processus en arrière-plan : Ils sont démarrés en même temps
qu'une instance Oracle

Oracle University and Catalyst Business Solutions use only


Instance

SGA Zone de mémoire


partagée

Cache de Tampon Cache "library"


tampons de
de la base journali-
PGA Cache du
de données sation dictionnaire
de données
Processus Processus
utilisateur serveur Processus en arrière-plan
DBWn CKPT LGWR SMON PMON ARCn RECO Autres

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

Architecture des processus


Les processus d'un système Oracle Database peuvent être classés en deux grandes catégories :
• Processus utilisateur qui exécutent le code des applications ou des outils Oracle
• Processus Oracle Database qui exécutent le code du serveur de base de données Oracle
(y compris les processus serveur et les processus en arrière-plan)
Quand un utilisateur exécute une application ou un outil Oracle (SQL*Plus, par exemple),
Oracle Database crée un processus utilisateur. Oracle Database crée également un processus
serveur pour exécuter les commandes émises par le processus utilisateur. En outre, le serveur
Oracle crée, pour une instance donnée, 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,
afin de gérer les structures mémoire, d'effectuer des opérations d'E/S asynchrones pour écrire
des données sur le disque, et de réaliser les autres tâches requises.
La structure des processus varie d'une configuration Oracle Database à une autre. Elle dépend
du système d'exploitation et des options choisies pour Oracle Database. Le code associé aux
utilisateurs connectés peut être configuré en tant que serveur dédié ou serveur partagé.
• Serveur dédié : Pour chaque utilisateur, l'application de base de données est exécutée
par un processus utilisateur qui est desservi par un processus serveur dédié exécutant le
code serveur de la base de données Oracle.
• Serveur partagé : Chaque connexion ne nécessite pas un processus serveur dédié. Un
processus répartiteur dirige plusieurs demandes de session réseau entrantes vers un pool
de processus serveur partagés. Un processus serveur partagé peut servir n'importe quelle
demande client.

Oracle Database 11g : Administration Workshop I 1 - 21


Structures des processus
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Serveur Serveur Serveur Serveur Serveur

n processus
serveur

SGA
Zone de mémoire
partagée
Cache de
Tampon de
tampons Cache "library"
journali- SGA

Oracle University and Catalyst Business Solutions use only


de la base
sation
de données Cache du
dictionnaire
de données

CKPT RECO PMON SMON DBWn LGWR ARCn Autres

Processus
Oracle en
arrière-plan

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

Structures des processus


Processus serveur
Oracle Database crée des processus serveur pour gérer les demandes des processus utilisateur
connectés à l'instance. Dans certains cas, lorsque l'application et Oracle Database s'exécutent
sur le même ordinateur, il est possible de combiner le processus utilisateur et le processus
serveur correspondant en un processus unique, et ainsi réduire la charge du système.
Toutefois, lorsque l'application et Oracle Database s'exécutent sur différents ordinateurs, un
processus utilisateur communique toujours avec Oracle Database via un processus serveur
distinct.
Les processus serveur créés pour le compte de chaque application utilisateur peuvent effectuer
une ou plusieurs des tâches suivantes :
• Analyse (parse) et exécution des instructions SQL émises via l'application
• Lecture des blocs de données nécessaires à partir des fichiers de données sur disque vers
les tampons de base de données partagés de la mémoire SGA (si ces blocs ne figurent pas
déjà dans la mémoire SGA)
• Renvoi des résultats de telle sorte que l'application puisse traiter les informations
Processus en arrière-plan
Pour optimiser les performances et prendre en charge un grand nombre d'utilisateurs, un
système Oracle Database multiprocessus utilise des processus Oracle Database
supplémentaires appelés processus en arrière-plan. Une instance Oracle Database peut
comprendre un grand nombre de processus en arrière-plan.

Oracle Database 11g : Administration Workshop I 1 - 22


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Structures des processus (suite)


Les processus en arrière-plan les plus courants dans les environnements qui n'utilisent ni RAC
(Real Application Clusters), ni ASM (Automatic Storage Management) sont les suivants :
• DBWn (Database Writer)
• LGWR (Log Writer)
• CKPT (processus de point de reprise)
• SMON (System Monitor)
• PMON (Process Monitor)
• RECO (Recoverer)
• Processus de gestion de file d'attente des travaux
• ARCn (processus d'archivage)

Oracle University and Catalyst Business Solutions use only


• QMNn (processus de surveillance de file d'attente)
D'autres processus en arrière-plan sont disponibles pour les configurations plus avancées
(RAC, par exemple). Pour plus d'informations sur les processus en arrière-plan, consultez la
vue V$BGPROCESS.
Dans de nombreux systèmes d'exploitation, les processus en arrière-plan sont créés
automatiquement lors du démarrage d'une instance.

Oracle Database 11g : Administration Workshop I 1 - 23


Processus DBWn (Database Writer)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Il écrit sur le disque les tampons qui ont été modifiés


("dirty") dans le cache de tampons de la base de données :
• de manière asynchrone pendant l'exécution d'autres
traitements
• de manière périodique pour faire avancer le point
de reprise

Oracle University and Catalyst Business Solutions use only


DBWn

Cache de tampons de la Processus Database Fichiers de données


base de données Writer

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

Processus DBWn (Database Writer)


Les processus Database Writer écrivent le contenu des tampons dans des fichiers de données.
Ils sont chargés de transférer sur disque le contenu des tampons modifiés ("dirty") du cache de
tampons (buffer cache) de la base de données. Un seul processus Database Writer (DBW0) est
suffisant pour la plupart des systèmes, mais vous pouvez en configurer d'autres (DBW1 à
DBW9 et DBWa à DBWj) pour optimiser les performances d'écriture dans un système qui
modifie les données de manière intensive. Ces processus DBWn supplémentaires ne sont pas
nécessaires sur les systèmes dotés d'un seul processeur.
Quand un tampon du cache de tampons de la base de données est modifié, il est désigné
comme "dirty" et ajouté à la liste LRUW (LRU write) de tampons "dirty", laquelle est triée
par numéro SCN (System Change Number). L'ordre des tampons dans la liste LRUW
correspond donc à l'ordre dans lequel les informations de journalisation (redo) sont écrites
dans les journaux pour ces tampons modifiés. Lorsque le nombre de tampons disponibles dans
le cache de tampons est inférieur à un seuil interne (au point que les processus serveur ont du
mal à obtenir des tampons), le processus DBWn écrit les tampons "dirty" dans les fichiers de
données en respectant leur ordre dans la liste LRUW, c'est-à-dire leur ordre de modification.

Oracle Database 11g : Administration Workshop I 1 - 24


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Processus DBWn (Database Writer) (suite)


La mémoire SGA contient une structure mémoire qui inclut l'adresse RBA (Redo Block Address)
indiquant la position (dans le flux de données de journalisation) à partir de laquelle la récupération
doit commencer en cas d'échec de l'instance. Cette structure joue le rôle de pointeur dans les
informations de journalisation (redo). Elle est consignée dans le fichier de contrôle par le processus
CKPT toutes les trois secondes. Comme le processus DBWn écrit les tampons "dirty" dans l'ordre
des numéros SCN (System Change Number), il fait avancer le pointeur en mémoire SGA à chaque
fois qu'il écrit des tampons de la liste LRUW ; de sorte que si une récupération d'instance est
nécessaire, elle lira les informations de journalisation à partir d'un emplacement approximativement
correct, évitant ainsi des E/S inutiles. On parle de points de reprise incrémentiels.
Remarque : Il existe d'autres cas dans lesquels le processus DBWn peut effectuer des opérations

Oracle University and Catalyst Business Solutions use only


d'écriture (par exemple, des tablespaces deviennent accessibles en lecture seule ou sont mis hors
ligne (offline)). Dans de tels cas, aucune gestion de point de reprise (checkpoint) incrémentiel n'a
lieu parce que les tampons (buffers) "dirty" appartenant aux fichiers de données correspondants sont
écrits dans la base de données sans tenir compte du numéro SCN.
L'algorithme LRU (Least Recently Used) laisse dans le cache de tampons (buffer cache) les blocs
qui font l'objet d'accès fréquents. Il est donc improbable que les données des tampons soient
sollicitées peu après leur écriture sur disque.
Le paramètre d'initialisation DB_WRITER_PROCESSES précise le nombre de processus DBWn.
Le nombre maximal de processus DBWn est 20. S'il n'est pas précisé par l'utilisateur au démarrage,
Oracle Database détermine la valeur de DB_WRITER_PROCESSES en fonction du nombre de
CPU et de groupes de processeurs.
Le processus DBWn écrit les tampons "dirty" sur disque dans les cas suivants :
• Quand un processus serveur ne trouve pas de tampon réutilisable "clean" après avoir passé en
revue un nombre seuil de tampons, il demande au processus DBWn de transférer des tampons
sur disque. DBWn écrit les tampons "dirty" de manière asynchrone tout en effectuant d'autres
traitements.
• DBWn transfère périodiquement sur disque les données des tampons pour faire avancer le
point de reprise (checkpoint) qui détermine l'emplacement de départ dans le fichier de
journalisation (redo log) pour une récupération d'instance. Cet emplacement dans le journal est
déterminé par le plus ancien tampon "dirty" du cache de tampons.
Dans tous les cas, DBWn effectue des opérations d'écriture multibloc pour plus d'efficacité. Le
nombre de blocs écrits par ce type d'opération est variable d'un système d'exploitation à un autre.

Oracle Database 11g : Administration Workshop I 1 - 25


Processus LGWR (LogWriter)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il écrit le tampon de journalisation dans un fichier de


journalisation sur le disque
• Les opérations d'écriture ont lieu dans les cas suivants :
– Quand un processus utilisateur valide une transaction
– Quand un tiers du tampon de journalisation est plein
– Avant qu'un processus DBWn écrive des tampons
modifiés sur le disque

Oracle University and Catalyst Business Solutions use only


LGWR

Tampon de Processus Fichiers de


journalisation LogWriter journalisation

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

Processus LGWR (LogWriter)


Le processus LogWriter (LGWR) est chargé de gérer la mémoire tampon de journalisation
(redo log buffer) en écrivant ses entrées dans un fichier de journalisation (fichier redo log) sur
le disque. LGWR écrit toutes les entrées de journalisation qui ont été copiées dans la mémoire
tampon (buffer) depuis la dernière opération d'écriture.
Le tampon de journalisation est réutilisable. Une fois que le processus LGWR a écrit des
entrées de journalisation du tampon vers un fichier de journalisation sur le disque, les
processus serveur peuvent copier de nouvelles entrées dans le tampon. Normalement, la
vitesse d'écriture du processus LGWR est suffisante pour que le tampon comporte toujours
suffisamment d'espace pour de nouvelles entrées, même lorsque le fichier de journalisation
fait l'objet de nombreux accès. LGWR écrit sur le disque une seule portion contiguë du
tampon.
LGWR effectue une opération d'écriture :
• quand un processus utilisateur LogWriter valide (commit) une transaction,
• quand un tiers du tampon de journalisation est plein,
• avant qu'un processus DBWn écrive des tampons modifiés sur le disque (si nécessaire).

Oracle Database 11g : Administration Workshop I 1 - 26


Processus LGWR (LogWriter) (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Pour que le processus DBWn puisse écrire un tampon modifié ("dirty"), il faut que tous les
enregistrements de journalisation associés aux modifications du tampon soient écrits sur le
disque (protocole d'écriture anticipée). Si le processus DBWn détecte des enregistrements de
journalisation qui n'ont pas encore été écrits sur le disque, il le signale au processus LGWR et
attend que ce dernier ait terminé l'opération d'écriture pour vider les tampons de données.
LGWR écrit dans le groupe de journaux en cours. Si l'un des fichiers du groupe est défectueux
ou indisponible, LGWR continue d'écrire dans d'autres fichiers du groupe et consigne une
erreur dans le fichier trace LGWR ainsi que dans le fichier d'alertes système. Si tous les
fichiers du groupe sont endommagés, ou si le groupe n'est pas disponible parce qu'il n'a pas
été archivé, le fonctionnement de LGWR est interrompu.
Quand un utilisateur lance une instruction COMMIT, LGWR place un enregistrement de

Oracle University and Catalyst Business Solutions use only


validation (commit) dans le tampon de journalisation (redo log buffer) et l'écrit
immédiatement sur le disque avec les entrées de journalisation de la transaction. L'écriture des
modifications apportées aux blocs de données est différée jusqu'au moment opportun. On
parle de mécanisme de validation rapide. L'écriture atomique de l'entrée de journalisation
contenant l'enregistrement de validation de la transaction est le seul événement qui détermine
si la transaction a été validée. Oracle Database renvoie un code de succès pour la transaction
en cours de validation même si les tampons de données n'ont pas encore été écrits sur le
disque.
S'il a besoin de plus d'espace de mémoire tampon, le processus LGWR écrit parfois les
entrées de journalisation avant que la transaction ne soit validée. Ces entrées ne deviennent
permanentes que si la transaction est validée. Quand un utilisateur valide une transaction,
celle-ci reçoit un numéro SCN (System Change Number) qui est enregistré par Oracle
Database avec les entrées de journalisation associées à la transaction dans le fichier de
journalisation (redo log). Les numéros SCN sont enregistrés dans le fichier de journalisation
pour permettre la synchronisation des opérations de récupération dans les environnements
Real Application Clusters et les bases de données distribuées.
Dans les périodes de forte activité, le processus LGWR peut écrire dans le fichier de
journalisation via des validations groupées. Supposons, par exemple, qu'un utilisateur valide
une transaction. LGWR doit écrire les entrées de journalisation associées à la transaction sur
le disque. Pendant ce temps, d'autres utilisateurs lancent des instructions COMMIT. LGWR ne
peut pas consigner ces transactions dans le fichier de journalisation tant qu'il n'a pas terminé
l'opération d'écriture précédente. Une fois que les entrées relatives à la première transaction
ont été écrites dans le fichier de journalisation, la liste complète des entrées relatives aux
transactions en attente (pas encore validées) peut être écrite sur le disque en une seule
opération, ce qui représente moins d'E/S qu'avec une gestion individuelle des transactions. De
cette façon, Oracle Database réduit les E/S disque et augmente les performances du processus
LGWR. Si les demandes de validation se succèdent à un rythme élevé, chaque opération
d'écriture (par LGWR) à partir du tampon de journalisation (redo log buffer) peut contenir
plusieurs enregistrements de validation.

Oracle Database 11g : Administration Workshop I 1 - 27


Processus CKPT (Checkpoint)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il enregistre les informations de point de reprise


– dans le fichier de contrôle
– dans l'en-tête de chaque fichier de données

Oracle University and Catalyst Business Solutions use only


CKPT Fichier de
contrôle

Processus
CKPT

Fichiers de
données

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

Processus CKPT (Checkpoint)


Un point de reprise (checkpoint) est une structure de données qui définit un numéro SCN
(System Change Number) dans le thread de journalisation d'une base de données. Les points
de reprise sont enregistrés dans le fichier de contrôle et dans chaque en-tête de fichier de
données. Ils sont essentiels pour le processus de récupération.
Quand un point de reprise est créé, Oracle Database doit mettre à jour les en-têtes de tous les
fichiers de données pour actualiser les informations correspondantes. Cette opération est
effectuée par le processus CKPT. Le processus CKPT n'écrit pas les blocs sur le disque ; c'est
le rôle du processus DBWn. Les numéros SCN enregistrés dans les en-têtes de fichier
garantissent que toutes les modifications apportées aux blocs de base de données avant un
numéro SCN spécifique ont été écrites sur le disque.
Les statistiques DBWR affichées par le moniteur SYSTEM_STATISTICS d'Oracle
Enterprise Manager indiquent le nombre de demandes de point de reprise qui ont été traitées.

Oracle Database 11g : Administration Workshop I 1 - 28


Processus SMON (System Monitor)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il effectue les opérations de récupération au démarrage


de l'instance
• Il nettoie les segments temporaires inutilisés

Oracle University and Catalyst Business Solutions use only


Instance
SMON

Processus SMON

Segment
temporaire

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

Processus SMON (System Monitor)


Si nécessaire, le processus SMON (System Monitor) se charge d'effectuer la récupération des
données au démarrage de l'instance. Il assure également le nettoyage des segments
temporaires qui ne sont plus utilisés. Si des transactions terminées ont été ignorées pendant la
récupération d'instance à cause d'erreurs liées aux fichiers ou d'erreurs de mise hors ligne
(offline), le processus SMON les récupère quand le tablespace ou le fichier correspondant est
remis en ligne (online).
SMON vérifie régulièrement s'il a besoin d'intervenir. Les autres processus peuvent appeler
SMON s'ils en détectent la nécessité.

Oracle Database 11g : Administration Workshop I 1 - 29


Processus PMON (Process Monitor)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il assure la récupération des processus utilisateur qui


ont échoué
– Nettoyage du cache de tampons de la base de données
– Libération des ressources utilisées par le processus
utilisateur en échec
• Il surveille les sessions pour détecter tout dépassement
du délai d'inactivité
• Il enregistre dynamiquement les services de base

Oracle University and Catalyst Business Solutions use only


de données dans les processus d'écoute

PMON Utilisateur
Processus utilisateur
en échec
Processus PMON
Cache de tampons de
la base de données

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

Processus PMON (Process Monitor)


Le processus PMON assure la récupération des processus utilisateur qui ont échoué. Il est
chargé de nettoyer le cache de tampons (buffer cache) de la base de données et de libérer les
ressources bloquées par les processus utilisateur en échec. Par exemple, il réinitialise le statut
de la table des transactions actives, libère les verrous externes (locks) et supprime l'ID du
processus en échec de la liste des processus actifs.
PMON vérifie périodiquement le statut des processus répartiteur et des processus serveur, et
les redémarre s'ils se sont arrêtés (sauf ceux qui ont été arrêtés volontairement par Oracle
Database). PMON utilise, par ailleurs, le processus d'écoute (listener) réseau pour enregistrer
les informations relatives à l'instance et aux processus répartiteur.
A l'instar du processus SMON, PMON vérifie régulièrement s'il doit intervenir. En outre, un
autre processus peut l'appeler s'il en détecte la nécessité.

Oracle Database 11g : Administration Workshop I 1 - 30


Processus RECO (Recoverer)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il intervient dans une configuration de base de données


distribuée
• Il se connecte automatiquement aux autres bases
impliquées dans des transactions distribuées équivoques
• Il résout automatiquement toutes les transactions
équivoques
• Il supprime toutes les lignes correspondant à des

Oracle University and Catalyst Business Solutions use only


transactions équivoques

RECO

Processus RECO dans Transaction équivoque


la BdD A dans la BdD B

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

Processus RECO (Recoverer)


RECO (Recoverer) est un processus en arrière-plan qui est utilisé dans une configuration de
base de données distribuée pour résoudre automatiquement les échecs impliquant des
transactions distribuées. Le processus RECO d'une instance se connecte automatiquement aux
autres bases de données impliquées dans une transaction distribuée équivoque. Quand le
processus RECO rétablit la connexion entre les serveurs de base de données concernés, il
résout automatiquement les transactions équivoques et supprime de chaque table de
transactions en attente les lignes correspondant aux transactions équivoques résolues.
Si le processus RECO ne parvient pas à se connecter à un serveur distant, il effectue une
nouvelle tentative au bout d'un certain temps. Le délai d'attente avant reconnexion croît de
manière exponentielle.

Oracle Database 11g : Administration Workshop I 1 - 31


Processus ARCn (Archiver)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il copie les fichiers de journalisation sur un périphérique


de stockage désigné après un changement de fichier
de journalisation
• Il peut collecter des données de journalisation
sur les transactions et les transmettre
à des destinations de secours

Oracle University and Catalyst Business Solutions use only


ARCn

Processus d'archivage Copies des fichiers Destination de l'archive


de journalisation
archivés

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

Processus ARCn (Archiver)


Les processus d'archivage ARCn copient les fichiers de journalisation (fichiers redo log) sur
un périphérique de stockage désigné après un changement de fichier de journalisation. Ils
interviennent uniquement lorsque la base de données est en mode ARCHIVELOG et que
l'archivage automatique est activé.
Si vous prévoyez une charge d'archivage importante (un chargement de données en masse,
par exemple), vous pouvez augmenter le nombre maximal de processus d'archivage via le
paramètre d'initialisation LOG_ARCHIVE_MAX_PROCESSES. L'instruction ALTER
SYSTEM permet de modifier la valeur de ce paramètre de façon dynamique pour augmenter
ou diminuer le nombre de processus ARCn.

Oracle Database 11g : Administration Workshop I 1 - 32


Autres processus
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• MMON : Tâches en arrière-plan visant à simplifier


la gestion du système
• MMNL : Tâches fréquentes et légères visant à simplifier
la gestion du système
• MMAN : Tâches de gestion automatique de la mémoire
• CJQ0 : Tâches utilisateur pour les traitements par lots

Oracle University and Catalyst Business Solutions use only


• QMNx : Surveillance des files d'attente de messages
Oracle Streams Advanced Queuing

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

Autres processus
Plusieurs autres processus en arrière-plan peuvent s'exécuter en même temps.
Le processus MMON (Manageability Monitor) exécute diverses tâches de gestion en
arrière-plan :
• Génération d'alertes quand une mesure de performances dépasse le seuil défini
• Capture de clichés (snapshots) via le lancement dynamique de processus supplémentaires
(esclaves MMON)
• Capture de statistiques pour les objets SQL modifiés récemment
Le processus MMNL (Lightweight Manageability Monitor) effectue des tâches fréquentes
visant à simplifier la gestion, notamment des calculs de mesures et des captures de données
historiques sur les sessions.
Le processus MMAN (Memory Manager) est utilisé pour les tâches de base de données
internes. Il gère automatiquement la mémoire pour permettre d'allouer dynamiquement
l'espace mémoire nécessaire, et ainsi éviter les cas de saturation de mémoire ou de mauvaises
performances du cache de tampons (buffer cache).

Oracle Database 11g : Administration Workshop I 1 - 33


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Autres processus (suite)


Le processus RBAL (Rebalance) coordonne l'activité de rééquilibrage entre les groupes de
disques dans une instance ASM (Automatic Storage Management). Il effectue une
ouverture globale sur les disques ASM. Les mouvements de rééquilibrage réels entre les
extents de données (ensembles de blocs contigus) dans l'instance ASM sont assurés par les
processus ORBn. Plusieurs processus ORBn peuvent opérer en même temps. Ils sont
nommés ORB0, ORB1, et ainsi de suite.
Le processus ASMB (Automatic Storage Management) est présent dans une instance de
base de données qui utilise un groupe de disques ASM. Il communique avec l'instance
ASM.

Oracle University and Catalyst Business Solutions use only


Les processus de gestion des files d'attente de travaux sont utilisés pour les traitements par
lots. Ils exécutent les travaux utilisateur et peuvent être consultés en tant que services de
planification qui programment les travaux sous la forme d'instructions ou de procédures
PL/SQL sur une instance Oracle Database. Le processus de coordination CJQ0 sélectionne
périodiquement les travaux à exécuter dans la table système JOB$. Pour exécuter ces
travaux, CJQ0 démarre dynamiquement des processus de file d'attente de travaux esclaves
(J000 à J999). Chaque processus de file d'attente de travaux exécute un des travaux
sélectionnés par CJQ0. Un seul travail est exécuté à la fois.
Le processus QMN (Queue Monitor) est un processus en arrière-plan facultatif destiné à
Oracle Streams Advanced Queuing pour surveiller les files d'attente de messages. Vous
pouvez configurer au maximum 10 processus de surveillance de file d'attente QMNx.

Oracle Database 11g : Administration Workshop I 1 - 34


Processus serveur et cache
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de tampons de base de données

Mémoires tampon :
SGA
• Pinned
Processus
serveur
Cache • Clean
de tampons
de la base • Free/unused
de données
• Dirty

Oracle University and Catalyst Business Solutions use only


DBWn

Processus
Fichiers de Database
données Writer

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

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


Lors du traitement d'une interrogation, le processus serveur Oracle recherche les blocs dont il
a besoin dans le cache de tampons (buffer cache) de la base de données. S'il ne trouve pas le
bloc recherché dans le cache de tampons, le processus serveur va le lire dans le fichier de
données, puis en placer une copie dans le cache de tampons de la base de données. Les
demandes suivantes concernant le même bloc pourront alors trouver ce dernier en mémoire et
ne nécessiteront pas de lectures physiques. Les tampons du cache peuvent présenter l'un des
quatre états suivants :
• Pinned (tampon faisant l'objet d'opérations pin) : Plusieurs sessions ne peuvent pas
écrire simultanément dans le même bloc. Chaque session attend de pouvoir accéder au
bloc.
• Clean (propre) : La mémoire tampon fait à présent l'objet d'opérations unpin. Elle 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.
• Free/Unused (disponible/inutilisé) : La mémoire tampon est vide car l'instance vient
juste de démarrer. Cet état est très semblable à l'état 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 disque via le processus DBWn avant de
pouvoir être retiré de la mémoire.

Oracle Database 11g : Administration Workshop I 1 - 35


Architecture de stockage Structures de base
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de données

de la basede données - Mémoire


- Processus
Æ Stockage

Fichiers de Fichiers de données Fichiers de


contrôle journalisation en ligne

Oracle University and Catalyst Business Solutions use only


Fichier de Fichiers de Fichiers de
paramètres sauvegarde journalisation
archivés

Fichier de mots de passe Fichiers trace et fichier d'alertes

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

Architecture de stockage de la base de données


Une base de données Oracle est composée des fichiers suivants :
• Fichiers de contrôle : Ils 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 : Ils contiennent les données utilisateur ou les données des
applications, ainsi que des métadonnées et le dictionnaire de données.
• Fichiers de journalisation en ligne (online redo log) : Ils permettent la récupération
d'une instance de la base de données. Si le serveur de 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 à l'aide des informations contenues dans ces fichiers de journalisation.
Les autres fichiers suivants sont essentiels au bon fonctionnement de la base de données :
• Fichier de paramètres : Il est utilisé pour définir la façon dont l'instance est configurée
au démarrage.
• Fichier de mots de passe : Il permet aux utilisateurs sysdba, sysoper et sysasm
de se connecter à distance à la base de données et d'effectuer des tâches d'administration.
• Fichiers de sauvegarde : Ils sont 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.

Oracle Database 11g : Administration Workshop I 1 - 36


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Architecture de stockage de la base de données (suite)


• Fichiers de journalisation archivés : Ils contiennent un historique des modifications de
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.

Oracle University and Catalyst Business Solutions use only


• Fichier d'alertes : Il contient des entrées de trace spéciales. Le fichier d'alertes d'une
base de données est un journal chronologique des messages et des erreurs. Il existe un
fichier d'alertes pour chaque instance. Oracle recommande de consulter régulièrement ce
fichier.
Remarque : Les fichiers de paramètres, de mots de passe, d'alertes et de trace sont traités
dans d'autres chapitres.

Oracle Database 11g : Administration Workshop I 1 - 37


Structures de base de données logiques
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

et physiques
Structure logique Structure physique

Base
de données

Fichier
Schéma Tablespace
de données

Oracle University and Catalyst Business Solutions use only


Segment

Extent

Bloc du
Bloc de
système
données Oracle
d'exploitation

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

Structures de base de données logiques et physiques


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 d'une 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.
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.

Oracle Database 11g : Administration Workshop I 1 - 38


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Structures de base de données logiques et physiques (suite)


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

Oracle University and Catalyst Business Solutions use only


(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 un ensemble d'extents alloués à une
structure logique donnée. Il existe différents types de segment :
• Segments de données : Chaque table qui ne fait pas partie d'un cluster et n'est pas
organisée en index comprend un segment de données, à l'exception des tables internes,
des tables temporaires globales et des tables partitionnées qui comprennent chacune un
ou plusieurs segments. Toutes les 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 également 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 toutes ses
données sont stockées. Dans le cas d'un index partitionné, chaque partition est dotée
d'un segment d'index.
• Segments d'annulation : Un tablespace UNDO est créé pour chaque instance de base
de données. Ce tablespace contient un grand nombre de segments qui conservent
temporairement 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 à l'échelle 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, il est possible que les extents d'un segment ne soient
pas contigus sur le disque.

Oracle Database 11g : Administration Workshop I 1 - 39


Tablespaces et fichiers de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Les tablespaces sont constitués d'un ou de plusieurs


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

Oracle University and Catalyst Business Solutions use only


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

Tablespace USERS

Copyright © 2007, 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 d'un tablespace.
Remarque : Vous pouvez également créer des tablespaces bigfile comprenant un seul fichier
(de très grande taille en général). La taille de ce fichier n'est limitée que par l'architecture des
row ID (adresses de ligne). La taille maximale est égale à la taille des blocs du tablespace
multipliée par 236, soit 128 To pour des blocs de 32 Ko. Les tablespaces smallfile
traditionnels (utilisés par défaut) contiennent généralement 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 Oracle Database Administrator's Guide.

Oracle Database 11g : Administration Workshop I 1 - 40


Tablespaces SYSTEM et SYSAUX
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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 auxiliaire SYSAUX sert aux composants de

Oracle University and Catalyst Business Solutions use only


base de données supplémentaires (tels que le référentiel
Enterprise Manager).

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

Tablespaces SYSTEM et SYSAUX


Chaque base de données Oracle doit contenir un tablespace SYSTEM et un tablespace
SYSAUX, tous les deux étant créés automatiquement en même temps que la base. 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 ("online") lorsque la base de données est ouverte. Il stocke les
tables qui prennent en charge les principales fonctionnalités 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.
Remarque : Il est possible de mettre le tablespace SYSAUX hors ligne ("offline") à des fins
de récupération, mais cela est impossible pour le tablespace SYSTEM. Aucun de ces deux
tablespaces ne peut être configuré pour un accès en lecture seule.

Oracle Database 11g : Administration Workshop I 1 - 41


Segments, extents et blocs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Les segments existent dans un tablespace.


• Les segments sont des ensembles d'extents.
• Les extents sont des ensembles de blocs de données
contigus.
• Les blocs de données sont mis en correspondance avec
les blocs du disque.

Oracle University and Catalyst Business Solutions use only


Segment Extents Blocs de Blocs du
données disque

Copyright © 2007, 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 écritures sont aléatoires, vous aurez peut-être intérêt à 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 elle ne doit être que rarement (voire jamais)
utilisée.
Les tablespaces peuvent comprendre des blocs de taille non standard. Pour plus
d'informations, reportez-vous au manuel Oracle Database Administrator's Guide.

Oracle Database 11g : Administration Workshop I 1 - 42


Architecture de la base de données :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Récapitulatif des composants structurels


• Structures mémoire :
– Mémoire SGA (System Global Area) : cache de tampons
(buffer cache) de la base de données, tampon de
journalisation (redo buffer) et zones de mémoire diverses
– Mémoire PGA (Program Global Area)
• Structures de processus :
– Processus utilisateur et processus serveur

Oracle University and Catalyst Business Solutions use only


– Processus en arrière-plan : SMON, PMON, DBWn, CKPT,
LGWR, ARCn, etc.
• Structures de stockage :
– Logiques : base de données, schéma, tablespace,
segment, extent et bloc Oracle
– Physiques : fichiers de données, fichiers de contrôle et
fichiers de journalisation (fichiers redo log)

Copyright © 2007, 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 trouverez des informations plus détaillées dans les chapitres suivants.

Oracle Database 11g : Administration Workshop I 1 - 43


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• énumérer les principaux composants de l'architecture
de la base de données Oracle
• décrire les structures mémoire
• décrire les processus en arrière-plan
• définir la relation entre les structures de stockage

Oracle University and Catalyst Business Solutions use only


logiques et physiques

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

Oracle Database 11g : Administration Workshop I 1 - 44


Exercice 1 : Présentation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Cet exercice consiste à répondre sur papier à des


questions concernant les sujets suivants :
• Architecture de la base de données
• Mémoire
• Processus
• Structures de fichiers

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 1 - 45


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


de la base de données
Préparer l'environnement

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• expliquer votre rôle en tant qu'administrateur de base
de données (DBA) et décrire vos outils et vos tâches
• planifier une installation d'Oracle Database
• utiliser l'architecture OFA
(Optimal Flexible Architecture)

Oracle University and Catalyst Business Solutions use only


• installer le logiciel Oracle à l'aide
d'Oracle Universal Installer (OUI)

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

Oracle Database 11g : Administration Workshop I 2 - 2


Tâches d'un administrateur de base
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


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. Contrôler les performances de la base
de données

Copyright © 2007, 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. Pour cela,
vous pouvez démarrer la base de données, la sauvegarder régulièrement et contrôler 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 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

Oracle Database 11g : Administration Workshop I 2 - 3


Outils utilisés pour administrer
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

une base de données Oracle

• Oracle Universal Installer


• Database Configuration Assistant
• Database Upgrade Assistant
• Oracle Net Manager
• Oracle Enterprise Manager

Oracle University and Catalyst Business Solutions use only


• SQL*Plus
• Recovery Manager
• Oracle Secure Backup
• Data Pump
• SQL*Loader

Copyright © 2007, 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) installe le logiciel Oracle et ses options. Il peut lancer
automatiquement Database Configuration Assistant pour créer une base de données.
• Database Configuration Assistant (DBCA) crée une base de données à partir de
modèles fournis par Oracle, ce qui vous permet de copier une base de données
préconfigurée. (Vous pouvez également créer vos propres modèles et votre propre base
de données.)
• Database Upgrade Assistant (DBUA) vous guide tout au long de la mise à niveau de la
base de données existante vers une nouvelle version Oracle.
• Oracle Net Manager permet de configurer la connectivité réseau des bases de données
et applications Oracle.

Oracle Database 11g : Administration Workshop I 2 - 4


Outils utilisés pour administrer une base de données Oracle (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les outils suivants vous permettent de gérer l'instance et la base de données Oracle :
• Oracle Enterprise Manager (EM) associe une console graphique, des agents, des
services communs et des outils, fournissant 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 gérer 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 avec les autres composants Oracle utilisés pour
administrer la base de données (Recovery Manager et Scheduler, par exemple).
Les principaux outils Enterprise Manager utilisés pour administrer une base de données
Oracle sont les suivants :

Oracle University and Catalyst Business Solutions use only


- Enterprise Manager Database Console pour administrer une seule base de
données
- Enterprise Manager Grid Control pour administrer simultanément plusieurs bases
de données
• SQL*Plus est une interface de ligne de commande standard permettant de gérer la base
de données.
• Recovery Manager (RMAN) est une solution Oracle complète pour les opérations de
sauvegarde, de restauration et de récupération de l'ensemble de la base de données ou de
fichiers spécifiques de la base.
• Oracle Secure Backup permet de gérer les sauvegardes sur bande du système Oracle.
Cet outil fournit notamment les fonctionnalités suivantes :
- Protection de la base de données Oracle sur bande grâce à l'intégration avec
Recovery Manager
- Prise en charge transparente d'Oracle Real Application Clusters (RAC)
- 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 permet le transfert à grande vitesse des données entre deux bases (par
exemple, vous pouvez avoir besoin d'exporter une table et de l'importer dans une autre
base).
• SQL*Loader permet de charger les données d'un fichier externe dans une base de
données Oracle. C'est l'un des utilitaires Oracle que vous pouvez utiliser pour charger des
données dans des tables de base de données.
• Outils en mode ligne de commande :
- Pour administrer Enterprise Manager :
emctl start | status | set | stop dbconsole
- Pour administrer le processus d'écoute (listener) :
lsnrctl help | start | status | stop dbconsole

Oracle Database 11g : Administration Workshop I 2 - 5


Installation : Configuration système requise
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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
– Entre 1,5 Go et 3,5 Go pour le logiciel Oracle
– 1,2 Go pour la base de données préconfigurée (facultatif)

Oracle University and Catalyst Business Solutions use only


– 2,4 Go pour la zone de récupération rapide (facultatif)
• Système d'exploitation
(voir la documentation)

Copyright © 2007, 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 11g 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.

Oracle Database 11g : Administration Workshop I 2 - 6


Vérifier la configuration système requise
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Espace temporaire
approprié
• 64 bits ou 32 bits
• Système
d'exploitation correct
• Niveau de patch du système d'exploitation

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, Oracle. Tous droits réservés.

Vérifier la configuration système requise


Le programme d'installation d'Oracle Database 11g automatise la plupart des vérifications
préliminaires requises, à savoir :
• Espace temporaire minimal pour l'installation et la configuration. Ces exigences sont
validées pendant le processus d'installation.
• Il est impossible de procéder à des installations 64 bits dans des répertoires d'origine
Oracle Home où le logiciel 32 bits est déjà installé (et inversement).
• Oracle Database 11g est certifié compatible avec plusieurs versions de la plate-forme
Linux.
• Tous les patches requis par le système d'exploitation sont installés.
• Tous les paramètres du système et du noyau requis sont définis correctement.
• La variable d'environnement DISPLAY est définie et l'utilisateur dispose des
autorisations suffisantes pour utiliser ce mode d'affichage.
• Le système dispose d'un espace de swap suffisant.
• Le répertoire d'origine Oracle home de la nouvelle installation est vide ou contient l'une
des versions par-dessus lesquelles vous pouvez installer Oracle Database 11g.
Le processus d'installation vérifie également que ces versions sont enregistrées dans
l'inventaire Oracle.

Oracle Database 11g : Administration Workshop I 2 - 7


Architecture OFA (Optimal Flexible Architecture)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 l'expansion de la base de données

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 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.

Oracle Database 11g : Administration Workshop I 2 - 8


Architecture OFA : Convention d'appellation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Points de montage :
– /u01
– /disk01
• Répertoires :
– /u01/app/oracle
– /u01/app/applmgr

Oracle University and Catalyst Business Solutions use only


• Fichiers :
– Fichiers de contrôle : controln.ctl
– Fichiers de journalisation : redon.log
– Fichiers de données : tn.dbf

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

Architecture OFA : Convention d'appellation


A la base de l'architecture OFA se trouve une convention d'appellation qui définit les normes
à appliquer pour nommer les points de montage (qui correspondent souvent aux disques
physiques), les répertoires et sous-répertoires de ces points de montage, ainsi que les fichiers
proprement dits.
Syntaxe d'un point de montage : Nommez tous les points de montage selon 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. Par exemple, vous
pouvez nommer des points de montage /u01 et /u02.
Syntaxe d'un répertoire d'origine : Nommez tous les répertoires d'origine Oracle Home
selon la syntaxe /pm/h/u, où pm est le nom d'un point de montage, h 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, où 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 11g version 11.1.0 conforme
à l'architecture OFA ressemblerait à ce qui suit :
/u01/app/oracle/product/11.1.0/db_1

Oracle Database 11g : Administration Workshop I 2 - 9


Utiliser l'architecture OFA
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Syntaxe d'appellation des sous-répertoires : 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)
• Create : Programmes utilisés pour créer la base de données

Oracle University and Catalyst Business Solutions use only


• 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

Remarque : Les sous-répertoires bdump et udump n'existent plus dans


$ORACLE_BASE/admin. Leur contenu a été modifié et transféré dans les sous-répertoires
de DIAGNOSTIC_DEST/diag/db_name/sid/. La destination cdump a été déplacée de
la manière suivante :
DIAGNOSTIC_DEST/diag/rdbms/db_name/sid/cdump
Syntaxe des fichiers de base de données : La convention d'appellation suivante facilite
l'identification des fichiers de base de données :
• Fichiers de contrôle : /pm/q/d/controln.ctl
• Fichiers de journalisation : /pm/q/d/redon.log
• Fichiers de données : /pm/q/d/tn.dbf
Les variables utilisées dans ces noms de fichiers sont décrites ci-après :
• 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 : Ne stockez dans le répertoire /pm/q/d/ que les fichiers de contrôle, les
fichiers de journalisation (redo log) et les fichiers de données associés à la base de données d.

Oracle Database 11g : Administration Workshop I 2 - 10


Définir les variables d'environnement
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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 définissant la langue,

Oracle University and Catalyst Business Solutions use only


le territoire et le jeu de caractères client

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

Définir les variables d'environnement


Il existe de nombreuses variables d'environnement Oracle. Celles que nous décrivons ici sont
importantes pour l'installation et l'utilisation d'une base de données Oracle. Aucune de ces
variables n'est obligatoire, mais il est préférable de les définir avant l'installation pour é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. Il s'agit d'un chemin de répertoire, comme l'illustre
l'exemple suivant :
/u01/app/oracle
• ORACLE_HOME : Indique le répertoire contenant le logiciel Oracle. Il s'agit d'un chemin
de répertoire, comme l'illustre l'exemple suivant :
$ORACLE_BASE/product/11.1.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 qui doit commencer par une lettre. Oracle Corporation recommande
d'utiliser huit caractères au maximum pour les identificateurs système.
• NLS_LANG : Indique les paramètres NLS (National Language Support) initiaux d'une
session, sous la forme language_territory.character set ; par exemple :
AMERICAN_DENMARK.WE8MSWIN1252

Oracle Database 11g : Administration Workshop I 2 - 11


Définir les variables d'environnement (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Cette variable 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 les 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

Oracle University and Catalyst Business Solutions use only


sur la prise en charge des langues, reportez-vous au manuel Oracle Database
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).
Par conséquent, 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.

Oracle Database 11g : Administration Workshop I 2 - 12


Oracle Universal Installer (OUI)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 et permet également de réaliser des installations à différents niveaux de
groupes de logiciels intégrés ou de suites, des installations 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
Dans Windows : Pour démarrer OUI, insérez le disque d'installation d'Oracle Database,
accédez au répertoire client et cliquez deux fois sur setup.exe. Dans la page d'accueil
(Welcome), sélectionnez un type d'installation : Instant Client, Administrator, Runtime ou
Custom.

Oracle Database 11g : Administration Workshop I 2 - 13


Installer le logiciel Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Installer le logiciel Oracle


Vous pouvez installer le logiciel Oracle à l'aide d'OUI, de la manière suivante :
1. Connectez-vous à l'ordinateur en tant que membre du groupe d'administration qui est
autorisé à installer le logiciel Oracle, mais aussi à 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 de l'installeur et définissez les paramètres de
pré-installation en fonction de votre projet d'installation.
A partir des informations initiales, OUI exécute les vérifications relatives aux prérequis.

Oracle Database 11g : Administration Workshop I 2 - 14


Options de configuration de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Options de configuration de la base de données


Le processus d'installation se poursuit :
5. Accédez aux différentes pages de l'installeur OUI et indiquez les options de configuration
de la base de données. OUI affiche un récapitulatif de vos choix d'installation.
6. 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 : Cet assistant 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 d'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.

Oracle Database 11g : Administration Workshop I 2 - 15


Exécuter des scripts de configuration
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Exécuter des scripts de configuration


Le processus d'installation se poursuit :
7. 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/11.1.0/db_1
# ./root.sh
8. 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.
9. Lorsque le processus d'installation s'achève, relevez les différentes URL en vue d'une
utilisation ultérieure.

Oracle Database 11g : Administration Workshop I 2 - 16


Options d'installation avancées
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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

Oracle University and Catalyst Business Solutions use only


– Enterprise Manager Database Control
• Options de sauvegarde et de récupération de la base
de données
• Options de notification par message électronique
• Clusterware portable d'Oracle
• Clonage

Copyright © 2007, 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 Oracle 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 EM 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 EM Database Control au cours de l'installation, vous
pouvez configurer EM de manière à envoyer des alertes à 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 11g prend en charge les fonctionnalités RAC, notamment
l'installation d'un logiciel de cluster (clusterware).
• Vous pouvez également cloner les répertoires d'origine Oracle Home à l'aide de l'outil
Enterprise Configuration Management, ce qui permet aux utilisateurs de créer des
demandes clones, puis de les planifier et de les traiter. Cet outil est accessible via EM
Grid Control.
Remarque : Les options ci-dessus existent uniquement lors de la création d'une base de
données. Si vous effectuez l'installation sans créer la base, elles ne sont pas disponibles.
Lorsque vous créez votre base de données à l'aide de DBCA, vous avez accès à ces options.

Oracle Database 11g : Administration Workshop I 2 - 17


Option d'installation : Mode automatique
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Pour installer et configurer des produits Oracle en mode


automatique à l'aide d'OUI, effectuez les opérations
suivantes :

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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 :
1. 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).
2. 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 indique l'emplacement du fichier.
3. Exécutez OUI en mode automatique ou semi-automatique. Exécutez
$ORACLE_BASE/oraInventory/orainstRoot.sh et
$ORACLE_HOME/root.sh à la fin de l'installation.
4. 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.

Oracle Database 11g : Administration Workshop I 2 - 18


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• expliquer votre rôle en tant qu'administrateur de base
de données (DBA) et décrire vos outils et vos tâches
• planifier votre installation, en commençant par
consulter la documentation appropriée
• réaliser des tâches de pré-installation, telles que la

Oracle University and Catalyst Business Solutions use only


vérification des conditions requises au niveau du
système
• installer le logiciel Oracle à l'aide d'Oracle Universal
Installer (OUI)

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

Oracle Database 11g : Administration Workshop I 2 - 19


Exercice 2 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Préparer l'environnement de base de données

Cet exercice traite de l'installation du logiciel Oracle à


l'aide d'Oracle Universal Installer.
Remarque : Vous devez absolument effectuer cet exercice
avant d'aborder les exercices des chapitres suivants.

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 2 - 20


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Créer une base de données Oracle

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• créer une base de données à l'aide de l'assistant DBCA
(Database Configuration Assistant)
• créer un processus d'écoute (listener) l'aide de
l'assistant NetCA (Oracle Net Configuration Assistant)
• créer un modèle de conception de base de données

Oracle University and Catalyst Business Solutions use only


à l'aide de l'assistant DBCA
• générer des scripts de création de base de données
avec l'assistant DBCA

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

Oracle Database 11g : Administration Workshop I 3 - 2


Planification de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 ?
Quel type de stockage est utilisé ?
– De combien de fichiers de données aurez-vous besoin ?
(prévoir l'expansion de la base de données)

Oracle University and Catalyst Business Solutions use only


– Combien de tablespaces utiliserez-vous ?
– Quels types d'informations seront stockés ?
– 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
• La stratégie de sauvegarde de la base de données

Copyright © 2007, 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. Les informations relatives à la disponibilité du stockage NAS (Network
Attached Storage) et à la bande passante nécessaire au réseau de stockage privé sont
importantes. Si vous prévoyez d'utiliser des réseaux de stockage (SAN), il est capital de
connaître la configuration des volumes logiques et la taille des stripes.
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
seront abordées dans un autre chapitre.

Oracle Database 11g : Administration Workshop I 3 - 3


Bases de données : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Data warehouse :
– Recherche et marketing
– Impôts et taxes
– Listes de professionnels agréés (médecins, infirmières,
etc.)
• Transaction processing :

Oracle University and Catalyst Business Solutions use only


– Système de caisse enregistreuse
– Transactions des guichets automatiques
• 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 © 2007, 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
• Transaction processing (Traitement des transactions) : Prise en charge d'un grand
nombre de transactions (généralement de petite taille)
• General purpose (bases de données généralistes) : Gestion de transactions et stockage
de celles-ci pour une durée moyenne
Les informations de cette page et de la page précédente présentent des considérations qui
vous intéressent en tant qu'administrateur de base de données (DBA). Ce cours est
entièrement conçu pour vous aider à les analyser.

Oracle Database 11g : Administration Workshop I 3 - 4


Configurer le processus d'écoute
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Configurer le processus d'écoute


Lorsqu'une instance démarre, un processus d'écoute (listener) établit une voie de
communication vers Oracle Database. Quand un processus utilisateur effectue une demande
de connexion, le processus d'écoute détermine s'il doit utiliser un processus répartiteur de
serveur partagé ou un processus serveur dédié, puis il établit la connexion appropriée.
Le processus d'écoute établit également une voie de communication entre les bases de
données. Quand plusieurs bases de données ou instances s'exécutent sur le même ordinateur
(comme dans Oracle Real Application Clusters), les noms des services permettent aux
instances de s'enregistrer automatiquement auprès d'autres processus d'écoute de cet
ordinateur.
Un nom de service peut identifier plusieurs instances et une instance peut appartenir à
plusieurs services. Les clients qui se connectent à un service n'ont pas besoin de préciser
l'instance dont ils ont besoin.
Avant de configurer Enterprise Manager (EM) à l'aide de DBCA (Database Configuration
Assistant), vous devez configurer un processus d'écoute. L'assistant NetCA (Oracle Net
Configuration Assistant) est un outil simple qui permet de configurer le processus d'écoute.
Avec NetCA, vous pouvez configurer l'adresse du protocole d'écoute et les informations
relatives aux services pour une base de données Oracle. Utilisez l'assistant NetCA pour la
configuration initiale du réseau après avoir installé la base de données.

Oracle Database 11g : Administration Workshop I 3 - 5


Configurer le processus d'écoute
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Configurer le processus d'écoute (suite)


1. Démarrez netca à partir d'une invite de commande.
2. Sélectionnez l'option Listener Configuration.
3. Entrez le nom du processus d'écoute (listener) quand vous y êtes invité.
4. Précisez le numéro de port du processus d'écoute.

Oracle Database 11g : Administration Workshop I 3 - 6


Configurer le processus d'écoute
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Configurer le processus d'écoute (suite)


5. Sélectionnez No quand vous êtes invité à configurer un autre processus d'écoute.
La configuration de votre processus d'écoute est terminée.
Vous êtes alors prêt à créer la base de données à l'aide de l'assistant DBCA.

Oracle Database 11g : Administration Workshop I 3 - 7


Assistant Database Configuration Assistant (DBCA)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 lancer l'assistant DBCA :
1. Connectez-vous à l'ordinateur en tant que membre du groupe d'administrateurs système
(DBA) autorisés à 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).

Oracle Database 11g : Administration Workshop I 3 - 8


Utiliser l'assistant DBCA pour créer une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


2

Copyright © 2007, 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 :
1. Sélectionnez "Create a Database" dans la page Operations de DBCA pour lancer
l'assistant qui vous permettra de configurer et de créer une base de données.
L'assistant vous invite à fournir les informations de configuration (au fil des étapes
décrites ci-après). 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 (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.

Oracle Database 11g : Administration Workshop I 3 - 9


Utiliser l'assistant DBCA pour créer une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 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".
Remarque : Vous devez configurer le processus d'écoute (listener) avant de configurer
Enterprise Manager (comme indiqué précédemment).

Oracle Database 11g : Administration Workshop I 3 - 10


Utiliser l'assistant DBCA pour créer une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


7

Copyright © 2007, 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, indiquez les mots de passe des comptes
d'administration, tels que SYS et SYSTEM. Dans le cadre 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 une base de données Oracle
est constituée. Vous définissez les opérations en termes d'objets de base de données
plutôt qu'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".

Oracle Database 11g : Administration Workshop I 3 - 11


Utiliser l'assistant DBCA pour créer une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


9

Copyright © 2007, 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.

Oracle Database 11g : Administration Workshop I 3 - 12


Utiliser l'assistant DBCA pour créer une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

10

Oracle University and Catalyst Business Solutions use only


B

Copyright © 2007, 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 par défaut de la base de données :
- 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 : Cette page permet de définir les jeux de caractères de la base de
données.
Recommandation : Oracle Corporation recommande (lorsque cela est 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).

Oracle Database 11g : Administration Workshop I 3 - 13


Utiliser l'assistant DBCA pour créer une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

11

12

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 ni 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 immédiatement,
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.

Oracle Database 11g : Administration Workshop I 3 - 14


Gestion des mots de passe
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Gestion des 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
• Nom de base de données global
• Identificateur du système (SID)
• Nom et emplacement du fichier de paramètres serveur
• URL d'Enterprise Manager
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.

Oracle Database 11g : Administration Workshop I 3 - 15


Créer un modèle de conception de base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 créer une nouvelle base. Si vous ne créez pas 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 :
• 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 base de
données.

Oracle Database 11g : Administration Workshop I 3 - 16


Utiliser l'assistant DBCA pour supprimer
une base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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.

Oracle Database 11g : Administration Workshop I 3 - 17


Utiliser l'assistant DBCA pour supprimer une base de données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 correctement,
toutes les 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 :

Oracle University and Catalyst Business Solutions use only


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 ces fichiers. Si la base de données se trouve sur
des disques bruts (raw), les fichiers spéciaux de ces disques ne sont pas supprimés.

Oracle Database 11g : Administration Workshop I 3 - 18


Autres tâches effectuées via l'assistant DBCA
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Autres tâches effectuées via l'assistant DBCA


Vous pouvez utiliser DBCA pour configurer Automatic Storage Management (ASM) ou créer
des modèles de base de données. Vous pouvez également créer une instance et une base de
données ASM à l'aide de l'installeur Oracle. Oracle recommande d'installer Automatic
Storage Management dans son propre répertoire d'origine Oracle Home, que vous prévoyiez
d'utiliser une seule instance de base de données ou plusieurs. Cette précaution permet de
garantir une meilleure disponibilité de la base de données et de faciliter sa gestion.
Avec des répertoires d'origine Oracle Home distincts, vous pouvez mettre à niveau ASM
indépendamment des bases de données et vous pouvez supprimer le logiciel de base de
données sans affecter l'instance ASM.
Remarque : Pour plus d'informations sur l'installation ou la configuration d'ASM,
reportez-vous au manuel d'installation d'Oracle Database 11g correspondant à votre système
d'exploitation.

Oracle Database 11g : Administration Workshop I 3 - 19


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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
• créer un processus d'écoute (listener)
• générer des scripts de création de base de données

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 3 - 20


Exercice 3 : Utiliser l'assistant DBCA
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Dans cet exercice, vous allez :


• 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 avant d'aborder les

Oracle University and Catalyst Business Solutions use only


exercices des chapitres suivants.
A titre facultatif, vous pourrez également :
• créer le modèle de conception de base de données
ORCL à l'aide de DBCA
• créer des scripts de création de base de données à
l'aide de DBCA

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

Oracle Database 11g : Administration Workshop I 3 - 21


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Gérer l'instance Oracle

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• démarrer et arrêter la base de données et les
composants Oracle
• utiliser Oracle Enterprise Manager
• accéder à une base de données à l'aide de SQL*Plus
• modifier les paramètres d'initialisation d'une base de

Oracle University and Catalyst Business Solutions use only


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 © 2007, Oracle. Tous droits réservés.

Oracle Database 11g : Administration Workshop I 4 - 2


Structure de gestion
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants de la structure de gestion d'Oracle


Database 11g :
• Instance de base de données
• Processus d'écoute
• Interface de gestion :
– Database Control

Oracle University and Catalyst Business Solutions use only


– Agent de gestion (lors de l'utilisation de Grid Control)

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

Copyright © 2007, 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 :
• Instance de base de données à gérer
• Processus d'écoute (listener) permettant les connexions à la base de données
• Interface de gestion, qu'il s'agisse 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) ou de
l'interface Oracle Enterprise Manager Database Control autonome. Cette interface est
également appelée Database Console.
Vous devez démarrer explicitement chacun de ces composants pour pouvoir utiliser ses
services. Vous devez également fermer chacun d'eux correctement lorsque vous arrêtez le
serveur qui héberge la base de données Oracle.
Le premier composant à démarrer est l'interface de gestion. Une fois activée, l'interface de
gestion peut être utilisée pour démarrer les autres composants.

Oracle Database 11g : Administration Workshop I 4 - 3


Démarrer et arrêter Database Control
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

$ emctl start dbconsole


Oracle Enterprise Manager 11g Database Control Release 11.1.0.1.0
Copyright (c) 1996, 2006 Oracle Corporation. All rights reserved.
https://edrsr17p1.us.oracle.com:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control .............
started.
----------------Logs are generated in directory
/u01/app/oracle/product/11.1.0/db_1/ edrsr17p1.us.oracle_orcl/sysman/log

Oracle University and Catalyst Business Solutions use only


$ emctl stop dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.1.0.1.0
Copyright (c) 1996, 2006 Oracle Corporation. All rights reserved.
https://edrsr17p1.us.oracle.com:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g Database Control ...
... Stopped.

Copyright © 2007, 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 comprend 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é.
Commande de démarrage du processus dbconsole :
emctl start dbconsole
Commande d'arrêt du processus dbconsole :
emctl stop dbconsole
Commande permettant d'afficher le statut du processus dbconsole :
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.

Oracle Database 11g : Administration Workshop I 4 - 4


Oracle Enterprise Manager
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Oracle Enterprise Manager


Lorsque vous installez une base de données Oracle, Oracle Universal Installer (OUI) installe
également Oracle Enterprise Manager (EM). Son interface Database Control basée sur le Web
constitue l'outil principal de gestion de la base de données Oracle. EM fournit une interface
graphique permettant d'effectuer presque toutes les tâches dont vous êtes chargé en tant
qu'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 effectuer des opérations de sauvegarde et de récupération. Dans la
plupart des cas, il suffit de cliquer sur des liens dans EM pour accéder à des informations plus
détaillées sur le contenu d'une page.
Remarque : Dans Oracle Database 11g, l'URL d'accès à Enterprise Manager utilise le
protocole HTTPS (au lieu de HTTP) pour garantir la sécurité de la connexion. Pour accéder à
dbconsole, vous devez donc entrer une URL de la forme suivante :
https://machine_name:port/em
Le numéro de port par défaut est 1158.

Oracle Database 11g : Administration Workshop I 4 - 5


Accéder à Oracle Enterprise Manager
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Accéder à Oracle Enterprise Manager


Ouvrez un navigateur Web et entrez l'URL suivante : https://host name:port number/em
Le numéro de port par défaut est 1158, mais vous pouvez indiquer un numéro différent,
notamment si le même hôte héberge plusieurs bases de données. Pour déterminer le numéro
de port à indiquer, consultez le fichier portlist.ini. Ce fichier indique également les
ports associés à certaines applications Oracle Database. Vous le trouverez dans le répertoire
ORACLE_BASE\ORACLE_HOME\install.
• Si la base de données est en service (up), 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 ce compte pendant 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.
• Si la base de données est hors service (down), 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é.

Oracle Database 11g : Administration Workshop I 4 - 6


Page d'accueil de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Pages de propriétés

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 afin de 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 et 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

Oracle Database 11g : Administration Workshop I 4 - 7


Autres outils Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants
> SQL*Plus
Param. d'init.
Démarrage BdD
Arrêt BdD
Fichier d'alertes
SQL*Plus fournit à votre base de données Vues de perf.
une interface supplémentaire qui vous permet
d'effectuer les tâches suivantes :
• Effectuer des opérations de gestion de base de données
• Exécuter des commandes SQL pour interroger la base de
données ou pour insérer, mettre à jour et supprimer des

Oracle University and Catalyst Business Solutions use only


données dans la base
SQL Developer
• Interface graphique permettant d'accéder à votre instance
Oracle Database
• Prise en charge du développement en SQL et PL/SQL
• Disponible dans l'installation par défaut d'Oracle Database

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

Autres outils Oracle


Outre Enterprise Manager, vous pouvez utiliser SQL*Plus et SQL Developer 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.
SQL*Plus est un programme en mode ligne de commande qui permet d'exécuter des
instructions SQL et PL/SQL sur une base de données Oracle. Vous pouvez soumettre ces
instructions en mode interactif ou sous la forme de scripts SQL*Plus. SQL*Plus est installé
avec la base de données et se trouve dans le répertoire $ORACLE_HOME/bin.
Vous pouvez démarrer SQL*Plus à partir d'une ligne de commande ou du menu Démarrer
(Start) sur un client Windows.
SQL Developer est une interface graphique qui vous permet d'accéder à votre instance Oracle
Database. Elle prend en charge les langages de développement SQL et PL/SQL. Elle est
disponible dans l'installation par défaut d'Oracle Database.
SQL Developer vous permet de parcourir les objets de la base de données, d'exécuter des
instructions et des scripts SQL, de modifier et de déboguer des instructions PL/SQL. Vous
avez également la possibilité d'exécuter des états prédéfinis ou de créer et d'enregistrer vos
propres états.
Remarque : Ce cours utilise Enterprise Manager et SQL*Plus.

Oracle Database 11g : Administration Workshop I 4 - 8


Utiliser SQL*Plus
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

SQL*Plus: Release 11.1.0.3.0 - Beta on Wed May 30 21:41:24 2007


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

Connected to:

Oracle University and Catalyst Business Solutions use only


Oracle Database 11g Enterprise Edition Release 11.1.0.3.0 - Beta
With the Partitioning, OLAP and Data Mining options

SQL> select last_name from employees;

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

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

Utiliser SQL*Plus
Vous pouvez utiliser l'interface en mode ligne de commande de SQL*Plus pour écrire des
commandes SQL*Plus, SQL et PL/SQL afin d'effectuer les tâches suivantes :
• 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.
• Administrer la base de données.
Pour démarrer SQL*Plus :
1. Ouvrez une fenêtre sur un terminal.
2. Dans l'invite de commande, entrez la commande SQL*Plus suivante :
$ sqlplus <userid>/<pwd> or nolog
3. Si vous utilisez l'option NOLOG, vous devez entrer la commande CONNECT suivie du
nom utilisateur avec lequel vous voulez 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.
Remarque : Lorsque vous entrez vos informations d'identification et de connexion sur la
ligne de commande, le mot de passe est visible par tout utilisateur autorisé à exécuter la
commande ps au niveau du système d'exploitation (systèmes UNIX et Linux). Il est donc
préférable d'utiliser l'option NOLOG pour se connecter.

Oracle Database 11g : Administration Workshop I 4 - 9


Appeler SQL*Plus à partir d'un script shell
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

$ ./batch_sqlplus.sh

SQL*Plus: Release 11.1.0.3.0 - Beta on Wed May 30 21:41:24 2007


Copyright (c) 1982, 2006, Oracle. All rights reserved.
Sortie
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.3.0 - Beta
With the Partitioning, OLAP and Data Mining options
# Name of this file: batch_sqlplus.sh
SQL> # Count employees and give raise.

Oracle University and Catalyst Business Solutions use only


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 11g Enterprise Edition Release
11.1.0.3.0 - Beta
With the Partitioning, OLAP and Data Mining options
[oracle@EDRSR9P1 oracle]$

Copyright © 2007, 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.

Oracle Database 11g : Administration Workshop I 4 - 10


Appeler un script SQL à partir de SQL*Plus
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


quit

Sortie
$ sqlplus hr/hr @script.sql

SQL*Plus: Release 11.1.0.3.0 - Beta on Wed May 30 21:41:24 2007

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

Oracle University and Catalyst Business Solutions use only


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.3.0 - Beta
With the Partitioning, OLAP and Data Mining options

DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID


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

Disconnected from Oracle Database 11g Enterprise Edition Release


11.1.0.3.0 - Beta
With the Partitioning, OLAP and Data Mining options

Copyright © 2007, 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
Remarque : Les fichiers script SQL ont par défaut l'extension .sql. Quand un script est
enregistré à partir de SQL*Plus à l'aide de la commande save, cette extension est fournie
automatiquement. Vous pouvez exécuter ces scripts sans préciser l'extension dans la
commande d'exécution. Par exemple :
SQL> @script

Oracle Database 11g : Administration Workshop I 4 - 11


Fichiers de paramètres
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants
d'initialisation SQL*Plus
> Param. d'init.
Démarrage BdD
Arrêt BdD
Fichier d'alertes
Vues de perf.

Oracle University and Catalyst Business Solutions use only


spfileorcl.ora

Copyright © 2007, 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 où la base de données Oracle s'exécute et survit aux opérations d'arrêt et de
démarrage. Le nom par défaut de ce fichier (recherché automatiquement au démarrage)
est 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
(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. Un fichier SPFILE permet de stocker et gérer les paramètres
d'initialisation de manière persistante dans un fichier du disque côté serveur.

Oracle Database 11g : Administration Workshop I 4 - 12


Fichiers de paramètres d'initialisation (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Types de paramètres d'initialisation


Le serveur de base de données Oracle reconnaît les types de paramètres d'initialisation
suivants :
Paramètres dérivés
Certains paramètres d'initialisation sont dérivés, c'est-à-dire que leurs valeurs sont calculées à
partir des valeurs d'autres paramètres. Normalement, vous ne devez pas modifier les valeurs
des paramètres dérivés.
Si vous le faites, la valeur que vous indiquez remplace la valeur calculée.
Par exemple, la valeur par défaut du paramètre SESSIONS est dérivée du paramètre
PROCESSES. Si la valeur de PROCESSES change, la valeur par défaut du paramètre

Oracle University and Catalyst Business Solutions use only


SESSIONS change également, sauf si vous imposez une autre valeur.
Paramètres dépendants du système d'exploitation
Les valeurs ou fourchettes de valeurs valides de certains paramètres d'initialisation dépendent
du système d'exploitation hôte. Par exemple, le paramètre
DB_FILE_MULTIBLOCK_READ_COUNT définit le nombre maximal de blocs lus en une
seule opération d'E/S pendant une analyse séquentielle. Sa valeur dépend de la plate-forme
utilisée. La taille de ces blocs (définie par le paramètre DB_BLOCK_SIZE) a une valeur par
défaut qui dépend du système d'exploitation.
Définir les valeurs des paramètres
Les paramètres d'initialisation constituent le moyen le plus puissant pour optimiser les
performances du système. Certains paramètres définissent des limites de capacité sans affecter
les performances. Ainsi, lorsque le paramètre OPEN_CURSORS a la valeur 10, un processus
utilisateur qui essaie d'ouvrir son onzième curseur reçoit un message d'erreur. D'autres
paramètres ont une incidence sur les performances, mais n'imposent pas de limites absolues.
Par exemple, une valeur inférieure du paramètre MAX_OPEN_CURSORS peut réduire les
performances des travaux, mais n'empêche pas leur exécution.
En augmentant les valeurs de ces paramètres, vous pouvez optimiser les performances du
système. Cependant, cela entraîne également l'extension de la zone de mémoire partagée
(SGA). Or, une telle extension peut optimiser les performances de la base de données jusqu'à
un certain point. Dans les systèmes d'exploitation qui utilisent de la mémoire virtuelle, une
zone partagée SGA surdimensionnée peut nuire aux performances en cas d'opérations de
swap. Les paramètres du système d'exploitation qui contrôlent les zones de mémoire virtuelle
actives doivent être configurés en fonction de la taille de la mémoire SGA. La configuration
du système d'exploitation peut également limiter la taille maximale de la mémoire SGA.

Oracle Database 11g : Administration Workshop I 4 - 13


Paramètres d'initialisation simplifiés
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Paramètres de base Paramètres avancés

Oracle University and Catalyst Business Solutions use only


CONTROL_FILES DB_CACHE_SIZE
DB_BLOCK_SIZE DB_FILE_MULTIBLOCK
PROCESSES _READ_COUNT
UNDO_MANAGEMENT SHARED_POOL_SIZE
… …

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

Paramètres d'initialisation simplifiés


Les paramètres d'initialisation sont de deux types : paramètres de base et paramètres avancés.
Dans la plupart des cas, il suffit de définir et régler les seuls 30 paramètres de base pour
obtenir des performances satisfaisantes de la base de données. 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.
Exemples de paramètres de base :
• Déterminer le nom global de la base de données : DB_NAME et DB_DOMAIN
• Indiquer une zone de récupération rapide : DB_RECOVERY_FILE_DEST et
DB_RECOVERY_FILE_DEST_SIZE
• Indiquer le délai de verrouillage LDD : DDL_LOCK_TIMEOUT
• Indiquer la méthode de gestion du volume d'annulation : UNDO_MANAGEMENT
• Paramètre d'initialisation COMPATIBLE et compatibilité irréversible
Remarque : Les pages suivantes décrivent quelques-uns des paramètres d'initialisation. Vous
en trouverez la liste complète dans le manuel Oracle Database Reference.

Oracle Database 11g : Administration Workshop I 4 - 14


Paramètres d'initialisation : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Paramètre Signification
CONTROL_FILES Un ou plusieurs noms de
fichier de contrôle
DB_FILES Nombre maximal de fichiers
de base de données
PROCESSES Nombre maximal de processus
utilisateur du système

Oracle University and Catalyst Business Solutions use only


d'exploitation pouvant se
connecter simultanément
DB_BLOCK_SIZE Taille de bloc de base
de données standard utilisée
par tous les tablespaces
DB_CACHE_SIZE Taille du cache de tampons
de bloc standard

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

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. Plage de
valeurs : un à huit noms de fichier (avec chemin d'accès). La plage par défaut dépend du
système d'exploitation.
Le paramètre DB_FILES définit le nombre maximal de fichiers de base de données qui
peuvent être ouverts pour cette base. La plage de valeurs dépend du système d'exploitation.
La valeur par défaut varie en fonction du système d'exploitation (200 sous Solaris).
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
maximale qui varie en fonction du système d'exploitation. La valeur par défaut dépend du
système d'exploitation.
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. Elle définit la taille de bloc standard de la base de données. Il s'agit
de la taille utilisée par défaut pour tous les tablespaces. Plage de valeurs : 2048 à 32768 (en
fonction du système d'exploitation). La valeur par défaut est 8 Ko (selon le système
d'exploitation).
Le paramètre DB_CACHE_SIZE définit la taille du cache de tampons (buffer cache) de bloc
standard. Plage de valeurs : au moins 16 Mo. Valeur par défaut : 48 Mo.

Oracle Database 11g : Administration Workshop I 4 - 15


Paramètres d'initialisation : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Paramètre Signification
SGA_TARGET Taille totale de tous les
composants SGA
MEMORY_TARGET Mémoire utilisable à l'échelle
du système Oracle

SGA
Cache du dictionnaire
Zone SQL
de données
partagée

Oracle University and Catalyst Business Solutions use only


Cache Autre
"library"

Tampon de Zone de mémoire partagée


journalisation
Tampon Mémoire
Cache de tampons d'E/S disponible
de la base de
données File d'attente File d'attente
Zone de Zone de de réponses de demandes
mémoire mémoire Zone de mémoire
Java Streams LARGE POOL

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

Paramètres d'initialisation : Exemples (suite)


SGA_TARGET définit la taille totale de tous les composants de la mémoire SGA (System
Global Area). Si la valeur de SGA_TARGET est précisée, les zones de mémoire suivantes sont
dimensionnées automatiquement :
• Cache de tampons (buffer cache) (DB_CACHE_SIZE)
• Zone de mémoire partagée (SHARED_POOL_SIZE)
• Zone de mémoire LARGE POOL (LARGE_POOL_SIZE)
• Zone de mémoire Java (JAVA_POOL_SIZE)
• Zone de mémoire Streams (STREAMS_POOL_SIZE)
Si ces zones de mémoire dimensionnées automatiquement ont une taille différente de zéro,
cette taille est utilisée comme valeur minimale par la gestion automatique de la mémoire
partagée (ASMM - Automatic Shared Memory Management). Vous définissez des valeurs
minimales si un composant d'application a besoin d'un minimum de mémoire pour
fonctionner correctement.
ASMM n'a aucune incidence sur les zones suivantes qui sont dimensionnées manuellement :
• Tampon de journalisation (redo log buffer)
• Autres caches de tampons (buffer caches), tels que KEEP et RECYCLE, et autres tailles
de bloc
• Mémoire SGA fixe et autres allocations internes
La mémoire allouée à ces zones est déduite de la mémoire totale disponible pour
SGA_TARGET quand ASMM calcule les valeurs des zones de mémoire dimensionnées
automatiquement.

Oracle Database 11g : Administration Workshop I 4 - 16


Paramètres d'initialisation : Exemples (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

MEMORY_TARGET indique la mémoire utilisable à l'échelle du système Oracle. La base de


données règle la mémoire sur la valeur MEMORY_TARGET, réduisant ou augmentant les
zones SGA et PGA en conséquence.
Dans un fichier de paramètres d'initialisation de type texte, si vous omettez
MEMORY_MAX_TARGET et indiquez une valeur pour MEMORY_TARGET, la base de données
affecte automatiquement cette valeur à MEMORY_MAX_TARGET. Si vous omettez la ligne de
MEMORY_TARGET et indiquez une valeur pour MEMORY_MAX_TARGET, le paramètre
MEMORY_TARGET prend par défaut la valeur zéro. Après le démarrage, vous pouvez affecter
dynamiquement à MEMORY_TARGET une valeur différente de zéro, à condition qu'elle ne
dépasse pas la valeur de MEMORY_MAX_TARGET. Vous modifiez ce paramètre à l'aide de la

Oracle University and Catalyst Business Solutions use only


commande ALTER SYSTEM. Les valeurs possibles sont comprises entre 152 Mo et
MEMORY_MAX_TARGET.

Oracle Database 11g : Administration Workshop I 4 - 17


Paramètres d'initialisation : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Paramètre Signification
PGA_AGGREGATE_TARGET Quantité de mémoire PGA
allouée à tous les processus
serveur
SHARED_POOL_SIZE Taille de la zone de mémoire
partagée (en octets)
Mode de gestion du volume

Oracle University and Catalyst Business Solutions use only


UNDO_MANAGEMENT
d'annulation à utiliser

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

Paramètres d'initialisation : Exemples (suite)


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. 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. Lorsque vous le définissez,
soustrayez la mémoire SGA de la quantité de mémoire totale du système disponible pour
l'instance Oracle. La plage de valeurs comprend des nombres entiers suivis de la lettre K, M
ou G indiquant si la limite est exprimée en kilo-octets, en mégaoctets ou en gigaoctets. La
valeur minimale est 10 Mo, la valeur maximale est 4096 Go. La valeur par défaut est 10 Mo
ou 20 % de la taille de la mémoire SGA si cette dernière est supérieure à 10 Mo.
Le paramètre SHARED_POOL_SIZE définit la taille de la zone de mémoire partagée, en
octets. 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 (buffers) des messages
d'exécution en parallèle. Des valeurs plus élevées peuvent optimiser les performances dans les
systèmes multiutilisateurs. La plage de valeurs dépend du système d'exploitation. Valeur par
défaut : 64 Mo avec un système 64 bits, sinon 16 Mo.

Oracle Database 11g : Administration Workshop I 4 - 18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Paramètres d'initialisation : Exemples (suite)


Le paramètre UNDO_MANAGEMENT indique le mode de gestion du volume d'annulation que
le système doit utiliser. Si ce paramètre a la valeur AUTO, l'instance est démarrée en mode de
gestion automatique des annulations (AUM). 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 AUM, le volume d'annulation est alloué
de manière externe sous forme de tablespaces d'annulation. Plage de valeurs : AUTO ou
MANUAL. Si le paramètre UNDO_MANAGEMENT est omis lors du démarrage de la première
instance, la valeur par défaut AUTO est utilisée.

Oracle University and Catalyst Business Solutions use only

Oracle Database 11g : Administration Workshop I 4 - 19


Utiliser SQL*Plus pour afficher les paramètres
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL> SELECT name , value FROM V$PARAMETER;


NAME VALUE
------------ ----------
lock_name_space 2
processes 150
sessions 170
timed_statistics TRUE
timed_os_statistics 0

SQL>SHOW PARAMETER SHARED_POOL_SIZE


NAME TYPE VALUE

Oracle University and Catalyst Business Solutions use only


------------------------------------ ----------- ---------------------
shared_pool_size big integer 0

SQL> show parameter para


NAME TYPE VALUE
------------------------------------ ----------- ---------------------
fast_start_parallel_rollback string LOW
parallel_adaptive_multi_user boolean TRUE
parallel_automatic_tuning boolean FALSE
parallel_execution_message_size integer 2148
parallel_instance_group string

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

Utiliser SQL*Plus pour afficher les paramètres


La diapositive ci-dessus présente quelques exemples utilisant SQL*Plus pour afficher des
paramètres. Vous pouvez interroger la vue du dictionnaire de données V$PARAMETER pour
obtenir les valeurs des différents paramètres. V$PARAMETER affiche la valeur des paramètres
dans la session en cours. Vous pouvez également entrer la commande SHOW PARAMETER
suivie d'une chaîne pour afficher les paramètres contenant cette chaîne.
L'interrogation ci-après demande le nom et la valeur des paramètres. Utilisez une clause
WHERE pour orienter l'interrogation sur des paramètres spécifiques :
SQL> SELECT name, value FROM V$PARAMETER WHERE name LIKE
'%pool%';
NAME TYPE VALUE
------------------------- ---------- ----------
shared_pool_size 6 0
large_pool_size 6 0
java_pool_size 6 0
streams_pool_size 6 0
shared_pool_reserved_size 6 6710886
buffer_pool_keep 2

9 rows selected.

Oracle Database 11g : Administration Workshop I 4 - 20


Utiliser SQL*Plus pour afficher les paramètres (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Description de la vue :
SQL> desc V$parameter
Name Null? Type
--------------------------------------- ------- -------------
NUM NUMBER
NAME VARCHAR2(80)
TYPE NUMBER
VALUE VARCHAR2(4000)
DISPLAY_VALUE VARCHAR2(4000)
ISDEFAULT VARCHAR2(9)
ISSES_MODIFIABLE VARCHAR2(5)

Oracle University and Catalyst Business Solutions use only


ISSYS_MODIFIABLE VARCHAR2(9)
ISINSTANCE_MODIFIABLE VARCHAR2(5)
ISMODIFIED VARCHAR2(10)
ISADJUSTED VARCHAR2(5)
ISDEPRECATED VARCHAR2(5)
ISBASIC VARCHAR2(5)
DESCRIPTION VARCHAR2(255)
UPDATE_COMMENT VARCHAR2(255)
HASH NUMBER
L'exemple ci-après présente l'utilisation de la commande SQL*Plus SHOW PARAMETER
pour afficher les valeurs de paramètres. Vous pouvez également utiliser cette commande pour
trouver tous les paramètres contenant une chaîne de texte (para). Par exemple, vous pouvez
trouver tous les noms de paramètre comprenant la chaîne db à l'aide de la commande
suivante :
SQL> show parameter db
NAME TYPE VALUE
------------------------------------ ----------- --------------

db_8k_cache_size big integer 0
db_block_buffers integer 0
db_block_checking string FALSE
db_block_checksum string TYPICAL
db_block_size integer 8192
db_cache_advice string ON
db_cache_size big integer 0
db_create_file_dest string

Autres vues contenant des informations sur les paramètres
• V$SPPARAMETER affiche des informations sur le contenu du fichier de paramètres
serveur. Si aucun fichier de paramètres serveur n'a été utilisé pour démarrer l'instance,
chaque ligne de la vue contiendra la valeur FALSE dans la colonne ISSPECIFIED.
• V$PARAMETER2 affiche des informations sur les paramètres d'initialisation
actuellement en vigueur pour la session, chaque valeur correspondant à une ligne de la
vue. Une nouvelle session hérite des valeurs de paramètres de niveau instance affichés
dans la vue V$SYSTEM_PARAMETER2.

Oracle Database 11g : Administration Workshop I 4 - 21


Modifier les valeurs des paramètres
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

d'initialisation
• Paramètres statiques :
– Ils ne peuvent être modifiés que dans le fichier
de paramètres
– Un redémarrage de l'instance est nécessaire
pour que les modifications prennent effet
• Paramètres dynamiques :
– Ils peuvent être modifiés tant que la base
de données est en ligne

Oracle University and Catalyst Business Solutions use only


– Les modifications peuvent être effectuées
à deux niveaux :
— Niveau session
— Niveau système
– Ils sont valides pour la durée de la session
ou dans les limites établies par le paramètre SCOPE
– Les modifications sont effectuées à l'aide des
commandes ALTER SESSION et ALTER SYSTEM

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

Modifier les valeurs des paramètres d'initialisation


Les paramètres d'initialisation sont de deux types :
Les paramètres statiques affectent l'instance ou la base de données entière et ne peuvent être
modifiés que dans init.ora et le fichier de paramètres serveur (SPFILE). Pour qu'ils
prennent effet, vous devez arrêter et redémarrer la base de données. Vous ne pouvez pas les
modifier pour l'instance en cours.
Les paramètres dynamiques peuvent être modifiés pendant que la base de données est en
ligne. Il en existe deux types :
• Les paramètres de niveau session affectent uniquement une session utilisateur. Ils
comprennent notamment des paramètres NLS (National Language Support) qui peuvent
être utilisés pour définir des paramètres de langue supplémentaires pour les tris, les dates,
etc. Vous pouvez utiliser ces paramètres dans une session donnée ; ils expirent à la fin de
la session.
• Les paramètres de niveau système affectent l'ensemble de la base de données et toutes les
sessions. Ils comprennent notamment le vidage de la zone de mémoire partagée et les
destinations des journaux archivés. Ces paramètres restent en vigueur conformément à la
spécification SCOPE. Pour qu'ils soient permanents, vous devez les ajouter à init.ora
et au fichier de paramètres serveur (SPFILE) en indiquant l'option SCOPE =both ou en
modifiant (manuellement) le fichier init.ora. Si vous choisissez la seconde solution,
vous devez redémarrer la base de données.
Vous pouvez modifier les paramètres dynamiques à l'aide des commandes ALTER
SESSION et ALTER SYSTEM.

Oracle Database 11g : Administration Workshop I 4 - 22


Modifier les valeurs des paramètres d'initialisation (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Utilisez la clause SET de l'instruction ALTER SYSTEM pour définir ou modifier les valeurs
des paramètres d'initialisation. La clause SCOPE facultative précise la portée d'une
modification, de la manière suivante :
• SCOPE=SPFILE : La modification est appliquée uniquement dans le fichier de
paramètres serveur. Aucune modification n'est apportée à l'instance en cours. Pour les
paramètres dynamiques et statiques, la modification prendra effet lors du prochain
démarrage et sera persistante. Il s'agit de la seule définition de SCOPE autorisée pour les
paramètres statiques.
• SCOPE=MEMORY : La modification est appliquée uniquement dans la mémoire.
Elle concerne l'instance en cours et prend effet immédiatement. Pour les paramètres

Oracle University and Catalyst Business Solutions use only


dynamiques, l'effet est immédiat, mais il n'est pas persistant puisque le fichier de
paramètres serveur n'est pas mis à jour. Pour les paramètres statiques, cette spécification
n'est pas autorisée.
• SCOPE=BOTH : La modification est appliquée dans le fichier de paramètres serveur et
dans la mémoire. Elle concerne l'instance en cours et prend effet immédiatement.
Pour les paramètres dynamiques, l'effet est persistant puisque le fichier de paramètres
serveur est mis à jour. Pour les paramètres statiques, cette spécification n'est pas
autorisée.
Spécifier SCOPE=SPFILE ou SCOPE=BOTH est une erreur si l'instance n'a pas démarré avec
un fichier de paramètres serveur. La spécification par défaut est SCOPE=BOTH si un fichier
de paramètres serveur a été utilisé pour démarrer l'instance, SCOPE=MEMORY si un fichier de
paramètres d'initialisation a été utilisé pour démarrer l'instance.
Pour les paramètres dynamiques, vous pouvez également indiquer le mot-clé DEFERRED
pour que la modification ne prenne effet que pour les prochaines sessions.
Lorsque vous utilisez l'option SPFILE ou BOTH dans la clause SCOPE, une clause
COMMENT supplémentaire vous permet d'associer une chaîne de texte à la mise à jour.
Ce commentaire est enregistré dans le fichier de paramètres serveur.

Oracle Database 11g : Administration Workshop I 4 - 23


Modifier les valeurs des paramètres : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL> ALTER SESSION


SET NLS_DATE_FORMAT ='mon dd yyyy';

Session altered.

SQL> SELECT SYSDATE FROM dual;

SYSDATE
-----------

Oracle University and Catalyst Business Solutions use only


jun 12 2007

SQL> ALTER SYSTEM SET


SEC_MAX_FAILED_LOGIN_ATTEMPTS=2 COMMENT='Reduce
from 10 for tighter security.' SCOPE=SPFILE;

System altered.

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

Modifier les valeurs des paramètres : Exemples


La première instruction de la diapositive ci-dessus modifie un paramètre de niveau session.
L'utilisateur définit le format de date mon dd yyyy pour la session. Toutes les interrogations
portant sur des dates afficheront donc les dates dans ce format. Les paramètres de niveau
session peuvent également être définis dans les applications à l'aide de codes PL/SQL.
La deuxième instruction présentée modifie le nombre maximal de tentatives de connexion
infructueuses au bout duquel la connexion est abandonnée. Elle comprend un commentaire et
indique explicitement que la modification doit être effectuée uniquement dans le fichier de
paramètres serveur. Lorsque le nombre d'échecs de connexion précisé est atteint, la connexion
est automatiquement abandonnée par le processus serveur.

Oracle Database 11g : Administration Workshop I 4 - 24


Démarrer et arrêter
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants
la base de données SQL*Plus
Param. d'init.
> Démarrage BdD
Arrêt BdD
Fichier d'alertes
Vues de perf.

Oracle University and Catalyst Business Solutions use only


ou

Copyright © 2007, 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 (credentials) 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.
Remarque : Pour arrêter la base à l'aide d'Enterprise Manager, l'option par défaut est
IMMEDIATE. Si vous utilisez la commande SQL*Plus SHUTDOWN, l'option par défaut est
NORMAL.

Oracle Database 11g : Administration Workshop I 4 - 25


Démarrer une instance de base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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. Entrez les informations d'identification et de connexion
(credentials) de l'hôte et sélectionnez éventuellement le mode de démarrage.

Oracle Database 11g : Administration Workshop I 4 - 26


Démarrer une instance de base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle : NOMOUNT

OPEN
STARTUP

MOUNT

Oracle University and Catalyst Business Solutions use only


NOMOUNT

Instance
démarrée
SHUTDOWN

Copyright © 2007, 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, pendant la regénération des fichiers de contrôle ou dans
certains scénarios de sauvegarde et de récupération.
Le démarrage d'une instance inclut les opérations suivantes :
• Recherche dans $ORACLE_HOME/dbs d'un fichier portant un nom particulier, dans
l'ordre suivant :
1. Recherchez spfile<SID>.ora.
2. Si spfile<SID>.ora est introuvable, recherchez spfile.ora.
3. Si spfile.ora est introuvable, recherchez 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).

Oracle Database 11g : Administration Workshop I 4 - 27


Démarrer une instance de base de données Oracle :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

MOUNT

OPEN
STARTUP

MOUNT
Fichier de
contrôle ouvert

Oracle University and Catalyst Business Solutions use only


NOMOUNT pour cette
instance
Instance
démarrée
SHUTDOWN

Copyright © 2007, 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 pour obtenir les noms et les statuts des fichiers de données et
des fichiers de journalisation en ligne (online redo log) (mais l'existence de ces fichiers
n'est pas vérifiée à ce stade)
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 pas 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. Si une récupération est effectuée lorsque la base de données est en
état MOUNT, les fichiers de journalisation (redo log) sont ouverts pour les opérations de
lecture. En outre, les fichiers de données sont ouverts pour permettre la lecture des blocs à
récupérer et, si nécessaire, l'écriture des blocs récupérés.

Oracle Database 11g : Administration Workshop I 4 - 28


Démarrer une instance de base de données Oracle :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 pour cette

Oracle University and Catalyst Business Solutions use only


NOMOUNT instance

Instance
démarrée
SHUTDOWN

Copyright © 2007, 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
• Ouverture des fichiers de journalisation en ligne (online redo log)
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.

Oracle Database 11g : Administration Workshop I 4 - 29


Options de démarrage : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL> startup 1

SQL> startup nomount 2

SQL> alter database mount; 3

Oracle University and Catalyst Business Solutions use only


SQL> alter database open; 4

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

Options de démarrage : Exemples


La diapositive ci-dessus présente la syntaxe SQL*Plus qui démarre la base de données.
1. Cette commande démarre l'instance, lui associe les fichiers de base de données, puis
monte et ouvre la base.
2. Cette commande démarre l'instance, mais sans monter la base de données.
3, 4. Une commande ALTER DATABASE monte et ouvre la base de données à partir de
l'état NOMOUNT.

Oracle Database 11g : Administration Workshop I 4 - 30


Arrêter une instance de base
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants
de données Oracle SQL*Plus
Param. d'init.
Démarrage BdD
> Arrêt BdD
Fichier d'alertes
Vues de perf.

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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, cliquez 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.

Oracle Database 11g : Administration Workshop I 4 - 31


Modes d'arrêt
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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) et Non Oui Oui Oui

Oracle University and Catalyst Business Solutions use only


ferme les fichiers
Modes d'arrêt :
• A = ABORT
• I = IMMEDIATE
• T = TRANSACTIONAL
• N = NORMAL

Copyright © 2007, 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é) :
• Le mode ABORT effectue des tâches minimales avant l'arrêt. Il requiert une opération de
récupération avant le démarrage ; ne l'utilisez donc qu'en cas de nécessité. 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 est l'option utilisée le plus fréquemment. Les transactions non validées sont
annulées (rollback).
• Le mode d'arrêt TRANSACTIONAL laisse aux transactions le temps de se terminer.
• Le mode 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. Les modes d'arrêt NORMAL et TRANSACTIONAL peuvent être
longs, en fonction du nombre de sessions et de transactions en cours.

Oracle Database 11g : Administration Workshop I 4 - 32


Options d'arrêt
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Vers le bas : Options : Vers le haut :


• Les modifications • Pas de
non validées sont SHUTDOWN récupération
NORMAL
annulées pour ou
d'instance
IMMEDIATE SHUTDOWN
• Le cache de TRANSACTIONAL
ou
tampons de la

Oracle University and Catalyst Business Solutions use only


SHUTDOWN
base de données IMMEDIATE
est écrit dans les
fichiers de
données
• Les ressources
sont libérées Base de données
cohérente (propre)

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

Options d'arrêt
SHUTDOWN NORMAL
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 à
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 en mode TRANSACTIONAL évite aux clients de perdre des données, notamment les
résultats des activités en cours. Un arrêt TRANSACTIONAL de la base de données
s'accompagne des 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.

Oracle Database 11g : Administration Workshop I 4 - 33


Options d'arrêt : Exemples
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL> shutdown

SQL> shutdown transactional

SQL> shutdown immediate

Oracle University and Catalyst Business Solutions use only


SQL> shutdown abort

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

Options d'arrêt (suite)


SHUTDOWN IMMEDIATE
Un arrêt en mode IMMEDIATE de la base de données s'accompagne des 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.

Oracle Database 11g : Administration Workshop I 4 - 34


Options d'arrêt
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Vers le bas : Options : Vers le haut :


• Les mémoires • Les fichiers de
SHUTDOWN ABORT
tampon modifiées journalisation en
ou
ne sont pas écrites Echec
ligne sont utilisés
dans les fichiers de d'une instance pour réappliquer
données ou les modifications
STARTUP FORCE
• Les modifications • Les segments

Oracle University and Catalyst Business Solutions use only


non validées ne sont d'annulation sont
pas annulées utilisés pour
annuler les
modifications non
validées
Base de données • Les ressources
incohérente ("dirty") sont libérées

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

Options d'arrêt (suite)


SHUTDOWN ABORT
Si les modes 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 s'accompagne des 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.

Oracle Database 11g : Administration Workshop I 4 - 35


Utiliser SQL*Plus
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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.

Oracle University and Catalyst Business Solutions use only


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 © 2007, Oracle. Tous droits réservés.

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


Pour démarrer la base de données, l'arrêter ou modifier son état à l'aide de SQL*Plus, vous
devez vous connecter en tant que SYSDBA ou SYSOPER. Utilisez ensuite les commandes
équivalant aux fonctionnalités Enterprise Manager décrites précédemment :

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

STARTUP [NOMOUNT | MOUNT | OPEN (open options)] [FORCE]


[RESTRICT]

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 (pour lesquelles la
base de données doit se trouver dans un état particulier).
Remarque : Les options d'ouverture (OPEN) vous permettent de préciser le mode d'accès à
utiliser pour démarrer la base de données considérée. Les modes possibles sont les suivants :
• READ ONLY
• READ WRITE
Vous pouvez également utiliser l'option PFILE pour la commande STARTUP. Elle permet
d'indiquer le fichier de paramètres d'initialisation PFILE à utiliser au démarrage de l'instance.

Oracle Database 11g : Administration Workshop I 4 - 36


Administration des arrêts temporaires
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Administration des arrêts temporaires


Les arrêts temporaires (blackouts) suspendent la collecte des données de surveillance de la
base et l'envoi d'alertes par Database Control. Ils vous permettent d'effectuer des opérations
de maintenance planifiées sur la base de données sans recevoir d'alertes inutiles ni déphaser
les données de surveillance. Par exemple, vous pouvez arrêter la collecte de données pendant
une sauvegarde de la base de données ou une mise à niveau du matériel. Si vous continuez de
surveiller les données pendant ces opérations, les données collectées indiqueront des
tendances et d'autres informations qui ne reflètent pas le fonctionnement normal du système.
Pour obtenir une image exacte à long terme des performances de la base de données, vous
pouvez procéder à des arrêts temporaires afin de ne pas analyser les données correspondant à
des situations exceptionnelles.
Pour définir un arrêt temporaire :
1. Cliquez sur Setup en haut d'une page Database Control. La page Enterprise Manager
Configuration apparaît et affiche la fenêtre Overview of Setup.
2. Dans le volet de gauche, cliquez sur Blackouts. La page Blackouts apparaît.
3. Cliquez sur Create pour lancer l'assistant Create Blackout Wizard. La page Create
Blackout: Properties apparaît.
4. Vous pouvez remplacer le nom par défaut par un nom de votre choix. Dans le champ
Comments, entrez un texte décrivant le but de cet arrêt temporaire.

Oracle Database 11g : Administration Workshop I 4 - 37


Administration des arrêts temporaires (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

5. Dans la liste déroulante Reason, sélectionnez le motif le plus approprié.


6. Dans la liste déroulante Type de la section Available Targets, sélectionnez Database
Instance. L'ID de votre instance de base de données (SID) s'affiche dans la liste
Available Targets.
7. Dans la liste Available Targets, sélectionnez l'ID de votre instance et cliquez sur l'icône
Move.
Cliquez sur Next. La page Create Blackout Schedule apparaît.
8. Dans la section Start, planifiez un arrêt temporaire immédiat ou indiquez une date et
une heure ultérieures.
9. Dans la section Duration, précisez la durée de l'arrêt temporaire.
10. Pour planifier un arrêt temporaire qui se répète périodiquement, sélectionnez une

Oracle University and Catalyst Business Solutions use only


fréquence dans la liste Repeat de la section Repeating. Cliquez sur Next. La page de
synthèse apparaît.
11. Vérifiez les paramètres que vous avez entrés. Vous pouvez cliquer sur le bouton Back
pour modifier un paramètre. Cliquez sur Finish.
La page Confirmation apparaît et affiche la nouvelle période d'arrêt temporaire.

Oracle Database 11g : Administration Workshop I 4 - 38


Afficher le fichier d'alertes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants
SQL*Plus
Param. d'init.
Démarrage BdD
Arrêt BdD
> Fichier d'alertes
Page d'accueil de la base de données > Vues de perf.

Région Related Links > Alert Log Content

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 de base de données, par défaut dans le dossier
$ORACLE_BASE/diag/rdbms/<db_name>/<SID>/trace si $ORACLE_BASE est
défini.
Le fichier d'alertes d'une base de données est un journal chronologique de messages signalant
notamment :
• 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.
Oracle Database utilise le fichier d'alertes pour conserver une trace de ces événements au lieu
de les afficher sur la console d'un opérateur. (De nombreux systèmes affichent également ces
informations sur la console.) Si une opération d'administration se déroule correctement, elle
est consignée dans le fichier d'alertes avec le statut "completed" et un horodatage.

Oracle Database 11g : Administration Workshop I 4 - 39


Afficher le fichier d'alertes (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Enterprise Manager surveille le fichier d'alertes et vous informe des erreurs critiques.
Vous pouvez également afficher ce fichier afin de voir les erreurs non critiques et les
messages d'information. Le fichier d'alertes pouvant atteindre une taille impossible à gérer,
vous pouvez le sauvegarder périodiquement et supprimer le fichier en cours. Lorsque la base
de données tente d'écrire à nouveau dans le fichier d'alertes, elle en crée un nouveau.
Remarque : Il existe une version XML du fichier d'alertes dans le répertoire
$ORACLE_BASE/diag/rdbms/<db_name>/<SID>/alert.
Pour afficher le fichier d'alertes dans un éditeur de texte :
• Connectez-vous à la base de données à l'aide de SQL*Plus (ou un autre outil
d'interrogation tel que SQM Developer).

Oracle University and Catalyst Business Solutions use only


• Interrogez la vue V$DIAG_INFO.
Pour afficher le journal d'alerte au format texte, sans les balises XML :
• Dans les résultats de l'interrogation de la vue V$DIAG_INFO, notez le chemin
correspondant à l'entrée Diag Trace. Accédez au répertoire indiqué dans le chemin.
• Ouvrez le fichier alert_SID.log à l'aide d'un éditeur de texte.
Pour afficher le fichier d'alertes au format XML :
• Dans les résultats de l'interrogation de la vue V$DIAG_INFO, notez le chemin
correspondant à l'entrée Diag Alert. Accédez au répertoire indiqué dans le chemin.
• Ouvrez le fichier log.xml à l'aide d'un éditeur de texte.

Oracle Database 11g : Administration Workshop I 4 - 40


Afficher l'historique des alertes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 : seuil d'avertissement ou seuil critique d'une mesure surveillée, cible qui
n'est plus disponible.

Oracle Database 11g : Administration Workshop I 4 - 41


Utiliser les fichiers trace
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Chaque processus serveur ou en arrière-plan


peut écrire dans un fichier trace associé.
• Les informations relatives aux erreurs sont consignées
dans le fichier trace correspondant.
• Référentiel ADR (Automatic Diagnostic Repository)
– Référentiel central de trace et de journalisation pour

Oracle University and Catalyst Business Solutions use only


l'ensemble du système
– Il contient des données de diagnostic de la base de
données, notamment :
— Fichiers trace
— Fichiers d'alertes
— Rapports sur l'état du système

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

Utiliser les fichiers trace


Chaque processus serveur ou en arrière-plan peut écrire dans un fichier trace associé.
Lorsqu'un processus détecte une erreur interne, il effectue un dump des informations relatives
à cette erreur vers son fichier trace. Si une erreur interne se produit et que des informations
sont consignées dans un fichier trace, l'administrateur doit contacter le Support technique
Oracle.
Tous les noms de fichier et fichiers trace associés à un processus en arrière-plan contiennent
le nom du processus qui les a générés. Les seules exceptions sont les fichiers trace qui sont
générés par les processus de gestion des files d'attente de travaux (Jnnn).
D'autres informations consignées dans les fichiers trace peuvent donner des indications pour
le réglage des applications ou d'une instance. Les processus en arrière-plan écrivent toujours
ces informations dans un fichier trace le cas échéant.
Oracle Database 11g introduit une infrastructure avancée qui permet de prévenir, détecter,
diagnostiquer et résoudre les problèmes. Les problèmes visés sont notamment les erreurs
critiques que peuvent causer des bugs dans le code de la base de données, la corruption des
métadonnées ou données client.

Oracle Database 11g : Administration Workshop I 4 - 42


Utiliser les fichiers trace (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Quand une erreur critique se produit, un numéro d'incident lui est affecté ; les données de
diagnostic concernant cette erreur (fichiers trace notamment) sont immédiatement capturées
et marquées de ce numéro. Ces données sont ensuite stockées dans le référentiel de diagnostic
automatique (ADR – Automatic Diagnostic Repository). Il s'agit d'un fichier extérieur à la
base de données d'où vous pouvez ensuite extraire les informations qui vous intéressent par
numéro d'incident afin de les analyser.
Le référentiel ADR est un référentiel central de trace et de journalisation à l'échelle du
système. Il contient les données de diagnostic de la base (traces, fichier d'alertes, rapports sur
l'état du système, etc.).
Le répertoire racine de ce référentiel est appelé base ADR. Son emplacement est défini par le

Oracle University and Catalyst Business Solutions use only


paramètre d'initialisation DIAGNOSTIC_DEST. Si ce paramètre est omis ou n'est pas défini,
la base de données le configure au démarrage selon les règles suivantes :
• Si la variable d'environnement ORACLE_BASE est définie, le répertoire désigné devient
l'emplacement DIAGNOSTIC_DEST.
• Si la variable d'environnement ORACLE_BASE n'est pas définie, l'emplacement
DIAGNOSTIC_DEST est ORACLE_HOME/log.
Le chemin d'un répertoire d'origine ADR est le suivant, à partir du répertoire de la base ADR :
diag/product_type/product_id/instance_id

Oracle Database 11g : Administration Workshop I 4 - 43


Vues dynamiques
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Composants
des performances SQL*Plus
Param. d'init.
Démarrage BdD
Arrêt BdD
Elles permettent d'accéder à Fichier d'alertes
> Vues de perf.
des informations relatives
aux changements d'état des Données de session
Evénements Wait
structures mémoire de
Allocations mémoire
l'instance Code SQL exécuté
Utilisation des
données d'annulation

Oracle University and Catalyst Business Solutions use only


Curseurs ouverts
Utilisation des
données de journal.
...etc.

Instance Oracle

Copyright © 2007, 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
• Etat des fichiers
• Progression des travaux et des tâches
• Verrous externes
• 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.

Oracle Database 11g : Administration Workshop I 4 - 44


Vues dynamiques des performances :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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;

Oracle University and Catalyst Business Solutions use only


SQL> SELECT sid, ctime FROM v$lock
c
WHERE block > 0;

Copyright © 2007, 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 maintenu ?

Oracle Database 11g : Administration Workshop I 4 - 45


Vues dynamiques des performances : Remarques
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, 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.
Certaines vues dynamiques (V$) contiennent des informations similaires à celles des vues
DBA_ correspondantes. Par exemple, V$DATAFILE est semblable à DBA_DATAFILES.
Notez également que les noms des vues V$ sont généralement au singulier et ceux des vues
DBA_ au pluriel.

Oracle Database 11g : Administration Workshop I 4 - 46


Schéma
Dictionnaire de données : Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Index
Présentation Vues
Séquences
Tables temp.
> Dict. de données

Tables
Index
Vues
Utilisateurs
Schémas

Oracle University and Catalyst Business Solutions use only


Procédures
...etc.

SELECT * FROM dictionary;

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

Dictionnaire de données : Présentation


Le dictionnaire de données Oracle est la description d'une base de données. Il contient les
noms 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.
Caractéristiques du dictionnaire de données :
• Il 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.
• Il est mis à jour par le serveur de base de données Oracle lorsque des définitions ou des
structures d'objet sont modifiées.
• Il peut être utilisé par n'importe quel utilisateur pour la recherche d'informations sur la
base de données.
• Il appartient à l'utilisateur SYS.
• Il 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 à la
documentation Oracle Database Reference.

Oracle Database 11g : Administration Workshop I 4 - 47


Vues du dictionnaire de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


l'utilisateur est
autorisé à voir

USER_ Tous Tous les Vues ALL_ Normalement identique à la


éléments dont vue ALL_, mais sans la
l'utilisateur est colonne OWNER (certaines
le propriétaire vues sont dotées de noms
abrégés comme synonymes
PUBLIC)

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

Vues du dictionnaire de données


Le préfixe de chaque nom de vue indique le type et la quantité de données qu'un utilisateur est
autorisé à voir.
La vue globale (tous contenus) identifiée par le préfixe DBA_, n'est accessible qu'aux
utilisateurs disposant de privilèges DBA.
Le niveau suivant de privilège correspond au 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_ correspond à la visibilité la plus restreinte. Les vues de ce type affichent
uniquement les objets dont l'utilisateur exécutant l'interrogation est propriétaire (c'est-à-dire
les objets présents dans le schéma de cet utilisateur).

Oracle Database 11g : Administration Workshop I 4 - 48


Vues du dictionnaire de données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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.

Oracle University and Catalyst Business Solutions use only


Les vues DBA_ peuvent être interrogées par les utilisateurs disposant du privilège SYSDBA ou
SELECT ANY DICTIONARY.

Oracle Database 11g : Administration Workshop I 4 - 49


Dictionnaire de données : Exemples d'utilisation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

a
SELECT table_name, tablespace_name FROM
user_tables;

SELECT sequence_name, min_value, max_value,


b increment_by FROM all_sequences WHERE

Oracle University and Catalyst Business Solutions use only


sequence_owner IN ('MDSYS','XDB');

c SELECT USERNAME, ACCOUNT_STATUS FROM


dba_users WHERE ACCOUNT_STATUS = 'OPEN';

d DESCRIBE dba_indexes;

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

Dictionnaire de données : Exemples d'utilisation


Les exemples présentés dans la diapositive ci-dessus répondent 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)

Oracle Database 11g : Administration Workshop I 4 - 50


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• modifier les paramètres d'initialisation d'une 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 © 2007, Oracle. Tous droits réservés.

Oracle Database 11g : Administration Workshop I 4 - 51


Exercice 4 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Gérer l'instance Oracle

Dans cet exercice, vous allez :


• naviguer dans Enterprise Manager
• afficher et modifier les paramètres d'initialisation
• arrêter et démarrer l'instance de base de données
• consulter le fichier d'alertes

Oracle University and Catalyst Business Solutions use only


• vous connecter à la base de données à l'aide de
SQL*Plus

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

Oracle Database 11g : Administration Workshop I 4 - 52


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Configurer l'environnement réseau Oracle

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• utiliser Enterprise Manager pour :
– créer des processus d'écoute supplémentaires
– créer des alias de service Oracle Net
– configurer la gestion des incidents de connexion
– contrôler le processus d'écoute Oracle Net

Oracle University and Catalyst Business Solutions use only


• utiliser tnsping pour tester la connectivité Oracle Net
• déterminer quand utiliser des serveurs partagés et
quand utiliser des serveurs dédiés

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

Ressources
• Oracle Database Net Services Administrator's Guide 11g Release 1
• Oracle Database Net Services Reference 11g Release 1

Oracle Database 11g : Administration Workshop I 5 - 2


Services Oracle Net
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Application SGBDR

Oracle Net Réseau Oracle Net

Oracle University and Catalyst Business Solutions use only


Client ou niveau TCP/IP
Processus Serveur de base
intermédiaire
d'écoute de données

Fichiers de configuration Fichiers de configuration


Oracle Net Oracle Net

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

Services Oracle Net


Oracle Net Services permet les connexions réseau d'un client ou d'une application de niveau
intermédiaire (middle tier) au serveur Oracle. Après l'établissement d'une session réseau,
Oracle Net joue le rôle de transporteur de données pour l'application client et le serveur de
base de données. Il est responsable de l'établissement et de la maintenance de la connexion
entre l'application client et le serveur de base de données, ainsi que de l'échange des messages
entre eux. Oracle Net ou une simulation telle que JDBC (Java Database Connectivity), réside
sur chaque ordinateur qui doit communiquer avec le serveur de base de données.
Sur l'ordinateur client, Oracle Net est un composant en arrière-plan pour les applications qui
se connectent à la base de données.
Sur le serveur de base de données, Oracle Net comprend un processus actif appelé Oracle Net
Listener qui est chargé de coordonner les connexions entre la base de données et les
applications externes.
L'utilisation la plus courante d'Oracle Net Services est l'autorisation des connexions de base
de données entrantes. Vous pouvez configurer des services supplémentaires pour autoriser
l'accès aux bibliothèques de code externes (EXTPROC) et pour la connexion de l'instance
Oracle à des sources de données non Oracle, par exemple Sybase, Informix, DB2 ou SQL
Server, via les services hétérogènes (Heterogeneous Services) Oracle.

Oracle Database 11g : Administration Workshop I 5 - 3


Processus d'écoute Oracle Net
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Enterprise Processus d'écoute


Manager

Oracle University and Catalyst Business Solutions use only


Database
Control Bases de données
Oracle

Fichiers de configuration
Oracle Net
<oracle_home>/network/admin/listener.ora
sqlnet.ora

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

Processus d'écoute Oracle Net


Le processus d'écoute (listener) Oracle Net (ou simplement le processus d'écoute) est la
passerelle vers l'instance Oracle pour toutes les connexions utilisateur non locales. Un même
processus d'écoute peut gérer plusieurs instances de base de données et des milliers de
connexions client.
Enterprise Manager est l'un des moyens permettant d'accéder au processus d'écoute.
Vous pouvez contrôler la configuration du processus d'écoute proprement dit, ainsi que des
paramètres généraux tels que la protection par mot de passe et l'emplacement des fichiers
journaux.
Les administrateurs chevronnés peuvent également configurer Oracle Net Services en éditant
manuellement les fichiers de configuration (si nécessaire) à l'aide d'un éditeur de texte
standard du système d'exploitation tel que vi ou gedit.

Oracle Database 11g : Administration Workshop I 5 - 4


Etablir des connexions réseau
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Pour établir une connexion avec le client ou le niveau


intermédiaire, Oracle Net a besoin que le client connaisse
les informations suivantes :
• Hôte sur lequel le processus d'écoute s'exécute
• Port surveillé par le processus d'écoute
• Protocole utilisé par le processus d'écoute

Oracle University and Catalyst Business Solutions use only


• Nom du service géré par le processus d'écoute

Résolution de noms

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

Etablir des connexions réseau


Pour qu'une application puisse se connecter à un service via un processus d'écoute (listener)
Oracle Net, elle doit connaître certaines informations sur ce service, notamment l'adresse ou
l'hôte sur lequel le processus d'écoute réside, le protocole accepté par le processus d'écoute, et
le port surveillé par le processus d'écoute. Une fois le processus d'écoute localisé,
l'information finale dont l'application a besoin est le nom du service auquel elle doit se
connecter.
La résolution de noms Oracle Net est le processus qui consiste à déterminer ces informations
de connexion.

Oracle Database 11g : Administration Workshop I 5 - 5


Etablir une connexion
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Demande de
connexion entrante
Processus d'écoute

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

Etablir une connexion


Une fois la résolution de noms Oracle Net terminée, une demande de connexion est transmise
de l'utilisateur ou de l'application de niveau intermédiaire (middle tier), appelé(e) processus
utilisateur par la suite, au processus d'écoute (listener). Le processus d'écoute reçoit un paquet
CONNECT et vérifie qu'il demande un nom de service Oracle Net valide.
Si le nom du service n'est pas demandé (comme dans le cas d'une demande tnsping), le
processus d'écoute accuse réception de la demande de connexion et ne fait rien de plus. Si un
nom de service non valide est demandé, le processus d'écoute transmet un code d'erreur au
processus utilisateur.

Oracle Database 11g : Administration Workshop I 5 - 6


Sessions utilisateur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Processus
serveur

Session PGA

Oracle University and Catalyst Business Solutions use only


utilisateur

Processus
utilisateur

Processus d'écoute

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

Sessions utilisateur
Si le paquet CONNECT demande un nom de service valide, le processus d'écoute (listener) crée
un nouveau processus afin de traiter la connexion. Ce nouveau processus est appelé processus
serveur. Le processus d'écoute s'y connecte et lui transmet des informations d'initialisation,
notamment l'adresse du processus utilisateur. A ce stade, le processus d'écoute ne gère plus la
connexion et tout le travail est transmis au processus serveur.
Le processus serveur vérifie les informations d'identification et de connexion (credentials) de
l'utilisateur (généralement un mot de passe). Si elles sont valides, une session utilisateur est
créée.
Processus serveur dédié : La session étant établie, le processus serveur joue à présent le rôle
d'agent de l'utilisateur sur le serveur. Le processus serveur est responsable des opérations
suivantes :
• Analyse (parse) et exécution des instructions SQL exécutées par l'intermédiaire de
l'application.
• Examen du cache de tampons (buffer cache) de la base de données à la recherche de blocs
de données requis pour exécuter les instructions SQL.
• Lecture des blocs de données nécessaires à partir des fichiers de données sur disque dans la
partie cache de tampons de la base de données de la mémoire SGA (System Global Area),
si les blocs ne sont pas déjà présents dans la mémoire SGA.
• Gestion de toutes les activités de tri. La zone de tri est une zone de mémoire qui est utilisée
pour les tris. Elle se trouve dans une portion de la mémoire associée à la mémoire PGA
(Program Global Area).
• Renvoi des résultats au processus utilisateur de sorte que l'application puisse traiter les
informations.
• Lecture des options d'audit et envoi d'un état des processus utilisateur à la destination
d'audit.
Oracle Database 11g : Administration Workshop I 5 - 7
Outils de configuration et de gestion de
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

l'environnement réseau Oracle

• Page Net Services Administration d'Enterprise Manager


• Oracle Net Manager
• Oracle Net Configuration Assistant lancé par Oracle
Universal Installer
• Ligne de commande

Oracle University and Catalyst Business Solutions use only


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

Outils de configuration et de gestion de l'environnement réseau Oracle


Vous disposez des outils ou applications ci-après pour gérer la configuration réseau Oracle :
• Enterprise Manager : Environnement intégré pour la configuration et la gestion
d'Oracle Net Services. Utilisez Enterprise Manager pour configurer Oracle Net Services
pour n'importe quel répertoire d'origine Oracle Home sur plusieurs systèmes de fichiers
et pour gérer les processus d'écoute (listeners).
• Oracle Net Manager : Interface utilisateur graphique qui permet de configurer Oracle
Net Services pour un répertoire d'origine Oracle Home sur un client local ou un hôte
serveur. Oracle Net Manager permet de configurer Oracle Net Services pour un
répertoire d'origine Oracle Home sur un client local ou un hôte serveur. Vous pouvez
utiliser Oracle Net Manager pour configurer les composants réseau suivants :
- Noms : Définissez des noms et des identificateurs de connexion simples, puis
mettez-les en correspondance avec des descripteurs de connexion afin de déterminer
l'emplacement et l'identification d'un service au sein du réseau. Oracle Net Manager
prend en charge la configuration d'identificateurs de connexion dans les fichiers
tnsnames.ora locaux ou un service d'annuaire centralisé.
- Méthodes de résolution des noms : Configurez les différentes manières de résoudre
les identificateurs de connexion en descripteurs de connexion.
- Profils : Configurez des préférences pour activer et configurer les fonctionnalités
Oracle Net sur le client ou le serveur.
- Processus d'écoute : Créez et configurez des processus d'écoute pour recevoir les
connexions client.

Oracle Database 11g : Administration Workshop I 5 - 8


Outils de configuration et de gestion de l'environnement réseau Oracle (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Oracle Net Configuration Assistant : Assistant lancé par Oracle Universal Installer lors
de l'installation du logiciel Oracle. Il permet de configurer l'adresse du protocole d'écoute
et les informations relatives aux services pour une base de données Oracle. Pendant une
installation standard de la base de données, Oracle Net Configuration Assistant configure
automatiquement un processus d'écoute nommé LISTENER qui comprend une adresse
d'écoute TCP/IP pour la base de données. Si vous effectuez une installation
personnalisée, Oracle Net Configuration Assistant vous invite à configurer le nom et
l'adresse de votre choix pour le processus d'écoute. Utilisez Oracle Net Configuration
Assistant pour la configuration initiale du réseau après avoir installé la base de données.
Vous pouvez ensuite utiliser Oracle Enterprise Manager et Oracle Net Manager pour
configurer et administrer vos réseaux.

Oracle University and Catalyst Business Solutions use only


• Ligne de commande : Permet de démarrer le processus d'écoute, de l'arrêter et d'afficher
son statut. C'est un utilisateur du système d'exploitation (oracle dans ce cours) qui
démarre ou arrête le processus d'écoute. Si le processus d'écoute n'est pas démarré, vous
ne pouvez pas utiliser Enterprise Manager.

Oracle Database 11g : Administration Workshop I 5 - 9


Utilitaire de contrôle des processus d'écoute
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les processus d'écoute Oracle Net peuvent être contrôlés


à l'aide de l'utilitaire de ligne de commande lsnrctl
(ou à partir d'Enterprise Manager).
[oracle@edrsr17p1 ~]$ lsnrctl
LSNRCTL for Linux: Version 11.1.0.3.0 - Beta on 30-MAY-2007 22:38:19
Copyright (c) 1991, 2006, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.

Oracle University and Catalyst Business Solutions use only


LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start stop status
services version reload
save_config trace spawn
change_password quit exit
set* show*

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

Utilitaire de contrôle des processus d'écoute


Lorsqu'une instance démarre, un processus d'écoute (listener) établit une voie de
communication vers la base de données Oracle. Le processus d'écoute peut alors accepter les
demandes de connexion à la base.
L'utilitaire de contrôle lsnrctl vous permet de contrôler ce dernier. Grâce à lsnrctl,
vous pouvez effectuer les opérations suivantes :
• Démarrer le processus d'écoute
• Arrêter le processus d'écoute
• Vérifier le statut du processus d'écoute
• Réinitialiser le processus d'écoute à partir des paramètres du fichier de configuration
• Configurer dynamiquement plusieurs processus d'écoute
• Changer le mot de passe du processus d'écoute
La syntaxe de base de la commande de cet utilitaire est la suivante :
LSNRCTL> command [listener_name]
Lorsqu'une commande lsnrctl est exécutée, elle agit sur le processus d'écoute par défaut
(nommé LISTENER), sauf si le nom d'un autre processus d'écoute est indiqué ou s'il s'agit de
la commande SET CURRENT_LISTENER. Si le nom du processus d'écoute est LISTENER,
l'argument listener_name peut être omis.
Les commandes valides pour lsnrctl sont indiquées dans la diapositive ci-dessus.

Oracle Database 11g : Administration Workshop I 5 - 10


Syntaxe de l'utilitaire de contrôle de processus
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

d'écoute

Les commandes de l'utilitaire de contrôle de processus


d'écoute peuvent être exécutées à partir de la ligne de
commande ou de l'invite LSNRCTL.
• Syntaxe de la ligne de commande sous UNIX ou Linux :
$ lsnrctl <command name>

Oracle University and Catalyst Business Solutions use only


$ lsnrctl start
$ lsnrctl status

• Syntaxe de l'invite (utilitaire) :


LSNRCTL> <command name>
LSNRCTL> start
LSNRCTL> status

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

Syntaxe de l'utilitaire de contrôle de processus d'écoute


Les commandes lsnrctl peuvent être exécutées à partir de l'utilitaire (syntaxe d'invite) ou
à partir de la ligne de commande. Les deux commandes suivantes ont le même effet, mais
l'une est exécutée à partir de la ligne de commande et l'autre, à partir de l'invite de l'utilitaire :
Ligne de commande :
$ lsnrctl start
Invite de l'utilitaire :
$ lsnrctl
LSNRCTL for Linux: Version 11.1.0.3.0 - Beta on 22-JUN-2007
01:35:30
Copyright (c) 1991, 2006, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
En général, la syntaxe de ligne de commande est utilisée pour exécuter des commandes
individuelles ou des scripts. Si vous prévoyez d'exécuter plusieurs commandes lsnrctl
consécutives, la syntaxe d'invite est plus efficace. Notez que l'argument listener_name
est omis. La commande STOP affecterait donc le processus d'écoute nommé LISTENER.
La syntaxe d'invite doit être utilisée si le processus d'écoute est protégé par mot de passe.

Oracle Database 11g : Administration Workshop I 5 - 11


Syntaxe de l'utilitaire de contrôle du processus d'écoute (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Rappelez-vous que si le processus d'écoute porte un nom autre que LISTENER, vous devez
soit inclure le nom du processus d'écoute dans la commande, soit utiliser la commande SET
CURRENT_LISTENER. Supposons que le processus d'écoute soit nommé flovr_lis.
Voici deux exemples qui arrêtent le processus flovr_lis à l'aide de la syntaxe d'invite :
LSNRCTL> stop flovr_lis
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel)(PORT=5521)))
The command completed successfully
La syntaxe qui suit génère le même résultat :
LSNRCTL> set cur flovr_lis

Oracle University and Catalyst Business Solutions use only


Current Listener is flovr_lis
LSNRCTL> stop
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel)(PORT=5521)))
The command completed successfully
Remarque : Dans la syntaxe précédente, current_listener peut être abrégé en cur.
La syntaxe de la ligne de commande suivante produit les mêmes résultats :
/home/oracle> lsnrctl stop flovr_lis
LSNRCTL for Linux:Version 10.2.0.0.0 on 12-MAY-2005 15:19:33
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rhel)(PORT=5521)))
The command completed successfully

Oracle Database 11g : Administration Workshop I 5 - 12


Page d'accueil Listener
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Page d'accueil Listener


Cliquez sur le lien Listener dans la page d'accueil Database Instance d'Enterprise Manager
pour accéder à la page d'accueil Listener.
Cette page fournit les informations suivantes :
• Statut et disponibilité du processus d'écoute (listener) au cours des dernières 24 heures
• Version et répertoire d'origine Oracle Home du processus d'écoute
• Première adresse d'écoute associée au processus d'écoute
• Emplacement des fichiers de configuration utilisés pour démarrer le processus d'écoute
• Heure de démarrage du processus d'écoute et informations relatives à l'hôte
Pour démarrer le processus d'écoute, accédez à la page d'accueil de l'instance de base de
données et cliquez sur le nom du processus d'écoute afin d'ouvrir la page d'accueil Listener.
Cliquez sur Stop pour arrêter le processus d'écoute s'il est en cours d'exécution ou sur Start
pour le démarrer dans le cas contraire. Connectez-vous à l'hôte sous le nom de l'utilisateur du
système d'exploitation qui peut démarrer et arrêter le processus d'écoute.

Oracle Database 11g : Administration Workshop I 5 - 13


Pages Net Services Administration
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Pages Net Services Administration


La page Net Services Administration permet de configurer Oracle Net Services pour
n'importe quel répertoire d'origine Oracle Home sur plusieurs systèmes de fichiers.
Elle fournit également des fonctions d'administration courantes pour les processus d'écoute
(listeners). Vous pouvez utiliser la page Net Services Administration pour configurer et
administrer les éléments suivants :
• Processus d'écoute : Vous pouvez ajouter, supprimer, démarrer et arrêter un processus
d'écoute, ou encore modifier les options de trace et de journalisation associées.
Vous pouvez également consulter l'état généré par le contrôle d'un processus d'écoute.
• Résolution de noms d'annuaire : Définissez des noms et des identificateurs de
connexion simples, puis mettez-les en correspondance avec des descripteurs de
connexion afin d'identifier l'emplacement et l'identification d'un service au sein du
réseau. Enregistrez les services de base de données, les services réseau et les alias de
service réseau dans un service d'annuaire centralisé.
• Résolution locale de noms : Enregistrez les noms de service réseau dans le fichier
tnsnames.ora.
• Profils : Configurez les paramètres du fichier sqlnet.ora.
• Emplacement de fichier : Modifiez l'emplacement des fichiers de configuration des
services réseau.

Oracle Database 11g : Administration Workshop I 5 - 14


Créer un processus d'écoute
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

1 1

Oracle University and Catalyst Business Solutions use only


3
4

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

Créer un processus d'écoute


Pour créer un processus d'écoute (listener) Oracle Net, sélectionnez Net Services
Administration dans la région Related Links de la page de propriétés du processus d'écoute.
Procédez ensuite de la façon suivante :
1. Sélectionnez Listeners dans la liste déroulante Administer et cliquez sur Go.
2. Cliquez sur Create.
3. Indiquez le nom du processus d'écoute. Ce nom doit être unique sur le serveur.
4. Ajoutez une adresse de processus d'écoute. Chaque processus d'écoute doit comporter au
moins une adresse de processus d'écoute.

Oracle Database 11g : Administration Workshop I 5 - 15


Ajouter des adresses de processus d'écoute
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

5
6
7

Oracle University and Catalyst Business Solutions use only


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

Ajouter des adresses de processus d'écoute


Suite du workflow de création d'un processus d'écoute :
5. Sélectionnez le protocole réseau. Le protocole TCP/IP est sélectionné par défaut. Il s'agit
du protocole le plus couramment utilisé. Les autres options sont IPC (Internal Process
Communication), généralement utilisé pour la connexion à des applications locales
(résidant sur le serveur de base de données), ou des bibliothèques de code externes
(EXTPROC), NMP (Named Pipes) et TCP/IP avec SSL.
Remarque : Les protocoles NMP et EXTPROC sont configurés via l'onglet Other
Services.
6. Indiquez le port que doit surveiller le processus d'écoute. Le numéro de port par défaut
d'Oracle Net est 1521. Si vous optez pour un autre port, des opérations de configuration
supplémentaires sont nécessaires pour le processus d'écoute (listener) ou pour l'instance.
7. Entrez le nom ou l'adresse IP du serveur sur lequel le processus d'écoute va s'exécuter.
8. Toutes les autres étapes de configuration sont facultatives pour le processus d'écoute.
Cliquez sur OK pour enregistrer l'adresse. Les seuls paramètres devant obligatoirement
être configurés sont l'adresse d'écoute et le nom du processus. Cliquez sur OK pour
enregistrer vos modifications.
9. Pour démarrer le nouveau processus d'écoute, sélectionnez Start/Stop dans la liste
déroulante Actions et cliquez sur Go.

Oracle Database 11g : Administration Workshop I 5 - 16


Enregistrement d'un service de base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Enregistrement d'un service de base de données


Pour qu'un processus d'écoute (listener) transmette des connexions client à une instance, il
doit connaître le nom de l'instance et savoir où se trouve le répertoire d'origine
ORACLE_HOME de l'instance. Le processus d'écoute peut trouver ces informations de deux
façons :
• Enregistrement dynamique de services : Les instances Oracle8i et ultérieures
s'enregistrent automatiquement auprès du processus d'écoute par défaut lors du
démarrage de la base de données. Aucune configuration supplémentaire n'est requise
pour le processus d'écoute par défaut.
• Enregistrement statique de services : Les versions antérieures de la base de données
Oracle ne s'enregistrent pas automatiquement auprès du processus d'écoute. Il faut donc
que la liste de tous les services de base de données gérés par le processus d'écoute figure
dans le fichier de configuration de celui-ci. Vous pouvez tout de même opter pour
l'enregistrement statique de services avec les versions plus récentes dans les cas
suivants :
- Le processus d'écoute n'utilise pas le port par défaut 1521 et vous ne souhaitez pas
configurer l'instance pour l'enregistrement avec un port autre que celui par défaut.
- L'application nécessite un enregistrement statique de services.
Pour ajouter un service de base de données statique, cliquez sur Static Database Registration
dans la page Edit Listener et cliquez sur le bouton Add. Entrez le nom du service (identique
au nom global de base de données <DB_NAME>.<DB_DOMAIN>), le chemin du répertoire
d'origine ORACLE_HOME et le SID (identique au nom de l'instance). Cliquez sur OK. Pour
que les modifications prennent effet, vous devez recharger le processus d'écoute (à l'aide de la
commande RELOAD) ou le redémarrer.

Oracle Database 11g : Administration Workshop I 5 - 17


Enregistrement d'un service de base de données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Noms des services


Le paramètre d'initialisation SERVICE_NAMES définit un ou plusieurs noms permettant aux
clients de se connecter à l'instance. Celle-ci enregistre ses noms de service auprès du
processus d'écoute (listener). Quand un client demande un service, le processus d'écoute
détermine les instances capables de répondre à la demande et oriente le client en conséquence.
Vous pouvez indiquer plusieurs noms de service pour faire la distinction entre différentes
utilisations de la même base de données. Par exemple :
SERVICE_NAMES = sales.acme.com, eurosales.acme.com
Vous pouvez également utiliser plusieurs noms de service pour identifier un seul service
accessible à partir de deux bases de données différentes par voie de réplication.

Oracle University and Catalyst Business Solutions use only


Si vous ne qualifiez pas les noms de service par un nom de domaine dans ce paramètre,
Oracle utilise le nom de domaine indiqué par le paramètre DB_DOMAIN. Si DB_DOMAIN
n'est pas défini, aucun nom de domaine ne vient qualifier les valeurs SERVICE_NAMES.
Dans Oracle Net Manager, le nom de service est défini par le paramètre d'initialisation
GLOBAL_DBNAME. Ce paramètre identifie le service de base de données.
Lorsque le processus d'écoute traite une demande de connexion client, il essaie de mettre en
correspondance la valeur de ce paramètre avec celle du paramètre SERVICE_NAME défini
dans le descripteur de connexion client.
Si le descripteur de connexion client utilise le paramètre SID, le processus d'écoute ne tente
aucune mise en correspondance. La valeur de ce paramètre est généralement une combinaison
des paramètres DB_NAME et DB_DOMAIN figurant dans le fichier de paramètres
d'initialisation (DB_NAME.DB_DOMAIN). Elle peut néanmoins contenir tout nom valide
utilisé par les clients pour identifier le service.

Oracle Database 11g : Administration Workshop I 5 - 18


Méthodes de résolution des noms
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Net prend en charge plusieurs méthodes


de résolution des informations de connexion :
• Résolution de noms Easy Connect : utilise une chaîne
de connexion TCP/IP
• Résolution locale de noms : utilise un fichier de
configuration local
• Résolution de noms d'annuaire : utilise un serveur
de services annuaire LDAP centralisé

Oracle University and Catalyst Business Solutions use only


• Résolution de noms externe : utilise un service
de noms non Oracle pris en charge
Client/serveur d'applications
Oracle Net

Fichiers de configuration Oracle Net

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

Méthodes de résolution de noms


Oracle Net prend en charge les méthodes de résolution de noms suivantes :
• Résolution de noms Easy Connect : Cette méthode permet aux clients de se connecter à
un serveur de base de données Oracle à l'aide d'une chaîne de connexion TCP/IP
composée d'un nom d'hôte, et éventuellement d'un port et d'un nom de service, comme
suit :
CONNECT username/password@host[:port][/service_name]
Cette méthode ne requiert aucune configuration.
• Résolution locale de noms : Cette méthode stocke les descripteurs de connexion,
identifiés par leur nom de service réseau, dans un fichier de configuration local nommé
tnsnames.ora sur le client.
• Résolution de noms d'annuaire : Cette méthode stocke les identificateurs de connexion
sur un serveur de services annuaire LDAP (Lightweight Directory Access Protocol)
centralisé pour l'accès à un service de base de données.
• Résolution de noms externe : Cette méthode stocke les noms de service réseau dans un
service de noms non Oracle pris en charge. Les services tiers pris en charge sont les
suivants :
- Résolution de noms externe dans l'environnement NIS (Network Information
Service)
- CDS (Cell Directory Services) dans l'environnement DCE (Distributed Computing
Environment)

Oracle Database 11g : Administration Workshop I 5 - 19


Easy Connect
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Est activé par défaut


• Ne nécessite aucune configuration côté client
• Prend en charge uniquement le protocole TCP/IP (pas
SSL)
• Ne prend pas en charge les options de connexion
avancées telles que :
– Gestion des incidents de connexion
– Routage source

Oracle University and Catalyst Business Solutions use only


– Equilibrage de la charge
SQL> CONNECT hr/[email protected]:1521/dba11g

Pas de fichiers de configuration Oracle Net

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

Easy Connect
Avec Easy Connect, vous fournissez toutes les informations requises pour la connexion
Oracle Net dans la chaîne de connexion. Les chaînes de connexion Easy Connect présentent
la forme suivante :
<username>/<password>@<hostname>:<listener port>/<service name>
Le numéro de port du processus d'écoute (listener port) et le nom du service (service name)
sont facultatifs. Si le port du processus d'écoute n'est pas précisé, Oracle Net utilise le port par
défaut (1521). Si le nom du service est omis, Oracle Net suppose qu'il est identique au nom
d'hôte (hostname) fourni dans la chaîne de connexion.
En supposant que le processus d'écoute utilise le protocole TCP pour écouter sur le port 1521
et que les paramètres d'instance SERVICE_NAMES=db et DB_DOMAIN=us.oracle.com
sont définis, la chaîne de connexion illustrée dans la diapositive ci-dessus peut être abrégée de
la façon suivante :
SQL> connect hr/[email protected]
Remarque : Le paramètre d'initialisation SERVICE_NAMES accepte plusieurs valeurs
séparées par des virgules. Il suffit qu'une seule de ces valeurs soit égale à db pour que ce
scénario fonctionne.

Oracle Database 11g : Administration Workshop I 5 - 20


Résolution locale de noms
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Nécessite un fichier de résolution de noms côté client


• Prend en charge tous les protocoles Oracle Net
• Prend en charge des options de connexion avancées
telles que :
– Gestion des incidents de connexion
– Routage source

Oracle University and Catalyst Business Solutions use only


– Equilibrage de la charge

SQL> CONNECT hr/hr@orcl

Fichiers de configuration
Oracle Net

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

Résolution locale de noms


Avec la résolution locale de noms, l'utilisateur fournit un alias pour le service Oracle Net.
Oracle Net vérifie l'alias par rapport à une liste locale de services connus et, s'il trouve une
correspondance, il convertit l'alias en hôte, protocole, port et nom de service.
L'un des avantages de la résolution locale de noms est qu'il suffit pour les utilisateurs de base
de données de mémoriser un alias court, plutôt que la chaîne de connexion longue requise par
Easy Connect.
La liste locale des services connus est stockée dans le fichier texte de configuration suivant :
<oracle_home>/network/admin/tnsnames.ora
Il s'agit de l'emplacement par défaut du fichier tnsnames.ora, mais il est possible
d'indiquer un autre emplacement à l'aide de la variable d'environnement TNS_ADMIN.
L'option de résolution locale de noms est appropriée pour les organisations dans lesquelles la
configuration des services Oracle Net ne change pas souvent.

Oracle Database 11g : Administration Workshop I 5 - 21


Résolution de noms d'annuaire
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Nécessite un annuaire LDAP incluant les informations


de résolution de noms Oracle Net :
– Oracle Internet Directory
– Microsoft Active Directory Services
• Prend en charge tous les protocoles Oracle Net
• Prend en charge des options de connexion avancées

Oracle University and Catalyst Business Solutions use only


Annuaire LDAP
SQL> CONNECT hr/hr@orcl

Fichiers de configuration
Oracle Net

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

Résolution de noms d'annuaire


Avec la résolution de noms d'annuaire, l'utilisateur fournit un alias pour le service Oracle Net.
Oracle Net vérifie l'alias par rapport à une liste externe de services connus et, s'il trouve une
correspondance, il convertit l'alias en hôte, protocole, port et nom de service. Comme dans le
cas de la résolution locale de noms, il suffit pour les utilisateurs de base de données de
mémoriser un alias court.
L'un des avantages de la résolution de noms d'annuaire est que les utilisateurs disposent d'un
nom de service pour se connecter dès qu'un nouveau nom de service est ajouté à l'annuaire
LDAP. Avec la résolution locale de noms, l'administrateur de base de données (DBA) doit
d'abord distribuer des fichiers tnsnames.ora mis à jour contenant les noms des services
modifiés pour que les utilisateurs puissent se connecter à des services nouveaux ou modifiés.
La résolution de noms d'annuaire est appropriée pour les organisations dans lesquelles la
configuration des services Oracle Net change souvent.

Oracle Database 11g : Administration Workshop I 5 - 22


Méthode de résolution de noms externe
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Utilise un service de noms non Oracle pris en charge


• Inclut :
– Résolution de noms externe dans l'environnement NIS
(Network Information Service)
– CDS (Cell Directory Services) dans l'environnement DCE
(Distributed Computing Environment)

Oracle University and Catalyst Business Solutions use only


Service de noms
non Oracle

Oracle Net

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

Méthode de résolution de noms externe


La méthode de résolution de noms externe stocke les noms de service réseau dans un service
de noms non Oracle pris en charge. Les services tiers pris en charge sont les suivants :
• Résolution de noms externe dans l'environnement NIS (Network Information Service)
• CDS (Cell Directory Services) dans l'environnement DCE (Distributed Computing
Environment)
D'un point de vue conceptuel, la résolution de noms externe est similaire à la résolution de
noms d'annuaire.

Oracle Database 11g : Administration Workshop I 5 - 23


Configurer des alias de service
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Créer ou
modifier

Oracle University and Catalyst Business Solutions use only


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

Configurer des alias de service


Pour créer un alias de service Oracle Net local, sélectionnez Local Naming dans la liste
déroulante Administer et cliquez sur Go, puis cliquez sur Create.
Vous pouvez configurer des alias de service pour la résolution de noms d'annuaire en
sélectionnant Directory Naming plutôt que Local Naming.
Remarque : Si la résolution de noms d'annuaire n'a pas encore été configurée, vous ne
pouvez pas sélectionner l'option Directory Naming. La résolution de noms d'annuaire est
étudiée dans le cours Oracle Enterprise Identity Management ainsi que dans le manuel Oracle
Advanced Security Administration.
Dans la page Create Net Service Name, entrez un nom unique dans le champ Net Service
Name. (Il s'agit du nom que les utilisateurs saisissent lorsqu'ils veulent utiliser cet alias.)
Entrez le nom du service de base de données auquel vous souhaitez vous connecter, ou le SID
de la base, puis cliquez sur le bouton Add afin d'entrer l'adresse associée au nom de service.
Comme adresse, entrez le protocole, le port et l'hôte utilisés par le processus d'écoute
(listener) pour le service auquel vous souhaitez vous connecter.

Oracle Database 11g : Administration Workshop I 5 - 24


Options de connexion avancées
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Net prend en charge les options de connexion


avancées suivantes avec la résolution locale de noms
et la résolution de noms d'annuaire :
• Gestion des incidents de connexion
• Equilibrage de la charge
• Routage source

Oracle University and Catalyst Business Solutions use only


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

Options de connexion avancées


Quand un service de base de données est accessible via plusieurs adresses de protocole
d'écoute, vous pouvez indiquer l'ordre d'utilisation de ces adresses. Elles sont ensuite utilisées
aléatoirement ou séquentiellement. Quand plusieurs processus d'écoute (listeners) sont
disponibles, par exemple dans les configurations RAC (Real Application Clusters), Oracle
Net peut tirer parti des fonctionnalités de gestion des incidents de connexion et d'équilibrage
de la charge, ainsi que du routage source Oracle Connection Manager.
Lorsque la gestion des incidents de connexion est activée, plusieurs adresses de processus
d'écoute sont répertoriées pour l'alias. Si la première adresse n'est pas disponible, la deuxième
est testée. Oracle Net continue d'essayer les adresses dans l'ordre indiqué jusqu'à ce qu'il
parvienne à un processus d'écoute qui fonctionne ou jusqu'à ce que toutes les adresses aient
été testées et aient échoué. La gestion transparente des incidents de connexion (TAF -
Transparent Application Failover) est une fonctionnalité client qui permet la reconnexion aux
bases de données disponibles en cas de panne d'une instance. Le serveur utilise des
notifications pour déclencher les rappels TAF côté client.
Lorsque l'équilibrage de la charge est activé, Oracle Net sélectionne une adresse aléatoire
dans la liste des adresses. La fonctionnalité d'équilibrage de la charge au moment de
l'exécution optimise les performances de connexion en distribuant équitablement les
connexions actives entre plusieurs répartiteurs. Dans un environnement RAC, l'équilibrage de
la charge dans un pool de connexions permet également de répartir les connexions actives
entre plusieurs instances.

Oracle Database 11g : Administration Workshop I 5 - 25


Options de connexion avancées (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Le routage source est utilisé avec Oracle Connection Manager, qui sert de serveur proxy pour
le trafic Oracle Net et sécurise ce dernier via un pare-feu. Oracle Net traite les adresses
comme une liste de relais, en se connectant à la première adresse, puis en demandant le
passage de la première à la deuxième jusqu'à ce que la destination soit atteinte. Ce
comportement diffère de la gestion des incidents ou de l'équilibrage de la charge, en ce sens
que toutes les adresses sont utilisées chaque fois qu'une connexion est établie.
Vous disposez des cinq options suivantes pour la gestion des incidents de connexion et
l'équilibrage de la charge :

Option Fonctionnalité avancée

Oracle University and Catalyst Business Solutions use only


Essayer chaque adresse dans l'ordre, jusqu'à ce que Gestion des incidents
l'une d'elles fonctionne.
Essayer chaque adresse dans un ordre aléatoire, Gestion des incidents
jusqu'à ce que l'une d'elles fonctionne. Equilibrage de la charge
Essayer une adresse, sélectionnée de façon aléatoire. Equilibrage de la charge
Utiliser chaque adresse dans l'ordre, jusqu'à ce que la Routage source
destination soit atteinte.
Utiliser uniquement la première adresse. Aucune

Oracle Database 11g : Administration Workshop I 5 - 26


Tester la connectivité Oracle Net
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

L'utilitaire tnsping qui teste les alias de service Oracle


Net :
• garantit la connectivité entre le client et le processus
d'écoute Oracle Net
• ne vérifie pas que le service demandé est disponible
• prend en charge la résolution de noms Easy Connect :

Oracle University and Catalyst Business Solutions use only


tnsping db.us.oracle.com:1521/dba11g

• prend en charge la résolution locale de noms


et la résolution de noms d'annuaire
tnsping orcl

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

Tester la connectivité Oracle Net


L'utilitaire tnsping est l'équivalent Oracle Net de l'utilitaire ping du protocole TCP/IP.
Il permet de vérifier rapidement le chemin réseau vers une destination spécifique.
Par exemple, entrez tnsping orcl dans une fenêtre de ligne de commande.
L'utilitaire vérifie que le nom d'hôte, le port et le protocole atteignent un processus d'écoute
(listener). En revanche, il ne vérifie pas si le processus d'écoute traite le nom de service.
tnsping révèle également l'emplacement des fichiers de configuration. Cela peut s'avérer
utile dans un système avec plusieurs emplacements ORACLE_HOME.

Oracle Database 11g : Administration Workshop I 5 - 27


Sessions utilisateur : Serveurs dédiés
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Sessions utilisateur

Processus serveur

Processus serveur

Oracle University and Catalyst Business Solutions use only


Processus serveur

Processus d'écoute

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

Sessions utilisateur : Serveurs dédiés


Avec les processus serveur dédiés, il existe un rapport de un à un entre processus serveur et
processus utilisateur. Chaque processus serveur utilise des ressources système, notamment des
cycles CPU et de la mémoire.
Dans un système très sollicité, les ressources mémoire et CPU utilisées par les processus
serveur dédiés peuvent être excessives et affecter de manière négative l'évolutivité du
système. Si l'architecture "serveur dédié" sollicite trop de ressources système, vous avez le
choix entre deux solutions :
• Augmenter les ressources système en ajoutant de la capacité mémoire et CPU
• Utiliser l'architecture Oracle Shared Server

Oracle Database 11g : Administration Workshop I 5 - 28


Sessions utilisateur : Serveurs partagés
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Répartiteur
Processus serveur
Processus serveur
Processus serveur

Oracle University and Catalyst Business Solutions use only


Sessions
utilisateur

Processus
d'écoute

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

Sessions utilisateur : Serveurs partagés


Chaque service qui participe à l'architecture "serveur partagée" comporte au moins un
processus répartiteur (et généralement plusieurs). Lorsqu'une demande de connexion arrive, le
processus d'écoute ne crée pas de processus serveur dédié. En revanche, il gère une liste de
répartiteurs disponibles pour chaque nom de service, ainsi que la charge de connexion
(nombre de connexions simultanées) pour chaque répartiteur.
Les demandes de connexion sont acheminées vers le répartiteur le moins chargé qui gère un
nom de service donné. Les utilisateurs restent connectés au même répartiteur pour la durée
d'une session.
Contrairement aux processus serveur dédiés, un même répartiteur peut gérer des centaines de
sessions utilisateur.
Les répartiteurs ne traitent pas à proprement parler le travail des demandes utilisateur.
Ils transmettent les demandes utilisateur à une file d'attente commune située dans la zone
partagée de la mémoire SGA.
Les processus serveur partagés prennent en charge la majeure partie du travail des processus
serveur dédiés. Ils extraient les demandes de la file d'attente et les traitent en totalité.
Etant donné que les demandes d'une même session utilisateur peuvent être traitées par
plusieurs processus serveur partagés, la plupart des structures mémoire généralement stockées
dans la mémoire PGA doivent résider dans un emplacement de mémoire partagée (par défaut,
dans la zone de mémoire partagée). Toutefois, si la zone de mémoire LARGE POOL est
configurée ou si SGA_TARGET est défini pour la gestion automatique de la mémoire, ces
structures mémoire sont stockées dans la zone LARGE POOL de la mémoire SGA.

Oracle Database 11g : Administration Workshop I 5 - 29


Mémoire SGA et mémoire PGA
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle Shared Server : Les données de la session utilisateur


sont conservées dans la mémoire SGA.
SGA PGA

Données Zone de mémoire


Etat du Données LARGE POOL et Espace
de session
curseur de tri autres structures de pile
utilisateur
mémoire

Oracle University and Catalyst Business Solutions use only


Lors du dimensionnement de la mémoire SGA, pensez à prendre
en compte la mémoire nécessaire pour les serveurs partagés.

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

Mémoire SGA et mémoire PGA


La mémoire SGA et la mémoire PGA n'ont pas le même contenu dans un système avec
serveurs dédiés et dans un système avec serveurs partagés :
• Le code source SQL et son analyse sont conservés dans la mémoire SGA.
• Le curseur contient des valeurs de mémoire d'exécution pour l'instruction SQL, par
exemple les lignes extraites.
• Les données relatives à la session utilisateur incluent des informations relatives à la
sécurité et à l'utilisation des ressources.
• L'espace de pile contient les variables locales du processus.
Remarque technique
La modification de la mémoire SGA et de la mémoire PGA est transparente pour l'utilisateur.
Cependant, si vous voulez prendre en charge un grand nombre d'utilisateurs, vous devez
augmenter la valeur du paramètre d'initialisation LARGE_POOL_SIZE. Chaque processus
serveur partagé doit accéder aux espaces de données de toutes les sessions, de sorte que
chaque serveur puisse traiter les demandes de n'importe quelle session. De l'espace est alloué
dans la mémoire SGA pour l'espace de données de chaque session. Vous limitez la quantité
d'espace pouvant être allouée par une session en définissant la limite de ressource
PRIVATE_SGA dans la région Database Services de la page General du profil de l'utilisateur.

Oracle Database 11g : Administration Workshop I 5 - 30


Serveur partagé : Concentration des connexions
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

La durée d'inactivité de l'application client


dépasse le délai indiqué et un client
Client entrant demande une connexion.
inactif

Client

Oracle University and Catalyst Business Solutions use only


actif

Serveur de Le nombre maximal de


Nouveau base de données connexions est 255.
client

Cette connexion client est la 256ème


connexion au serveur. La concentration
des connexions étant activée, cette
connexion peut être acceptée.

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

Serveur partagé : Concentration des connexions


La fonction de concentration des connexions permet au serveur de base de données
d'appliquer un mécanisme de temporisation à une session inactive et d'utiliser la connexion
pour une session active. La session logique inactive reste ouverte et la connexion physique est
automatiquement rétablie lorsque la demande suivante provient de cette session.
Les applications Web peuvent ainsi satisfaire un plus grand nombre d'utilisateurs simultanés
avec le matériel existant. La concentration des connexions est configurable via le serveur
partagé.
Dans l'exemple de la diapositive, le serveur de base de données Oracle a été configuré avec
255 connexions. La durée d'inactivité de l'un des clients dépasse le délai indiqué.
La concentration des connexions met cette connexion à la disposition d'une connexion client
entrante, qui est la 256ème connexion. Lorsque le client inactif doit à nouveau effectuer des
tâches, la connexion inactive d'un autre client lui est affectée.

Oracle Database 11g : Administration Workshop I 5 - 31


Dans quel cas ne pas utiliser de serveur partagé ?
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Certains travaux de base de données ne doivent pas être


effectués à l'aide de serveurs partagés :
• Administration de base de données
• Opérations de sauvegarde et de récupération
• Traitement par lots et opérations de chargement
en masse

Oracle University and Catalyst Business Solutions use only


• Opérations de data warehouse

Répartiteur Processus
serveur dédié

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

Dans quel cas ne pas utiliser de serveur partagé ?


L'architecture Oracle Shared Server est un modèle efficace d'utilisation des processus et de la
mémoire, mais il n'est pas adapté à toutes les connexions. En raison de la file d'attente
commune des demandes et du fait que de nombreux utilisateurs peuvent partager une file
d'attente de réponses de répartiteur, les serveurs partagés n'offrent pas de performances
satisfaisantes avec les opérations qui doivent traiter d'importants jeux de données, telles que
les interrogations de data warehouses ou le traitement par lots.
Les sessions de sauvegarde et de récupération qui utilisent Oracle Recovery Manager
(étudiées dans des chapitres ultérieurs) traitent également des jeux de données très
volumineux et doivent utiliser des connexions dédiées.
De nombreuses tâches d'administration ne doivent (et ne peuvent) pas être effectuées à l'aide
de connexions serveur partagées. Il s'agit notamment du démarrage et de l'arrêt de l'instance,
de la création de tablespaces ou de fichiers de données, de la maintenance d'index et de tables,
de l'analyse de statistiques, et de nombreuses autres tâches couramment effectuées par le
DBA. Toutes les sessions DBA doivent utiliser des serveurs dédiés.

Oracle Database 11g : Administration Workshop I 5 - 32


Configurer la communication
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

entre bases de données

• L'envoi de données ou de messages entre sites


nécessite une configuration réseau sur les deux sites.
• Vous devez configurer les éléments suivants :
– Connectivité réseau (TNSNAMES.ora, par exemple)
– Liens de base de données

Oracle University and Catalyst Business Solutions use only


CREATE DATABASE LINK <remote_global_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';

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

Configurer la communication entre bases de données


Un lien de base de données est un objet du schéma d'une base qui permet d'accéder aux objets
d'une autre base. Cette autre base de données n'est pas forcément un système de base de
données Oracle. Pour accéder à des systèmes tiers, vous devez passer par les services
hétérogènes (Heterogeneous Services) Oracle.
La création d'un lien de base de données privé nécessite le privilège système CREATE
DATABASE LINK. La création d'un lien de base de données public nécessite le privilège
système CREATE PUBLIC DATABASE LINK. Le privilège système CREATE SESSION
sur la base de données Oracle distante est également requis.
Quand une application utilise un lien de base de données pour accéder à une base distante,
Oracle Database établit une session sur la base de données distante pour répondre à la
demande locale. La clause CONNECT TO utilisée pour créer un lien de base de données
détermine la manière d'établir la connexion à la base de données distante. Vous pouvez créer
des liens de base de données avec utilisateur fixe, utilisateur courant ou utilisateur connecté.
Les liens de base de données avec utilisateur courant ne sont disponibles qu'avec l'option
Oracle Advanced Security. L'exemple présenté sur la diapositive illustre la syntaxe qui permet
de créer un lien de base de données avec utilisateur fixe.
Une fois que vous l'avez créé, ce lien vous permet de faire référence aux tables et aux vues de
l'autre base de données. Dans les instructions SQL, vous avez la possibilité de pointer vers
une table ou une vue de l'autre base de données en ajoutant @dblink au nom de la table ou
de la vue. Vous pouvez interroger les tables et les vues de la base distante ou leur appliquer
des instructions INSERT, UPDATE, DELETE ou LOCK TABLE.

Oracle Database 11g : Administration Workshop I 5 - 33


Se connecter à une autre base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

HQ = tnsnames.ora
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)
(HOST = edtdr8p1.us.oracle.com)
(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.us.oracle.com)
)

Oracle University and Catalyst Business Solutions use only


)
CREATE DATABASE LINK hq.oracle.com SQL*Plus
CONNECT TO HR IDENTIFIED BY HR
USING 'hq';

CONNECT hr/hr@hq

SELECT * from HR.employees@hq;

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

Se connecter à une autre base de données


La diapositive ci-dessus présente l'entrée nécessaire dans tnsnames.ora avant la création
d'un lien de base de données.
Cet exemple utilise un lien de base de données avec utilisateur fixe (nommé HQ) qui se
connecte à l'utilisateur HR à l'aide de la chaîne de connexion HQ. Une fois que vous l'avez
créé, vous pouvez utiliser ce lien pour faire référence aux tables et aux vues de l'autre base de
données.
Voici la description de la vue :
SQL> DESC DBA_DB_LINKS
Name Null? Type
-------------------- -------- ---------------------------
OWNER NOT NULL VARCHAR2(30)
DB_LINK NOT NULL VARCHAR2(128)
USERNAME VARCHAR2 (30)
HOST VARCHAR2 (2000)
CREATED NOT NULL DATE

SQL> select owner, db_link, username from dba_db_links;

OWNER DB_LINK USERNAME


----------- -------------- ---------
SYS HQ.ORACLE.COM HR

Oracle Database 11g : Administration Workshop I 5 - 34


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• utiliser Enterprise Manager pour :
– créer des processus d'écoute supplémentaires
– créer des alias de service Oracle Net
– configurer la gestion des incidents de connexion
– contrôler le processus d'écoute Oracle Net

Oracle University and Catalyst Business Solutions use only


• utiliser tnsping pour tester la connectivité Oracle Net
• déterminer quand utiliser des serveurs partagés
et quand utiliser des serveurs dédiés

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

Oracle Database 11g : Administration Workshop I 5 - 35


Exercice 5 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Utiliser les composants réseau Oracle

Dans cet exercice, vous allez :


• configurer la résolution locale de noms
pour la connexion à une autre base de données
• créer un deuxième processus d'écoute (listener)
pour la gestion des incidents de connexion

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 5 - 36


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de base de données

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


Gérer les structures de stockage

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• décrire le stockage des données des lignes de table
sous la forme de blocs
• définir le rôle des tablespaces et des fichiers
de données
• créer et gérer des tablespaces

Oracle University and Catalyst Business Solutions use only


• obtenir des informations sur les tablespaces
• décrire les principaux concepts et les principales
fonctionnalités d'Automatic Storage Management (ASM)

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

Oracle Database 11g : Administration Workshop I 6 - 2


Structures de stockage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Structure logique Structure physique

Base
de données

Fichier du système
Tablespace
d'exploitation

Oracle University and Catalyst Business Solutions use only


Segment

Extent

Bloc de Bloc du système


données Oracle d'exploitation

Copyright © 2007, 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 bloc de données Oracle
est la plus petite unité d'E/S logique.
Un nombre donné de blocs logiques contigus constitue un extent. Un ensemble d'extents
alloué à une certaine structure logique forme à son tour un segment.
La taille de bloc utilisée le plus souvent doit être choisie comme taille de bloc standard.
La plupart du temps, c'est la seule taille de bloc que vous devez préciser. DB_BLOCK_SIZE
est généralement égal à 4 Ko ou 8 Ko. Si vous n'affectez pas de valeur à ce paramètre, la taille
des blocs de données par défaut est déterminée par le système d'exploitation et convient
généralement. Il est impossible de modifier la taille des blocs une fois la base de données
créée. Vous devez pour cela recréer la base.
Si la taille des blocs est différente dans la base de données et dans le système d'exploitation,
vérifiez que la valeur définie pour la base de données est un multiple de celle du système
d'exploitation.

Oracle Database 11g : Administration Workshop I 6 - 3


Mode de stockage des données d'une table
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Colonnes Blocs

Table A Table B

Lignes

Segment Segment

Oracle University and Catalyst Business Solutions use only


Table
Tablespace

Morceau de ligne Extent

Copyright © 2007, 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 contenant les valeurs de 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.

Oracle Database 11g : Administration Workshop I 6 - 4


Bloc de base de données : Contenu
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

En-tête de bloc
Croissance
Espace libre

Oracle University and Catalyst Business Solutions use only


Données
des lignes

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

Bloc de base de données : Contenu


• En-tête de 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 24 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 disponible : Il se situe au milieu du bloc et permet l'extension des espaces
d'en-tête et de ligne si nécessaire. 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.
Exemples d'événements entraînant l'extension des en-têtes :
- Répertoires de lignes nécessitant davantage d'entrées de ligne
- Espaces de transaction en plus par rapport à ceux configurés initialement
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.

Oracle Database 11g : Administration Workshop I 6 - 5


Tablespaces et fichiers de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


– 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 Tablespace
base de données
– servent de référentiels pour les
données des objets de schéma Fichiers de données

Copyright © 2007, 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 (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 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. Une base de données Oracle contient au
minimum deux tablespaces (SYSTEM et SYSAUX) comprenant chacun un fichier de
données. Une base peut aussi 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. Si un tablespace ne comprend qu'un seul
fichier de données pendant toute sa durée de vie, il est défini comme tablespace bigfile.
Il s'agit d'un cas spécial qui convient aux applications de data warehouse.
• Un fichier temporaire est créé à l'aide de l'option TEMPFILE dans un tablespace
temporaire. Les tablespaces temporaires ne peuvent pas contenir des objets de base de
données permanents (tables) et sont généralement utilisés pour les tris.

Oracle Database 11g : Administration Workshop I 6 - 6


Gestion de l'espace dans les tablespaces
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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 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.

Oracle Database 11g : Administration Workshop I 6 - 7


Explorer la structure de stockage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Cliquez sur les liens pour afficher
des informations détaillées.

Copyright © 2007, 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.

Oracle Database 11g : Administration Workshop I 6 - 8


Créer un tablespace
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Créer un tablespace
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. Entrez 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 de manière efficace 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 et leur
utilisation n'est plus recommandée par Oracle.
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.

Oracle Database 11g : Administration Workshop I 6 - 9


Créer un tablespace (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 pour ajouter des fichiers de données
au tablespace.
Chaque tablespace doit comporter au moins un fichier. Les tablespaces bigfile sont
utilisés avec les bases de données très volumineuses dans 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

Oracle University and Catalyst Business Solutions use only


File Directory, puis indiquez une taille de fichier.
9. Dans la région Storage, sélectionnez l'option "Automatically extend datafile when full
(AUTOEXTEND)" et indiquez 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.
10. Conservez la valeur Unlimited du champ Maximum File Size. Cliquez sur OK pour
retourner à la page Create Tablespace.
11. Cliquez sur l'onglet Storage.
La page Edit Tablespace apparaît.
12. 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 de vos
besoins.

Oracle Database 11g : Administration Workshop I 6 - 10


Gestion du stockage dans les tablespaces gérés
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

localement

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 (également appelé AUTOALLOCATE), la taille des extents du
tablespace est gérée par le système. Vous ne pouvez pas utiliser ce mode pour un
tablespace temporaire. Vous pouvez préciser une taille d'extent, mais comme les bits
représentent chacun 64 Ko, toute taille d'extent demandée est arrondie à un multiple de
cette valeur.
• 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 dans
les 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 (ASSM – Automatic Segment
Space Management).

Oracle Database 11g : Administration Workshop I 6 - 11


Gestion du stockage dans les tablespaces gérés localement (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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. On parle de 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, mais il est
recommandé d'utiliser la gestion automatique de l'espace dans les segments (ASSM).
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 :

Oracle University and Catalyst Business Solutions use only


• 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 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
chargements par chemin direct via SQL*Loader ou l'instruction INSERT ne sont pas
consignées dans le fichier de journalisation. Les objets ne peuvent donc pas être récupérés en
cas de perte de données. Lorsque vous créez un objet sans activer la journalisation, vous
devez donc le sauvegarder pour pouvoir le récupérer.
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.

Oracle Database 11g : Administration Workshop I 6 - 12


Tablespaces de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

préconfigurée

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

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 d'Oracle Database utilisent désormais le tablespace
SYSAUX. A partir de la version 10g, toute base de données Oracle Database doit
comprendre 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.

Oracle Database 11g : Administration Workshop I 6 - 13


Tablespaces de la base de données préconfigurée (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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 aucun tablespace temporaire n'est désigné lors de la création d'un compte utilisateur,
Oracle Database lui affecte le tablespace TEMP.
• UNDOTBS1 : Il s'agit du tablespace d'annulation utilisé par le serveur de base de données

Oracle University and Catalyst Business Solutions use only


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 par instance. 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.

Oracle Database 11g : Administration Workshop I 6 - 14


Modifier un tablespace
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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. Les
statuts disponibles dépendent du type de tablespace :
• Read Write : Le tablespace est en ligne (online) et peut faire l'objet d'opérations de
lecture et d'écriture.
• 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.

Oracle Database 11g : Administration Workshop I 6 - 15


Modifier un tablespace (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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. Oracle Database veille à ce
que toutes les données soient écrites sur le disque en définissant un point de reprise
(checkpoint) pour tous les fichiers de données du tablespace à mesure qu'ils sont mis
hors ligne.
- Temporary : Un tablespace peut être mis hors ligne temporairement, même s'il

Oracle University and Catalyst Business Solutions use only


existe des conditions d'erreur pour un ou plusieurs de ses fichiers. Oracle Database
met hors ligne les fichiers de données (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 qu'Oracle
Database ne 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.
Remarque : Il n'est pas possible de mettre hors ligne les tablespaces système.
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

Oracle Database 11g : Administration Workshop I 6 - 16


Modifier un tablespace (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Options de stockage : Cliquez sur Storage pour modifier les options de journalisation du
tablespace.
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

Oracle University and Catalyst Business Solutions use only


l'espace du tablespace.
Remarque : L'enregistrement d'une alerte avec seuil peut prendre quelques minutes.

Oracle Database 11g : Administration Workshop I 6 - 17


Actions sur les tablespaces
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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.
Le package PL/SQL
DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL permet la
conversion en tablespace géré au moyen du dictionnaire si nécessaire.
• 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.

Oracle Database 11g : Administration Workshop I 6 - 18


Actions sur les tablespaces (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• Show Dependencies : Affiche les objets dont le tablespace dépend 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é.

Oracle Database 11g : Administration Workshop I 6 - 19


Supprimer des tablespaces
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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. Si vous utilisez Oracle Managed Files (OMF), les fichiers
du système d'exploitation sous-jacents sont également supprimés. Si vous n'utilisez pas OMF,
vous avez la possibilité de demander au serveur Oracle de supprimer les fichiers du système
d'exploitation (fichiers de données) qui constituaient le tablespace supprimé. Si vous ne
demandez pas au serveur Oracle de supprimer les fichiers de données en même temps que le
tablespace, vous pourrez supprimer ces fichiers ultérieurement, si vous le souhaitez, 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 en cours d'utilisation 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.

Oracle Database 11g : Administration Workshop I 6 - 20


Afficher les informations relatives aux
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

tablespaces

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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
Remarque : La vue V$DBFILE affiche tous les fichiers de données de la base. Elle est
conservée pour des raisons de compatibilité historique, mais il est recommandé d'utiliser la
vue V$DATAFILE.
• Informations relatives aux fichiers temporaires :
- DBA_TEMP_FILES
- V$TEMPFILE

Oracle Database 11g : Administration Workshop I 6 - 21


Collecter des informations sur les tablespaces
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Collecter des informations sur les tablespaces


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

Oracle Database 11g : Administration Workshop I 6 - 22


Afficher le contenu d'un tablespace
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

12061_1_sel_ts_3

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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,
notamment la liste des segments du tablespace, le type et la taille de chaque segment, et le
nombre d'extents (ensembles de blocs contigus) composant 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 l'extent appartient
• ID de l'extent
• ID du bloc
• Taille de l'extent en termes de blocs
• Fichier de données dans lequel l'extent est stocké

Oracle Database 11g : Administration Workshop I 6 - 23


Oracle Managed Files (OMF)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


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 Emplacement par défaut de la zone de
récupération rapide
Exemple :
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
SQL> CREATE TABLESPACE tbs_1;

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

Oracle Managed Files (OMF)


Grâce à Oracle Managed Files (OMF), vous n'avez plus besoin de gérer directement les
fichiers du système d'exploitation dont une base de données Oracle est constituée.
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 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 dans une
instruction CREATE TABLESPACE. Le fichier de données est créé à l'emplacement indiqué
par DB_CREATE_FILE_DEST. Quand vous créez un tablespace de cette manière, des
valeurs par défaut sont affectées à tous les paramètres.

Oracle Database 11g : Administration Workshop I 6 - 24


Etendre la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


Base de données

Tablespace Tablespace
SYSTEM INVENTORY

Copyright © 2007, 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 de la base de données correspond à la somme de tous ses
tablespaces.

Oracle Database 11g : Administration Workshop I 6 - 25


Automatic Storage Management
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il s'agit d'un système de fichiers clusterisé portable aux


performances élevées
• Gère les fichiers de base de données Oracle
• Répartit les données entre les différents
disques pour équilibrer la charge
• Met les données en miroir Application

• Solution aux problèmes


Base de données

Oracle University and Catalyst Business Solutions use only


de gestion du stockage
Système
de fichiers
ASM
Gestionnaire
de volumes
Système
d'exploitation

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

Automatic Storage Management


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 à la fois plus volumineuses et
plus nombreuses.

Oracle Database 11g : Administration Workshop I 6 - 26


ASM : Fonctionnalités clés et principaux
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

avantages

• 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

Oracle University and Catalyst Business Solutions use only


• Prend en charge uniquement les fichiers de base
de données Oracle
• Prend en charge les clusters
• Est installé automatiquement

Copyright © 2007, 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é.

Oracle Database 11g : Administration Workshop I 6 - 27


ASM : Concepts
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Base Groupe de
de données disques ASM

Fichier
Tablespace Fichier ASM
de données

Segment Disque ASM

Oracle University and Catalyst Business Solutions use only


Fichier du
Extent système Unité
de fichiers d'allocation
ou
raw device
Bloc Oracle
Bloc
physique

Copyright © 2007, 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 Oracle 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é
appartient à 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. Une unité
d'allocation constitue le plus petit espace disque contigu alloué par ASM. Lorsque vous créez
un groupe de disques, vous pouvez définir des unités d'allocation ASM de 1 à 64 Mo, par
puissances de 2 (1, 2, 4, 8, 16, 32 ou 64). Les valeurs élevées peuvent apporter un gain de
performances pour les applications de data warehouse qui utilisent des opérations de lecture
séquentielle de grande taille.
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.

Oracle Database 11g : Administration Workshop I 6 - 28


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• décrire le stockage des données des lignes de table
sous la forme de blocs
• définir le rôle des tablespaces et des fichiers
de données
• créer et gérer des tablespaces

Oracle University and Catalyst Business Solutions use only


• obtenir des informations sur les tablespaces
• décrire les principaux concepts et les principales
fonctionnalités d'Automatic Storage Management (ASM)

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

Oracle Database 11g : Administration Workshop I 6 - 29


Exercice 6 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Gérer les structures de stockage de base de données

Dans cet exercice, vous allez :


• créer des tablespaces
• collecter des informations sur les tablespaces

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 6 - 30


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Administrer la sécurité utilisateur

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, 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.

Oracle Database 11g : Administration Workshop I 7 - 2


Comptes utilisateur de base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• un profil utilisateur
• un groupe de consommateurs de ressources initial
• un statut de compte

Copyright © 2007, 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. A chaque utilisateur de la base est associé un
compte de base de données unique :
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. Il peut toutefois arriver que
des utilisateurs partagent un même compte de base de données. Dans ces cas assez rares, le
système d'exploitation et les applications doivent sécuriser la base de données de manière
suffisante. 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 11g 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'indique pas un 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.
• Un tablespace temporaire : Il s'agit de l'emplacement dans lequel l'instance crée les
objets temporaires (tris ou tables) pour le compte de l'utilisateur. Aucun quota n'est
appliqué aux tablespaces temporaires.

Oracle Database 11g : Administration Workshop I 7 - 3


Comptes utilisateur de base de données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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 initial : Il est utilisé par le gestionnaire de
ressources.
• Un statut de compte : Les utilisateurs n'ont accès qu'aux comptes "ouverts".
account_status accepte diverses combinaisons de statuts "verrouillé" et "expiré".
Remarque : Un utilisateur de base de données n'est pas forcément une personne. Il est
courant de créer un utilisateur qui possède les objets de base de données d'une application
particulière (HR, par exemple). L'utilisateur de base de données peut être un périphérique, une
application ou simplement une entité regroupant des objets de base de données à des fins de

Oracle University and Catalyst Business Solutions use only


sécurité. Les informations d'identification d'une personne ne sont pas nécessaires pour un
utilisateur de base de données.

Oracle Database 11g : Administration Workshop I 7 - 4


Comptes prédéfinis : SYS et SYSTEM
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Caractéristiques du 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 propriétaire du dictionnaire de données

Oracle University and Catalyst Business Solutions use only


– Est propriétaire du référentiel AWR (Automatic Workload
Repository)
• Le compte SYSTEM reçoit 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 © 2007, 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 plus de tous les privilèges associés à ADMIN OPTION et il est
propriétaire du dictionnaire de données. Pour vous connecter au compte SYS, vous devez
utiliser la clause AS SYSDBA pour une instance de base de données et la clause AS SYSASM
pour une instance ASM (Automatic Storage Management). Tout utilisateur qui dispose du
privilège SYSDBA peut se connecter au compte SYS à l'aide de la clause AS SYSDBA. Seuls
les utilisateurs bénéficiant du privilège SYSDBA, SYSOPER ou SYSASM sont autorisés à
démarrer et arrêter les instances.
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
jim ayant peu de privilèges et un compte jim_dba doté de privilèges élevés. 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.

Oracle Database 11g : Administration Workshop I 7 - 5


Créer un utilisateur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Sélectionnez Server > Users, puis cliquez sur le bouton Create.

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

Créer un utilisateur
Dans la page Users d'Enterprise Manager, vous pouvez gérer la liste des utilisateurs de base
de données autorisés à accéder à la base actuelle. Cette page vous permet de créer, supprimer
et modifier les paramètres d'un utilisateur.
Pour créer un utilisateur de base de données :
1. Dans Enterprise Manager Database Control, cliquez sur l'onglet Server puis cliquez sur
Users dans la section Security.
2. Cliquez sur le bouton Create.
Fournissez les informations requises. Les éléments obligatoires (tels que le champ Name),
sont signalés par un astérisque (*).
Les pages suivantes fournissent davantage d'informations sur l'authentification. Les profils
seront traités plus loin dans ce chapitre.
Affectez un tablespace par défaut et un tablespace temporaire à chaque utilisateur. Si les
utilisateurs n'indiquent pas de tablespace quand ils créent un objet, cet objet est créé dans le
tablespace par défaut affecté au propriétaire de l'objet. Vous pouvez ainsi contrôler
l'emplacement des nouveaux objets.
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é.

Oracle Database 11g : Administration Workshop I 7 - 6


Authentification des utilisateurs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Password
• External
• Global

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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é. Tous les mots de passe créés dans Oracle
Database 11g respectent la casse par défaut. Ils peuvent également contenir des caractères
multioctets et sont limités à 30 octets. Chaque mot de passe créé dans une base de données qui
est mise à niveau vers Oracle Database 11g reste insensible à la casse jusqu'à ce qu'il soit
modifié.
Les mots de passe sont toujours cryptés de manière automatique et transparente à l'aide d'un
algorithme AES (Advanced Encryption Standard) lors des connexions réseau (client/serveur
et serveur/serveur), et ce avant d'être envoyés sur le réseau.

Oracle Database 11g : Administration Workshop I 7 - 7


Authentification des utilisateurs (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

External : Cette option utilise une méthode d'authentification extérieure à la base de données
(système d'exploitation, Kerberos ou Radius). L'option Oracle Advanced Security (ASO) est
requise pour les méthodes Kerberos et Radius. Les utilisateurs peuvent se connecter à la base
de données Oracle sans fournir de nom utilisateur ou de mot de passe. L'option ASO
(authentification forte) permet l'identification des utilisateurs via la biométrie, les certificats
x509 et les systèmes tiers. Avec le mode d'authentification External, la base de données utilise
le système d'exploitation sous-jacent, le service d'authentification réseau ou un service
d'authentification externe 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

Oracle University and Catalyst Business Solutions use only


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 : Avec l'option Oracle Advanced Security, ce mode d'authentification permet
d'identifier les utilisateurs via Oracle Internet Directory.
Pour plus d'informations sur les méthodes d'authentification avancées, reportez-vous au cours
Oracle Database Security.

Oracle Database 11g : Administration Workshop I 7 - 8


Authentification de l'administrateur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 :
• Pour les connexions en tant que SYSDBA, SYSOPER et SYSASM :

Oracle University and Catalyst Business Solutions use only


– Audit du nom utilisateur du DBA pour les méthodes
d'authentification fortes et par fichier de mots de passe
– Audit du nom de compte du système d'exploitation pour
l'authentification par le système d'exploitation
– L'authentification par le système d'exploitation est prioritaire sur
l'authentification par fichier de mots de passe pour les utilisateurs
ayant des privilèges
– Le fichier de mots de passe utilise des mots de passe qui
respectent la casse

Copyright © 2007, 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 des utilisateurs dotés de privilèges
SYSBA, SYSOPER et SYSASM ne sont autorisées qu'après une vérification basée sur le fichier
de mots de passe ou sur les privilèges et permissions définis au niveau du système
d'exploitation. Lorsque vous utilisez 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. Par défaut, le fichier de mots de passe créé
dans Oracle Database 11g respecte la casse.
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é.

Oracle Database 11g : Administration Workshop I 7 - 9


Authentification de l'administrateur (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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, SYSOPER ou SYSASM, vous êtes connecté avec les privilèges
d'administration associés, quels que soient le nom utilisateur et le mot de passe indiqués.
Dans Oracle Database 11g, un utilisateur ayant des privilèges peut utiliser des méthodes
d'authentification fortes : Kerberos, SSL (Secure Sockets Layer), ou service d'annuaire avec
une licence ASO (Oracle Advanced Security).

Oracle University and Catalyst Business Solutions use only

Oracle Database 11g : Administration Workshop I 7 - 10


Déverrouiller un compte utilisateur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

et redéfinir le mot de passe

Oracle University and Catalyst Business Solutions use only


Sélectionnez l'utilisateur et cliquez
sur Unlock User.

Copyright © 2007, 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 effectuer ces opérations ultérieurement, en sélectionnant un utilisateur
dans la page Users, puis en cliquant sur Unlock User.
Une autre solution consiste à utiliser 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.

Oracle Database 11g : Administration Workshop I 7 - 11


Privilèges
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Il existe deux types de privilège utilisateur :


• 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

Oracle University and Catalyst Business Solutions use only


HR_DBA
Privilège objet :
Privilège système :
Mettre à jour
Créer une session
les employés

Copyright © 2007, 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 ces privilèges a été accordée explicitement. Il existe plus de cents 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.

Oracle Database 11g : Administration Workshop I 7 - 12


Privilèges système
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Privilèges système
Pour accorder des privilèges système, cliquez sur l'onglet System 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. Avec le privilège SELECT ANY TABLE, vous pouvez effectuer une opération
SELECT dans des tables appartenant à d'autres utilisateurs. L'utilisateur SYS et les utilisateurs
dotés du rôle DBA disposent de tous les privilèges ANY. Ils peuvent donc effectuer n'importe
quelle opération sur tous les objets de données. La portée des privilèges système ANY peut
être contrôlée à l'aide de l'option Oracle Database Vault.
Cochez la case Admin Option pour autoriser l'utilisateur à administrer le privilège 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.

Oracle Database 11g : Administration Workshop I 7 - 13


Privilèges système (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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. Le privilège SYSOPER permet d'effectuer des tâches opérationnelles de
base, mais pas de 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, le privilège SYSDBA est nécessaire.)

Oracle University and Catalyst Business Solutions use only


- RESTRICTED SESSION
Le privilège système SYSDBA autorise en outre les opérations de récupération
incomplète et la suppression d'une base de données. En fait, il permet de se connecter en
tant qu'utilisateur SYS.
• SYSASM : Ce privilège permet de démarrer, d'arrêter et d'administrer une instance ASM.
• DROP ANY object : Le privilège DROP ANY permet de supprimer des objets
appartenant à d'autres utilisateurs du schéma.
• CREATE, MANAGE, DROP et ALTER TABLESPACE : Ces privilèges permettent les
opérations d'administration des tablespaces (création, suppression et modification
d'attributs).
• CREATE LIBRARY : La base de données Oracle permet aux développeurs de créer et
d'appeler du code externe (par exemple une bibliothèque C) à partir de PL/SQL. La
bibliothèque doit être nommée selon un objet LIBRARY de la base de données. Le
privilège CREATE LIBRARY permet à l'utilisateur de créer une bibliothèque de code
arbitraire qui peut être exécutée à partir de PL/SQL.
• CREATE ANY DIRECTORY : Pour des raisons de sécurité, le répertoire du système
d'exploitation dans lequel le code réside 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 permet à l'utilisateur qui en est doté
d'accorder des permissions sur des objets qui ne lui appartiennent pas.
• ALTER DATABASE et ALTER SYSTEM : Très puissants, ces privilèges permettent de
modifier la base de données et l'instance Oracle. Ils permettent notamment de renommer
un fichier de données ou de vider le cache de tampons (buffer cache).

Oracle Database 11g : Administration Workshop I 7 - 14


Privilèges objet
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Pour accorder des privilèges
objet :
1. Sélectionnez le type
d'objet.
2. Sélectionnez les objets.
3. Sélectionnez les privilèges.

Copyright © 2007, 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 sur lequel vous voulez octroyer des privilèges, puis cliquez sur le
bouton Add. Indiquez les objets 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 à d'autres utilisateurs.

Oracle Database 11g : Administration Workshop I 7 - 15


Révoquer des privilèges système
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

accordés avec ADMIN OPTION


DBA Jeff Emi
Utilisateur

GRANT
Privilège

Objet

Oracle University and Catalyst Business Solutions use only


DBA Jeff Emi
REVOKE

REVOKE CREATE
TABLE FROM jeff;

Copyright © 2007, 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.
La diapositive ci-dessus illustre la situation suivante :
Scénario
1. L'administrateur de base de données (DBA) octroie le privilège système CREATE
TABLE à Jeff 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 Jeff ne peut plus en créer d'autres.
La table d'Emi existe toujours et Emi conserve le privilège système CREATE TABLE.

Oracle Database 11g : Administration Workshop I 7 - 16


Révoquer des privilèges objet
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

accordés avec GRANT OPTION

Bob Jeff Emi


GRANT

Oracle University and Catalyst Business Solutions use only


REVOKE Bob Jeff Emi

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

Révoquer des privilèges objet accordés avec GRANT OPTION


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 GRANT OPTION produit également
des effets en cascade. En tant qu'utilisateur, vous ne pouvez révoquer que les privilèges que
vous avez accordés. Ainsi, Bob ne peut pas révoquer le privilège objet que Jeff a accordé à
Emi. Un DBA ne peut pas non plus révoquer les privilèges objet qu'il n'a pas octroyé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. Le privilège SELECT de Jeff est révoqué. Cette révocation est répercutée sur Emi.

Oracle Database 11g : Administration Workshop I 7 - 17


Avantages des rôles
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Gestion plus facile des privilèges


• Gestion dynamique des privilèges
• Disponibilité sélective des privilèges

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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. Au lieu 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 à des utilisateurs
individuels.
• 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. Cela permet de
contrôler les privilèges de l'utilisateur dans une situation donnée.

Oracle Database 11g : Administration Workshop I 7 - 18


Affecter des privilèges à des rôles et
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

des rôles à des utilisateurs

Utilisateurs
Jenny David Rachel

Rôles HR_MGR HR_CLERK

Oracle University and Catalyst Business Solutions use only


Privilèges Supprimer Créer Mettre à jour
des employés un travail des employés

Insérer Sélectionner
des employés des employés

Copyright © 2007, 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, accorder individuellement les privilèges nécessaires à chaque
utilisateur prend beaucoup de temps et génère des risques d'erreur. 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 sont accordés aux utilisateurs ou à d'autres rôles (et révoqués de la même
manière) 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.
L'exemple présenté par la diapositive ci-dessus accorde les privilèges SELECT et UPDATE
sur la table employees, ainsi que le privilège système CREATE JOB au rôle HR_CLERK.
Les privilèges DELETE et INSERT sur la table employees et le rôle HR_CLERK sont
accordés au rôle HR_MGR.
Le rôle HR_MGR est accordé au manager qui peut ensuite effectuer des sélections, des
suppressions, des insertions et des mises à jour dans la table employees.

Oracle Database 11g : Administration Workshop I 7 - 19


Rôles prédéfinis
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

CONNECT CREATE SESSION

RESOURCE CREATE CLUSTER, CREATE INDEXTYPE, CREATE


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

Oracle University and Catalyst Business Solutions use only


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_ROLE HS_ADMIN_ROLE et plus de 1 700 privilèges objet sur
le dictionnaire de données

Copyright © 2007, 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. Pour des raisons de sécurité,
le rôle CONNECT n'a inclus que le privilège CREATE SESSION depuis la version 10.2.0
d'Oracle Database.
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.

Oracle Database 11g : Administration Workshop I 7 - 20


Créer un rôle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Sélectionnez Server > Roles.

Copyright © 2007, 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 :
1. Dans Enterprise Manager Database Control, cliquez sur l'onglet Server puis cliquez sur
Roles dans la section Security.
2. Cliquez sur le bouton Create.

Oracle Database 11g : Administration Workshop I 7 - 21


Rôles sécurisés
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Il est possible d'empêcher l'activation


des rôles par défaut.
SET ROLE vacationdba;

• Les rôles peuvent


être protégés via
l'authentification.

Oracle University and Catalyst Business Solutions use only


• Les rôles peuvent
également être sécurisés par programmation.
CREATE ROLE secure_application_role
IDENTIFIED USING <security_procedure_name>;

Copyright © 2007, 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. Des rôles par défaut
sont affectés aux utilisateurs au moment de leur connexion.
Vous pouvez effectuer les opérations suivantes :
• Empêcher un rôle d'être activé 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.
• Administrer plus facilement les rôles à l'aide de l'option Oracle Database Vault.
Cette option simplifie l'administration des rôles sécurisés et permet de limiter les rôles
classiques.

Oracle Database 11g : Administration Workshop I 7 - 22


Affecter des rôles aux utilisateurs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Affecter des rôles aux utilisateurs


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
contient 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, cliquez sur l'onglet Server, puis cliquez sur
Users dans la section Security.
2. Sélectionnez l'utilisateur et 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.

Oracle Database 11g : Administration Workshop I 7 - 23


Profils et utilisateurs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Un seul profil est


affecté à un
utilisateur à un
instant donné.
Les profils :

Oracle University and Catalyst Business Solutions use only


• contrôlent la
consommation
des ressources
• gèrent le statut
des comptes et
l'expiration des
mots de passe

Copyright © 2007, 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 DEFAULT 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
DEFAULT (Connect Time, par exemple).
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 de ressources liées aux profils sont
ignorées. Les mots de passe des profils sont toujours appliqués.
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

Oracle Database 11g : Administration Workshop I 7 - 24


Profils et utilisateurs (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 le temps
CPU par appel (CPU/Call) est limité et que l'utilisateur dépasse cette limite, l'exécution de la
commande est abandonnée. L'utilisateur reçoit alors un message d'erreur de type :
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

Oracle University and Catalyst Business Solutions use only


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, cliquez sur l'onglet Server, puis cliquez sur Profiles dans la section
Security. Dans la page Profiles, 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.

Oracle Database 11g : Administration Workshop I 7 - 25


Implémenter des fonctionnalités
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de sécurité utilisant des mots de passe

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

Oracle University and Catalyst Business Solutions use only


Utilisateur Configuration
des profils

Durée de vie et expiration Verrouillage


des mots de passe des comptes

Remarque : N'utilisez pas de profils qui entraînent l'expiration des mots


de passe SYS, SYSMAN et DBSNMP et le verrouillage de ces comptes.

Copyright © 2007, 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.
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 et expiration des mots de passe : 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.

Oracle Database 11g : Administration Workshop I 7 - 26


Implémenter des fonctionnalités de sécurité utilisant des mots de passe (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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.
Rappelons que les valeurs des paramètres de profil sont soit définies, soit héritées du profil
DEFAULT.
Si les deux paramètres d'historique des mots de passe ont pour valeur UNLIMITED, Oracle

Oracle University and Catalyst Business Solutions use only


Database les ignore. L'utilisateur peut donc à tout moment réutiliser un mot de passe, ce qui
n'est pas recommandé pour la sécurité.
Si les deux paramètres sont définis, la réutilisation d'un mot de passe est autorisée dans les
conditions précisées. L'utilisateur doit avoir modifié son mot de passe un certain nombre de
fois et il doit s'être écoulé un certain délai (en jours) depuis la dernière utilisation de l'ancien
mot de passe.
Prenons l'exemple de l'utilisateur ALFRED dont le profil est défini de la manière suivante : la
valeur 10 est affectée au paramètre PASSWORD_REUSE_MAX et la valeur 30 au paramètre
PASSWORD_REUSE_TIME. L'utilisateur ALFRED ne peut donc réutiliser un ancien mot de
passe que s'il en a défini un différent au moins 10 fois depuis, et qu'un délai de 30 jours s'est
écoulé.
Si une valeur est affectée à l'un des deux paramètres et que l'autre est défini comme
UNLIMITED, l'utilisateur ne pourra jamais réutiliser un mot de passe.
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). Le script utlpwdmg.sql fournit une fonction de vérification
de mot de passe. Vous le trouverez dans les répertoires suivants :
• Plates-formes Unix et Linux : $ORACLE_HOME/rdbms/admin
• Plates-formes Windows : %ORACLE_HOME%\rdbms\admin

Oracle Database 11g : Administration Workshop I 7 - 27


Créer un profil de mot de passe
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Créer un profil de mot de passe


Pour créer un profil de mot de passe, cliquez sur l'onglet Server, puis cliquez sur Profiles dans
la section Security de mot de passe. Dans la page Profiles, cliquez sur le bouton Create.
Cliquez sur l'onglet Password pour définir les limites du mot de passe.
Vous pouvez choisir les valeurs courantes de chaque paramètre dans une liste de valeurs (en
cliquant 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 comptant 1440 minutes, 5/1 440 représente cinq minutes.
Vous pouvez également utiliser Enterprise Manager pour modifier des profils de mot de passe
existants.
Si le script utlpwdmg.sql a été exécuté, les fonctions VERIFY_FUNCTION et
VERIFY_FUNCTION_11G sont disponibles. Si vous avez créé votre propre fonction de
complexité, entrez son nom. Le nom de la fonction n'apparaît pas dans la liste Select. Si la
fonction produit des erreurs au moment de l'exécution, l'utilisateur n'a pas la possibilité de
modifier le mot de passe.
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.

Oracle Database 11g : Administration Workshop I 7 - 28


Fonction prédéfinie de vérification des mots
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de passe : VERIFY_FUNCTION_11G
La fonction VERIFY_FUNCTION_11G garantit les caractéristiques
suivantes du mot de passe :
• Il comprend au moins huit caractères
• Il est différent du nom utilisateur ou de ce nom assorti
d'un nombre ou inversé
• Il est différent du nom de base de données
ou de ce nom assorti d'un nombre

Oracle University and Catalyst Business Solutions use only


• C'est une chaîne de caractères contenant au moins
un caractère alphabétique et un caractère numérique
• Il 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 © 2007, Oracle. Tous droits réservés.

Fonction prédéfinie de vérification des mots de passe : VERIFY_FUNCTION_11G


Le serveur Oracle fournit deux fonctions de vérification de la complexité des mots de passe :
VERIFY_FUNCTION et VERIFY_FUNCTION_11g. Ces fonctions sont créées à l'aide du
script <oracle_home>/rdbms/admin/utlpwdmg.sql. La fonction
VERIFY_FUNCTION est destinée aux personnes qui préfèrent la fonction de mot de passe
qui était fournie avec les versions précédentes. La fonction de vérification de la complexité
des mots de passe 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 180
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME 1
PASSWORD_VERIFY_FUNCTION verify_function_11g;
Rappelez-vous que lorsque les utilisateurs sont créés, le profil DEFAULT leur est affecté, sauf
si un autre profil est indiqué.

Oracle Database 11g : Administration Workshop I 7 - 29


Affecter des quotas aux utilisateurs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 à un 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 mis à la disposition de 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 : Remplace chaque quota de tablespace
et accorde à l'utilisateur un quota illimité sur tous les tablespaces, y compris SYSTEM et
SYSAUX. Ce privilège 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 peuvent 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.

Oracle Database 11g : Administration Workshop I 7 - 30


Affecter des quotas aux utilisateurs (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• L'instance Oracle vérifie le quota quand un utilisateur crée ou étend un segment.


• En ce qui concerne les activités affectées à un schéma utilisateur, seules celles qui
utilisent de l'espace dans un tablespace sont comptabilisées dans le quota. Les activités
qui n'utilisent pas l'espace disponible dans le tablespace désigné n'affectent pas le quota
(par exemple, la création de vues ou l'utilisation de tablespaces temporaires).
• Le quota est renouvelé lorsque les objets dont l'utilisateur est propriétaire sont supprimés
à l'aide de la clause PURGE ou purgés automatiquement de la corbeille.

Oracle University and Catalyst Business Solutions use only

Oracle Database 11g : Administration Workshop I 7 - 31


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, Oracle. Tous droits réservés.

Oracle Database 11g : Administration Workshop I 7 - 32


Exercice 7 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Administrer les utilisateurs

Dans cet exercice, vous allez :


• créer un profil afin de limiter la consommation
des ressources
• créer deux rôles :
– HRCLERK
– HRMANAGER

Oracle University and Catalyst Business Solutions use only


• créer quatre utilisateurs :
– un manager et deux opérateurs
– un utilisateur de schéma pour l'exercice suivant

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

Oracle Database 11g : Administration Workshop I 7 - 33


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Gérer les objets de schéma

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• créer des index
• créer des vues
• créer des séquences
• expliquer l'utilisation des tables temporaires

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

Oracle Database 11g : Administration Workshop I 8 - 2


> Schéma
Qu'est-ce qu'un schéma ? Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Index
Vues
Séquences
Tables temp.
Dict. de données

Oracle University and Catalyst Business Solutions use only


possède

Schéma HR
Utilisateur HR

Copyright © 2007, 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. Dans le cadre d'une base de données de production, cet utilisateur n'est
généralement 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 d'une base. Ils comprennent des structures telles que des
tables, des vues et des 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 et où un tablespace contient des objets issus de
différents schémas.
Lorsque vous créez la base de données, plusieurs schémas sont créés automatiquement,
notamment les deux suivants :
• Schéma SYS : Il comprend le dictionnaire de données, comme indiqué dans le chapitre
intitulé "Administrer la sécurité utilisateur".
• Schéma SYSTEM : Il comprend des tables et des vues supplémentaires qui contiennent
des informations administratives, comme indiqué dans le chapitre intitulé "Administrer la
sécurité utilisateur".

Oracle Database 11g : Administration Workshop I 8 - 3


Qu'est-ce qu'un schéma ? (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 traite 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

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 8 - 4


Accéder aux objets de schéma
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 page
Schema.
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 Schema.

Oracle Database 11g : Administration Workshop I 8 - 5


Nommer les objets de base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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.

Oracle Database 11g : Administration Workshop I 8 - 6


Nommer les objets de base de données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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.

Oracle University and Catalyst Business Solutions use only

Oracle Database 11g : Administration Workshop I 8 - 7


Définir des types de données pour les tables
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, 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 contient 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 colonne est mesurée en octets.
- CHAR indique que la colonne traite les chaînes en tant que séquences 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 J.C. et le 31 décembre 9999
après J.C. L'heure (heures, minutes et secondes) est également stockée dans ce type de
données.
• 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.

Oracle Database 11g : Administration Workshop I 8 - 8


Définir des types de données pour les tables (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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

Oracle University and Catalyst Business Solutions use only


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 Go 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 Go).
• RAW(size) : données binaires raw, dont la longueur est la valeur size en 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 base de
données. 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 dans 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 4 000 octets. Le type de données UROWID
d'une colonne présente un code de type correspondant à 1 octet suivi du row ID (adresse
de ligne) d'un type correspondant. Les trois types disponibles sont le row ID physique, le
row ID logique et les row ID externes (lorsque vous sélectionnez une colonne de type
ROWID sur un lien dblink via une passerelle de service hétérogène).
• BLOB : objet de type binaire de grande taille (Binary Large Object).
• CLOB : objet de type caractère de grande taille (Character Large Object) contenant des
caractères mono-octets ou multioctets. 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.

Oracle Database 11g : Administration Workshop I 8 - 9


Définir des types de données pour les tables (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Remarque : Pour les jeux de caractères mono-octets, les colonnes définies avec une
sémantique de type caractère sont fondamentalement identiques à celles définies avec une
sémantique de type octet. La sémantique de type caractère est utile pour définir des chaînes
multioctets de longueur variable car elle permet de simplifier la définition des besoins réels en
matière de longueur pour le stockage des données. Dans une base de données Unicode
(UTF8), par exemple, vous devez définir une colonne VARCHAR2 capable de contenir jusqu'à
cinq caractères chinois plus cinq caractères anglais. Dans la sémantique de type octet, il faut
pour cela (5 * 3 octets) + (1 * 5 octets), soit 20 octets. Dans la sémantique de type caractère,
la colonne a besoin de 10 caractères.
• NCLOB : objet de type caractère de grande taille contenant des caractères Unicode (NLS

Oracle University and Catalyst Business Solutions use only


Character Large Object). 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 de données 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 obtenue à l'aide de la formule
(4 Go – 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 2 048 et que la taille de
CHUNK est de 2 050, la base de données alloue 4 096 octets (2 blocs). La valeur
maximale est de 32 768 (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 Go.
• TIMESTAMP(fractional_seconds_precision) : indique les valeurs
année/mois/jour de la date, ainsi que les valeurs heure/minute/seconde de l'heure,
fractional_seconds_precision précisant le nombre de chiffres utilisés pour
exprimer 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.

Oracle Database 11g : Administration Workshop I 8 - 10


Créer et modifier des tables
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Indiquez le nom, le type de

Oracle University and Catalyst Business Solutions use only


données et la longueur des
colonnes.

Copyright © 2007, 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.
Chaque table comprend des colonnes et des lignes qui contiennent toutes les données
accessibles par les utilisateurs.
Créer une table
Pour créer une table à l'aide d'Enterprise Manager :
1. Cliquez sur Tables dans la page Schema. 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 l'option 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.

Oracle Database 11g : Administration Workshop I 8 - 11


Créer et modifier des tables
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

CREATE TABLE SHOPOWNER.JOBS (


Job_id NUMBER(5),
Job_title VARCHAR2(30),
MIN_SALARY NUMBER(6),
MAX_SALARY NUMBER(6)
)
TABLESPACE USERS;

Oracle University and Catalyst Business Solutions use only


ALTER TABLE SHOPOWNER.JOBS add bonus NUMBER(6);

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

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 confirme que la table a été créée avec
succès.
Modifier une table
Vous pouvez modifier une table à l'aide d'Enterprise Manager. Par exemple, vous procédez de
la manière suivante pour ajouter une colonne à 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. Cliquez ensuite sur
Apply. Un message de mise à jour confirme que la table a été modifiée.
Vous pouvez également utiliser SQL pour créer des tables. L'exemple présenté sur la
diapositive crée la table JOBS dans le schéma SHOPOWNER et la place dans le tablespace
USERS.

Oracle Database 11g : Administration Workshop I 8 - 12


Schéma
Comprendre l'intégrité > Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Index
des données 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

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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.
Le mot 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 soumises à cette contrainte
constituent l'identificateur unique de la ligne. En effet, chaque ligne est nommée par ses
valeurs de clé primaire.

Oracle Database 11g : Administration Workshop I 8 - 13


Comprendre l'intégrité des données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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,

Oracle University and Catalyst Business Solutions use only


- 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 EMPLOYEES.
Il existe un autre type de contrainte d'intégrité référentielle, appelé contrainte d'intégrité
autoré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 contrainte est définie comme IMMEDIATE et que son évaluation renvoie la valeur
false en raison d'une instruction LMD (langage de manipulation de données), cette
instruction est annulée (rollback). Si la contrainte peut être différée et qu'elle est définie
comme DEFERRED, l'annulation de l'instruction LMD n'a pas lieu au moment de son
exécution, mais lors de sa validation (commit) dans la base de données.

Oracle Database 11g : Administration Workshop I 8 - 14


Définir des contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Définir des contraintes


Pour ajouter une contrainte à une table à l'aide d'Enterprise Manager :
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éjà 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.

Oracle Database 11g : Administration Workshop I 8 - 15


Violations de contrainte
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


ID AGE
101 … X …

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

Copyright © 2007, 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, par exemple :
• Unicité : Un utilisateur tente d'inclure des valeurs en double dans une colonne à laquelle
est appliquée une contrainte UNIQUE (par exemple, lorsqu'une colonne constitue la clé
primaire ou lorsqu'elle est associée à un 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.

Oracle Database 11g : Administration Workshop I 8 - 16


Etats possibles d'une contrainte
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

DISABLE DISABLE ENABLE ENABLE


NOVALIDATE VALIDATE NOVALIDATE VALIDATE

Pas

Oracle University and Catalyst Business Solutions use only


d'instruction
LMD

Nouvelles données

Données existantes

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

Etats possibles d'une contrainte


Pour mieux 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

Oracle Database 11g : Administration Workshop I 8 - 17


Etats possibles d'une contrainte (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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). L'état NOVALIDATE est utilisé dans les
data warehouses où les données ont déjà été nettoyées. L'omission de l'étape de validation
permet de gagner du temps.
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 de valider 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 être validées, mais pas modifiées, et

Oracle University and Catalyst Business Solutions use only


lorsque 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. Cette option est souvent utilisée
quand il est certain que la table contient des données propres et conformes qui ne nécessitent
aucune validation. En revanche, elle n'autorise pas l'insertion dans le système de nouvelles
données en infraction.
ENABLE VALIDATE : Toutes les données doivent respecter la contrainte, qu'elles soient
nouvelles ou existantes. Il s'agit de l'état standard d'une contrainte (état par défaut).

Oracle Database 11g : Administration Workshop I 8 - 18


Vérification des contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 de la commande COMMIT

Vérification des contraintes

Oracle University and Catalyst Business Solutions use only


1
immédiates

2 Exécution de la commande
COMMIT
3 Vérification des contraintes
différées
4 Fin de la commande COMMIT

Copyright © 2007, 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.
Pour les contraintes qui ne peuvent pas être différées, les contraintes de clé primaire et de clé
unique nécessitent des index uniques. Par conséquent, la création de contrainte échoue si un
index non unique est déjà défini sur la ou les colonne(s) concernée(s).
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. Pour les contraintes qui
peuvent être différées, la clé primaire et les clés uniques nécessitent des index non uniques.
La création de contrainte échoue si un index unique est déjà défini sur la ou les colonne(s)
concernée(s) car les index uniques ne peuvent pas être différés.

Oracle Database 11g : Administration Workshop I 8 - 19


Vérification des contraintes (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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.
Remarque : S'il existe déjà un index approprié sur la colonne, il est utilisé pour la contrainte.
Il n'est pas nécessaire de créer d'index supplémentaire pour les clés primaires et les clés
uniques.

Oracle University and Catalyst Business Solutions use only

Oracle Database 11g : Administration Workshop I 8 - 20


Créer des contraintes via des instructions SQL :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Exemples

ALTER TABLE countries


a
ADD (UNIQUE(country_name) ENABLE NOVALIDATE);

ALTER TABLE shopowner.jobs ADD CONSTRAINT job_pk


b
PRIMARY KEY (job_id);

Oracle University and Catalyst Business Solutions use only


CREATE TABLE emp (emp_no NUMBER PRIMARY KEY,Last_name
VARCHAR2(30), first_name VARCHAR2(30), dept_no NUMBER,
c
Mgr_no NUMBER, hire_date date,salary NUMBER,
CONSTRAINT Mgr_FK FOREIGN KEY (mgr_no) REFERENCES
emp(emp_no), CONSTRAINT ck1 CHECK (salary > 0));

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

Créer des contraintes via des instructions SQL : Exemples


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 JOBS. Le nom de la contrainte est
JOB_PK et la clé primaire correspond à la colonne JOB_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 MGR_FK garantit
que les valeurs de la colonne MGR_NO sont présentes dans la colonne de clé primaire de
la table. La contrainte CK1 garantit que la valeur de la colonne SALARY est supérieure à
zéro.

Oracle Database 11g : Administration Workshop I 8 - 21


Créer des contraintes via des instructions SQL : Exemples (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Quand une contrainte n'est pas respectée, vous recevez un message d'erreur de type :
INSERT INTO emp
(Select employee_id , last_name, first_name,department_id,
manager_id, hire_date, salary FROM HR.employees where
department_id =30);
2 INSERT INTO emp
*
ERROR at line 1:
ORA-02291: integrity constraint (SYS.MGR_FK) violated -
parent key not found
Remarque : Chaque contrainte a un nom. Si ce nom n'est pas précisé lors de la création de la

Oracle University and Catalyst Business Solutions use only


contrainte, le système affecte un nom commençant par SYS_.

Oracle Database 11g : Administration Workshop I 8 - 22


Afficher les colonnes d'une table
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Afficher les colonnes d'une table


Pour afficher les attributs d'une table à l'aide d'Enterprise Manager :
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.
Vous pouvez également utiliser la commande SQL*Plus DESCRIBE pour afficher la
description des tables :

SQL> desc hr.departments


Name Null? Type
------------------------ -------- --------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)

Oracle Database 11g : Administration Workshop I 8 - 23


Afficher le contenu d'une table
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Afficher le contenu d'une table


Pour afficher les lignes d'une table à l'aide d'Enterprise Manager :
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.
Vous avez également la possibilité d'exécuter cette interrogation à partir d'une invite SQL :
SQL> SELECT department_id , department_name, manager_id,
manager_name
FROM departments;

Oracle Database 11g : Administration Workshop I 8 - 24


Actions sur les tables
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 : Créer une table qui présente 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 : Créer des index sur une table.
• Generate DDL : Générer 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, seul le propriétaire peut appliquer des actions à une table
au moment de sa création. Il doit ensuite octroyer des privilèges à d'autres utilisateurs
pour que ces derniers puissent exécuter des instructions LMD (langage de manipulation
de données) ou LDD sur la table.
• Show Dependencies : Afficher les objets dont la table dépend ou qui dépendent de la
table.
• View Data : Sélectionner et afficher les données de la table en mode lecture seule.

Oracle Database 11g : Administration Workshop I 8 - 25


Supprimer une table
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, 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 et la structure de la table, ainsi que les
privilèges objet associés et les éventuelles partitions.
Quelques considérations relatives à 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é.

Oracle Database 11g : Administration Workshop I 8 - 26


Vider une table
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Lorsque vous videz une table, ses données sont


supprimées et l'espace correspondant est libéré.
• Les index correspondants sont vidés.

TRUNCATE TABLE hr.employees;

Oracle University and Catalyst Business Solutions use only


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

Vider une table


Syntaxe
TRUNCATE TABLE [schema.] table [{DROP | REUSE} STORAGE]
Effets de la commande TRUNCATE TABLE :
• 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.

Oracle Database 11g : Administration Workshop I 8 - 27


Schéma
Index Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

> Index
Vues
Séquences
Tables temp.
Dict. de données

… WHERE key = 22

Pointeur
Clé de ligne

Oracle University and Catalyst Business Solutions use only


22

22

Index Table

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

Index
Les index sont des structures facultatives associées aux tables. Ils peuvent être créés afin
d'optimiser 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.
Les index peuvent contribuer à optimiser les performances lors de l'application de contraintes
de clé primaire et de clé unique. En l'absence d'index, un balayage complet de table (full table
scan) est effectué à chaque opération LMD (langage de manipulation de données) appliquée à
la table.

Oracle Database 11g : Administration Workshop I 8 - 28


Types d'index
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Vous disposez de plusieurs types de structure d'index,


adaptés à différents besoins. En voici deux parmi les plus
courants :
• Index B-Tree
– Type d'index par défaut présentant la forme d'une
arborescence équilibrée
• Index bitmap

Oracle University and Catalyst Business Solutions use only


– Association d'un bitmap à chaque valeur indexée
– Chaque bit représente une ligne qui contient ou ne
contient pas la valeur indexée.
– Type d'index recommandé pour les colonnes de faible
cardinalité

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

Types d'index
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 bitmap
comprend un bit distinct pour chaque 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é). Par conséquent, n'utilisez les index bitmap
que pour les colonnes de faible cardinalité.
Par exemple, un indicateur de sexe n'accepte 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 tel nombre de bitmaps que
l'opération deviendrait totalement inefficace.

Oracle Database 11g : Administration Workshop I 8 - 29


Index B-Tree
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Entrée d'index

Racine

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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 feuille
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 de l'index.)
• Le ROWID (adresse de ligne) d'une ligne qui contient les valeurs de clé.

Oracle Database 11g : Administration Workshop I 8 - 30


Index B-Tree (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Caractéristiques des entrées feuille


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

Oracle University and Catalyst Business Solutions use only


Le serveur Oracle tient à jour l'ensemble des index lorsque des opérations LMD (langage de
manipulation de données) sont effectuées sur une 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 qu'une suppression logique de l'entrée d'index.
L'espace utilisé par la ligne supprimée est disponible pour de nouvelles entrées feuille
séquentielles.
• 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.

Oracle Database 11g : Administration Workshop I 8 - 31


Index bitmap
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Table Fichier 3
Bloc 10

Bloc 11

Index
Bloc 12

Oracle University and Catalyst Business Solutions use only


de début de fin
Clé ROWID ROWID 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 © 2007, 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 :
• Une table contient des millions de lignes et 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.
• Les interrogations utilisent souvent une combinaison de plusieurs conditions WHERE
incluant l'opérateur OR.
• 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 row ID (adresses de ligne).
Chaque bit du bitmap correspond à un row ID possible. Si un bit est défini, cela signifie que la
ligne correspondant à ce row ID 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.
• Des valeurs de clé constituées de paires longueur-valeur pour chaque colonne de clé.
(Dans l'exemple de la diapositive, la clé est constituée d'une seule colonne et la première
entrée comporte la valeur de clé Blue.)

Oracle Database 11g : Administration Workshop I 8 - 32


Index bitmap (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Structure d'un index bitmap (suite)


• Un ROWID de début. Dans l'exemple considéré, il correspond au numéro de bloc 10, au
numéro de ligne 0 et au numéro de fichier 3.
• Un ROWID de fin. Dans l'exemple considéré, il correspond au numéro de bloc 12, au
numéro de ligne 8 et au numéro de fichier 3.
• 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 l'adresse de ligne de la première ligne vers laquelle pointe le segment
bitmap. Autrement dit, le premier bit du bitmap correspond à cette adresse de ligne, le

Oracle University and Catalyst Business Solutions use only


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 adresses de
ligne restreintes.
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.

Oracle Database 11g : Administration Workshop I 8 - 33


Options relatives aux index
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Un index unique garantit que chaque valeur indexée


est unique.
• 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

Oracle University and Catalyst Business Solutions use only


renvoyée par une fonction.
• Un index compressé supprime les valeurs
de clé en double.
• Ordre : Les valeurs de clé d'un index peuvent être
stockées dans l'ordre croissant ou décroissant.

Copyright © 2007, 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 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);

Oracle Database 11g : Administration Workshop I 8 - 34


Options relatives aux index (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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));
Toute interrogation dont la clause WHERE contient l'expression

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 8 - 35


Créer des index
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


CREATE INDEX my_index ON
employees(last_name, first_name);

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

Créer des index


Cliquez sur le lien Indexes sous l'en-tête Schema de la page Administration pour 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 au contraire 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.

Oracle Database 11g : Administration Workshop I 8 - 36


Schéma
Vues Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Index
> Vues

Table LOCATION

Table COUNTRY
Vue

Oracle University and Catalyst Business Solutions use only


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 © 2007, Oracle. Tous droits réservés.

Vues
Les vues sont des représentations d'interrogations de données dans une ou plusieurs tables ou
autres vues. Les vues sont 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. Les données qu'elle
présente sont issues des tables sur lesquelles elle est basée. Ces tables sont appelées tables de
base de la vue.

Oracle Database 11g : Administration Workshop I 8 - 37


Créer des vues
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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.

Oracle Database 11g : Administration Workshop I 8 - 38


Schéma
Séquences Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Index
Vues
> Séquences
Une séquence est un mécanisme de génération Tables temp.
Dict. de données
automatique de nombres entiers selon
un modèle spécifique.
• Une séquence comporte un nom, 1
qui est utilisé pour la demande 2
3
de la valeur suivante. 4
5
• Une séquence n'est associée à

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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 optimise 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. Des décalages peuvent également se
produire lorsque les valeurs en mémoire cache sont retirées de la zone de mémoire partagée.
La procédure DBMS_SHARED_POOL.KEEP autorise la valeur d'indicateur "Q" signalant
que le nom de l'objet en mémoire correspond à une séquence. Cela permet d'empêcher la
séquence d'être retirée de la mémoire partagée à cause de son ancienneté.

Oracle Database 11g : Administration Workshop I 8 - 39


Créer une séquence
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 disponibles pour créer une séquence :
• Name : Nom utilisé pour faire référence à la séquence.
• Schema : Propriétaire de la séquence.
• Maximum Value : Indique 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 : Indique 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.

Oracle Database 11g : Administration Workshop I 8 - 40


Créer une séquence (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Interval : Indique l'intervalle entre les numéros de séquence. Cette valeur peut être un
entier positif ou négatif quelconque, mais différent de zéro, comprenant au plus 28
chiffres. La valeur par défaut est 1.
• Initial : Indique 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.

Oracle University and Catalyst Business Solutions use only


• Order Values : 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
l'option CACHE avec Oracle Database et Real Application Clusters. Si vous n'utilisez pas
la mise en mémoire cache, la séquence est ordonnée par défaut.
• Cache Options : Indique 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.

Oracle Database 11g : Administration Workshop I 8 - 41


Utiliser une séquence
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL> CREATE TABLE orders


(id NUMBER,
ord_date DATE,
prod_id NUMBER,
prod_desc VARCHAR2(30)
);
Table created.

Oracle University and Catalyst Business Solutions use only


SQL> INSERT INTO orders VALUES ( abc_seq.NEXTVAL,
sysdate, 1245009, 'Gizmo X');

1 row created.

Copyright © 2007, 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, c'est-à-dire la valeur renvoyée par la dernière référence à NEXTVAL.

Oracle Database 11g : Administration Workshop I 8 - 42


Schéma
Tables temporaires Contraintes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Index
Vues
Séquences
> Tables temp.
Dict. de données
Une table temporaire :
• 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

Oracle University and Catalyst Business Solutions use only


• peut être utilisée par toutes les sessions, sans risque
d'affecter les données privées de chaque session

Copyright © 2007, 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. Dans le cas des tables temporaires propres à une session, les données sont
présentes pendant 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.

Oracle Database 11g : Administration Workshop I 8 - 43


Tables temporaires : Utilisation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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;

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, 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 de ces 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.
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.

Oracle Database 11g : Administration Workshop I 8 - 44


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• créer des index
• créer des vues
• créer des séquences
• expliquer l'utilisation des tables temporaires

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

Oracle Database 11g : Administration Workshop I 8 - 45


Exercice 8 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Administrer les objets de schéma

Dans cet exercice, vous allez :


• créer des tables contenant plusieurs colonnes
• créer des contraintes :
– PRIMARY KEY
– FOREIGN KEY
– CHECK

Oracle University and Catalyst Business Solutions use only


• créer des index

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

Oracle Database 11g : Administration Workshop I 8 - 46


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


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

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• gérer les données à l'aide d'instructions 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

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 9 - 2


Manipuler les données à l'aide d'instructions SQL
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL> INSERT INTO employees VALUES


2 (9999,'Bob','Builder','[email protected]',NULL,SYSDATE,
3 'IT_PROG',NULL,NULL,100,90);

1 row created.

Oracle University and Catalyst Business Solutions use only


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 © 2007, Oracle. Tous droits réservés.

Manipuler les données à l'aide d'instructions SQL


Vous manipulez les données de la base à l'aide d'instructions LMD (langage de manipulation
de données). 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.

Oracle Database 11g : Administration Workshop I 9 - 3


Commande INSERT
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Crée une ligne à la fois.


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

SQL> INSERT INTO emp VALUES


(9999,'Bob','Builder',100,SYSDATE, 10000); 1

Oracle University and Catalyst Business Solutions use only


SQL>INSERT INTO emp(Select employee_id , last_name,
first_name,department_id, hire_date, salary FROM HR.employees
where department_id =30);
2

6 rows created.

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

Commande INSERT
L'instruction INSERT de base crée une ligne à la fois. Via 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. Le premier
exemple présenté sur la diapositive insère une seule ligne dans la table EMP.
Dans cet exemple, la table EMP 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 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.
INSERT INTO emp (first_name, last_name)
(SELECT first_name, last_name From employees);
Dans l'exemple ci-dessus, seules les deux colonnes de la table EMP sont alimentées.
La méthode INSERT SELECT permet de charger en masse des données d'une ou de plusieurs
tables vers une autre table. Elle est illustrée dans le deuxième exemple. En l'occurrence, elle
sélectionne toutes les lignes du département 30 dans la table EMPLOYEES et les insère dans
la table EMP.

Oracle Database 11g : Administration Workshop I 9 - 4


Commande UPDATE
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Utilisez la commande UPDATE pour modifier un nombre


quelconque de lignes d'une table.

SQL> UPDATE EMP SET SALARY= salary +500


Where emp_no =117; 1

Oracle University and Catalyst Business Solutions use only


1 row updated.

SQL> UPDATE EMP


Set dept_no= (select dept_no from emp where emp_no =117);
2

6 rows updated.

Copyright © 2007, 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.
Le premier exemple présenté sur la diapositive met à jour la table EMP en modifiant le salaire
de l'employé 117.
Le deuxième exemple affecte à tous les départements le numéro du département
correspondant à l'employé 117.

Oracle Database 11g : Administration Workshop I 9 - 5


Commande DELETE
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Utilisez la commande DELETE pour supprimer un nombre


quelconque de lignes d'une table.

1
SQL> DELETE FROM emp WHERE emp_no =9000;

Oracle University and Catalyst Business Solutions use only


0 rows deleted.

SQL> DELETE emp; 2

6 rows deleted.

Copyright © 2007, 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.
Cela ne constitue pas une erreur, comme le montre le premier exemple présenté sur la
diapositive. Le message renvoyé indique seulement qu'aucune ligne n'a été supprimée de la
table.
Le deuxième exemple ne précise pas de clause WHERE, de sorte que toutes les lignes sont
supprimées.

Oracle Database 11g : Administration Workshop I 9 - 6


Commande MERGE
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Utilisez la commande MERGE pour effectuer une insertion


(INSERT) et une mise à jour (UPDATE) via une commande
unique.
MERGE INTO EMP a USING
(Select * FROM HR.employees) b
ON (a.emp_no =b. employee_id )
WHEN MATCHED THEN UPDATE SET a.salary =b.salary

Oracle University and Catalyst Business Solutions use only


WHEN NOT MATCHED THEN INSERT
(emp_no, last_name, first_name, dept_no, hire_date,
salary)
VALUES
(employee_id,last_name, first_name, department_id,
hire_date, salary);

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

Commande MERGE
La commande MERGE effectue à la fois les opérations UPDATE, INSERT et DELETE.
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érez l'exemple suivant de données contenues dans la table EMPS :

EMPNO LAST_NAME FIRST_NAME DEPT_NO HIRE_DATE SALARY


---------- ------------- --------------- ------- --------- ------
114 Raphaely Den 30 07-DEC-94 11000
115 Khoo Alexander 30 18-MAY-95 3100
116 Baida Shelli 30 24-DEC-97 2900
117 Tobias Sigal 30 24-JUL-97 2800
118 Himuro Guy 30 15-NOV-98 2600
119 Colmenares Karen 30 10-AUG-99 2500

Oracle Database 11g : Administration Workshop I 9 - 7


Commande MERGE (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

La table EMPLOYEES contient davantage de lignes et sa description est la suivante :


Name Null? Type
------------------- -------- ---------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)

Oracle University and Catalyst Business Solutions use only


COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
La commande MERGE insère dans la table EMPS toute ligne qui comporte une nouvelle valeur
EMPLOYEE_ID. Elle met également à jour la ligne de la table EMPS existante avec les
nouvelles valeurs des colonnes.

Oracle Database 11g : Administration Workshop I 9 - 8


Commandes COMMIT et ROLLBACK
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Pour terminer une transaction :


• COMMIT rend la modification permanente
• ROLLBACK annule la modification

SQL> COMMIT;
Commit complete.

Oracle University and Catalyst Business Solutions use only


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

Commandes COMMIT et ROLLBACK


Par défaut, une commande LMD (langage de manipulation de données) 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 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 ils les voient
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 essaie de modifier la même ligne qu'un autre utilisateur attend
que le premier utilisateur valide (commit) ou annule (rollback) la modification. Cette
opération est contrôlée automatiquement par le mécanisme de verrouillage d'Oracle Database.
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).

Oracle Database 11g : Administration Workshop I 9 - 9


PL/SQL
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Le langage PL/SQL (extension procédurale du langage


SQL) est un langage de programmation de quatrième
génération mis au point par Oracle. 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

Oracle University and Catalyst Business Solutions use only


l'intégrité des données
• la prise en charge de la programmation orientée objet

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

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 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 comme 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, dans lequel l'appelant doit être autorisé à réaliser toutes
les instructions exécutées par le programme appelé.
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 il 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 Packages and Types Reference.

Oracle Database 11g : Administration Workshop I 9 - 10


Administrer les objets PL/SQL
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


des problèmes
• utiliser les packages fournis
à des fins d'administration
et de maintenance de la base
de données

Copyright © 2007, 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 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é.

Oracle Database 11g : Administration Workshop I 9 - 11


Objets PL/SQL
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Il existe de nombreux types d'objet de base de données


PL/SQL :
• Package
• Corps du package
• Corps du type
• Procédure

Oracle University and Catalyst Business Solutions use only


• Fonction
• Déclencheur

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

Objets PL/SQL
• Package : Ensemble de procédures et de fonctions liées entre elles sur un plan logique.
Cette partie d'un package est également appelée specification (ou spec) et décrit
l'interface d'accès à vos applications. Il s'agit de déclarer les types, variables, constantes,
exceptions, curseurs et sous-programmes utilisables.
• Corps du package : Définition complète des curseurs et des sous-programmes en vue
d'implémenter la spécification. Le corps du package contient les détails de
l'implémentation et les déclarations privées qui sont masquées pour l'appelant.
• Corps du type : 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 Object-Relational
Developer's Guide.
• Procédure : Bloc PL/SQL qui effectue une opération spécifique.
• Fonction : 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 (trigger) : 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).

Oracle Database 11g : Administration Workshop I 9 - 12


Fonctions
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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;
/

Oracle Database 11g : Administration Workshop I 9 - 13


Procédures
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Les procédures sont utilisées pour effectuer


des actions spécifiques.
• Elles transmettent et reçoivent des valeurs
par l'intermédiaire d'une liste d'arguments.
• Elles peuvent être appelées par d'autres programmes
via la commande CALL

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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.
Remarque : Les procédures n'ont pas nécessairement besoin de paramètres d'entrée et ne
renvoient pas forcément un résultat.

Oracle Database 11g : Administration Workshop I 9 - 14


Packages
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les packages sont des ensembles de fonctions


et de procédures. Chaque package doit être constitué
de deux objets :
• Spécification du package
• Corps du package

Oracle University and Catalyst Business Solutions use only


Spécification du package

Copyright © 2007, 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 comprend généralement 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.
Remarque : La spécification du package est obligatoire ; le corps du package est facultatif.
Dans un package, les procédures et fonctions sont appelées à l'aide d'une notation à points :
nom_package.nom_procédure ou nom_fonction
Pour le package présenté sur la diapositive, 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;

Oracle Database 11g : Administration Workshop I 9 - 15


Spécification et corps d'un package
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Spécification et corps d'un 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
dans le corps du package que le travail est effectué. 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 Packages and Types Reference.

Oracle Database 11g : Administration Workshop I 9 - 16


Packages intégrés
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Oracle Database comprend plusieurs packages PL/SQL


intégrés offrant les avantages suivants :
– Utilitaires d'administration et de maintenance
– Fonctionnalités étendues
• Utilisez la commande DESCRIBE pour afficher
les sous-programmes.

Oracle University and Catalyst Business Solutions use only


SQL>DESC DBMS_LOCK

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

Packages intégrés
Les packages PL/SQL intégrés fournis avec Oracle Database 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 PL/SQL 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 aux instructions ALTER SESSION et SET ROLE.
• DBMS_SHARED_POOL : Gestion de la zone de mémoire partagée (pour la vider, par
exemple).
• DBMS_UTILITY : Obtention d'informations relatives à l'heure, au temps CPU et à la
version, calcul d'une valeur de hachage (hash value), réalisation de nombreuses autres
fonctionnalités.
• DBMS_SCHEDULER : Planification de fonctions et de procédures pouvant être appelées à
partir de PL/SQL.
• DBMS_REDEFINITION : Redéfinition d'objets en ligne.
• UTL_FILE : Lecture et écriture dans les fichiers du système d'exploitation à partir d'un
programme PL/SQL.
Remarque : Pour plus d'informations sur les packages intégrés, reportez-vous au manuel
PL/SQL Packages and Types Reference.

Oracle Database 11g : Administration Workshop I 9 - 17


Déclencheurs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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.

Oracle Database 11g : Administration Workshop I 9 - 18


Evénements déclencheurs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Type Exemples d'événements


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

Oracle University and Catalyst Business Solutions use only


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

Evénements déclencheurs
Il existe trois catégories d'événements déclencheurs :
• 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 les
événements indiqués 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.

Oracle Database 11g : Administration Workshop I 9 - 19


Verrous externes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• 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.
• Il n'y a pas d'escalade des verrous.

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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 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.

Oracle Database 11g : Administration Workshop I 9 - 20


Mécanisme de verrouillage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Haut niveau de simultanéité d'accès aux 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)

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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, regénérée à 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 automatiques sont libérés au moment de la validation (commit) des
transactions. 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.

Oracle Database 11g : Administration Workshop I 9 - 21


Simultanéité d'accès aux données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


SET salary=salary+100
WHERE employee_id=102;
... ...
Transaction x UPDATE hr.employees
SET salary=salary+100
WHERE employee_id=xxx;

Copyright © 2007, 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 Oracle Database 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. Ils autorisent plusieurs processus de lecture, mais un seul processus d'écriture.
• 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. La création d'index en ligne nécessite toutefois un
verrou ROW SHARE qui est utilisé lors de la construction de l'index.

Oracle Database 11g : Administration Workshop I 9 - 22


Simultanéité d'accès aux données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les verrous externes (locks) de type Share autorisent plusieurs processus de lecture, mais
aucun processus d'écriture. Ils sont également utilisés de manière transparente lors de la
suppression ou de la mise à jour de lignes dans une table parent qui possède une table
enfant avec des contraintes de clé étrangère sur la table parent.
• SHARE ROW EXCLUSIVE : Permet l'interrogation d'une table entière et autorise 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.

Oracle University and Catalyst Business Solutions use only


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 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. Oracle recommande d'éviter le recours aux verrous manuels,
notamment lors du développement d'applications. Des niveaux de verrouillage inutilement
élevés peuvent entraîner une réduction importante des performances.

Oracle Database 11g : Administration Workshop I 9 - 23


Verrous LMD
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 :

Oracle University and Catalyst Business Solutions use only


• 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 mises à jour

Copyright © 2007, 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. Cela 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.
Le verrou ROW EXCLUSIVE sur la table empêche une instruction LDD de modifier les
métadonnées du dictionnaire au milieu d'une transaction non validée. Cela préserve l'intégrité
du dictionnaire et la cohérence en lecture pendant toute la durée d'une transaction.

Oracle Database 11g : Administration Workshop I 9 - 24


Mécanisme de mise en file d'attente
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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. Si 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.
Remarque : Le mécanisme de mise en file d'attente distingue deux catégories de session en
attente de verrou : les sessions en attente sans propriété partagée et les sessions en attente
avec propriété partagée dont l'élévation du niveau de verrouillage n'est pas souhaitée.
Les sessions appartenant à cette dernière catégorie sont appelées convertisseurs. Elles priment
toujours sur les sessions en attente normales même si elles attendent depuis moins longtemps.

Oracle Database 11g : Administration Workshop I 9 - 25


Conflits de verrouillage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Transaction 1 Temps 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 -----------

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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.

Oracle Database 11g : Administration Workshop I 9 - 26


Causes possibles des conflits de verrouillage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Modifications non validées


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

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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 par lots 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 par lots 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 destinées à s'exécuter sur de nombreuses bases de données
différentes appliquent souvent des niveaux de verrouillage très élevés qui forcent Oracle
Database à se comporter 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 ne l'exige Oracle Database.

Oracle Database 11g : Administration Workshop I 9 - 27


Détecter les conflits de verrouillage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Sélectionnez Blocking Sessions dans la page


Performance.

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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 qui attendent ce 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.

Oracle Database 11g : Administration Workshop I 9 - 28


Résoudre les conflits de verrouillage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Pour résoudre un conflit de verrouillage :


• Provoquez la validation ou l'annulation de la
transaction par la session détenant le verrou.
• Mettez fin à la session détenant le verrou
(en dernier recours).

Oracle University and Catalyst Business Solutions use only


Copyright © 2007, 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
Remarque : La fonction PMON d'arrêt de session peut fermer automatiquement les sessions
qui ont dépassé le délai d'inactivité, par le biais de profils ou de Resource Manager.

Oracle Database 11g : Administration Workshop I 9 - 29


Résoudre les conflits de verrouillage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

à l'aide d'instructions SQL

Il est possible de déterminer la session bloquante


et de la fermer à l'aide d'instructions SQL.

SQL> select sid, serial#, username


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

Oracle University and Catalyst Business Solutions use only


Résultat :

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

Copyright © 2007, 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 également 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. 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.
Remarque : Vous pouvez utiliser Database Resource Manager pour déconnecter
automatiquement les sessions qui en bloquent d'autres et qui sont inactives.

Oracle Database 11g : Administration Workshop I 9 - 30


"Verrous mortels"
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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;

Oracle University and Catalyst Business Solutions use only


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 © 2007, 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.
Oracle Database 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 tous les verrous
de la session et de permettre à l'autre session de poursuivre sa transaction.
Dans l'exemple présenté par la diapositive ci-dessus, la transaction 1 doit être validée ou
annulée pour résoudre l'erreur "deadlock detected". Si elle est validée, la deuxième mise à
jour devra être soumise à nouveau pour terminer la transaction. Si elle est annulée, les deux
instructions devront être soumises à nouveau pour effectuer la transaction.

Oracle Database 11g : Administration Workshop I 9 - 31


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• gérer les données à l'aide d'instructions 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

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 9 - 32


Exercice 9 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Gérer les données et la simultanéité


d'accès aux données

Dans cet exercice, vous allez :


• identifier les conflits de verrouillage
• résoudre les conflits de verrouillage

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 9 - 33


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Gérer les données d'annulation

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, Oracle. Tous droits réservés.

Oracle Database 11g : Administration Workshop I 10 - 2


Manipulation des données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Le langage de manipulation de données (LMD)


est composé des instructions SQL suivantes :
– INSERT
– UPDATE
– DELETE
– MERGE

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, Oracle. Tous droits réservés.

Manipulation des données


Les données sont manipulées (ou modifiées) à l'aide des instructions SQL 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).
Ces opérations peuvent être effectuées explicitement à l'aide des commandes COMMIT et
ROLLBACK, mais aussi implicitement. Par exemple, une opération d'annulation peut se
produire en cas d'échec système ou d'échec de processus. Une opération de validation peut se
produire après une commande LDD telle que CREATE TABLE.
Remarque : La commande MERGE effectue une combinaison de commandes LMD pour
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".

Oracle Database 11g : Administration Workshop I 10 - 3


Données d'annulation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 :

Oracle University and Catalyst Business Solutions use only


– les opérations d'annulation (rollback)
– des interrogations cohérentes en lecture
– les opérations Flashback Query,
Flashback Transaction et Flashback
Table
– la récupération suite à l'échec
de transactions Utilisateur

Copyright © 2007, 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 leur
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 la prise en charge des
interrogations cohérentes en lecture et des interrogations flashback. Elles peuvent également
être utilisées pour effectuer des flashbacks de transactions et de tables.
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. Si les données d'origine ne sont plus disponibles, vous recevez un
message d'erreur "Snapshot too old". Tant que ces informations sont conservées, la base de
données Oracle peut recréer les données pour répondre aux interrogations cohérentes en
lecture.
Les interrogations flashback 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. L'opération Flashback Transaction utilise les données d'annulation pour créer des
transactions de compensation en vue d'annuler une transaction et ses transactions
dépendantes. Flashback Table permet de récupérer une table dans l'état qu'elle présentait à un
moment précis du passé.

Oracle Database 11g : Administration Workshop I 10 - 4


Données d'annulation (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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 ou à
l'exécution d'une commande SHUTDOWN ABORT.
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 ainsi les
données d'origine.
Les informations d'annulation sont conservées pour chaque transaction, au moins jusqu'à la

Oracle University and Catalyst Business Solutions use only


fin de la transaction, laquelle se produit de l'une des manières suivantes :
• L'utilisateur annule la transaction.
• L'utilisateur termine la transaction (validation).
• L'utilisateur exécute une instruction LDD telle que CREATE, DROP, RENAME ou
ALTER. Si la transaction en cours contient des instructions LMD, la base de données
commence par la valider (commit), puis elle exécute et valide l'instruction LDD en tant
que nouvelle transaction.
• La session utilisateur se termine de façon anormale (transaction annulée).
• La session utilisateur se termine de façon normale et l'utilisateur quitte la session
(transaction validée).
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.

Oracle Database 11g : Administration Workshop I 10 - 5


Transactions et données d'annulation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Segment
d'annulation
Données
du Données "anciennes"
cache du tablespace
de tampons d'annulation

Opérations LMD
UPDATE Tampon de Informations nouvelles

Oracle University and Catalyst Business Solutions use only


journalisation sur les modifications Fichiers de
dans les fichiers journalisation
de journalisation

• Chaque transaction est affectée à un seul segment


d'annulation.
• Un segment d'annulation peut être utilisé par plusieurs
transactions simultanément.

Copyright © 2007, 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
réutilisable 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 LDD et 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.

Oracle Database 11g : Administration Workshop I 10 - 6


Stockage des informations d'annulation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• Présentent des exigences particulières en termes
de récupération
• Sont associés à une seule instance
• Nécessitent qu'un seul tablespace d'annulation
soit accessible en écriture pour une instance donnée
à un instant précis

Copyright © 2007, 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. (Vous ne pouvez pas créer d'autres types de segment, tels que
des tables, dans le tablespace d'annulation.)
Le processus d'installation crée automatiquement un tablespace d'annulation smallfile, mais
vous pouvez également créer un tablespace d'annulation bigfile. Toutefois, dans un
environnement OLTP (Traitement de transactions en ligne) volumineux traitant simultanément
un grand nombre de transactions courtes, il peut y avoir contention au niveau de l'en-tête de
fichier. Un tablespace d'annulation stocké dans plusieurs fichiers de données peut résoudre ce
problème potentiel.
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 d'annulation en cours pour
une instance.
Les segments d'annulation sont créés automatiquement et appartiennent toujours à l'utilisateur
SYS. Etant donné que les segments d'annulation jouent le rôle de mémoire tampon (buffer)
réutilisable, chaque segment comprend au minimum 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 automatiquement par la base de données.
Comme 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".

Oracle Database 11g : Administration Workshop I 10 - 7


Données d'annulation et données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de journalisation
Annulation Données de journalisation

Enregistrement Mode d'annulation d'une Mode de reproduction


de modification d'une modification
Utilisation pour Annulation, cohérence en Réimplémentation des
lecture, flashback modifications de la base
de données
Stockage dans Segments d'annulation Fichiers de journalisation

Oracle University and Catalyst Business Solutions use only


Protection Lectures incohérentes Pertes de données
contre dans les systèmes
multiutilisateurs
Segment
d'annulation
Fichiers de
journalisation

Copyright © 2007, 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. Les modifications des blocs d'annulation sont également consignées
dans le fichier de journalisation (redo log).
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. 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
où les blocs de la table sont effectivement stockés, leur écriture dans le fichier de
journalisation garantit la cohérence de la base de données.
Si une coupure de courant se produit juste avant l'écriture des modifications validées dans les
fichiers de données, cela ne pose aucun problème puisque la transaction a été validée
(commit). Lorsque le système redémarre, il peut réimplémenter les enregistrements de
journalisation qui n'avaient pas encore été répercutés dans les fichiers de données au moment
de la coupure.

Oracle Database 11g : Administration Workshop I 10 - 8


Gérer les informations d'annulation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Gestion automatique des annulations :


• Gestion complètement automatisée des données et du
volume d'annulation dans un tablespace d'annulation dédié
• Utilisation dans toutes les sessions
• Réglage automatique (self-tuning) dans des tablespaces
en auto-extension (AUTOEXTEND) pour les besoins des
interrogations de longue durée
• Réglage automatique dans des tablespaces de taille fixe

Oracle University and Catalyst Business Solutions use only


pour une conservation optimale
Tâches du DBA pour la prise en charge des opérations
Flashback :
• Configurer la période de conservation des informations
d'annulation
• Passer à un tablespace d'annulation de taille fixe
• Eviter la consommation excessive d'espace et les erreurs
"Snapshot too old"

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

Gérer les informations d'annulation


La base de données Oracle assure la gestion automatique des annulations (AUM) : un
mécanisme complètement automatisé permet de gérer les informations et le volume
d'annulation dans un tablespace d'annulation dédié pour toutes les sessions. Le système se
règle automatiquement pour fournir une conservation optimale des informations d'annulation.
Plus précisément, la période de conservation des informations d'annulation pour les
tablespaces en auto-extension est réglée sur une durée légèrement supérieure à celle de
l'interrogation active la plus longue à s'exécuter. Pour les tablespaces d'annulation de taille
fixe, la base de données effectue un réglage dynamique en vue d'assurer une conservation
optimale.
La gestion automatique des annulations est l'option par défaut dans Oracle Database 11g (et
les versions postérieures). 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 davantage d'interventions du DBA. En mode manuel, le volume d'annulation n'est
pas géré via un tablespace d'annulation, mais au moyen de segments d'annulation (rollback
segments).
Remarque : Oracle recommande fortement d'utiliser la gestion automatique des annulations.
Bien que la base de données Oracle utilise par défaut la gestion automatique des données et
du volume d'annulation, vous pouvez avoir besoin d'intervenir manuellement si votre base fait
appel à des opérations Flashback. L'administration des informations d'annulation doit éviter la
consommation excessive d'espace et les erreurs "Snapshot too old".

Oracle Database 11g : Administration Workshop I 10 - 9


Configurer la période de conservation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

des informations d'annulation


Le paramètre UNDO_RETENTION indique (en secondes)
la durée de conservation des informations d'annulation
déjà validées. Vous ne devez configurer ce paramètre que
dans les cas suivants :
• L'option AUTOEXTEND du tablespace d'annulation
est activée.

Oracle University and Catalyst Business Solutions use only


• Vous souhaitez définir la période de conservation
des informations d'annulation pour les objets LOB.
• Vous souhaitez garantir la conservation des données.

DBA

Copyright © 2007, 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 minimale de la période de
conservation des informations d'annulation. Pour le tablespace d'annulation en auto-extension,
définissez une période minimale de conservation aussi longue que l'opération Flashback de
plus longue durée que vous prévoyez. Pour ce type de tablespace, 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 matière d'annulation. Il peut toutefois arriver que cette période de
conservation réglée automatiquement ne soit pas suffisante pour vos opérations Flashback.
Pour les tablespaces d'annulation de taille fixe, le système adopte automatiquement une
période de conservation optimale en fonction de la taille du tablespace 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é.

Oracle Database 11g : Administration Workshop I 10 - 10


Configurer la période de conservation des informations d'annulation (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


une transaction en cours d'exécution. Elles sont remplacées lorsque l'espace est requis par
une transaction active.

Oracle Database 11g : Administration Workshop I 10 - 11


Garantir la période de conservation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

des informations d'annulation

Période garantie :
15 minutes

Oracle University and Catalyst Business Solutions use only


Données d'annulation
stockées dans le tablespace
d'annulation

Les instructions SELECT Une transaction échoue si elle 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.

Copyright © 2007, 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 exécutées à partir de la
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

Oracle Database 11g : Administration Workshop I 10 - 12


Passer à un tablespace d'annulation
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de taille fixe
Raisons :
• Prendre en charge les opérations
Flashback
• Limiter l'extension du tablespace
d'annulation
Workflow :

Oracle University and Catalyst Business Solutions use only


1. Exécutez une charge globale normale.
2. Le mécanisme de réglage automatique (self-tuning)
établit la taille minimale requise.
3. (Facultatif) Utilisez Undo Advisor pour calculer la taille
requise en prévision de l'extension future.
4. (Facultatif) Configurez le tablespace d'annulation avec
une taille fixe.
Copyright © 2007, Oracle. Tous droits réservés.

Passer à un tablespace d'annulation de taille fixe


Vous pouvez être amené à passer à un tablespace d'annulation de taille fixe pour deux
raisons : prendre en charge les opérations Flashback (si vous prévoyez l'utilisation future des
informations d'annulation) ou empêcher le tablespace d'atteindre une taille excessive.
Si vous prenez cette décision, vous devez choisir une taille assez grande pour éviter les deux
erreurs suivantes :
• Echec d'instructions LMD (dû au manque d'espace pour les données d'annulation des
nouvelles transactions)
• Erreurs "Snapshot too old" (dues à l'insuffisance des données d'annulation pour la
cohérence en lecture)
Oracle recommande d'exécuter l'intégralité d'une charge globale normale pour permettre au
tablespace d'annulation d'atteindre la taille minimale requise. Les statistiques collectées
automatiquement comprennent la durée de l'interrogation la plus longue à s'exécuter et le taux
de génération des informations d'annulation. Il est conseillé de calculer la taille minimale du
tablespace d'annulation sur la base de ces statistiques pour un système sans opérations
Flashback ou pour un système qui n'est pas censé exécuter d'interrogations de longue durée
dans le futur.
La fonction de conseil Undo Advisor vous permet de préciser la période de conservation des
informations d'annulation qui vous semble souhaitable pour les interrogations de longue durée
et les opérations Flashback.

Oracle Database 11g : Administration Workshop I 10 - 13


Gestion des annulations : Informations générales
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


Taille actuelle
du tablespace

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

Gestion des annulations : Informations générales


Dans Enterprise Manager, sélectionnez Server > Automatic Undo Management.
Vous pouvez afficher deux pages : General et System Activity. La partie supérieure de la page
General comprend une section sur les paramètres de conservation des informations
d'annulation (Undo Retention Settings) et une section relative au tablespace d'annulation
associé à l'instance (Undo Tablespace for this Instance).

Oracle Database 11g : Administration Workshop I 10 - 14


Utiliser Undo Advisor
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Utiliser Undo Advisor


La page General comprend également une section qui concerne votre accès à la fonction de
conseil Undo Advisor. Elle fournit une estimation de l'espace requis dans le tablespace
d'annulation pour satisfaire une période de conservation donné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 cliquer sur un point du graphique afin de voir la
taille requise pour que le tablespace puisse prendre en charge la période sélectionnée.
Cliquez sur le bouton Edit Undo Tablespace, puis cliquez sur Edit dans la section Datafile
pour passer à un tablespace de taille fixe.

Oracle Database 11g : Administration Workshop I 10 - 15


Afficher l'activité du système
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


3

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

Afficher l'activité du système


La partie supérieure de la page System Activity présente l'activité du système pendant la
période sélectionnée.
Elle est illustrée par trois graphiques :
1. Undo Tablespace Usage : Evolution de la taille du tablespace (en Mo) au jour le jour,
pour le mois indiqué.
2. Undo Retention Auto-Tuning : Réglage de la période de conservation des
informations d'annulation au jour le jour (en minutes), pour le mois indiqué.
3. Undo Generation Rate : Taux de génération des informations d'annulation au jour le
jour (en Ko par seconde), pour le mois indiqué.

Oracle Database 11g : Administration Workshop I 10 - 16


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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

Oracle University and Catalyst Business Solutions use only


• 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 © 2007, Oracle. Tous droits réservés.

Oracle Database 11g : Administration Workshop I 10 - 17


Exercice 10 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Gérer les segments d'annulation

Dans cet exercice, vous allez :


• afficher l'activité du système
• 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

Oracle University and Catalyst Business Solutions use only


en charge une période de conservation des
informations d'annulation de 48 heures

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

Oracle Database 11g : Administration Workshop I 10 - 18


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de données Oracle

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


Implémenter la sécurité de la base

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• décrire les responsabilités du DBA en matière
de sécurité
• appliquer le principe du moindre privilège
• activer l'audit de base de données standard
• définir les options d'audit

Oracle University and Catalyst Business Solutions use only


• examiner les informations d'audit
• gérer la trace d'audit

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

Objectifs
Le présent chapitre constitue un point de départ pour l'étude des fonctionnalités Oracle
relatives à la sécurité. Pour plus d'informations, reportez-vous aux manuels suivants :
• Oracle Database Concepts 11g Release 1 (11.1)
• Oracle Database Administrator's Guide 11g Release 1 (11.1)
• Oracle Database Security Guide 11g Release 1 (11.1)
Les cours suivants fournissent une formation complémentaire :
• Oracle Database 11g : Administration Workshop II (D50079FR10)
• Oracle Database 11g : Security

Oracle Database 11g : Administration Workshop I 11 - 2


Obligations en matière de sécurité
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

dans les entreprises


• Lois :
– Loi américaine sur la réforme de la comptabilité des sociétés
cotées et la protection des investisseurs
(dite loi Sarbanes-Oxley ou SOX)
– Loi américaine sur la transférabilité et les fonctions de
l'assurance maladie (HIPAA, Health Information Portability
and Accountability Act)
– Loi indienne sur la diffusion de l'information technologique

Oracle University and Catalyst Business Solutions use only


– Loi britannique sur la protection des données
– Directive 95/46/CE de l'UE sur la protection des données
– Loi norvégienne sur la protection des données personnelles
• Audit

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

Obligations en matière de sécurité dans les entreprises


Les exigences en matière de sécurité étaient encore récemment l'affaire de chaque entreprise.
Il existait peu d'obligations légales, excepté dans le domaine public ou militaire. Cette
situation est en train d'évoluer rapidement. Différentes lois ont été votées pour imposer les
principes de confidentialité et d'exactitude des données. Ces lois s'accompagnent d'une
obligation d'audit sur les mesures de sécurité en vigueur. Elles varient d'un pays à l'autre, mais
les objectifs et la plupart des solutions appliquées sont les mêmes.
Lois : Chacune des lois répertoriées ci-après implique des exigences spécifiques. Cette liste
est représentative de nombreuses autres lois en cours d'adoption à travers le monde.
Bien entendu, les lois en matière de sécurité varient d'un pays à l'autre.
• La loi Sarbanes-Oxley (SOX) impose aux entreprises cotées de renforcer et de
documenter les contrôles internes afin d'empêcher quiconque de commettre des actes
frauduleux qui risqueraient de compromettre la situation financière d'une organisation ou
l'exactitude de ses résultats financiers. Le président directeur général et le directeur
financier doivent attester de l'adéquation des contrôles internes et de l'exactitude des
résultats financiers publiés. En cas de reporting frauduleux, ils encourent des amendes et
des peines d'emprisonnement. La loi SOX exige également la communication des
informations utilisées pour le reporting et de la documentation relative aux contrôles
internes employés pour assurer l'intégrité des informations financières.

Oracle Database 11g : Administration Workshop I 11 - 3


Obligations en matière de sécurité dans les entreprises (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• La loi américaine sur la transférabilité et les fonctions de l'assurance maladie


(HIPAA, Health Information Portability and Accountability Act) vise à protéger les
informations personnelles d'ordre médical contre toute divulgation ou utilisation abusive.
Les détenteurs de telles informations doivent fournir des traces d'audit qui répertorient
tous les accès aux données.
• La directive européenne sur la protection des données vise à protéger la vie privée et
définit une norme applicable à tous les pays membres de l'Union Européenne.
• La loi britannique sur la protection des données (UK Data Protection Act) est
destinée à protéger la vie privée en limitant l'accès aux données à caractère personnel.
Elle comporte huit points, dont l'un exige la conservation sécurisée des données.
• La loi norvégienne sur la protection des données personnelles (Norwegian Personal

Oracle University and Catalyst Business Solutions use only


Data Act) est compatible avec la directive européenne sur la protection des données
et va plus loin dans certains domaines.
• Autres lois :
- La loi américaine sur les droits à l'instruction et à la protection des
renseignements personnels des familles (Family Educational Rights and Privacy
Act, FERPA) concerne les informations personnelles et médicales détenues par les
établissements scolaires.
- La loi californienne sur les failles de sécurité (California Breach Law) impose
aux entreprises détenant des informations personnelles (par exemple, numéros de
carte de crédit, de permis de conduire ou de sécurité sociale) de protéger ces
informations. Si des informations ont fait l'objet d'accès non autorisés, l'organisation
doit en informer toutes les personnes concernées. Deux lois, CA-SB-1386 et
CA-AB-1950, s'appliquent aux organisations détenant des renseignements
personnels.
- La loi fédérale américaine sur la gestion de la sécurité des données (Federal
Information Security Management Act, FISMA) fournit des lignes directrices et
des normes de sécurité dans les publications FIPS (Federal Information Processing
Standard), gérées par l'organisme de normalisation NIST (National Institute of
Standards). Ces normes s'appliquent aux organisations qui traitent des informations
pour le gouvernement américain.
- Le Minnesota a adopté une loi rendant obligatoire le respect de la norme PCI DSS
(Payment Card Industry Data Security Standard) relative à la sécurité des
données liées aux cartes de paiement. D'autres états étudient des mesures similaires.
La norme PCI est appliquée dans le monde entier par contrat.

Oracle Database 11g : Administration Workshop I 11 - 4


Obligations en matière de sécurité dans les entreprises (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Audit : Un grand nombre des lois qui précèdent contiennent des dispositions exigeant un
audit régulier des plans de sécurité (contrôles internes). Les obligations de la loi SOX sont
floues et font l'objet d'interprétations diverses par les responsables des organisations.
Les caractéristiques de leur implémentation peuvent varier considérablement, en fonction du
niveau de détail demandé par les responsables. La loi SOX est imprécise, mais elle prévoit
des peines sévères ; il est donc important de protéger votre société. Il faut évaluer le coût des
mesures de sécurité par rapport aux risques. Personne ne pourra garantir que vous présentez
une sécurité totale. Le consensus constitue une très bonne solution. Si vous respectez les
règles de sécurité minimales et que vous avez effectué les vérifications préalables, vous êtes
normalement protégé contre les peines les plus sévères prévues par la loi. Pour connaître les

Oracle University and Catalyst Business Solutions use only


pratiques standard mises en oeuvre dans les entreprises, vous pouvez notamment vous référer
à l'Institut SANS (SysAdmin, Audit, Network, Security), au CERT/CC (géré par la Carnegie
Mellon University pour le ministère américain de la défense) et à la norme de certification
ISO-17799 :
• http://www.sans.org/index.php
• http://www.cert.org/nav/index.html
• http://www.iso17799software.com/
La norme de certification internationale ISO-17799 constitue un code de bonnes pratiques en
matière de sécurité. Elle inclut des recommandations, des certifications et des évaluations de
risques. Elle couvre une vaste gamme de problèmes et inclut des stratégies préétablies.

Oracle Database 11g : Administration Workshop I 11 - 5


Séparation des responsabilités
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Les utilisateurs disposant des privilèges DBA doivent


être des personnes de confiance.
– Eviter les abus de confiance
– Mettre en place des traces d'audit pour protéger
les personnes dignes de confiance
• Les responsabilités de DBA doivent être partagées.

Oracle University and Catalyst Business Solutions use only


• Les comptes ne doivent jamais être partagés.
• Le DBA et l'administrateur système doivent
être des personnes différentes.
• Séparez les responsabilités Opérateur et DBA.

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

Séparation des responsabilités


La diapositive ci-dessus indique les principes à respecter pour obtenir une séparation
satisfaisante des fonctions.
Les DBA doivent être des personnes de confiance : Il est difficile de restreindre les droits
d'un administrateur de base de données (DBA). Pour faire son travail, le DBA a besoin de
privilèges de haut niveau. Il occupe un poste critique et les informations personnelles le
concernant doivent être vérifiées avec soin. Même s'il s'agit d'une personne de confiance, il
est nécessaire d'assurer le suivi de ses activités. Envisagez les précautions suivantes :
• Eviter les abus de confiance : Un DBA peut utiliser à des fins malveillantes les mots de
passe cryptés dans la vue DBA_USERS.
• Mettre en place des traces d'audit pour protéger les personnes dignes de confiance :
Une fois l'audit soigneusement implémenté dans le respect des règles établies, la trace
d'audit peut montrer qu'une personne donnée n'a pas enfreint de procédures ni commis
d'acte préjudiciable. Des traces d'audit bien conçues permettent de détecter les actions
effectuées par un utilisateur malveillant pour tenter de jeter un doute sur un utilisateur
digne de confiance.
Oracle Database Vault : Il est intéressant d'acquérir l'option Oracle Database Vault dans les
situations où la séparation des fonctions doit être appliquée au niveau de la base de données
ou lorsque le DBA n'est pas autorisé à afficher les données de certains schémas ou de tous les
schémas de la base.

Oracle Database 11g : Administration Workshop I 11 - 6


Sécurité de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Un système sécurisé garantit la confidentialité des


données qu'il contient. La sécurité englobe plusieurs
aspects :
• Limiter l'accès aux données et aux services
• Authentifier les utilisateurs
• Surveiller les activités suspectes

Oracle University and Catalyst Business Solutions use only


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

Sécurité de la base de données


Oracle Database 11g offre le meilleur environnement possible pour un système sécurisé.
Pour que cet environnement soit efficace, il faut toutefois que le DBA respecte les
recommandations et surveille en permanence l'activité de la base de données.
• Limiter l'accès aux données et aux services
Les utilisateurs ne doivent pas tous avoir accès à toutes les données. Selon les données
stockées dans la base, un accès restreint peut s'avérer nécessaire pour diverses raisons :
exigences métier, attentes des clients ou encore (de plus en plus souvent) restrictions
légales. Les informations relatives aux cartes bancaires, à la santé, à l'identité, etc.
doivent être protégées contre tout accès non autorisé. La base Oracle fournit des
contrôles d'autorisation de niveau très fin pour limiter les accès. Pour la définition des
accès, il convient d'appliquer le principe du moindre privilège.

Oracle Database 11g : Administration Workshop I 11 - 7


Sécurité de la base de données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Authentifier les utilisateurs


Pour appliquer les contrôles d'accès aux données sensibles, le système doit d'abord savoir
qui tente d'accéder aux données. Une authentification compromise peut rendre inutiles
toutes les autres précautions de sécurité. La forme la plus élémentaire d'authentification
consiste à demander à l'utilisateur d'indiquer quelque chose qu'il connaît, par exemple un
mot de passe. Vous pouvez accroître considérablement la sécurité du système en
imposant le respect de règles simples concernant les mots de passe. Les méthodes
d'authentification renforcées consistent à demander à l'utilisateur de fournir quelque
chose qu'il possède, par exemple un "token" (sème) ou un certificat de clé publique
(PKI). Une forme encore plus renforcée d'authentification consiste à identifier les
utilisateurs via une caractéristique biométrique unique, telle qu'une empreinte digitale,

Oracle University and Catalyst Business Solutions use only


l'iris de l'oeil, la morphologie, etc. La base de données Oracle prend en charge des
techniques d'authentification avancées (telles que l'identification par "token", biométrie
ou certificat) via l'option ASO (Oracle Advanced Security). Les comptes utilisateur qui
ne sont pas employés doivent être verrouillés afin d'éviter toute tentative de
compromission de l'authentification.
• Surveiller les activités suspectes
Même autorisés et authentifiés, les utilisateurs peuvent parfois compromettre le système.
L'identification d'une activité de base de données inhabituelle (par exemple, un employé
qui commence soudain à interroger de grandes quantités d'informations de carte bancaire,
de résultats de recherche ou d'autres informations sensibles) peut être la première étape
de la détection d'un vol d'informations. La base de données Oracle offre un ensemble
complet d'outils d'audit permettant le suivi des activités des utilisateurs et l'identification
de tendances suspectes.

Oracle Database 11g : Administration Workshop I 11 - 8


Principe du moindre privilège
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Installez uniquement les logiciels requis sur


l'ordinateur.
• Activez uniquement les services requis sur l'ordinateur.
• N'accordez l'accès au système d'exploitation et à la
base de données qu'aux utilisateurs qui en ont besoin.
• Limitez l'accès au compte root ou administrateur.

Oracle University and Catalyst Business Solutions use only


• Limitez l'accès aux comptes SYSDBA et SYSOPER.
• Limitez l'accès des utilisateurs aux seuls objets de
base de données qui sont nécessaires à la réalisation
de leur travail.

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

Principe du moindre privilège


Appliquez le principe du moindre privilège à chaque niveau, en partant des niveaux
inférieurs. Il existe toujours de nouvelles exploitations de faille de sécurité ("exploit")
impossibles à anticiper. L'application de ce principe permet de réduire les risques de telles
exploitations et de limiter les dommages.
• Installez uniquement les logiciels requis sur l'ordinateur : En réduisant le nombre de
packages logiciels, vous réduisez la maintenance, les mises à niveau, les possibilités de
brèches de sécurité et les conflits logiciels.
• Activez uniquement les services requis sur l'ordinateur : Un nombre réduit de
services implique moins de ports ouverts et moins de vecteurs d'attaque.
• N'accordez l'accès au système d'exploitation et à la base de données qu'aux
utilisateurs qui en ont besoin : Un nombre réduit d'utilisateurs signifie moins de mots
de passe et de comptes. Le nombre de comptes ouverts ou obsolètes est ainsi limité.
Plus le nombre de comptes est faible, plus il est facile pour l'administrateur de les tenir à
jour.
• Limitez l'accès au compte root ou administrateur : Le compte administrateur doit être
soigneusement protégé et audité. Il ne doit en aucun cas être partagé.
• Limitez l'accès aux comptes SYSDBA et SYSOPER : Les utilisateurs ayant besoin
d'accéder à ces rôles doivent tous posséder leur propre compte et ces comptes doivent
faire l'objet d'un audit.
• Limitez l'accès des utilisateurs aux objets de base de données nécessaires à la
réalisation de leur travail : Les utilisateurs qui peuvent accéder à de nombreux objets et
services sans que cela soit nécessaire ont plus d'opportunités de commettre un acte
malveillant.
Oracle Database 11g : Administration Workshop I 11 - 9
Appliquer le principe du moindre privilège
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Protégez le dictionnaire de données :


O7_DICTIONARY_ACCESSIBILITY=FALSE
• Révoquez les privilèges non nécessaires dans PUBLIC.
• Limitez les répertoires accessibles par les utilisateurs.
• Limitez les utilisateurs dotés de privilèges
d'administration.

Oracle University and Catalyst Business Solutions use only


• Limitez l'authentification à distance auprès de la base
de données :
REMOTE_OS_AUTHENT=FALSE

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

Appliquer le principe du moindre privilège


Le principe du moindre privilège consiste à n'accorder à un utilisateur que les privilèges dont
il a réellement besoin pour effectuer une tâche de manière efficace. Cela réduit ses possibilités
d'afficher ou de modifier (involontairement ou par malveillance) des données qu'il n'est pas
autorisé à voir ou à modifier.
Protégez le dictionnaire de données : Le paramètre O7_DICTIONARY_ACCESSIBILITY
a par défaut la valeur FALSE. Vous ne devez pas autoriser sa modification sans une très
bonne raison car il empêche les utilisateurs dotés des privilèges système ANY TABLE
d'accéder aux tables de base du dictionnaire de données. Il garantit également que seul
l'utilisateur SYS peut se connecter en tant que SYSDBA.
Révoquez les privilèges non nécessaires dans PUBLIC : Plusieurs packages sont
extrêmement utiles pour les applications qui en ont besoin, mais ils nécessitent une
configuration appropriée pour être utilisés en toute sécurité. PUBLIC a le droit d'exécuter les
packages suivants : UTL_SMTP, UTL_TCP, UTL_HTTP et UTL_FILE. Dans Oracle
Database 11g, l'accès réseau est contrôlé par une liste de contrôle d'accès (ACL) qui peut être
configurée pour autoriser certains utilisateurs à accéder à des services réseau spécifiques.
Par défaut, l'accès réseau est refusé. Une liste de contrôle d'accès doit être créée pour
l'accorder. L'accès aux fichiers via UTL_FILE est contrôlé à deux niveaux : au niveau du
système d'exploitation, à l'aide de permissions sur les fichiers et les répertoires, et au niveau
de la base de données, à l'aide d'objets DIRECTORY qui permettent d'accéder à des
répertoires spécifiques du système de fichiers. Un accès en lecture ou en lecture/écriture peut
être accordé à un utilisateur pour un objet DIRECTORY particulier. Les privilèges d'exécution
sur les autres packages PL/SQL doivent être contrôlés avec soin.

Oracle Database 11g : Administration Workshop I 11 - 10


Appliquer le principe du moindre privilège (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les packages les plus puissants pouvant être utilisés à des fins malveillantes sont les suivants :
• UTL_SMTP : Permet d'envoyer des messages électroniques arbitraires en utilisant la base
de données en tant que serveur de messagerie SMTP (Simple Mail Transfer Protocol).
Utilisez la liste de contrôle d'accès (ACL) pour contrôler les ordinateurs accessibles par
les différents utilisateurs.
• UTL_TCP : Permet l'établissement par le serveur de base de données de connexions
réseau sortantes vers n'importe quel service réseau destinataire ou en attente. Par
conséquent, des données arbitraires peuvent être échangées entre le serveur de base de
données et n'importe quel service réseau en attente. Utilisez la liste ACL pour contrôler
l'accès.
• UTL_HTTP : Permet au serveur de base de données de demander et d'extraire des

Oracle University and Catalyst Business Solutions use only


données via HTTP. L'octroi de ce package à un utilisateur peut autoriser l'envoi de
données à un site Web malveillant par l'intermédiaire de panneaux HTML. Limitez
l'accès à l'aide de la liste ACL.
• UTL_FILE : Si ce package est configuré de manière incorrecte, il permet l'accès au
niveau texte à n'importe quel fichier du système d'exploitation. S'il est configuré
correctement, l'accès est limité à des répertoires spécifiques.
Limitez l'accès aux répertoires du système d'exploitation : L'objet DIRECTORY de la base
de données permet aux DBA d'établir une correspondance entre des répertoires et des chemins
de système d'exploitation, et d'accorder à des utilisateurs des privilèges sur ces répertoires.
Limitez les utilisateurs dotés de privilèges d'administration : N'accordez pas aux
utilisateurs de base de données plus de privilèges que nécessaire. Vous ne devez pas accorder
le rôle DBA aux utilisateurs qui ne sont pas administrateurs. Pour implémenter le principe du
moindre privilège, limitez les types de privilège suivants :
• Octroi des privilèges système et objet
• Connexions dotées de privilèges SYS sur la base de données, tels que SYSDBA et
SYSOPER
• Autres privilèges de type DBA, tels que DROP ANY TABLE
Limitez l'authentification à distance auprès de la base de données : Le paramètre
REMOTE_OS_AUTHENT a par défaut la valeur FALSE. Il ne doit pas être modifié sauf s'il est
certain que tous les clients assurent une authentification appropriée des utilisateurs. Avec
l'introduction de la banque de mots de passe externe sécurisée (fournie avec Oracle
Database 10g version 2), rares sont les bonnes raisons d'autoriser l'authentification par les
systèmes d'exploitation distants.
Dans le processus d'authentification à distance :
• L'utilisateur de base de données est authentifié en externe.
• Le système distant authentifie l'utilisateur.
• L'utilisateur se connecte à la base de données sans authentification complémentaire.

Oracle Database 11g : Administration Workshop I 11 - 11


Protéger les comptes dotés de privilèges
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Méthodes permettant de protéger les comptes dotés de


privilèges :
• Utiliser un fichier de mots de passe respectant la casse
• Activer l'authentification forte pour les rôles
d'administrateur
– Accorder les rôles d'administrateur dans Oracle Internet
Directory

Oracle University and Catalyst Business Solutions use only


– Utiliser des tickets Kerberos
– Utiliser des certificats avec SSL

SYSDBA

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

Protéger les comptes dotés de privilèges


Les utilisateurs dotés de privilèges SYSDBA, SYSOPER ou SYSASM doivent
systématiquement être authentifiés. Lorsqu'il se connecte localement, l'utilisateur est
authentifié par le système d'exploitation local en tant que membre d'un groupe doté de
privilèges. S'il se connecte à distance, un fichier de mots de passe est utilisé pour authentifier
les utilisateurs dotés de privilèges. Si le fichier de mots de passe est configuré, il est vérifié en
premier lieu. Dans Oracle Database 11g, ces mots de passe respectent la casse. Oracle
Database 11g fournit d'autres méthodes qui rendent l'authentification des administrateurs à
distance plus sûre et qui centralisent l'administration de ces utilisateurs dotés de privilèges.
Quand une base de données est créée à l'aide de Database Configuration Assistant (DBCA), le
fichier de mots de passe respecte la casse. Si vous effectuez une mise à niveau depuis des
versions antérieures de la base de données, n'oubliez pas de configurer cette caractéristique
pour les connexions à distance :
orapwd file=orapworcl entries=5 ignorecase=N
Si vous pensez que le fichier de mots de passe risque d'être vulnérable ou que la maintenance
de plusieurs fichiers de mots de passe est une charge trop lourde, vous pouvez implémenter
une méthode d'authentification forte :
• Accorder les rôles OSDBA ou OSOPER dans Oracle Internet Directory
• Utiliser des tickets Kerberos
• Utiliser des certificats avec SSL
L'option Oracle Advanced Security (ASO) est obligatoire si vous voulez utiliser une
authentification forte. Pour plus d'informations sur l'authentification forte, reportez-vous au
manuel Oracle Database Advanced Security Administrator's Guide.

Oracle Database 11g : Administration Workshop I 11 - 12


Surveiller la conformité aux règles de sécurité
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

La surveillance ou l'audit doit faire partie intégrante des


procédures de sécurité.
Déterminez les types d'audit appropriés parmi les
suivants :
• Audit obligatoire

Oracle University and Catalyst Business Solutions use only


• Audit de base de données standard
• Audit basé sur les données
• Audit détaillé (FGA)
• Audit de DBA

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

Surveiller la conformité aux règles de sécurité


L'audit consiste à capturer et à stocker les informations relatives à ce qui se passe dans le
système. Cette opération accroît la quantité de travail que le système doit réaliser. Elle doit
donc être ciblée de telle sorte que seuls les événements présentant un intérêt soient capturés.
Un audit correctement ciblé présente un impact minimal sur les performances du système.
En revanche, un audit ciblé de manière incorrecte peut affecter les performances de manière
significative.
• Audit obligatoire : Toutes les bases de données Oracle auditent certaines actions
indépendamment des options ou paramètres d'audit. En effet, la base doit enregistrer
certaines activités telles que les connexions d'utilisateurs dotés de privilèges.
• Audit de base de données standard : Ce type d'audit est activé au niveau du système à
l'aide du paramètre d'initialisation AUDIT_TRAIL. Après avoir activé l'audit,
sélectionnez les objets et les privilèges à auditer et définissez les propriétés d'audit à
l'aide de la commande AUDIT.
• Audit basé sur les données : Extension de l'audit de base de données standard qui
capture non seulement la survenue de l'événement audité, mais également les valeurs
insérées, mises à jour ou supprimées. L'audit basé sur les données est implémenté par
l'intermédiaire de déclencheurs (triggers) de base de données.
• Audit détaillé (FGA - fine-grained auditing) : Extension de l'audit de base de données
standard qui capture l'instruction SQL exécutée, et pas uniquement le fait que
l'événement s'est produit.
• Audit de DBA : Répartit les tâches d'audit entre le DBA et un auditeur ou administrateur
de sécurité qui surveille les activités du DBA via une trace d'audit au niveau du système
d'exploitation.
Oracle Database 11g : Administration Workshop I 11 - 13
Audit de base de données standard
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

1 Activer
l'audit de Fichier de
DBA base de données Utilisateur
paramètres
Exécute une
2 Définir les options d'audit commande

Base de données
Processus
serveur

Oracle University and Catalyst Business Solutions use only


Options
Générer la
d'audit
trace d'audit
3 Examiner les
informations d'audit
Trace
d'audit Trace d'audit du
4 Gérer la syst. d'expl. ou
trace d'audit XML

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

Audit de base de données standard


Une fois que vous avez activé l'audit de la base de données et indiqué les options d'audit
(événements de connexion, utilisation de privilèges système et de privilèges objet, utilisation
d'instructions SQL), la base commence à collecter les informations d'audit.
Si le paramètre AUDIT_TRAIL a la valeur OS, les enregistrements d'audit sont stockés dans
le système d'audit du système d'exploitation. Dans un environnement Windows, il s'agit du
journal des événements. Dans un environnement UNIX ou Linux, les enregistrements d'audit
sont stockés dans un fichier indiqué par le paramètre AUDIT_FILE_DEST.
Si le paramètre AUDIT_TRAIL a la valeur DB, vous pouvez consulter les enregistrements
d'audit dans la vue DBA_AUDIT_TRAIL faisant partie du schéma SYS.
Si le paramètre AUDIT_TRAIL a la valeur XML ou XML,EXTENDED, les enregistrements
d'audit sont écrits dans des fichiers XML, dans le répertoire désigné par le paramètre
AUDIT_FILE_DEST. Vous pouvez consulter tous les fichiers XML de ce répertoire dans la
vue V$XML_AUDIT_TRAIL.
La maintenance de la trace d'audit est une tâche administrative importante. Selon le ciblage
des options d'audit, la taille de la trace d'audit peut augmenter très rapidement. En l'absence
d'une maintenance appropriée, la trace d'audit peut créer un tel nombre d'enregistrements
qu'elle affecte les performances du système. La surcharge est directement liée à la quantité
d'enregistrements d'audit.

Oracle Database 11g : Administration Workshop I 11 - 14


Activer l'audit
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


ALTER SYSTEM SET audit_trail="XML" SCOPE=SPFILE;

Redémarrez la base de données après la modification


d'un paramètre d'initialisation statique.

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

Activer l'audit
Vous devez activer l'audit de la base de données pour que la configuration d'audit produise
des enregistrements.

Oracle Database 11g : Administration Workshop I 11 - 15


Traces d'audit uniformes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Utilisez AUDIT_TRAIL pour activer l'audit de base


de données.
STATEMENTID,
AUDIT_TRAIL=DB,EXTENDED
ENTRYID

DBA_AUDIT_TRAIL DBA_FGA_AUDIT_TRAIL

Oracle University and Catalyst Business Solutions use only


EXTENDED_TIMESTAMP,
PROXY_SESSIONID, GLOBAL_UID,
INSTANCE_NUMBER, OS_PROCESS, TRANSACTIONID,
SCN, SQL_BIND, SQL_TEXT

DBA_COMMON_AUDIT_TRAIL

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

Traces d'audit uniformes


Pour utiliser l'audit de base de données, vous devez d'abord définir le paramètre statique
AUDIT_TRAIL afin qu'il pointe vers l'emplacement de stockage des enregistrements d'audit.
L'audit de base de données est ainsi activé.
La base de données Oracle effectue le suivi des mêmes champs pour l'audit standard et l'audit
détaillé, ce qui facilite l'analyse des activités de base de données. Pour cela, la trace d'audit
standard et la trace d'audit détaillé ont des attributs complémentaires.
Les informations supplémentaires collectées par l'audit standard sont les suivantes :
• Le numéro SCN (System Change Number) associé à chaque modification apportée au
système.
• Le texte exact de l'instruction SQL exécutée par l'utilisateur et les variables attachées
(bind variables) associées. Ces colonnes apparaissent uniquement si vous avez indiqué
AUDIT_TRAIL=DB_EXTENDED dans votre fichier de paramètres d'initialisation.
Les informations supplémentaires collectées par l'audit détaillé sont les suivantes :
• Un numéro de série pour chaque enregistrement d'audit.
• Un numéro d'instruction qui lie plusieurs entrées d'audit provenant d'une instruction
unique.
Les attributs communs sont les suivants :
• Un horodatage global au format UTC (temps universel coordonné). Ce champ est utile
pour la surveillance de serveurs situés à des emplacements géographiques distincts dans
des fuseaux horaires différents.
• Un numéro d'instance unique pour chaque instance RAC (Real Application Clusters).
• Un identificateur de transaction qui vous aide à regrouper les enregistrements d'audit
correspondant à une même transaction.
La vue DBA_COMMON_AUDIT_TRAIL combine des enregistrements de l'audit standard et de
l'audit détaillé.
Oracle Database 11g : Administration Workshop I 11 - 16
Définir les options d'audit
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Audit des instructions SQL :


AUDIT table;

• Audit des privilèges système (non ciblé et ciblé) :

AUDIT select any table, create any trigger;

Oracle University and Catalyst Business Solutions use only


AUDIT select any table BY hr BY SESSION;

• Audit des privilèges objet (non ciblé et ciblé) :


AUDIT ALL on hr.employees;
AUDIT UPDATE,DELETE on hr.employees BY ACCESS;

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

Définir les options d'audit


Audit des instructions SQL : L'instruction de la diapositive ci-dessus audite toute instruction
LDD (langage de définition de données) qui affecte une table, notamment CREATE TABLE,
DROP TABLE, TRUNCATE TABLE, etc. L'audit peut être ciblé en fonction d'un nom
utilisateur, ou en fonction de la réussite ou de l'échec de l'instruction :
SQL> AUDIT TABLE BY hr WHENEVER NOT SUCCESSFUL;
Audit des privilèges système : Il peut être utilisé pour auditer l'utilisation de n'importe quel
privilège système (tel que DROP ANY TABLE). Il peut être ciblé en fonction d'un nom
utilisateur, ou en fonction de la réussite ou de l'échec de l'opération. Par défaut, l'audit est de
type BY ACCESS. Chaque fois qu'un privilège système audité est utilisé, un enregistrement
d'audit est généré. Vous pouvez choisir de regrouper les enregistrements avec la clause BY
SESSION de sorte qu'un seul enregistrement soit généré par session. (De cette façon, si un
utilisateur met à jour 100 000 enregistrements dans une table appartenant à un autre
utilisateur, un seul enregistrement d'audit est collecté.) Envisagez l'utilisation de la clause BY
SESSION pour limiter l'impact de l'audit des privilèges système sur le stockage et les
performances.
Audit des privilèges objet : Peut être utilisé pour auditer les actions sur les tables, les vues,
les procédures, les séquences, les répertoires et les types de données définis par l'utilisateur.
Ce type d'audit peut être ciblé en fonction de la réussite ou de l'échec de l'opération. Les
enregistrements peuvent être générés par session ou par accès. Par défaut, ils sont regroupés
par session, contrairement à ce qui se passe avec l'audit des privilèges système. Vous devez
indiquer explicitement BY ACCESS si vous souhaitez un enregistrement d'audit distinct pour
chaque action.

Oracle Database 11g : Administration Workshop I 11 - 17


Page Audit Settings d'Enterprise Manager
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Page Audit Settings d'Enterprise Manager


Vous pouvez accéder à la page Audit Settings à partir de la page d'accueil de Database
Control, en cliquant sur l'onglet Server, puis sur le lien Audit Settings dans la région Security.
La page Audit Settings contient les régions suivantes :
• Configuration : Affiche les valeurs en cours des paramètres de configuration et contient
des liens permettant de modifier ces valeurs.
• Audit Trails : Permet d'accéder facilement aux informations d'audit collectées.
Utilisez les onglets suivants pour définir ou annuler les options d'audit :
• Audited Privileges : Affiche les privilèges audités.
• Audited Objects : Affiche les objets audités.
• Audited Statements : Affiche les instructions auditées.

Oracle Database 11g : Administration Workshop I 11 - 18


Utiliser et gérer les informations d'audit
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Désactivez les options d'audit si vous ne les utilisez pas.

Oracle University and Catalyst Business Solutions use only


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

Utiliser et gérer les informations d'audit


Recommandation
L'impact de l'activité d'audit sur les performances est proportionnel au nombre d'opérations
d'écriture dans la trace d'audit. Pour adapter les options d'audit aux besoins de votre site,
activez uniquement les options qui sont nécessaires pour appliquer la stratégie de sécurité que
vous avez choisie. Ciblez l'audit pour réduire le nombre d'entrées dans la trace d'audit.

Oracle Database 11g : Administration Workshop I 11 - 19


Audit basé sur les données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Un utilisateur Le déclencheur Un enregistrement


effectue une s'exécute. d'audit est
modification. créé par le déclencheur.

Oracle University and Catalyst Business Solutions use only


La modification Un enregistrement d'audit
de l'utilisateur est inséré dans une table
est effectuée. de trace d'audit.

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

Audit basé sur les données


L'audit de base de données enregistre le fait que des opérations d'insertion, de mise à jour ou
de suppression ont été effectuées dans les objets audités, mais il ne capture pas les valeurs qui
ont changé. L'audit basé sur les données étend cette fonction en utilisant des déclencheurs
(triggers) de base de données (structures PL/SQL basées sur les événements) pour capturer les
valeurs modifiées.
Lorsqu'un utilisateur insère, met à jour ou supprime des données dans une table à laquelle le
déclencheur approprié est associé, le déclencheur s'exécute en arrière-plan afin de copier les
informations d'audit dans la table destinée au stockage des informations d'audit. L'audit basé
sur les données a généralement un impact plus important que l'audit de base de données
standard sur les performances, car le code du déclencheur d'audit doit être exécuté chaque fois
que l'opération d'insertion, de mise à jour ou de suppression a lieu. Le degré de dégradation
dépend de l'efficacité du code du déclencheur. L'audit basé sur les données ne doit être utilisé
que lorsque les informations capturées par l'audit standard sont insuffisantes.
Il est implémenté par l'utilisateur ou par un code tiers. La base de données Oracle fournit les
structures PL/SQL permettant de créer de tels systèmes d'audit.

Oracle Database 11g : Administration Workshop I 11 - 20


Audit basé sur les données (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

L'élément clé de l'audit basé sur les données est le déclencheur d'audit. Il s'agit simplement
d'un déclencheur (trigger) PL/SQL conçu pour capturer des informations d'audit.
Exemple de déclencheur d'audit :
CREATE OR REPLACE TRIGGER system.hrsalary_audit
AFTER UPDATE OF salary
ON hr.employees
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :old.salary != :new.salary THEN
INSERT INTO system.audit_employees

Oracle University and Catalyst Business Solutions use only


VALUES (sys_context('userenv','os_user'), sysdate,
sys_context('userenv','ip_address'),
:new.employee_id ||
' salary changed from '||:old.salary||
' to '||:new.salary);
END IF;
END;
/
Ce déclencheur cible l'audit sur la capture des modifications apportées à la colonne salary
de la table hr.employees. Lorsqu'une ligne est mise à jour, le déclencheur examine la
colonne salary. Si l'ancien salaire est différent du nouveau, le déclencheur insère un
enregistrement d'audit dans la table audit_employees (laquelle est créée via une
opération distincte dans le schéma SYSTEM). L'enregistrement d'audit inclut le nom
utilisateur, l'adresse IP de l'ordinateur à partir duquel la modification a été effectuée, la clé
primaire identifiant l'enregistrement qui a changé, et les valeurs de salaire qui ont changé.
Les déclencheurs de base de données peuvent également être utilisés pour capturer des
informations sur les connexions utilisateur, au cas où l'audit de base de données standard ne
collecterait pas suffisamment de données. Avec des déclencheurs de connexion (login
triggers), l'administrateur peut capturer des données identifiant l'utilisateur qui se connecte à
la base de données. Exemples :
• Adresse IP de la personne qui se connecte
• 48 premiers caractères du nom du programme utilisé pour la connexion à l'instance
• Nom du terminal utilisé pour la connexion à l'instance
Pour obtenir la liste complète des paramètres utilisateur, reportez-vous à la section intitulée
"SYS_CONTEXT" du manuel Oracle Database SQL Reference.
Les déclencheurs basés sur les données ont été supplantés dans de nombreux cas par la
fonctionnalité d'audit détaillé (FGA).

Oracle Database 11g : Administration Workshop I 11 - 21


Audit détaillé
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Surveille l'accès aux données en fonction du contenu


• Audite SELECT, INSERT, UPDATE, DELETE et MERGE
• Peut être lié à une ou plusieurs colonnes d'une table
ou d'une vue
• Peut exécuter une procédure
• Est administré via le package DBMS_FGA

Oracle University and Catalyst Business Solutions use only


Stratégie :
AUDIT_EMPS_SALARY
SELECT name, salary
FROM employees
WHERE
department_id = 10; employees

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

Audit détaillé
L'audit de base de données enregistre le fait qu'une opération a eu lieu, mais ne capture pas
d'informations sur l'instruction ayant provoqué cette opération. L'audit détaillé (FGA - fine-
grained auditing) étend cette fonctionnalité en permettant de capturer les instructions SQL qui
interrogent ou manipulent les données.
Il permet également un ciblage plus précis que l'audit standard ou l'audit basé sur les données.
Les options d'audit détaillé peuvent être ciblées par colonnes individuelles d'une table ou
d'une vue et peuvent même être conditionnelles, de sorte que les informations d'audit ne
soient capturées que si certaines conditions définies par l'administrateur sont réunies.
Une stratégie d'audit détaillé peut être associée à plusieurs colonnes d'intérêt. Par défaut, si
l'une de ces colonnes est présente dans l'instruction SQL, elle est auditée. Deux packages,
DBMS_FGA.ALL_COLUMNS et DBMS_FGA.ANY_COLUMNS, permettent de baser l'audit
sur l'utilisation de toutes les colonnes d'intérêt dans l'instruction ou sur l'utilisation de l'une
quelconque d'entre elles.
Utilisez le package PL/SQL DBMS_FGA pour créer une stratégie d'audit sur la table ou sur la
vue cible. Si certaines des lignes renvoyées par un bloc d'interrogation correspondent à la
colonne auditée et satisfont à la condition d'audit indiquée, un événement d'audit entraîne la
création d'un enregistrement d'audit et son stockage dans la trace d'audit. L'événement d'audit
peut éventuellement exécuter une procédure. L'audit détaillé cible automatiquement le niveau
instruction. Une instruction SELECT qui renvoie des milliers de lignes génère donc un seul
enregistrement d'audit.

Oracle Database 11g : Administration Workshop I 11 - 22


Stratégie d'audit détaillé
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

dbms_fga.add_policy (
object_schema => 'HR',
object_name => 'EMPLOYEES',
• Définit : policy_name => 'audit_emps_salary',
– les critères d'audit audit_condition=> 'department_id=10',
audit_column => 'SALARY',
– l'action d'audit handler_schema => 'secure',
• Est créée via handler_module => 'log_emps_salary',
enable => TRUE,
DBMS_FGA.ADD_POLICY statement_types => 'SELECT,UPDATE');

Oracle University and Catalyst Business Solutions use only


SELECT name, job_id
FROM employees;

SELECT name, salary


FROM employees SECURE.LOG_EM
WHERE PS_SALARY
department_id = 10; employees

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

Stratégie d'audit détaillé


L'exemple présenté sur la diapositive crée une stratégie d'audit détaillé à l'aide de la procédure
DBMS_FGA.ADD_POLICY qui accepte les arguments suivants.
Nom de la stratégie
Vous affectez un nom à chaque stratégie d'audit détaillé lors de sa création. L'exemple de la
diapositive nomme la stratégie AUDIT_EMPS_SALARY, à l'aide de l'argument suivant :
policy_name => 'audit_emps_salary'
Condition d'audit
La condition d'audit est un prédicat SQL qui définit à quel moment l'événement d'audit doit
être déclenché. Dans l'exemple de la diapositive, toutes les lignes du département 10 sont
auditées à l'aide de l'argument de condition suivant :
audit_condition => 'department_id = 10'

Oracle Database 11g : Administration Workshop I 11 - 23


Stratégie d'audit détaillé (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Colonne d'audit
La colonne d'audit définit les données auditées. Un événement d'audit se produit si cette
colonne est incluse dans l'instruction SELECT ou si la condition d'audit autorise la sélection.
L'exemple de la diapositive audite deux colonnes, à l'aide de l'argument suivant :
audit_column => 'SALARY,COMMISION_PCT'
Cet argument est facultatif. S'il n'est pas indiqué, seul l'argument AUDIT_CONDITION
détermine si un événement d'audit doit se produire.
Objet
L'objet est la table ou la vue auditée. Il est transmis sous la forme de deux arguments :
• Le schéma contenant l'objet

Oracle University and Catalyst Business Solutions use only


• Le nom de l'objet
L'exemple de la diapositive audite la table hr.employees, à l'aide des arguments suivants :
object_schema => 'hr'
object_name => 'employees'
Gestionnaire
Un gestionnaire d'événements (facultatif) est une procédure PL/SQL qui définit les actions
supplémentaires qui doivent être effectuées au cours de l'audit. Par exemple, le gestionnaire
d'événements peut envoyer une page d'alerte à l'administrateur. S'il n'est pas défini, une entrée
d'événement d'audit est insérée dans la trace d'audit. Si un gestionnaire d'événements d'audit
est défini, l'entrée d'audit est insérée dans la trace d'audit et le gestionnaire d'événements
d'audit est exécuté.
L'entrée d'événement d'audit inclut la stratégie d'audit détaillé ayant provoqué l'événement,
l'utilisateur qui exécute l'instruction SQL, ainsi que l'instruction SQL et ses variables
attachées (bind variables).
Le gestionnaire d'événements est transmis sous la forme de deux arguments :
• Le schéma contenant l'unité de programme PL/SQL
• Le nom de l'unité de programme PL/SQL
L'exemple de la diapositive exécute la procédure SECURE.LOG_EMPS_SALARY, à l'aide
des arguments suivants :
handler_schema => 'secure'
handler_module => 'log_emps_salary'
Par défaut, la trace d'audit écrit toujours le texte SQL et les informations d'attachement SQL
dans des objets LOB. Il est possible de modifier ce comportement par défaut (par exemple en
cas de risque d'une dégradation des performances du système).
Statut
Le statut indique si la stratégie d'audit détaillé est activée ou non. Dans l'exemple de la
diapositive, l'argument suivant active la stratégie :
enable => TRUE

Oracle Database 11g : Administration Workshop I 11 - 24


Instruction LMD auditée : Eléments
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

à prendre en compte
• Les enregistrements sont audités si le prédicat d'audit
détaillé est satisfait et que les colonnes d'intérêt sont
référencées.
• Les instructions DELETE sont auditées quelles que
soient les colonnes indiquées.
• Les instructions MERGE sont auditées avec les
instructions INSERT ou UPDATE sous-jacentes

Oracle University and Catalyst Business Solutions use only


générées.
UPDATE hr.employees
SET salary = 1000
WHERE commission_pct = .2;

UPDATE hr.employees
SET salary = 1000
WHERE employee_id = 200;

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

Instruction LMD auditée : Eléments à prendre en compte


Lorsqu'une stratégie d'audit détaillé est définie pour des instructions LMD, une instruction
LMD est auditée si les lignes de données (nouvelles et anciennes) manipulées satisfont aux
critères du prédicat de la stratégie.
Toutefois, dans le cas où les colonnes d'intérêt sont également indiquées dans la définition de
la stratégie, l'instruction est auditée si les données satisfont au prédicat de la stratégie d'audit
détaillé et que l'instruction référence les colonnes d'intérêt définies.
Pour les instructions DELETE, il est inutile d'indiquer les colonnes d'intérêt lors de la
définition de la stratégie car les instructions de ce type touchent l'ensemble des colonnes d'une
table. Par conséquent, une instruction DELETE est toujours auditée, quelles que soient les
colonnes d'intérêt.
Les instructions MERGE sont prises en charge par l'audit détaillé. Les instructions INSERT et
UPDATE sous-jacentes sont auditées si elles satisfont aux stratégies d'audit détaillé INSERT
et UPDATE définies.
Avec la stratégie d'audit détaillé précédemment définie, la première instruction n'est pas
auditée alors que la seconde l'est. En effet, aucun des employés du département 10 ne reçoit
de commission, alors que l'identificateur employee_id=200 désigne un employé du
département 10.

Oracle Database 11g : Administration Workshop I 11 - 25


Règles relatives à l'audit détaillé
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Pour auditer toutes les lignes, utilisez une condition


d'audit null.
• Pour auditer toutes les instructions, utilisez une colonne
d'audit null.
• Les noms des stratégies doivent être uniques.
• La table ou la vue auditée doit déjà exister lorsque
vous créez la stratégie.

Oracle University and Catalyst Business Solutions use only


• Si la syntaxe de la condition d'audit n'est pas valide,
une erreur ORA-28112 est générée lors de l'accès
à l'objet audité.
• Si la colonne auditée n'existe pas dans la table,
aucune ligne n'est auditée.
• Si le gestionnaire d'événements n'existe pas, aucune
erreur n'est renvoyée et l'enregistrement d'audit est
quand même créé.

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

Règles relatives à l'audit détaillé


Pour les instructions SELECT, l'audit détaillé capture l'instruction, pas les lignes réelles.
Toutefois, lorsque l'audit détaillé est combiné à Flashback Query, les lignes peuvent être
regénérées telles qu'elles étaient à ce point dans le temps.
Pour plus d'informations sur Flashback Query, reportez-vous au chapitre intitulé "Procéder à
un flashback de la base de données".
Pour plus d'informations sur le package DBMS_FGA, reportez-vous au manuel Oracle
Database PL/SQL Packages and Types Reference.

Oracle Database 11g : Administration Workshop I 11 - 26


Audit de DBA
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les utilisateurs dotés des privilèges SYSDBA ou SYSOPER


peuvent se connecter lorsque la base de données est
fermée.
• La trace d'audit doit être stockée à l'extérieur
de la base de données.
• Les connexions en tant que SYSDBA ou SYSOPER

Oracle University and Catalyst Business Solutions use only


sont toujours auditées.
• Vous pouvez activer l'audit complémentaire
des actions SYSDBA ou SYSOPER avec
audit_sys_operations.
• Vous pouvez contrôler la trace
d'audit avec audit_file_dest.

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

Audit de DBA
Les utilisateurs SYSDBA et SYSOPER possèdent les privilèges permettant de démarrer et
d'arrêter la base de données. Etant donné qu'ils peuvent apporter des modifications pendant
que la base de données est fermée, la trace d'audit de ces privilèges doit être stockée à
l'extérieur de la base de données. La base Oracle capture automatiquement les événements de
connexion générés par les utilisateurs SYSDBA et SYSOPER. Il s'agit d'une méthode
intéressante de suivi des actions SYSDBA et SYSOPER autorisées et non autorisées, mais elle
n'est utile que si la trace d'audit du système d'exploitation est examinée.
La base de données Oracle capture toujours les événements de connexion générés par les
utilisateurs dotés de privilèges. Les autres actions sont capturées si l'audit de DBA est activé
explicitement. Activez l'audit des utilisateurs SYSDBA et SYSOPER en définissant le
paramètre d'initialisation :
audit_sys_operations=TRUE (La valeur par défaut est FALSE.)
Si les opérations SYS sont auditées, le paramètre d'initialisation audit_file_dest
détermine le lieu de stockage des enregistrements d'audit. Sur une plate-forme Windows, la
trace d'audit est enregistrée par défaut dans le journal des événements. Sur les plates-formes
UNIX et Linux, les enregistrements d'audit sont stockés dans
$ORACLE_HOME/rdbms/audit.

Oracle Database 11g : Administration Workshop I 11 - 27


Gérer la trace d'audit
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Gérez la trace d'audit en tenant compte des


recommandations suivantes :
• Recherchez les enregistrements anciens et stockez-les.
• Evitez les problèmes de stockage.
• Evitez la perte d'enregistrements.

Oracle University and Catalyst Business Solutions use only


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

Gérer la trace d'audit


Il est nécessaire d'assurer la maintenance de chaque type de trace d'audit. La gestion de base
consiste à examiner les enregistrements d'audit, et à supprimer les enregistrements les plus
anciens de la base de données ou du système d'exploitation. Les traces d'audit peuvent croître
jusqu'à occuper tout l'espace de stockage disponible. Si le système de fichiers est plein, une
panne ou des problèmes de performances peuvent se produire. Si la trace d'audit de base de
données occupe tout le tablespace, les actions auditées ne s'exécutent pas. Si la trace d'audit
occupe tout le tablespace SYSTEM, les performances des autres opérations sont affectées et
les opérations d'audit sont interrompues.
La trace d'audit standard est stockée dans la table AUD$. La trace d'audit détaillé est stockée
dans la table FGA_LOG$. Par défaut, ces deux tables sont créées dans le tablespace SYSTEM.
Vous pouvez les déplacer vers un autre tablespace à l'aide des utilitaires d'export et d'import
de Data Pump.
Remarque : Le déplacement des tables d'audit hors du tablespace SYSTEM n'est pas pris en
charge.
Le processus de suppression d'enregistrements des tables d'audit risque d'entraîner la perte
d'enregistrements d'audit.
Recommandation
Procédez à un export basé sur un horodatage, puis supprimez des lignes de la trace d'audit sur
la base du même horodatage.

Oracle Database 11g : Administration Workshop I 11 - 28


Mises à jour de sécurité
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Oracle publie les informations relatives aux mises à


jour critiques de la sécurité sur le site Web
Oracle Technology Network, à l'adresse suivante :
http://www.oracle.com/technology/deploy/
security/alerts.htm
• Les administrateurs et développeurs Oracle peuvent

Oracle University and Catalyst Business Solutions use only


également souscrire à la notification électronique des
mises à jour de sécurité à partir de ce site OTN.

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

Mises à jour de sécurité


Les mises à jour de sécurité critiques (CPU - Critical Patch Updates) fournissent une
évaluation du risque et du degré d'exposition en fonction de la vulnérabilité. Elles indiquent
également le niveau de gravité. Les CPU contribuent à réduire les risques de sécurité et vous
pouvez gérer les patches à l'aide d'Oracle Enterprise Manager. Oracle Corporation indique
dans les CPU la personne ou l'organisation qui l'a informé de la vulnérabilité.
Les informations relatives aux CPU sont publiées sur le site Oracle Technology Network et
sur Oracle MetaLink. Elles peuvent être consultées librement, mais seuls les clients disposant
d'un numéro CSI (Customer Support Identification) peuvent télécharger les patches.
Oracle apprécie votre coopération concernant la sécurité de ses produits et permet une
notification rapide, complète et confidentielle des vulnérabilités potentielles. Si vous
découvrez une faille de sécurité concernant un produit Oracle, merci d'en informer Oracle en
soumettant une "Service Request" (SR) via MetaLink ou en envoyant un message
électronique à l'adresse [email protected].

Oracle Database 11g : Administration Workshop I 11 - 29


Appliquer des patches de sécurité
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Employez le processus Critical Patch Update.


• Appliquez l'ensemble des patches de sécurité et des
solutions de contournement.
• Contactez l'équipe des produits de sécurité Oracle.

Oracle University and Catalyst Business Solutions use only


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

Appliquer des patches de sécurité


Processus Critical Patch Update (CPU)
En janvier 2005, Oracle a lancé le processus Critical Patch Update (CPU). Il s'agit d'un
regroupement de patches critiques distribué avec une périodicité trimestrielle. (Ce programme
remplace les éditions de patches Security Alert.) Ces patches cumulatifs incluent les patches
fréquemment demandés et les patches prérequis nécessaires. L'édition trimestrielle de patches
est accompagnée d'une matrice d'évaluation des risques qui vous permet de déterminer
l'impact de ces patches pour votre site et les risques liés à la sécurité. (Voir la note MetaLink
360470.1 "Security Alerts and Critical Patch Updates–Frequently Asked Questions".)
Pour recevoir ces mises à jour, vous de devez vous abonner à MetaLink.
Appliquez l'ensemble des patches de sécurité et des solutions de contournement
Appliquez toujours l'ensemble des patches de sécurité pertinents à jour pour le système
d'exploitation sur lequel réside la base de données et pour les logiciels Oracle, ainsi que pour
l'ensemble des options et composants installés.
Contactez l'équipe des produits de sécurité Oracle
Si vous pensez avoir détecté une faille de sécurité dans un logiciel Oracle, suivez les
instructions fournies par le lien Reporting Security Vulnerabilities à l'URL suivante :
http://www.oracle.com/technology/deploy/security/alerts.htm

Oracle Database 11g : Administration Workshop I 11 - 30


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• décrire les responsabilités du DBA en matière de
sécurité
• appliquer le principe du moindre privilège
• activer l'audit de base de données standard
• définir les options d'audit

Oracle University and Catalyst Business Solutions use only


• examiner les informations d'audit
• gérer la trace d'audit

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

Oracle Database 11g : Administration Workshop I 11 - 31


Exercice 11 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Implémenter la sécurité de la base


de données Oracle
Dans cet exercice, vous allez :
• activer l'audit de base de données standard
• définir des options d'audit pour la table HR.JOBS
• mettre à jour la table
• examiner les informations d'audit

Oracle University and Catalyst Business Solutions use only


• gérer la trace d'audit

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

Oracle Database 11g : Administration Workshop I 11 - 32


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Maintenance de la base de données

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• gérer les statistiques destinées à l'optimiseur
• gérer le référentiel AWR (Automatic Workload
Repository)
• utiliser le moniteur ADDM (Automatic Database
Diagnostic Monitor)

Oracle University and Catalyst Business Solutions use only


• utiliser les fonctions de conseil et les vérificateurs
• définir des seuils d'alerte
• utiliser des alertes générées par le serveur
• utiliser des tâches automatisées

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

Oracle Database 11g : Administration Workshop I 12 - 2


Maintenance de la base de données
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Automatique Tâches Proactive Réactive


automatisées

Infrastructure Alertes Erreurs


de conseil serveur critiques

Oracle University and Catalyst Business Solutions use only


Référentiel Référentiel
AWR ADR

Efficace

Data warehouse Collecte automatique Accès direct à


de la base de données des statistiques importantes la mémoire

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

Maintenance de la base de données


La maintenance proactive est facilitée par l'infrastructure sophistiquée de la base de données
Oracle, notamment par les éléments suivants :
• AWR (Automatic Workload Repository) est un référentiel intégré dans chaque base de
données Oracle.
A intervalles réguliers, la base Oracle prend un cliché (snapshot) de l'ensemble des
statistiques essentielles et des informations relatives à la charge globale, et stocke ces
données dans le référentiel AWR. Les données capturées peuvent faire l'objet d'une
analyse, par vous-même et/ou par la base de données.
• Les tâches automatisées permettent à la base d'effectuer des opérations de maintenance
de routine telles que les sauvegardes régulières, l'actualisation des statistiques destinées à
l'optimiseur et les vérifications de l'état de la base.
La maintenance réactive de la base de données traite les erreurs et conditions critiques
détectées par les vérificateurs d'intégrité de la base de données :
• Pour les problèmes ne pouvant pas être résolus automatiquement et nécessitant une
notification aux administrateurs (par exemple un manque d'espace), la base de données
Oracle fournit des alertes générées par le serveur. La base Oracle se surveille elle-même
par défaut et envoie des alertes pour vous informer des problèmes. Les alertes fournissent
souvent des recommandations sur la manière de résoudre le problème signalé.
• Ces recommandations sont générées par différentes fonctions de conseil (advisors)
chargées chacune d'un sous-système (la mémoire, les segments ou les instructions SQL,
par exemple).

Oracle Database 11g : Administration Workshop I 12 - 3


Terminologie
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Référentiel AWR (Automatic Workload Repository) :


Infrastructure utilisée pour la collecte et l'analyse de
données, et pour la génération de recommandations
• Ligne de base (baseline) : Ensemble de clichés AWR
servant de référence pour la comparaison des
performances
• Mesure de performances : Taux de variation d'une
statistique cumulée

Oracle University and Catalyst Business Solutions use only


• Statistiques : Ensembles de données utilisés pour le
contrôle des performances ou l'optimisation du code
SQL
• Seuil : Valeur limite à laquelle
sont comparées les mesures
de performances

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

Terminologie
Le référentiel AWR (Automatic Workload Repository) fournit aux composants internes du
serveur Oracle des services de collecte, de traitement, de maintenance et d'utilisation de
statistiques de performances pour la détection des problèmes et le réglage automatique
(self-tuning). L'historique des sessions actives (ASH- Active Session History), stocké dans le
référentiel AWR, répertorie les activités des sessions récentes.
Les statistiques sont des ensembles de données qui fournissent davantage de détails sur la
base de données et ses objets. Les statistiques destinées à l'optimiseur sont utilisées par ce
dernier pour choisir le meilleur plan d'exécution pour chaque instruction SQL. Les statistiques
de la base de données fournissent des informations pour le contrôle des performances.
Les clichés (snapshots) AWR contiennent des statistiques et des mesures relatives à la base de
données, des statistiques sur les applications (volumes de transactions, temps de réponse), des
statistiques sur le système d'exploitation et d'autres indicateurs. Une ligne de base (baseline)
est un ensemble de clichés AWR collectés pendant une certaine période. La ligne de base est
utilisée pour comparer les performances : comparaison des performances actuelles par rapport
à la ligne de base ou comparaison entre lignes de base.
Par défaut, les données de la ligne de base de la fenêtre d'analyse glissante du système
(System Moving Window Baseline) sont collectées dans Oracle Database 11g. Cette ligne est
un jeu de clichés (snapshots) évolutif qui inclut par défaut les clichés des huit derniers jours.
Elle devient valide quand les données collectées sont suffisantes et que les calculs de
statistiques ont été effectués. Par défaut, les calculs de statistiques ont lieu tous les samedis à
minuit.

Oracle Database 11g : Administration Workshop I 12 - 4


Présentation de l'optimiseur Oracle
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

L'optimiseur Oracle détermine le plan d'exécution


le plus efficace et constitue l'étape la plus importante
dans le traitement de toute instruction SQL.
Il effectue les tâches suivantes :
• Evaluer les expressions et les conditions
• Utiliser les statistiques relatives aux objets

Oracle University and Catalyst Business Solutions use only


et au système
• Déterminer la manière d'accéder aux données
• Déterminer la manière de joindre les tables
• Déterminer l'itinéraire le plus efficace

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

Présentation de l'optimiseur Oracle


L'optimiseur est la partie de la base de données Oracle qui crée le plan d'exécution d'une
instruction SQL. La détermination du plan d'exécution constitue une étape importante dans le
traitement de toute instruction SQL. Elle peut avoir un impact considérable sur la durée
d'exécution.
Le plan d'exécution est une série d'opérations effectuées successivement pour exécuter
l'instruction. L'optimiseur tient compte de plusieurs facteurs liés aux objets référencés et aux
conditions indiquées dans l'interrogation. L'optimiseur a besoin des informations suivantes :
• Statistiques collectées pour le système (E/S, CPU, etc.) et pour les objets de schéma
(nombre de lignes, index, etc.)
• Informations stockées dans le dictionnaire
• Qualificateurs de la clause WHERE
• Conseils fournis par le développeur
Lorsque vous utilisez les outils de diagnostic EXPLAIN PLAN d'Enterprise Manager et
AUTOTRACE de SQL*Plus, vous pouvez examiner le plan d'exécution choisi par l'optimiseur.
Remarque : Le nom de l'optimiseur Oracle dépend de sa fonction : optimiseur d'instructions
et optimiseur ATO (Automatic Tuning Optimizer).

Oracle Database 11g : Administration Workshop I 12 - 5


Statistiques destinées à l'optimiseur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Les statistiques destinées à l'optimiseur sont :


• collectées dans un cliché correspondant à un moment
donné
• persistantes entre les redémarrages de l'instance
• collectées automatiquement
SQL> SELECT COUNT(*) FROM hr.employees;

Oracle University and Catalyst Business Solutions use only


COUNT(*)
----------
214
SQL> SELECT num_rows FROM dba_tables
2 WHERE owner='HR' AND table_name = 'EMPLOYEES';
NUM_ROWS
----------
107

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

Statistiques destinées à l'optimiseur


Les statistiques destinées à l'optimiseur incluent des données sur les tables, sur les colonnes,
sur les index et sur le système. Les statistiques concernant les tables et les index sont stockées
dans le dictionnaire de données. Ces statistiques ne sont pas destinées à fournir des données en
temps réel. Elles fournissent un cliché (snapshot) statistiquement correct du stockage et de la
répartition des données, que l'optimiseur peut utiliser pour prendre des décisions concernant le
mode d'accès aux données.
Statistiques collectées :
• Taille de la table ou de l'index, en blocs de base de données
• Nombre de lignes
• Taille moyenne des lignes et nombre moyen de chaînages (tables uniquement)
• Hauteur et nombre de lignes feuille supprimées (index uniquement)
Ces faits changent à mesure que des données sont insérées, supprimées et modifiées. L'impact
(en termes de performances) de la maintenance de statistiques en temps réel concernant la
répartition des données serait prohibitif. Les données sont donc mises à jour via la collecte
périodique de statistiques sur les tables et les index.
Les statistiques destinées à l'optimiseur sont collectées automatiquement par une tâche de
maintenance qui s'exécute dans des fenêtres de maintenance prédéfinies (par défaut, une fois
par jour). L'optimiseur utilise également des statistiques système qui décrivent des
caractéristiques du système d'exploitation. Les statistiques système ne sont pas collectées
automatiquement. Pour plus d'informations, reportez-vous au manuel Oracle Database
Performance Tuning Guide.
Les statistiques destinées à l'optimiseur sont différentes des statistiques sur les performances de
la base de données qui sont collectées dans le cliché (snapshot) AWR (Automatic Workload
Repository).

Oracle Database 11g : Administration Workshop I 12 - 6


Utiliser la page Manage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Optimizer Statistics

Oracle University and Catalyst Business Solutions use only


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

Utiliser la page Manage Optimizer Statistics


Pour gérer les statistiques destinées à l'optimiseur dans Enterprise Manager, cliquez sur
l'onglet Server, puis cliquez sur Manage Optimizer Statistics dans la section Query Optimizer.
Dans cette page, vous pouvez effectuer les opérations suivantes sur les statistiques :
• Collecter manuellement des statistiques destinées à l'optimiseur.
• Restaurer jusqu'à un point dans le temps les statistiques destinées à l'optimiseur. Le point
dans le temps choisi doit être compris dans la période de conservation des statistiques,
qui est par défaut de 30 jours.
• Verrouiller les statistiques destinées à l'optimiseur afin d'éviter la suppression des
informations concernant certains objets. Cela est utile si des statistiques ont été calculées
pour une table à un moment où elle contenait des données particulièrement
représentatives et que vous souhaitez toujours disposer de ces statistiques. Lorsque des
statistiques sont verrouillées, elles ne sont affectées par aucune des fluctuations se
produisant dans la table.
• Déverrouiller des statistiques destinées à l'optimiseur précédemment verrouillées.
• Supprimer des statistiques destinées à l'optimiseur.
Recommandation
Utilisez les tâches de maintenance automatique pour collecter les statistiques destinées à
l'optimiseur. Pour activer la collecte des statistiques destinées à l'optimiseur, vous devez
vérifier que le paramètre d'initialisation STATISTICS_LEVEL a pour valeur TYPICAL ou
ALL.

Oracle Database 11g : Administration Workshop I 12 - 7


Collecter manuellement les statistiques
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

destinées à l'optimiseur

Oracle University and Catalyst Business Solutions use only


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

Collecter manuellement les statistiques destinées à l'optimiseur


Vous pouvez être amené à collecter des statistiques manuellement dans certaines situations,
par exemple quand le contenu d'une table a subi tellement de modifications entre deux
collectes automatiques que les statistiques ne sont plus représentatives de la table. Cette
situation est courante pour les tables de grande taille qui sont modifiées à plus de 10 % sur
une période de 24 heures.
Recommandation : Collectez les statistiques assez souvent pour que les modifications
n'atteignent jamais, entre deux collectes, plus de 10 % de la table. Cela peut nécessiter des
collectes manuelles ou des fenêtres de maintenance supplémentaires.
La collecte manuelle de statistiques peut être effectuée à l'aide d'Enterprise Manager ou du
package DBMS_STATS. Pour les statistiques système, vous êtes obligé d'utiliser le package
DBMS_STATS.
L'option de menu Gather Optimizer Statistics démarre un assistant qui permet de sélectionner
la portée, les objets, les options et le planning d'une tâche de collecte de statistiques destinées
à l'optimiseur. Cet assistant lance une tâche DBMS_STATS.GATHER_*_STATS dont vous
avez précisé la portée (table, schéma ou base de données). Il vous permet de définir des
préférences pour les valeurs par défaut utilisées par le package DBMS_STATS et de planifier
la date et l'heure d'exécution de la tâche.
Il n'est pas recommandé de collecter des statistiques manuellement. En effet, la collecte
automatique effectuée dans les fenêtres de maintenance est plus efficace et perturbe moins les
utilisateurs.

Oracle Database 11g : Administration Workshop I 12 - 8


Collecter manuellement les statistiques destinées à l'optimiseur (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Vous pouvez également soumettre une tâche manuelle si la tâche automatique a échoué ou a
été désactivée.
Vous pouvez collecter les statistiques destinées à l'optimiseur via le package DBMS_STATS
directement :
SQL> EXEC dbms_stats.gather_table_stats('HR','EMPLOYEES');
SQL> SELECT num_rows FROM dba_tables
2 WHERE owner='HR' AND table_name = 'EMPLOYEES';
NUM_ROWS
----------
214

Oracle University and Catalyst Business Solutions use only


Notez que le nombre de lignes reflète désormais correctement les données qui se trouvaient
dans la table au moment de la collecte des statistiques. DBMS_STATS permet également la
collecte manuelle de statistiques pour un schéma entier, voire pour l'ensemble de la base de
données.
Les statistiques relatives au système ne changent que si la charge globale change de manière
significative. Ces statistiques ne nécessitent donc pas de réajustements fréquents. La
procédure DBMS_STATS.GATHER_SYSTEM_STATS collecte les statistiques système sur
une période spécifique, mais vous pouvez lancer la collecte et l'arrêter manuellement lorsque
vous le désirez.
Recommandation : Utilisez la commande suivante lorsque vous créez une base de données :
SQL> EXEC dbms_stats.gather_system_stats('NOWORKLOAD');
L'option NOWORKLOAD augmente de quelques minutes (en fonction de la taille de la base de
données) le temps de traitement de l'instruction. Elle capture des estimations de
caractéristiques d'E/S telles que le temps moyen de recherche en lecture et le taux de transfert
des E/S.

Oracle Database 11g : Administration Workshop I 12 - 9


Niveaux de statistiques
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

STATISTICS_LEVEL

BASIC TYPICAL ALL

Oracle University and Catalyst Business Solutions use only


Statistiques supplémentaires
Fonctionnalités de réglage Valeur par défaut
pour le diagnostic manuel
automatique désactivées recommandée
d'instructions SQL

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

Niveaux de statistiques
Le paramètre d'initialisation STATISTICS_LEVEL contrôle la capture de diverses
statistiques et des fonctions de conseil (advisors), notamment les tâches de maintenance
automatique. Les tâches de maintenance automatique comprennent la collecte des statistiques
destinées à l'optimiseur. Le paramètre STATISTICS_LEVEL admet les valeurs suivantes :
• BASIC : Le calcul des statistiques et des mesures de performances AWR est désactivé.
La collecte automatique des statistiques destinées à l'optimiseur est désactivée, de même
que toutes les fonctions de conseil et les alertes générées par le serveur.
• TYPICAL : Les principales statistiques nécessaires à la gestion automatique de la base
de données sont collectées. Il s'agit des statistiques nécessaires pour surveiller le
comportement de la base de données Oracle. Cette collecte automatique de statistiques
réduit la probabilité d'obtenir des instructions SQL mal optimisées en raison de
statistiques obsolètes ou non valides.
• ALL : Toutes les statistiques possibles sont capturées. Ce niveau de capture inclut les
statistiques temporelles du système d'exploitation et les statistiques d'exécution des plans.
Ces statistiques sont la plupart du temps inutiles, sauf pour certains tests de diagnostic
bien précis. Il est préférable de ne pas les collecter pour préserver les performances.
Oracle recommande de conserver la valeur par défaut TYPICAL du paramètre
STATISTICS_LEVEL. En effet, le niveau BASIC désactive la collecte automatique des
statistiques destinées à l'optimiseur.

Oracle Database 11g : Administration Workshop I 12 - 10


Préférences relatives à la collecte des statistiques
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

PORTEE
PREFERENCES
INSTRUCTION
TABLE CASCADE
Tâche de collecte DEGREE
SCHEMA
des statistiques ESTIMATE_PERCENT

Oracle University and Catalyst Business Solutions use only


destinées à l'optimiseur
BASE DE DONNEES NO_INVALIDATE
GLOBALE METHOD_OPT
GRANULARITY
INCREMENTAL
DBA PUBLISH
DBMS_STATS
set | get | delete | export | import STALE_PERCENT

exec dbms_stats.set_table_prefs('SH','SALES','STALE_PERCENT','13');

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

Préférences relatives à la collecte des statistiques


Les procédures DBMS_STATS.GATHER_*_STATS peuvent être appelées à différents
niveaux pour collecter les statistiques relatives à l'ensemble d'une base de données ou à des
objets précis (tels que des tables). Dans les appels de procédures GATHER_*_STATS,
plusieurs paramètres admettent souvent des valeurs par défaut. Ces valeurs par défaut sont
correctes pour la plupart des objets de la base, mais elles doivent être modifiées pour certains
objets ou schémas. Pour vous éviter d'exécuter des tâches manuelles pour chacun de ces
objets, Oracle Database 11g vous permet de définir des valeurs (appelées préférences)
associées aux différents objets, schémas ou bases de données, mais aussi de modifier les
valeurs par défaut à l'aide d'une commande globale.
Les préférences définissent des paramètres transmis aux procédures de collecte.
Les procédures SET_*_PREFS créent des valeurs de préférence pour les objets qui
n'appartiennent ni à SYS, ni à SYSTEM. Elles permettent au DBA de définir des préférences
globales pour tous les paramètres qui concernent l'ensemble de la base de données.
Ces préférences seront appliquées à tous les paramètres qui acceptent une valeur par défaut.
La procédure SET_DATATBASE_PREFS s'exécute de manière répétitive sur toutes les tables
et tous les schémas de la base de données pour établir la préférence spécifiée. La procédure
SET_SCHEMA_PREFS s'exécute uniquement sur les tables du schéma indiqué. La procédure
SET_TABLE_PREFS s'applique à une seule table.
Toutes les préférences sur les objets (qu'elles soient définies au niveau de la base de données,
d'un schéma ou d'une table) sont stockées dans une seule table. Si vous modifiez des
préférences au niveau du schéma, elles remplacent celles définies précédemment au niveau
des tables.

Oracle Database 11g : Administration Workshop I 12 - 11


Préférences relatives à la collecte des statistiques (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Lorsque les différentes procédures de collecte s'exécutent, elles extraient les préférences qui
ont été définies au niveau de chaque objet. Pour consulter les préférences définies au niveau
des objets, utilisez la vue DBA_TAB_STAT_PREFS. Les préférences qui ne sont pas définies
au niveau des objets seront de niveau global. Vous pouvez consulter les préférences de niveau
global en appelant la procédure DBMS_STATS.GET_PREFS pour chaque préférence.
Ces préférences peuvent être définies, extraites, supprimées, exportées et importées à chaque
niveau : table, schéma, base de données, global. Les valeurs des préférences sont en principe
définies du niveau Global au niveau Tables, de sorte qu'elles s'appliquent au groupe le plus
restreint en dernier lieu.
Préférences Oracle Database 11g :

Oracle University and Catalyst Business Solutions use only


• CASCADE indique si les statistiques d'index sont collectées avec les statistiques sur les
tables.
• DEGREE définit le degré de parallélisme utilisé pour collecter les statistiques.
• PUBLISH permet de choisir de publier les statistiques dans le dictionnaire ou de les
stocker dans une zone privée. La seconde solution permet au DBA de valider les
statistiques avant de les publier dans le dictionnaire de données à l'aide de la procédure
PUBLISH_PENDING_STATS.
• STALE_PERCENT permet de déterminer le seuil à partir duquel les statistiques relatives
à un objet sont obsolètes. La valeur de cette préférence correspond au pourcentage de
lignes modifiées depuis la dernière collecte de statistiques. L'exemple présenté sur la
diapositive précédente remplace la valeur par défaut (10 %) par 13 % pour SH.SALES.
• INCREMENTAL permet de collecter des statistiques globales sur des tables partitionnées,
de manière incrémentielle.
• METHOD_OPT détermine les colonnes et les paramètres d'histogramme qui sont utilisés
pour collecter les statistiques relatives aux colonnes.
• GRANULARITY détermine le niveau de détail des statistiques à collecter (pour les tables
partitionnées uniquement).
• NO_INVALIDATE détermine si les curseurs doivent être invalidés.
• ESTIMATE_PERCENT permet de déterminer le nombre de lignes à échantillonner pour
obtenir des statistiques représentatives. Il s'agit d'un pourcentage du nombre de lignes de
la table.
Remarque : Pour plus d'informations sur ces préférences, reportez-vous à la documentation
relative à DBMS_STATS dans le manuel Oracle Database PL/SQL Packages and Types
Reference.
Vous pouvez supprimer des préférences au niveau d'une table, d'un schéma ou d'une base de
données en utilisant des procédures DBMS_STATS.DELETE_*_PREFS. La procédure
DBMS_STATS.RESET_PARAM_DEFAULTS permet de réinitialiser les préférences globales
pour qu'elles reprennent leurs valeurs par défaut.

Oracle Database 11g : Administration Workshop I 12 - 12


Référentiel AWR (Automatic Workload Repository)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Référentiel intégré pour les informations relatives aux


performances
• Clichés des mesures de performances de la base de
données pris toutes les 60 minutes et conservés
pendant 8 jours
• Base de toutes les fonctions de gestion automatique

Oracle University and Catalyst Business Solutions use only


Statistiques 60 minutes
en mémoire MMON Clichés
SGA
AWR

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

Référentiel AWR (Automatic Workload Repository)


Le référentiel AWR est l'infrastructure qui fournit aux composants d'Oracle Database 11g des
services de collecte, de maintenance et d'utilisation de statistiques pour la détection des
problèmes et le réglage automatique (self-tuning). Il peut être considéré comme un data
warehouse dans lequel sont stockées les statistiques relatives à la base de données, les
mesures de performances, etc.
Toutes les 60 minutes (par défaut), la base de données capture automatiquement des
informations statistiques à partir de la mémoire SGA et les place dans le référentiel AWR
sous la forme de clichés (snapshots). Les clichés sont enregistrés sur disque par un processus
en arrière-plan nommé MMON (Manageability Monitor). Par défaut, les clichés sont conservés
pendant huit jours. Vous pouvez modifier l'intervalle de capture et la période de conservation
des clichés.
Le référentiel AWR contient des centaines de tables, appartenant toutes au schéma SYSMAN
et stockées dans le tablespace SYSAUX. La base de données Oracle ne prend pas en charge
l'accès direct au référentiel par les instructions SQL. Utilisez Enterprise Manager ou le
package DBMS_WORKLOAD_REPOSITORY pour travailler avec le référentiel AWR.

Oracle Database 11g : Administration Workshop I 12 - 13


Infrastructure du référentiel AWR
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Clients externes
EM SQL*Plus …

SGA

Collecte V$ DBA_*
efficace de

Oracle University and Catalyst Business Solutions use only


Clichés
statistiques AWR
en mémoire MMON

Composant Composant
ADDM à réglage … à réglage
Clients internes automatique automatique

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

Infrastructure du référentiel AWR


Les principaux éléments de l'infrastructure du référentiel AWR sont les suivants :
• Une fonction de collecte de statistiques en mémoire utilisé par les composants d'Oracle
Database 11g pour obtenir des statistiques. Ces statistiques sont stockées en mémoire
pour des raisons de performances. Elles sont accessibles par l'intermédiaire des vues
dynamiques des performances (V$).
• Les clichés (snapshots) AWR qui représentent la partie persistante de la fonction. Ils sont
accessibles via les vues du dictionnaire de données et Enterprise Manager Database
Control.
Les statistiques sont placées dans la zone de stockage persistant pour plusieurs raisons :
• Elles ne doivent pas être perdues en cas de panne d'une instance.
• Certaines analyses nécessitent des données historiques pour les comparaisons avec une
ligne de base (baseline).
• Un débordement de mémoire peut se produire. Lorsque des anciennes statistiques sont
remplacées par de nouvelles en raison d'un manque de mémoire, les données remplacées
peuvent être stockées en vue d'une utilisation ultérieure.
La version en mémoire des statistiques est transférée régulièrement sur le disque par le
processus en arrière-plan MMON. Grâce au référentiel AWR, la base de données Oracle permet
de capturer automatiquement des données statistiques historiques, sans l'intervention du DBA.

Oracle Database 11g : Administration Workshop I 12 - 14


Lignes de base
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Période d'intérêt
dans le passé

Oracle University and Catalyst Business Solutions use only


DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE ( -
start_snap_id IN NUMBER,
end_snap_id IN NUMBER,
baseline_name IN VARCHAR2);

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

Lignes de base
Une ligne de base (baseline) est un cliché (snapshot) AWR que vous avez balisé en fonction
de périodes importantes. Un jeu de clichés est défini sur une paire de clichés. Ces derniers
sont identifiés par leur numéro de séquence (snap_id). Chaque jeu de clichés correspond à
une seule paire de clichés.
Un jeu de clichés peut être identifié par un nom fourni par l'utilisateur ou par un identificateur
généré par le système. Pour créer un jeu de clichés, vous exécutez la procédure
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE et vous indiquez un nom et une
paire d'identificateurs de cliché. Un identificateur est affecté au nouveau jeu de clichés.
Les identificateurs de jeu de clichés sont uniques pour toute la durée de vie d'une base de
données.
Les jeux de clichés sont utilisés pour conserver les données de clichés. Les clichés
appartenant à des jeux sont conservés jusqu'à la suppression de ces derniers.
Vous pouvez configurer des jeux de clichés, généralement à partir de périodes représentatives
dans le passé, afin de les utiliser pour une comparaison avec le comportement actuel du
système. Vous pouvez également configurer des alertes basées sur des seuils à l'aide de jeux
de clichés à partir d'Enterprise Manager Database Control.
Vous pouvez obtenir les numéros de séquence (snap_id) directement à partir de
DBA_HIST_SNAPSHOT ou d'Enterprise Manager Database Control.
Remarque : Pour plus d'informations sur le package DBMS_WORKLOAD_REPOSITORY,
reportez-vous au manuel Oracle Database PL/SQL Packages and Types Reference.

Oracle Database 11g : Administration Workshop I 12 - 15


Enterprise Manager et référentiel AWR
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Enterprise Manager et référentiel AWR


Cliquez sur l'onglet Server, puis sur l'option Automatic Workload Repository dans la section
Statistics Management. Dans la page Automatic Workload Repository, cliquez sur Edit pour
modifier les paramètres.
Dans la page Automatic Workload Repository, vous pouvez effectuer les opérations
suivantes :
• Modifier les paramètres du référentiel de charge globale (Workload Repository).
• Consulter les informations détaillées sur les clichés créés et créer manuellement d'autres
clichés.
• Créer des lignes de base (baselines) AWR.
• Générer un état AWR.

Oracle Database 11g : Administration Workshop I 12 - 16


Gérer le référentiel AWR
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Période de conservation
– Durée par défaut :
Huit jours
– Tenez compte des besoins
en termes de stockage.
• Intervalle de collecte
– Toutes les 60 minutes par défaut

Oracle University and Catalyst Business Solutions use only


– Tenez compte des besoins en termes de stockage
et de l'impact sur les performances.
• Niveau de collecte
– Basic (désactive la plupart des fonctionnalités ADDM)
– Typical (niveau recommandé)
– All (ajoute aux clichés des informations complémentaires
de réglage des instructions SQL)

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

Gérer le référentiel AWR


Les paramètres AWR incluent la période de conservation, l'intervalle de collecte et le niveau
de collecte. N'oubliez pas que la diminution de la valeur de l'un ou l'autre de ces paramètres
influe sur le fonctionnement des composants qui dépendent du référentiel AWR, notamment
les fonctions de conseil (advisors).
L'augmentation de la valeur des paramètres peut améliorer l'efficacité des recommandations
des fonctions de conseil, mais cela a un coût en ce qui concerne l'espace requis pour les
clichés (snapshots) et les ressources consacrées à la collecte des clichés.
Vous pouvez utiliser le niveau de collecte ALL lors du réglage (tuning) d'une nouvelle
application. La valeur ALL entraîne la collecte de plans d'exécution SQL et de statistiques
temporelles qui améliorent les recommandations des fonctions de conseil SQL. Une fois le
réglage terminé, rétablissez la valeur TYPICAL.

Oracle Database 11g : Administration Workshop I 12 - 17


Moniteur ADDM (Automatic Database
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Diagnostic Monitor)

• Exécution après chaque cliché AWR


• Surveillance de l'instance et détection
des goulets d'étranglement
• Stockage des résultats
dans le référentiel AWR

Oracle University and Catalyst Business Solutions use only


Clichés

EM ADDM
Résultats ADDM
AWR

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

Moniteur ADDM (Automatic Database Diagnostic Monitor)


Contrairement aux autres fonctions de conseil (advisors), le moniteur ADDM s'exécute
automatiquement après chaque cliché (snapshot) AWR. Chaque fois qu'un cliché est pris, il
procède à l'analyse de la période correspondant aux deux derniers clichés. Le moniteur
ADDM surveille l'instance de manière proactive et détecte les goulets d'étranglement avant
qu'ils ne posent un réel problème.
Dans de nombreux cas, le moniteur ADDM recommande des solutions pour les problèmes
détectés. Il quantifie même les avantages induits par les recommandations.
Voici quelques-uns des problèmes courants détectés par le moniteur ADDM :
• Goulets d'étranglement CPU
• Gestion inefficace des connexions Oracle Net
• Contention liée à un verrou
• Capacité d'entrée/sortie (E/S)
• Sous-dimensionnement des structures mémoire Oracle
• Instructions SQL à forte consommation de ressources
• Temps PL/SQL et Java élevé
• Nombreux points de reprise (checkpoints) et cause (par exemple, des fichiers journaux
trop petits)
Les résultats de chaque analyse ADDM sont stockés dans le référentiel AWR. Ils sont
également accessibles via Enterprise Manager.

Oracle Database 11g : Administration Workshop I 12 - 18


Résultats ADDM
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


2

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

Résultats ADDM
La page Automatic Database Diagnostic Monitor (ADDM) affiche les résultats détaillés de la
dernière exécution d'ADDM. Database Time représente le temps d'activité total des sessions
dans la base de données au cours de la période d'analyse. Un pourcentage d'impact spécifique
est indiqué pour chacun des résultats. L'impact représente le temps consommé par le problème
par rapport au temps d'activité de la base de données au cours de la période d'analyse.
La diapositive ci-dessus appelle les remarques suivantes :
1. Le graphique indique que le nombre moyen d'utilisateurs actifs a énormément augmenté
à ce stade. En outre, le problème principal était un problème de type Wait.
2. L'icône indique que la sortie ADDM affichée au bas de la page correspond à ce point
dans le temps. Vous pouvez remonter dans le passé (pour consulter des analyses
antérieures) en cliquant sur les autres icônes.
3. Les résultats fournissent un bref récapitulatif des zones réglables trouvées par le moniteur
ADDM. Si vous cliquez sur un problème particulier, vous accédez à la page Performance
Finding Details.
Cliquez sur le bouton View Report pour obtenir des détails sur l'analyse de performances sous
la forme d'un état au format texte.

Oracle Database 11g : Administration Workshop I 12 - 19


Recommandations ADDM
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Recommandations ADDM
Dans la page Performance Finding Details, des recommandations indiquent comment
résoudre les problèmes détectés. Ces recommandations sont regroupées en différentes
catégories : Schema, SQL Tuning, Database Configuration et beaucoup d'autres. La colonne
Benefit (%) indique le gain maximal qui pourrait être obtenu sur le temps d'exécution de
la base de données suite à l'implémentation de la recommandation.
Le moniteur ADDM étudie diverses modifications du système et ses recommandations
peuvent porter sur les points suivants :
• Modifications matérielles : Ajout de CPU ou modification de la configuration du
sous-système d'E/S.
• Configuration de la base de données : Modification de la valeur de certains paramètres
d'initialisation.
• Modifications au niveau schéma : Partitionnement par hachage d'une table ou d'un
index, ou utilisation de la gestion automatique de l'espace dans les segments.
• Modifications au niveau application : Utilisation de l'option de mise en cache pour les
séquences ou utilisation de variables attachées (bind variables).
• Utilisation d'autres fonctions de conseil (advisors) : Exécution de SQL Tuning
Advisor pour les instructions SQL à forte consommation de ressources ou exécution de
Segment Advisor pour les objets qui utilisent beaucoup d'espace.

Oracle Database 11g : Administration Workshop I 12 - 20


Infrastructure de conseil
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

SQL Tuning Buffer Cache


ADDM
Advisor PGA Advisor
Advisor
SQL Access Shared Pool
Advisor Advisor

Memory Shared Pool


Advisor SGA Advisor

Oracle University and Catalyst Business Solutions use only


Advisor
Shared Pool
Advisor

Segment Advisor
Espace
Undo Advisor

Sauvegarde MTTR Advisor

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

Infrastructure de conseil
Les fonctions de conseil (advisors) fournissent des informations sur l'utilisation des ressources
et sur les performances des composants qu'elles analysent. Par exemple, Memory Advisor
propose une valeur recommandée pour le paramètre d'initialisation MEMORY_TARGET qui
contrôle la quantité de mémoire totale utilisée par l'instance Oracle Database.
En se basant sur les données capturées dans le référentiel AWR, le moniteur ADDM permet à
la base de données Oracle d'établir un diagnostic sur ses propres performances et de
déterminer la façon dont les problèmes identifiés peuvent être résolus. Le moniteur ADDM
s'exécute automatiquement après chaque capture de statistiques AWR. Il peut éventuellement
appeler d'autres fonctions de conseil.
Les avantages principaux fournis par l'infrastructure de conseil sont les suivants :
• Toutes les fonctions de conseil utilisent une interface uniforme.
• Toutes les fonctions de conseil ont une zone de stockage commune pour leurs données
source et pour leurs résultats : le référentiel de charge globale (Workload Repository).
La diapositive ci-dessus ne répertorie pas toutes les fonctions de conseil (par exemple, elle ne
mentionne pas Data Recovery Advisor et SQL Repair Advisor).

Oracle Database 11g : Administration Workshop I 12 - 21


Infrastructure de conseil (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Moniteur ADDM (Automatic Database Diagnostic Monitor)


Le moniteur ADDM est un outil d'analyse basé sur le serveur, qui examine les performances
de la base de données toutes les 60 minutes. Son but est de détecter de manière précoce les
goulets d'étranglement du système et de recommander des correctifs avant toute dégradation
perceptible des performances du système.
Memory Advisor
Memory Advisor est en fait un ensemble de plusieurs fonctions qui permettent de déterminer
les réglages les plus efficaces pour la mémoire totale utilisée par l'instance de base de
données. La mémoire SGA (System Global Area) comprend un ensemble de fonctions de
conseil (advisors) pour la zone de mémoire partagée, le cache de tampons (buffer cache) de la

Oracle University and Catalyst Business Solutions use only


base de données, la zone de mémoire Java et la zone de mémoire Streams. Les fonctions de
conseil des zones de mémoire Java et Streams ne sont pas accessibles à partir de la page
Memory Advisor d'Enterprise Manager. Il existe une fonction de conseil pour la mémoire
PGA (Program Global Area). Outre ces fonctions de conseil, cette page offre un point de
contrôle central de la zone de mémoire LARGE POOL et de la zone de mémoire Java.
Mean-Time-To-Recover (MTTR) Advisor
MTTR Advisor vous permet de définir la durée nécessaire pour la récupération de la base de
données suite à une panne de l'instance.
Segment Advisor
Cette fonction de conseil recherche les tables et les index qui consomment plus d'espace que
nécessaire. Elle recherche toute consommation inutile d'espace au niveau tablespace ou
schéma et génère des scripts permettant de réduire cette consommation lorsque cela s'avère
possible.
SQL Access Advisor
Cette fonction de conseil analyse toutes les instructions SQL exécutées au cours d'une période
donnée et suggère la création d'index ou de vues matérialisées supplémentaires qui
permettront d'optimiser les performances.
SQL Tuning Advisor
Cette fonction de conseil analyse une instruction SQL individuelle et fournit des
recommandations pour l'optimisation de ses performances. Les recommandations peuvent
inclure des actions telles que la réécriture de l'instruction, la modification de la configuration
de l'instance, ou encore l'ajout d'index. La fonction de conseil SQL Tuning Advisor n'est pas
appelée directement. Elle est appelée à partir d'autres outils (tels que Top SQL ou Top
Sessions) pour optimiser les instructions SQL qui consomment le plus.
Undo Management Advisor
Undo Management Advisor vous permet de déterminer la taille que doit avoir le tablespace
d'annulation pour la prise en charge d'une période de conservation donnée. La gestion des
annulations et l'utilisation de cette fonction de conseil sont étudiées dans le chapitre "Gérer les
données d'annulation".

Oracle Database 11g : Administration Workshop I 12 - 22


Infrastructure de conseil (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Data Recovery Advisor


Cette fonction de conseil effectue automatiquement le diagnostic de panne pour les données
persistantes, propose des options de réparation et exécute les réparations demandées par
l'utilisateur. Le but de Data Recovery Advisor est de réduire la durée moyenne de
récupération (MTTR) et de fournir un outil centralisé pour la réparation automatisée des
données.
SQL Repair Advisor
Vous exécutez SQL Repair Advisor après l'échec d'une instruction SQL avec une erreur
critique qui génère un problème dans le référentiel ADR (Automatic Diagnostic Repository).
Cette fonction de conseil analyse l'instruction et recommande la plupart du temps un patch

Oracle University and Catalyst Business Solutions use only


pour la réparer. Si vous implémentez la réparation recommandée, le patch SQL appliqué évite
l'échec de l'instruction en forçant l'optimiseur d'instructions à choisir un autre plan d'exécution
à l'avenir. L'instruction SQL elle-même n'est pas modifiée.

Oracle Database 11g : Administration Workshop I 12 - 23


Enterprise Manager et les fonctions de conseil
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Enterprise Manager et les fonctions de conseil


La page Advisor Central est la page principale de toutes les fonctions de conseil (advisors).
Pour accéder à cette page, cliquez sur le lien Advisor Central dans la liste Related Links de la
page d'accueil Database Control. Toutefois, les fonctions de conseil peuvent également être
appelées depuis d'autres emplacements dans Database Control. Il est aussi possible d'y
accéder dans certains contextes spécifiques.
L'onglet Advisors de la page Advisor Central répertorie toutes les tâches de conseil qui sont
enregistrées au niveau du référentiel de charge globale (Workload Repository). Vous pouvez
filtrer cette liste par type de fonction de conseil et pour des périodes prédéfinies.
L'onglet Checkers de la page Advisor Central permet de programmer divers vérificateurs
d'intégrité de la base de données. Vous pouvez afficher tous les vérificateurs exécutés par
nom, par type ou par période.
Certaines fonctions de conseil sont décrites plus en détail dans les chapitres "Gérer les
données d'annulation", "Gérer les performances" et "Concepts de sauvegarde et de
récupération".
Remarque : Utilisez la page Change Default Parameters pour modifier le délai d'expiration
par défaut (en jours) pour toutes les tâches futures. Vous pouvez également utiliser cette page
pour modifier les paramètres de certaines fonctions de conseil importantes.

Oracle Database 11g : Administration Workshop I 12 - 24


Package DBMS_ADVISOR
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Procédure Description
CREATE_TASK Crée une tâche dans le référentiel
DELETE_TASK Supprime une tâche du référentiel
EXECUTE_TASK Lance l'exécution d'une tâche
INTERRUPT_TASK Suspend une tâche en cours d'exécution
GET_TASK_REPORT Crée et renvoie un état au format texte
pour la tâche indiquée

Oracle University and Catalyst Business Solutions use only


RESUME_TASK Entraîne la reprise d'une tâche suspendue
UPDATE_TASK_ATTRIBUTES Met à jour les attributs de tâche
SET_TASK_PARAMETER Modifie un paramètre de tâche
MARK_RECOMMENDATION Marque une ou plusieurs
recommandations comme acceptées,
rejetées ou ignorées
GET_TASK_SCRIPT Crée un script permettant d'implémenter
toutes les recommandations acceptées

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

Package DBMS_ADVISOR
Le package DBMS_ADVISOR contient l'ensemble des constantes et des déclarations de
procédure qui s'appliquent aux modules de conseil. Vous pouvez l'utiliser pour exécuter des
tâches à partir de la ligne de commande.
Pour exécuter des procédures de conseil, vous devez disposer du privilège ADVISOR. Ce
privilège offre un accès complet aux procédures et aux vues des fonctions de conseil
(advisors).
Remarque : Pour plus d'informations sur toutes les procédures du package DBMS_ADVISOR,
reportez-vous au manuel Oracle Database PL/SQL Packages and Types Reference.

Oracle Database 11g : Administration Workshop I 12 - 25


Tâches de maintenance automatisées
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Processus de maintenance automatisé :


1. La fenêtre de maintenance s'ouvre.
2. Un processus en arrière-plan planifie les tâches.
3. Le planificateur lance les tâches.
4. Resource Manager limite l'impact des tâches
automatisées sur les performances.
Tâches de maintenance automatisées par défaut :

Oracle University and Catalyst Business Solutions use only


• Collecte des statistiques destinées à l'optimiseur
• Fonction de conseil de segmentation automatique
(Segment Advisor)
• Fonction de conseil SQL automatique
(SQL Advisor)

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

Tâches de maintenance automatisées


En analysant les informations stockées dans le référentiel AWR, la base de données peut
déterminer s'il est nécessaire d'effectuer des tâches de maintenance de routine, telles que la
régénération des statistiques destinées à l'optimiseur. L'infrastructure d'automatisation des
tâches de maintenance permet à la base Oracle d'effectuer automatiquement ces opérations.
Elle utilise le planificateur pour exécuter ces tâches dans des fenêtres de maintenance
prédéfinies.
Par défaut, les fenêtres de maintenance commencent à 22 heures et durent 4 heures les jours
ouvrés. Le samedi et le dimanche, la fenêtre de maintenance commence à 6 heures du matin
et dure 20 heures. Tous les attributs des fenêtres de maintenance sont personnalisables,
notamment les heures de début et de fin, la fréquence, les jours de la semaine, etc.
Par ailleurs, il est possible de limiter l'impact des tâches de maintenance automatisées sur le
fonctionnement normal de la base en associant un plan d'allocation de ressources Database
Resource Manager à la fenêtre de maintenance.
Exemples de tâches de maintenance :
• Les statistiques destinées à l'optimiseur sont régénérées automatiquement à l'aide de
l'infrastructure d'automatisation des tâches de maintenance.
• La fonction de conseil de segmentation automatique (Segment Advisor) comporte des
tâches par défaut qui sont exécutées dans la fenêtre de maintenance.
• Lorsque vous créez une base de données avec DBCA, vous pouvez lancer des
sauvegardes régulières de la base.

Oracle Database 11g : Administration Workshop I 12 - 26


Tâches de maintenance automatisées
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Tâches de maintenance automatisées (suite)


Cliquez sur Automated Maintenance Tasks dans la section Scheduler de la page Server pour
accéder à la page Automated Maintenance Task dans laquelle vous pouvez consulter le
planning des tâches de maintenance automatisées et un historique récent. Vous avez ensuite la
possibilité d'effectuer une analyse descendante pour voir les détails de certaines tâches.
Cliquez sur Configure pour atteindre la page Automated Maintenance Tasks Configuration.
Une tâche s'exécute dans une fenêtre. Le graphique indique la dernière fenêtre dans laquelle
une tâche a été exécutée, ainsi que la fenêtre suivante pour la prochaine exécution
programmée.
Remarque : La diapositive ci-dessus affiche les fenêtres par défaut. A la fin de la fenêtre de
maintenance, le planificateur arrête par défaut la collecte des statistiques destinées à
l'optimiseur. Les objets restants sont traités au cours de la fenêtre de maintenance suivante.

Oracle Database 11g : Administration Workshop I 12 - 27


Configuration des tâches de maintenance
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

automatisées

Oracle University and Catalyst Business Solutions use only


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

Configuration des tâches de maintenance automatisées


Dans la page Automated Maintenance Tasks Configuration, vous pouvez activer et désactiver
les tâches de maintenance automatiques, soit toutes à la fois, soit une par une, soit par fenêtre
de maintenance. Vous pouvez également configurer les paramètres utilisés pour la collecte
des statistiques destinées à l'optimiseur et les paramètres de contrôle des tâches pour la
fonction de conseil automatique SQL Tuning Advisor.
Sélectionnez le nom de la fenêtre pour afficher ou modifier la planification des fenêtres.
Cliquez sur Edit Window Group pour ajouter ou supprimer des fenêtres dans le groupe.

Oracle Database 11g : Administration Workshop I 12 - 28


Alertes générées par le serveur
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Enterprise Manager

Oracle University and Catalyst Business Solutions use only


File d'attente
des alertes
Instance serveur
Oracle La mesure de
performances dépasse
le seuil.

AWR

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

Alertes générées par le serveur


Les alertes sont des notifications qui vous sont envoyées quand une base de données présente
un état indésirable et nécessite votre attention. Par défaut, la base de données Oracle fournit
des alertes via Enterprise Manager Database Control. Enterprise Manager peut être configuré
pour envoyer à l'administrateur des messages électroniques concernant les problèmes, et pour
afficher des informations d'alerte sur la console.
Vous pouvez également définir des seuils sur nombre des mesures de performances
importantes du système. Oracle Database 11g vous informe de manière proactive si les
valeurs mesurées pour la base s'écartent des valeurs normales au point d'atteindre ces seuils.
Une notification précoce des problèmes potentiels vous permet de réagir rapidement. Souvent,
vous pouvez résoudre les problèmes avant même que les utilisateurs ne les remarquent.
Soixante mesures environ sont surveillées par défaut, parmi lesquelles :
• Broken Job Count
• Database Time Spent Waiting (%)
• Dump Area Used (%)
• SQL Response Time (%) par rapport à la ligne de base (baseline)
• Tablespace Used (%)
• Generic Incident
Quelques mesures de performances permettent une notification précoce des problèmes :
• Average File Read Time (centiseconds)
• Response Time (per transaction)
• Wait Time (%)

Oracle Database 11g : Administration Workshop I 12 - 29


Définir des seuils
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Définir des seuils


Pour définir ou modifier un seuil concernant l'ensemble de la base de données, sélectionnez
"Metric and Policy Settings" dans la région Related Links de la page d'accueil de la base de
données. Entrez les valeurs de votre choix pour les seuils d'avertissement et critique.
Les alertes appropriées apparaissent lorsque la base de données atteint les valeurs indiquées.
Les seuils déjà définis s'affichent dans la liste "Metrics with thresholds". Par défaut, 60
mesures de performances environ présentent des seuils prédéfinis, que vous pouvez modifier
au besoin. La liste "All metrics" répertorie les mesures pour lesquelles aucun seuil n'est défini.
Cliquez sur l'une des icônes Edit pour accéder à une page dans laquelle vous pourrez indiquer
des actions correctives supplémentaires pour les seuils d'avertissement ou critiques.
Cliquez sur un lien Collection Schedule et modifiez l'intervalle de collecte planifié.
Souvenez-vous que chaque planning affecte un groupe de mesures.

Oracle Database 11g : Administration Workshop I 12 - 30


Créer et tester une alerte
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

1. Indiquez un seuil.
2. Créez un scénario
de test.
3. Recherchez une
alerte. 1
2

Oracle University and Catalyst Business Solutions use only


3

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

Créer et tester une alerte


Vous pouvez également définir des seuils pour un objet spécifique.
Exemple
Vous décidez que vous avez besoin de recevoir une alerte critique si l'espace utilisé dans le
tablespace INVENTORY dépasse 75 %. (Ce tablespace n'autorise pas l'extension automatique
de ses fichiers de données.) Pour créer et tester l'alerte, procédez comme suit :
1. Dans Enterprise Manager, accédez à la page "Metrics and Policy Settings", puis cliquez
sur l'icône Edit associée au seuil Tablespace Used (%). Définissez le seuil de votre choix
pour le tablespace.
2. Dans l'onglet Schema de la page Tables, créez une table pour tester l'alerte. Utilisez
l'action "Define using SQL" pour dupliquer une table existante. La valeur initiale (8 Mo)
de la clause STORAGE oblige la table à allouer immédiatement 80 % du tablespace
INVENTORY de 10 Mo.
3. Lorsque vous recevez une erreur indiquant que cette table ne peut pas être étendue,
consultez la page d'accueil de la base de données pour visualiser l'alerte générée.
La mesure Tablespace Space Used (%) est collectée toutes les 10 minutes par défaut.
La plupart des alertes contiennent le nom d'une fonction de conseil (advisor) associée que
vous pouvez appeler pour obtenir des recommandations plus détaillés. Dans Database
Control, le lien associé à chaque message d'alerte permet d'appeler la fonction de conseil
appropriée.

Oracle Database 11g : Administration Workshop I 12 - 31


Notification des alertes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Notification des alertes


Le mécanisme de notification utilise l'interface Enterprise Manager. Il est basé sur le concept
d'une règle de notification qui établit le mécanisme de notification approprié pour un
ensemble d'alertes à venir.
Vous pouvez modifier les règles de notification à partir de Database Control. Dans la page
d'accueil, cliquez sur le lien Preferences pour afficher la page General dans laquelle vous
pouvez indiquer l'adresse électronique de réception des notifications.
Dans cette même page, cliquez sur le lien Rules dans la région Notification. Sélectionnez la
règle "Database Availability and Critical States", puis cliquez sur le bouton Edit.
Vous accédez à la page "Edit Notification Rule Database Availability and Critical States"
dans laquelle vous pouvez sélectionner l'onglet Metrics et modifier les mesures de
performances pour lesquelles vous souhaitez recevoir des notifications.

Oracle Database 11g : Administration Workshop I 12 - 32


Notification des alertes (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Vous pouvez éventuellement demander qu'Enterprise Manager vous informe directement


lorsque des alertes spécifiques se produisent. Par exemple, si vous indiquez que vous
souhaitez recevoir une notification par courrier électronique pour les alertes critiques et que
vous avez défini un seuil critique concernant le temps de réponse du système pour chaque
mesure de performances appelée, vous pouvez envoyer un courrier électronique contenant un
message de type :
Host Name=mydb.us.mycompany.com
Metric=Response Time per Call
Timestamp=08-NOV-2005 10:10:01 (GMT -7:00)
Severity=Critical

Oracle University and Catalyst Business Solutions use only


Message=Response time per call has exceeded the threshold.
See the latest ADDM analysis.
Rule Name= Rule
Owner=SYSMAN
Le courrier électronique contient un lien menant au nom d'hôte et à la dernière analyse
ADDM.
Par défaut, les alertes correspondant à un état critique (telles que DB Down, Generic Alert
Log Error Status et Tablespace Used) sont associées à une notification. Toutefois, pour
recevoir ces notifications, vous devez effectuer la configuration suivante :
1. Dans n'importe quelle page de Database Control, cliquez sur le lien Setup dans l'en-tête
et dans le pied de page.
2. Dans la page Setup, sélectionnez Notification Methods.
3. Entrez les informations requises dans la région Mail Server de la page Notifications
Methods.
Il existe d'autres méthodes de notification, notamment les scripts et les interruptions SNMP
(Simplified Network Management Protocol). Ces dernières peuvent être utilisées pour
communiquer avec des applications tierces.
Pour recevoir les notifications :
1. Dans n'importe quelle page de Database Control, cliquez sur le lien Preferences dans
l'en-tête et dans le pied de page.
2. Dans la page Preferences, sélectionnez General. Entrez votre adresse électronique dans la
région E-mail Addresses.
3. Vous pouvez éventuellement modifier les règles de notification (par exemple, vous
pouvez modifier le niveau de gravité déclenchant la notification). Pour cela, cliquez sur
Notification Rules. La page Notification Rules apparaît.
Remarque : Pour plus d'informations sur la configuration des règles de notification,
reportez-vous au manuel Oracle Enterprise Manager Advanced Configuration.

Oracle Database 11g : Administration Workshop I 12 - 33


Réagir aux alertes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

• Si nécessaire, rassemblez davantage d'informations


(par exemple en exécutant le moniteur ADDM ou une
autre fonction de conseil).
• Examinez les erreurs critiques.
• Prenez les mesures correctives appropriées.
• Accusez réception des alertes qui ne sont pas effacées

Oracle University and Catalyst Business Solutions use only


automatiquement.

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

Réagir aux alertes


Lorsque vous recevez une alerte, suivez les recommandations qu'elle fournit. Vous pouvez
également exécuter le moniteur ADDM (ou une autre fonction de conseil plus appropriée)
pour obtenir des informations de diagnostic plus détaillées sur le comportement du système ou
des objets impliqués.
Les erreurs critiques génèrent des alertes et des incidents. La plupart du temps, elles génèrent
des incidents qui sont collectés en temps que problèmes. Vous utilisez la page Support
Workbench pour examiner le problème et le soumettre éventuellement au Support technique
Oracle.
La plupart des alertes (par exemple "Out of Space") sont effacées automatiquement lorsque la
cause du problème disparaît. Toutefois, certaines alertes (telles que "Generic Alert Log
Error") vous sont envoyées pour notification et vous devez en accuser réception. Après avoir
pris les mesures correctives nécessaires, vous pouvez accuser réception d'une alerte en
l'effaçant ou en la purgeant. Lorsque vous effacez une alerte, celle-ci est incluse dans
l'historique des alertes, visible à partir de la page d'accueil sous Related Links. Lorsque vous
purgez une alerte, celle-ci est supprimée de l'historique des alertes.
Pour effacer une alerte telle que "Generic Alert Log Error", cliquez sur le lien Alert Log dans
la section Diagnostic Summary de la page d'accueil. La page Alert Log Errors apparaît.
Sélectionnez l'alerte à effacer, puis cliquez sur Clear. Pour purger une alerte, sélectionnez-la
et cliquez sur Purge. Vous pouvez également effacer ou purger toutes les alertes à l'aide des
boutons Clear Every Open Alert et Purge Every Alert.

Oracle Database 11g : Administration Workshop I 12 - 34


Types d'alerte et effacement des alertes
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Basées sur des mesures


de performances
97 % : Seuil critique Effacées
Alertes avec seuil
(avec conservation
d'état) 85 % : Avertissement Effacées

MMON

Oracle University and Catalyst Business Solutions use only


DBA_OUTSTANDING_ALERTS DBA_ALERT_HISTORY

Resumable Recovery Area


Snapshot Session Low On
Too Old Suspended Free Space
Alertes sans seuil
(sans conservation
d'état)
Alerte
Basées sur des événements

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

Types d'alerte et effacement des alertes


Le serveur génère des alertes de deux types : alertes avec seuil et alertes sans seuil.
La plupart des alertes générées par le serveur sont configurées par la définition d'un seuil
d'avertissement et d'un seuil critique pour des mesures de performances de la base de données.
Vous pouvez définir des seuils pour plus de 120 mesures de performances, notamment :
• Physical Reads Per Sec
• User Commits Per Sec
• SQL Service Response Time
Toutes les mesures de performances sont liées aux instances, à l'exception de la mesure
Tablespace Space Usage, qui est liée à la base de données. Les alertes avec seuil sont
également appelées alertes avec conservation d'état (stateful). Elles sont effacées
automatiquement lorsque leur cause disparaît. Les alertes avec conservation d'état
apparaissent dans DBA_OUTSTANDING_ALERTS. Une fois effacées, elles sont transférées
vers DBA_ALERT_HISTORY.
Les autres alertes générées par le serveur correspondent à des événements propres à la base de
données, par exemple les erreurs ORA-*, "Snapshot Too Old", "Recovery Area Low On Free
Space" et "Resumable Session Suspended". Il s'agit d'alertes sans seuil, également appelées
alertes sans conservation d'état (stateless). Ces alertes vont directement dans la table
d'historique. L'effacement des alertes sans conservation d'état n'est pertinent que dans
l'environnement Database Control, car ce dernier stocke ces alertes dans son propre
référentiel.

Oracle Database 11g : Administration Workshop I 12 - 35


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• utiliser des statistiques
• gérer le référentiel AWR (Automatic Workload
Repository)
• utiliser le moniteur ADDM (Automatic Database
Diagnostic Monitor)

Oracle University and Catalyst Business Solutions use only


• décrire l'infrastructure de conseil
• définir des seuils d'alerte
• utiliser des alertes générées par le serveur
• utiliser des tâches automatisées

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

Oracle Database 11g : Administration Workshop I 12 - 36


Exercice 12 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Maintenance proactive

Dans cet exercice, vous allez effectuer des tâches


de gestion proactive de la base de données
à l'aide du moniteur ADDM, et notamment :
• configurer un problème pour analyse
• examiner les performances de la base de données
• implémenter une solution

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 12 - 37


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

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


Gérer les performances

Oracle University and Catalyst Business Solutions use only


Objectifs
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

A la fin de ce chapitre, vous pourrez :


• utiliser Enterprise Manager pour contrôler les
performances
• utiliser la gestion automatique de la mémoire
(AMM - Automatic Memory Management)
• utiliser Memory Advisor pour dimensionner

Oracle University and Catalyst Business Solutions use only


les mémoires tampon
• consulter les vues dynamiques des performances
• résoudre les problèmes concernant
des objets non valides et inutilisables

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

Oracle Database 11g : Administration Workshop I 13 - 2


> Contrôle des
Contrôler les performances performances
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Tuning Advisor
Access Advisor
Mémoire
Statistiques
Objets non valides

Problèmes
d'allocation
de mémoire

Contention des Contention


périphériques des
d'entrée/sortie ressources

Oracle University and Catalyst Business Solutions use only


?
Problèmes liés DBA Goulets
au code des d'étranglement
applications réseau

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

Contrôler les performances


Pour administrer une base de données Oracle Database 11g et garantir son bon
fonctionnement, l'administrateur de base de données (DBA) doit contrôler régulièrement ses
performances afin de localiser les goulets d'étranglement et corriger les problèmes.
Le DBA peut examiner des centaines d'indicateurs de performances, allant des performances
réseau au temps passé sur les opérations individuelles des applications, en passant par la
vitesse d'entrée/sortie (E/S) des disques. Ces indicateurs de performances sont généralement
appelés mesures de performances de la base de données.
Remarque : Pour plus d'informations sur les performances de la base de données Oracle,
reportez-vous au cours Oracle Database 11g : Tuning.

Oracle Database 11g : Administration Workshop I 13 - 3


Page Performance d'Enterprise Manager
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Page Performance d'Enterprise Manager


La page Performance d'Enterprise Manager désigne le portail menant à un ensemble d'outils
de réglage (tuning) et de contrôle des performances. La première série de graphiques figurant
sur cette page indique les processus en cours et l'activité de la session active. Le graphique
Average Active Sessions indique le niveau d'utilisation de la CPU, ainsi que les ressources qui
déclenchent le plus grand nombre d'événements Wait.
Dans l'écran présenté sur la diapositive ci-dessus, vous constatez une augmentation récente de
l'utilisation de la CPU et des événements Wait pour User I/O, System I/O et Concurrency.
Vous pouvez cliquer sur ces catégories pour afficher des détails sur les événements Wait
correspondants. Les données d'E/S sont réparties par type (par exemple, lecture du fichier
journal, écriture dans le fichier de contrôle, etc.)

Oracle Database 11g : Administration Workshop I 13 - 4


Page Performance d'Enterprise Manager
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Page Performance d'Enterprise Manager (suite)


Lorsque vous effectuez une hiérarchisation descendante sur une catégorie d'événements Wait
particulière, vous pouvez afficher les détails correspondant à un intervalle spécifique de cinq
minutes. De même, vous obtenez les listes Top Working SQL et Top Working Sessions
associées à l'événement Wait pour l'intervalle considéré. Vous pouvez ainsi réaliser une
analyse a posteriori des ralentissements du système et en déterminer les causes potentielles.

Oracle Database 11g : Administration Workshop I 13 - 5


Page Performance : Onglet Throughput
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Page Performance : Onglet Throughput


Dans la page Performance, vous pouvez cliquer sur les onglets Throughput et I/O pour
afficher respectivement les graphiques Instance Throughput Rate et Instance Disk I/O.
Dans la diapositive ci-dessus, l'onglet Throughput est sélectionné.

Oracle Database 11g : Administration Workshop I 13 - 6


Contrôler les performances : Option Top
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Sessions

Oracle University and Catalyst Business Solutions use only


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

Contrôler les performances : Option Top Sessions


Si vous cliquez sur Top Consumers dans la section Additional Monitoring Links, vous
accédez à la page Top Consumers.
La page Top Consumers Overview affiche sous forme graphique les informations suivantes :
• Principaux services consommateurs
• Principaux modules consommateurs (par service)
• Principales actions consommatrices (par service et par module)
• Principaux clients consommateurs
Cliquez sur l'onglet Top Sessions dans la page Top Consumers pour afficher des statistiques
critiques sur les sessions qui consomment le plus de ressources :
• CPU
• PGA Memory
• Logical Reads
• Physical Reads
• Hard Parses
• Disk Sorts
Si vous cliquez sur le nom d'une colonne, la statistique associée détermine l'ordre de tri de la
liste.
Dans la diapositive ci-dessus, les sessions sont triées en fonction du nombre de lectures
logiques (colonne Logical Reads). Vous constatez que c'est l'utilisateur JFV de la session 142
qui génère le plus grand nombre de lectures logiques à cet instant donné.

Oracle Database 11g : Administration Workshop I 13 - 7


Contrôler les performances : Option Top Services
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Contrôler les performances : Option Top Services


Dans les systèmes à plusieurs niveaux (multi-tiers), dans lesquels un serveur d'applications
regroupe les connexions de base de données, la consultation de la liste des sessions ne vous
fournit pas toujours les informations dont vous avez besoin pour analyser les performances.
Le regroupement des sessions par nom de service vous permet de contrôler plus précisément
les performances.
Dans l'exemple de la diapositive ci-dessus, on compte trois services : inventory, orcl et
hr. Dès lors qu'une connexion est établie via l'un de ces services, les données de
performances de la session sont capturées sous ce nom de service, quelle que soit la session
utilisée pour la demande. Sur les deux services (SH et SERV1) pris en compte dans la
diapositive, c'est le service SH qui a été le plus actif au cours de la période de cinq minutes
considérée.

Oracle Database 11g : Administration Workshop I 13 - 8


Contrôle des
Gérer les composants performances
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Tuning Advisor
de mémoire Access Advisor
> Mémoire
Statistiques
Objets non valides
• Gestion automatique de la mémoire (AMM)
– Permet de préciser la quantité totale de mémoire allouée à
l'instance (mémoires SGA et PGA comprises)
• Gestion automatique de la mémoire partagée (ASMM)
– Permet d'indiquer la mémoire SGA totale via un seul paramètre
d'initialisation
– Permet au serveur Oracle de gérer la quantité de mémoire

Oracle University and Catalyst Business Solutions use only


allouée au cache de tampons, à la zone de mémoire partagée,
ainsi qu'aux zones de mémoire Java, Streams et LARGE POOL
• Gestion manuelle de la mémoire partagée
– Dimensionne les composants par l'intermédiaire de plusieurs
paramètres d'initialisation
– Utilise Memory Advisor pour émettre des recommandations

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

Gérer les composants de mémoire


Oracle Database 11g vous permet de préciser, pour une instance donnée, l'allocation totale de
mémoire. Cette allocation est ensuite répartie dynamiquement entre les mémoires SGA
(System Global Area) et PGA (Program Global Area), en fonction des besoins. On parle alors
de gestion automatique de la mémoire (AMM - Automatic Memory Management). Il s'agit
d'une méthode qui simplifie la gestion de la mémoire, disponible uniquement sur les
plates-formes qui prennent en charge l'allocation dynamique de mémoire.
Il existe des fonctions de conseil pour la gestion de la mémoire qui vous permettent de définir
les paramètres d'initialisation à différents niveaux. Diverses fonctions sont disponibles, selon
le niveau auquel vous définissez les paramètres de mémoire. Si vous activez la gestion
automatique de la mémoire (AMM), seule la fonction de conseil Memory Size Advisor est
disponible.
La gestion automatique de la mémoire partagée (ASMM, Automatic Shared Memory
Management) permet de gérer l'ensemble de la mémoire SGA.
Celle-ci comporte plusieurs composants dont la taille est ajustée dynamiquement pour
garantir les meilleures performances tout en respectant les limites des paramètres
d'initialisation. Si vous optez pour la gestion automatique de la mémoire (AMM), l'option
ASMM est automatiquement activée. En revanche, si vous activez uniquement ASMM (sans
AMM), la fonction de conseil SGA Size Advisor est alors disponible.
Vous pouvez également gérer la taille de chaque composant manuellement en définissant le
paramètre d'initialisation associé à chacun d'eux. Si le serveur Oracle vous signale un
problème de performances lié à la taille d'un composant SGA ou PGA, vous pouvez utiliser
Memory Advisor pour déterminer des paramètres mieux appropriés. Memory Advisor peut
modéliser l'incidence des modifications de paramètres.

Oracle Database 11g : Administration Workshop I 13 - 9


Activer la gestion automatique de la mémoire
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

(AMM)

Cliquez sur Enable pour


activer la gestion
automatique de la mémoire.

Oracle University and Catalyst Business Solutions use only


Utilisez la fonction Memory
Size Advisor

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

Activer la gestion automatique de la mémoire (AMM)


Si vous n'avez pas activé la gestion automatique de la mémoire (AMM - Automatic Memory
Management) lors de la configuration de la base de données, vous pouvez le faire en
procédant comme suit :
1. Dans la page d'accueil de la base de données, cliquez sur l'onglet Server.
2. Dans la région Database Configuration, cliquez sur Memory Advisors.
La page Memory Advisors apparaît alors.
3. Cliquez sur Enable en regard de l'option Automatic Memory Management.
La page Enable Automatic Memory Management s'affiche.
4. Indiquez les valeurs des paramètres Total Memory Size et Maximum Memory Size pour
la gestion automatique de la mémoire.
Remarque : Si vous changez la valeur du champ Maximum Memory Size, vous devez
redémarrer l'instance.
5. Cliquez sur OK.
Vous pouvez augmenter la taille de la mémoire ultérieurement en incrémentant la valeur du
champ Total Memory Size ou du paramètre d'initialisation MEMORY_TARGET. Vous devez
toutefois respecter la limite fixée par le champ Maximum Memory Size ou le paramètre
MEMORY_MAX_TARGET. Pour plus d'informations, reportez-vous au manuel Oracle
Database Administrator's Guide.
Une fois que vous avez activé la gestion automatique de la mémoire (AMM), vous disposez
de la fonction de conseil Memory Size Advisor pour ajuster les paramètres de taille de la
mémoire.
Remarque : Oracle recommande d'utiliser AMM pour simplifier les tâches de gestion de la
mémoire.

Oracle Database 11g : Administration Workshop I 13 - 10


Activer la gestion automatique
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de la mémoire partagée (ASMM)

Cliquez sur Enable


pour activer la gestion
automatique de la
mémoire partagée.

Oracle University and Catalyst Business Solutions use only


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

Activer la gestion automatique de la mémoire partagée (ASMM)


La gestion automatique de la mémoire partagée (ASMM - Automatic Shared Memory
Management) est activée automatiquement si vous avez sélectionné la gestion automatique de
la mémoire (AMM - Automatic Memory Management). Si vous n'avez pas activé l'option
AMM, ou si vous n'avez pas activé l'option ASMM lors de la configuration de la base de
données, procédez de la manière suivante :
1. Dans la page d'accueil de la base de données, cliquez sur l'onglet Server.
2. Dans la région Database Configuration, cliquez sur Memory Advisors.
La page Memory Advisors apparaît alors.
3. Faites défiler la page jusqu'à la section SGA. Cliquez sur Enable en regard de l'option
Automatic Shared Memory Management.
La page Enable Automatic Shared Memory Management s'affiche.
4. Indiquez la taille totale de la mémoire SGA. Cliquez sur OK.
Vous pouvez augmenter la taille de la mémoire partagée ultérieurement en incrémentant la
valeur du champ Total SGA Size ou du paramètre d'initialisation SGA_TARGET. Vous devez
toutefois respecter la limite fixée par le champ Maximum SGA Size ou le paramètre
SGA_MAX_SIZE. Pour plus d'informations, reportez-vous au manuel Oracle Database
Administrator's Guide.
Quand l'option AMM est désactivée, la fonction de conseil relative à la mémoire PGA
(Program Global Area) est accessible. Il est recommandé d'utiliser cette fonction pour définir
la taille de la mémoire PGA. Cliquez sur l'onglet PGA pour accéder à la page de propriétés
correspondante. Cliquez sur Advice pour appeler PGA Advisor.
Remarque : Oracle recommande d'utiliser ASMM pour simplifier les tâches de gestion de la
mémoire.

Oracle Database 11g : Administration Workshop I 13 - 11


Fonction de conseil ASMM
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Fonction de conseil ASMM


Lorsque la gestion automatique de la mémoire partagée (ASMM – Automatic Shared Memory
Management) est activée, vous ne pouvez définir les paramètres d'initialisation des différents
composants de la mémoire partagée qui sont gérés par ASMM. L'activation de cette fonction
vous permet de bénéficier de la fonction de conseil SGA Size Advisor qui vous aide à choisir
la taille totale la plus appropriée pour la mémoire SGA.
Si vous avez activé l'option ASMM, aucun paramètre d'initialisation ne doit être défini au
préalable pour les composants gérés. Si, après avoir constaté les effets de l'allocation de
mémoire effectuée par ASMM, vous décidez d'ajuster la mémoire allouée à certains
composants, vous pouvez indiquer des valeurs pour ces derniers. Celles-ci sont traitées
comme des valeurs minimales pour les composants concernés. Cette option limite la quantité
de mémoire susceptible d'être ajustée automatiquement, mais s'avère particulièrement utile si
votre environnement requiert un dimensionnement spécial non satisfait par ASMM.
Les paramètres d'initialisation à prendre en compte sont les suivants :
• SHARED_POOL_SIZE
• LARGE_POOL_SIZE
• JAVA_POOL_SIZE
• DB_CACHE_SIZE
• STREAMS_POOL_SIZE

Pour définir ces paramètres lorsque la fonction ASMM est activée, vous devez utiliser la
commande ALTER SYSTEM.

Oracle Database 11g : Administration Workshop I 13 - 12


Configurer manuellement les composants
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

de la mémoire partagée

Oracle University and Catalyst Business Solutions use only


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

Configurer manuellement les composants de la mémoire partagée


Si vous n'utilisez pas la gestion automatique de la mémoire partagée (ASMM - Automatic
Shared Memory Management), vous devez fournir des valeurs pour chaque composant de la
mémoire SGA lors de l'installation et de la création de la base de données.
Pour ajuster les paramètres relatifs à la mémoire :
1. Accédez à la page Memory Advisors en cliquant sur le lien Memory Parameters dans la
région Database Configuration.
2. Appelez la fonction de conseil (advisor) de votre choix en cliquant sur le bouton Advice
en regard du composant concerné.
Cliquez sur Help pour consulter l'aide en ligne afin d'obtenir des informations
supplémentaires sur le fonctionnement de la fonction de conseil.
3. Dans les champs relatifs au composant, entrez les nouvelles valeurs résultant de la
fonction de conseil ou de votre propre analyse.

Oracle Database 11g : Administration Workshop I 13 - 13


Utiliser les fonctions de conseil sur la mémoire
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Oracle University and Catalyst Business Solutions use only


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

Utiliser les fonctions de conseil sur la mémoire


Les fonctions de conseil (advisors) sur la mémoire associées aux différents composants vous
permettent de régler la taille des structures mémoire. Vous ne pouvez les utiliser que si les
fonctions de gestion automatique de la mémoire (AMM) et de la mémoire partagée (ASMM)
sont désactivées.
Memory Advisor se compose de trois fonctions de conseil, accessibles à partir d'Enterprise
Manager, qui fournissent des recommandations sur les structures mémoire suivantes :
• Zone de mémoire partagée dans la mémoire SGA (System Global Area)
• Cache de tampons (buffer cache) dans la mémoire SGA
Pour appeler les fonctions de conseil relatives à la mémoire :
1. Dans la région Related Links de la page d'accueil Database, cliquez sur Advisor Central.
2. Cliquez sur Memory Advisor dans la page Advisor Central.
La page Memory Advisors décompose l'utilisation de la mémoire SGA.
Remarque : Vous devez désactiver la gestion automatique de la mémoire partagée
(Automatic Shared Memory Management) pour exécuter les différentes fonctions de
conseil.
3. Cliquez sur Advice en regard de la valeur Shared Pool ou Buffer Cache afin d'appeler la
fonction de conseil correspondante.

Oracle Database 11g : Administration Workshop I 13 - 14


Utiliser les fonctions de conseil sur la mémoire (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Toutes les fonctions de conseil (advisors) sur la mémoire sont accessibles à partir de
SQL*Plus via les vues V$* associées. Il existe quatre vues pour les composants SGA
réglables automatiquement.
Pour dimensionner les principaux composants de la mémoire SGA, Oracle Database fournit
les nouvelles fonctions de conseil suivantes :
• V$DB_CACHE_ADVICE : Liste des lignes qui prédisent le nombre d'opérations de
lecture physique et leur durée pour la taille de cache associée à chaque ligne
• V$SHARED_POOL_ADVICE : Informations relatives au temps d'analyse (parse) estimé
dans la zone de mémoire partagée, en fonction de la taille de celle-ci
• V$JAVA_POOL_ADVICE : Informations relatives au temps estimé de chargement des

Oracle University and Catalyst Business Solutions use only


classes dans la zone de mémoire Java, en fonction de la taille de celle-ci
• V$STREAMS_POOL_ADVICE : Estimation du nombre de messages placés dans la zone
de mémoire Streams ou qui en ont été extraits, et du temps associé à ces activités pour
différentes tailles de zone de mémoire Streams
Remarque : Pour plus d'informations sur ces vues, reportez-vous à la documentation Oracle
Database Reference.
Exemple d'instruction SQL permettant d'accéder à une fonction de conseil sur la mémoire :

SQL> SELECT size_for_estimate, estd_physical_read_factor


> FROM V$DB_CACHE_ADVICE;

SIZE_FOR_ESTIMATE ESTD_PHYSICAL_READ_FACTOR
----------------- -------------------------
16 4.0296
32 2.4861
48 1.7561
64 1.0993
80 1.0017
96 1
112 1
128 1
144 1
160 1
176 1
192 1
208 1
224 1
240 1
256 1
272 1
288 1
304 1
320 1

Oracle Database 11g : Administration Workshop I 13 - 15



Statistiques dynamiques Access Advisor
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Mémoire
des performances > Statistiques
Objets non valides

Niveau système Niveau session Niveau service

V$SYSSTAT V$SESSTAT V$SERVICE_STATS


• statistic# • sid • service_name_hash
• name • statistic# • service_name
• class • value • stat_id
• value • stat_name
• stat_id • value

Oracle University and Catalyst Business Solutions use only


V$SYSTEM_EVENT V$SESSION_EVENT V$SERVICE_EVENT
• event • sid • service_name
• total_waits • event • service_name_hash
• total_timeouts • total_waits • event
• time_waited • total_timeouts • event_id
• average_wait • time_waited • total_waits
• time_waited_micro • average_wait • total_timeouts
• max_wait • time_waited
Statistiques cumulées • time_waited_micro • average_wait
• event_id • time_waited_micro
Evénements Wait

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

Statistiques dynamiques des performances


Vous devez disposer de statistiques pour pouvoir analyser les problèmes de performances.
Le serveur Oracle génère différents types de statistiques à différents niveaux de détail.
Aux niveaux système, session et service, il calcule les événements Wait et des statistiques
cumulées. Sur la diapositive ci-dessus, les vues du haut présentent les statistiques cumulées.
Les vues du bas présentent les événements Wait.
Lorsque vous analysez un problème de performances à l'un de ces trois niveaux, vous évaluez
généralement l'évolution des statistiques (différentiel) sur la période considérée. Tous les
événements Wait possibles sont catalogués dans la vue V$EVENT_NAME tandis que toutes les
statistiques sont cataloguées dans la vue V$STATNAME. Environ 480 statistiques sont
disponibles dans Oracle Database.

Oracle Database 11g : Administration Workshop I 13 - 16


Statistiques dynamiques des performances (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Afficher les statistiques au niveau système


Exemple :
SQL> SELECT name, class, value FROM v$sysstat;
NAME CLASS VALUE
------------------------------- ------ ----------
...
table scans (short tables) 64 135116
table scans (long tables) 64 250
table scans (rowid ranges) 64 0
table scans (cache partitions) 64 3
table scans (direct read) 64 0

Oracle University and Catalyst Business Solutions use only


table scan rows gotten 64 14789836
table scan blocks gotten 64 558542
...
Les statistiques au niveau système sont classées en fonction du type de réglage (tuning) et de
l'objectif du débogage. Les différentes classes concernent l'activité générale de l'instance,
l'activité du tampon de journalisation (redo log buffer), le verrouillage, l'activité du cache de
tampons (buffer cache) de la base de données, etc.

Oracle Database 11g : Administration Workshop I 13 - 17


Vues de résolution des problèmes et de réglage
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Instance/Base de données Disque


V$DATABASE V$DATAFILE
V$INSTANCE V$FILESTAT
V$PARAMETER V$LOG
V$SPPARAMETER V$LOG_HISTORY
V$SYSTEM_PARAMETER V$DBFILE
V$PROCESS V$TEMPFILE

Oracle University and Catalyst Business Solutions use only


V$BGPROCESS V$TEMPSEG_USAGE
V$PX_PROCESS_SYSSTAT V$SEGMENT_STATISTICS
V$SYSTEM_EVENT
Contention
Mémoire V$LOCK
V$BUFFER_POOL_STATISTICS V$UNDOSTAT
V$LIBRARYCACHE V$WAITSTAT
V$SGAINFO V$LATCH
V$PGASTAT

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

Vues de résolution des problèmes et de réglage


La diapositive ci-dessus répertorie certaines des vues qui peuvent vous aider à déterminer la
cause de problèmes de performances ou à analyser le statut en cours de la base de données.
Pour obtenir une description complète de ces vues, reportez-vous au manuel Oracle Database
Reference.

Oracle Database 11g : Administration Workshop I 13 - 18


Contrôle des
Objets non valides performances
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Tuning Advisor
et inutilisables Access Advisor
Mémoire
Statistiques
> Objets non valides
Incidence sur les performances :
• Les objets de code PL/SQL sont recompilés.
• Les index sont regénérés.

Oracle University and Catalyst Business Solutions use only


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

Objets non valides et inutilisables


Les objets PL/SQL non valides et les index inutilisables jouent sur les performances. Un objet
PL/SQL non valide doit être recompilé pour pouvoir être utilisé. Outre la tentative d'accès au
package, à la procédure ou à la fonction PL/SQL, il faut compter le temps nécessaire à
l'exécution de la recompilation. Si la recompilation du code PL/SQL n'aboutit pas, une erreur
est alors générée. Les index inutilisables sont ignorés par l'optimiseur. Si les performances
d'une instruction SQL dépendent d'un index signalé comme inutilisable, celles-ci continueront
à être dégradées tant que cet index n'aura pas été regénéré.
Objets PL/SQL non valides : Vous pouvez consulter le statut des objets PL/SQL en
interrogeant le dictionnaire de données. Pour rechercher les objets PL/SQL non valides :
SELECT object_name, object_type FROM DBA_OBJECTS
WHERE status = 'INVALID';
Par défaut, la mesure Owner's Invalid Object Count est vérifiée toutes les 24 heures. Si, pour
un même propriétaire, cette valeur est supérieure à 2, une alerte est générée.
Si vous trouvez des objets PL/SQL dont le statut est INVALID, la première question à vous
poser est de savoir si cet objet a déjà présenté le statut VALID. Il est fréquent que le
développeur d'une application néglige de nettoyer le code qui ne fonctionne pas. Si l'objet
PL/SQL est non valide en raison d'une erreur de code, vous n'avez guère d'autre option que
d'attendre que l'erreur soit résolue.

Oracle Database 11g : Administration Workshop I 13 - 19


Objets non valides et inutilisables (suite)
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Si la procédure a été valide par le passé mais qu'elle a cessé de l'être récemment, vous avez
deux moyens de résoudre le problème :
• Ne rien faire. La plupart des objets PL/SQL sont, si nécessaire, recompilés
automatiquement lors d'un appel. Les utilisateurs perçoivent simplement un léger
ralentissement dû à la recompilation des objets. (Dans la plupart des cas, ce
ralentissement n'est même pas perceptible.)
• Recompiler manuellement l'objet non valide.
Les objets PL/SQL non valides peuvent être recompilés manuellement via Enterprise
Manager ou par l'intermédiaire de commandes SQL :
ALTER PROCEDURE HR.add_job_history COMPILE;

Oracle University and Catalyst Business Solutions use only


La recompilation manuelle de packages PL/SQL se fait en deux étapes :
ALTER PACKAGE HR.maintainemp COMPILE;
ALTER PACKAGE HR.maintainemp COMPILE BODY;
Index inutilisables : Vous pouvez rechercher les index non valides en interrogeant la vue du
dictionnaire de données DBA_INDEXES :
SELECT index_name, table_name FROM DBA_INDEXES
WHERE status = 'UNUSABLE';
Le statut des index partitionnés est stocké dans la vue DBA_IND_PARTITIONS.
Les index inutilisables sont rendus valides dès lors qu'ils sont regénérés pour recalculer les
pointeurs. La regénération d'un index inutilisable recrée l'index dans un nouvel emplacement,
l'index inutilisable étant par la suite supprimé. Cette opération peut être effectuée via
Enterprise Manager ou par l'intermédiaire de commandes SQL :
ALTER INDEX HR.emp_empid_pk REBUILD;
ALTER INDEX HR.emp_empid_pk REBUILD ONLINE;
ALTER INDEX HR.email REBUILD TABLESPACE USERS;
Si la clause TABLESPACE est omise, l'index est regénéré dans le même tablespace. La clause
REBUILD ONLINE permet aux utilisateurs de continuer à mettre à jour la table d'index en
même temps que celle-ci est regénérée. (Sans le mot-clé ONLINE, les utilisateurs doivent
attendre la fin de la regénération pour effectuer une opération LMD sur la table concernée.
Si l'index est inutilisable, il n'est pas exploité lors de sa regénération, même si le mot-clé
ONLINE est utilisé.)
Enterprise Manager utilise l'action Reorganize pour réparer un index UNUSABLE.
Remarque : Vous devez libérer de l'espace pour pouvoir regénérer un index. Assurez-vous
donc que l'espace libre est suffisant avant de procéder à cette opération. Enterprise Manager
vérifie automatiquement les besoins en termes d'espace.

Oracle Database 11g : Administration Workshop I 13 - 20


Synthèse
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Ce chapitre vous a permis d'apprendre à :


• utiliser Enterprise Manager pour contrôler les
performances
• utiliser la gestion automatique de la mémoire
(AMM - Automatic Memory Management)
• utiliser Memory Advisor pour dimensionner

Oracle University and Catalyst Business Solutions use only


les mémoires tampon
• consulter les vues dynamiques des performances
• résoudre les problèmes concernant des objets
non valides et inutilisables

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

Oracle Database 11g : Administration Workshop I 13 - 21


Exercice 13 :
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY. COPYING eKIT MATERIALS FROM THIS COMPUTER IS STRICTLY PROHIBITED

Contrôler et optimiser les performances

Dans cet exercice, vous allez :


• détecter et réparer les index inutilisables
• utiliser la page Performance d'Enterprise Manager

Oracle University and Catalyst Business Solutions use only


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

Oracle Database 11g : Administration Workshop I 13 - 22

Vous aimerez peut-être aussi