ORACLE 11G – Administration

publicité
ORACLE 11G – Administration
XEROX formation
Page 1
ORACLE 11G – Administration
Table des Matières
I. GENERALITES .................................................................................................................................... 7
I.1 DEFINITION............................................................................................................................................ 7
I.1.1 LES DISTRIBUTIONS D'ORACLE 11G ..................................................................................................... 7
I.2 NUMEROTATION DE VERSION (DEPUIS ORACLE9I RELEASE 2)........................................................... 8
I.3 L'ORGANISATION EN COUCHES D'ORACLE11G .................................................................................... 8
I.4 ORGANISATION DU DICTIONNAIRE DE DONNEES .................................................................................. 9
I.5 TACHES DE L’ADMINISTRATEUR (DBA) ................................................................................ 10
I.6 LES OUTILS D'ADMINISTRATION............................................................................................. 10
I.7 INSTALLATION DES COMPOSANTS ORACLE (11G) ............................................................................. 11
I.7.1 PREREQUIS MATERIELS ET LOGICIELS ................................................................................................ 11
I.7.2 INSTALLATION DU LOGICIEL ORACLE (ORACLE HOME) ...................................................................... 11
I.7.3 TACHES DE POST-INSTALLATION ....................................................................................................... 11
I.8 ORGANISATION DES COMPOSANTS PHYSIQUES D’ORACLE .......................................... 12
I.8.1 OPTIMAL FLEXIBLE ARCHITECTURE .................................................................................................. 12
I.8.2 LE REPERTOIRE DE L’ ORACLE_BASE .............................................................................................. 12
I.8.3 LE REPERTOIRE DE L’ ORACLE_HOME ............................................................................................ 12
I.8.4 LE REPERTOIRE ORADATA .............................................................................................................. 12
I.8.5 LE RÉPERTOIRE FLASH_RECOVERY_AREA ................................................................................ 13
I.8.6 LE RÉPERTOIRE ADMIN .................................................................................................................... 13
I.9 LA STRUCTURE ADR (AUTOMATIC DIAGNOSTIC REPOSITORY) ...................................................... 14
I.9.1 LES SOUS-REPERTOIRES DU ADR HOME ............................................................................................ 15
I.9.2 LE FICHIER ALERT ........................................................................................................................... 15
I.9.3 LES FICHIERS TRACES ..................................................................................................................... 15
I.9.4 LES FICHIERS CORE .......................................................................................................................... 15
I.10 L’UTILITAIRE ADRCI (ADR COMMAND INTERPRETER) ............................................................... 16
II. CONNEXION A UN SERVEUR ORACLE .................................................................................... 17
II.1 TYPES DE CONNEXION A UN SERVEUR ORACLE ............................................................................. 17
II.1.1 CONNEXION LOCALE......................................................................................................................... 18
II.1.2 CONNEXION RESEAU : MODE "SERVEUR DEDIE" ............................................................................... 19
II.1.3 CONNEXION RESEAU : MODE "SERVEUR PARTAGE" .......................................................................... 20
II.1.4 ROLE DU "PROCESS SERVER" ............................................................................................................ 21
II.1.5 MODIFICATION DES PARAMETRES D'UNE SESSION ............................................................................. 21
II.1.6 STRUCTURE DE LA PGA (PROGRAM GLOBAL AREA)........................................................................ 22
III. STRUCTURE D’UNE INSTANCE ................................................................................................ 24
III.1
III.2
III.2.1
III.2.2
III.2.3
III.2.4
III.2.5
III.2.6
III.3
III.3.1
COMPOSANTS D'UNE INSTANCE ........................................................................................... 24
STRUCTURE DE LA S.G.A ................................................................................................................. 25
LA FIXED SGA ................................................................................................................................. 25
LE DATABASE BUFFER CACHE .................................................................................................. 26
LE SHARED POOL ....................................................................................................................... 28
LE REDO LOG BUFFER ............................................................................................................... 30
LE LARGE POOL .......................................................................................................................... 30
LE JAVA POOL ............................................................................................................................. 30
TUNING AUTOMATIQUE DE LA MEMOIRE ALLOUEE A L’INSTANCE ................................................ 31
TUNING GLOBAL DE LA SGA ET DES PGA (AMM) ......................................................................... 32
XEROX formation
Page 2
ORACLE 11G – Administration
Table des Matières
III.3.2
III.4
III.4.1
III.4.2
III.4.3
III.4.4
III.4.5
III.5
III.5.1
III.5.2
III.5.3
III.5.4
TUNING PERSONNALISE DE LA SGA ET DES PGA (ASMM) ............................................................ 33
LES PROCESSUS OBLIGATOIRES .......................................................................................... 34
LE PROCESSUS DATABASE WRITER (DBWN) ................................................................................. 35
LE PROCESSUS LOG WRITER (LGWR) ........................................................................................... 35
LE PROCESSUS CHECK POINT (CKPT) ........................................................................................... 36
LE PROCESSUS SYSTEM MONITOR (SMON) ................................................................................... 36
LE PROCESSUS PROCESS MONITOR (PMON) ................................................................................. 37
LES PROCESSUS FACULTATIFS ............................................................................................. 37
LE PROCESSUS ARCHIVER (ARCN) ................................................................................................ 37
LE PROCESSUS LISTENER ............................................................................................................. 37
LE PROCESSUS RECO ..................................................................................................................... 37
PROCESSUS DIVERS ......................................................................................................................... 37
IV. DEMARRAGE/ARRET D'UNE INSTANCE ............................................................................... 38
IV.1 MISE EN ŒUVRE DU COUPLE INSTANCE/BASE ................................................................................. 39
IV.1.1 DEMARRAGE DE L'INSTANCE (NOMOUNT) ....................................................................................... 40
IV.1.2 MONTAGE DE LA BASE DE DONNEES (MOUNT) ................................................................................ 40
IV.1.3 OUVERTURE DE LA BASE DE DONNEES (OPEN) ................................................................................. 40
IV.2 FERMETURE DE BASE ET ARRET D'INSTANCE ................................................................. 41
IV.3 LES PARAMETRES D'INSTANCE............................................................................................. 42
IV.3.1 CREATION ET MISE A JOUR DES FICHIERS DE PARAMETRES .............................................................. 42
IV.3.2 MODIFICATION DES PARAMETRES D'INSTANCE DYNAMIQUES .................................................... 43
IV.3.3 MODIFICATION DES PARAMETRES D'INSTANCE STATIQUES ......................................................... 43
V. ARCHITECTURE D'UNE BASE ORACLE .................................................................................. 44
V.1 LES STRUCTURES PHYSIQUES ............................................................................................................ 45
V.2 LES STRUCTURES LOGIQUES .............................................................................................................. 46
VI. LES STRUCTURES PHYSIQUES ................................................................................................. 47
VI.1 LE FICHIER DE CONTROLE ..................................................................................................... 47
VI.1.1 CREATION DU FICHIER DE CONTROLE .............................................................................................. 47
VI.1.2 MANIPULATIONS DE FICHIER(S) DE CONTROLE ................................................................................ 47
VI.1.3 CREATION DE NOUVEAU(X) FICHIER(S) DE CONTROLE .................................................................... 48
VI.1.4 SUPPRESSION DE FICHIER(S) DE CONTROLE ..................................................................................... 48
VI.2 LES JOURNAUX DE REPRISE EN LIGNE ............................................................................... 49
VI.2.1 CONTENU ET FONCTIONNEMENT DES JOURNAUX EN LIGNE ............................................................. 50
VI.2.2 MANIPULATIONS DES REDO LOG FILES ........................................................................................... 51
VI.3 LES JOURNAUX DE REPRISE ARCHIVES ............................................................................. 52
VI.4 LES FICHIERS DE DONNEES ..................................................................................................... 53
VII. LES STRUCTURES LOGIQUES D'UNE BASE ORACLE ...................................................... 54
VII.1 LES TABLESPACES .................................................................................................................... 54
VII.1.1 ORGANISATION DES DONNEES A TRAVERS LES TABLESPACES ........................................................ 54
VII.1.2 METHODES DE GESTION DE L’ESPACE DES TABLESPACES ............................................................... 56
XEROX formation
Page 3
ORACLE 11G – Administration
Table des Matières
VII.1.3 ESPACE DES TABLESPACES GERES LOCALEMENT............................................................................ 56
VII.2 GESTION DES TABLESPACES PERMANENTS.................................................................... 57
VII.2.1 LES TABLESPACES "UTILISATEUR" ................................................................................................. 57
VII.2.2 LES TABLESPACES SYSTEM ET SYSAUX.................................................................................... 59
VII.2.3 LE TABLESPACE "UNDO" ............................................................................................................. 59
VII.3 LES TABLESPACES TEMPORAIRES ..................................................................................... 60
VII.3.1 ROLE DE TABLESPACES TEMPORAIRES ........................................................................................... 60
VII.3.2 NOTION DE GROUPE DE TABLESPACES TEMPORAIRES (V10G) ....................................................... 60
VII.3.3 GESTION DE TABLESPACES TEMPORAIRES ...................................................................................... 60
VII.4 MANIPULATIONS DE FICHIERS DE DONNEES ................................................................. 62
VIII. CREATION D'UNE BASE ORACLE 11G................................................................................. 63
VIII.1
VIII.1.1
VIII.1.2
VIII.1.3
VIII.2
VIII.3
VIII.4
VIII.5
ETAPES PREALABLES .................................................................................................................... 63
L'OUTIL ORADIM ....................................................................................................................... 63
L'OUTIL ORAPWD ...................................................................................................................... 64
LE FICHIER DE PARAMETRES INITSID.ORA ..................................................................................... 65
CONNEXION ET DEMARRAGE DE LA NOUVELLE INSTANCE ................................... 66
CREATION DE LA BASE DE DONNEES ............................................................................... 66
TACHES SUPPLEMENTAIRES.......................................................................................................... 67
TACHES DE "POST-INSTALLATION" ............................................................................................. 67
IX. GESTION DE L’ESPACE DISQUE............................................................................................... 68
IX.1 LE SCHEMA ET SES OBJETS............................................................................................................... 68
IX.2 NOTION DE SEGMENT ................................................................................................................... 69
IX.3 LES SEGMENTS UTILISATEUR ................................................................................................ 69
IX.3.1 TYPES DE SEGMENTS UTILISATEUR.................................................................................................. 69
IX.3.2 CREATION D’UN SEGMENT .............................................................................................................. 70
IX.4 GESTION DE L’ESPACE D’UN SEGMENT UTILISATEUR ................................................. 72
IX.4.1 STRUCTURE DU BLOC ORACLE ........................................................................................................ 72
IX.4.2 STRUCTURE D’UNE LIGNE DE DONNEES ............................................................................. 73
IX.4.3 STRUCTURE DU ROWID ................................................................................................................. 73
IX.4.4 ALLOCATION/DESALLOCATION D'EXTENTS ..................................................................................... 74
IX.5 LES SEGMENTS UNDO ................................................................................................................ 77
IX.6 LES SEGMENTS TEMPORAIRES .............................................................................................. 77
IX.6.1 « ETAT DE SANTE » DE LA BASE : HEALTH CHECK MONITOR (DEPUIS V11G) ................................. 78
X. COMMUNICATION RESEAU ET REPARTITION .................................................................... 79
X.1 ORACLE NET : ARCHITECTURE GENERALE .................................................................................. 79
X.1.1 ORACLE NET EN SERVEUR DEDIE..................................................................................................... 80
X.2 BASES DE DONNEES REPARTIES (DATABASE LINK)............................................................................ 82
X.2.1 CREATION D'UN DATABASE LINK ...................................................................................................... 82
X.2.2 LES TRANSACTIONS DISTRIBUEES ..................................................................................................... 83
XI. ADMINISTRATION DE LA SECURITE D'UNE BASE ORACLE .......................................... 84
XEROX formation
Page 4
ORACLE 11G – Administration
Table des Matières
XI.1 LES TACHES DU DBA. ...................................................................................................................... 84
XI.2 LES ROLES ........................................................................................................................................ 85
XI.2.1 EXPLOITATION DES ROLES .............................................................................................................. 87
XI.2.2 MANIPULATIONS DE ROLES ............................................................................................................. 88
XI.3 GESTION DES PRIVILEGES ................................................................................................................ 89
XI.3.1 LES PRIVILEGES SYSTEME ............................................................................................................... 89
XI.3.2 LES PRIVILEGES SUR OBJETS ............................................................................................................ 90
XI.4 LES COMPTES UTILISATEUR (SCHEMAS) .......................................................................................... 91
XI.5 GESTION DES RESSOURCES PAR LES PROFILS .................................................................................. 93
XEROX formation
Page 5
ORACLE 11G – Administration
Oracle 11G - ADMINISTRATION
XEROX formation
Page 6
ORACLE 11G – Administration
Généralités
I. GENERALITES
I.1
Définition
Oracle11g est un Système de Gestion de Bases de Données Relationnel Orienté Objet (SGBDR/OO),
proposé sur différentes plates-formes (Unix/Linux, Windows, VMS ...).
I.1.1
Les distributions d'Oracle 11G
Oracle Database 11g Standard Edition ONE : Utilisable sur un serveur hébergeant au maximum 2
processeurs, elle inclut une base de données pré-configurée, les services de réseau standards, la console
Oracle Entreprise Manager et certains utilitaires Oracle. Elle permet le développement d'applications
client/serveur et intranet classiques.
Oracle Database 11g Standard Edition : Utilisable sur des serveurs « seuls » ou en «cluster» (4
processeurs maxi). Cette distribution inclut désormais l’option Oracle Real Application Cluster (sans
coût supplémentaire).
Oracle Database 11g Entreprise Edition : Utilisable sur des serveurs « seuls » ou en «cluster» (nombre
de processeurs illimité), cette édition propose toutes les options Oracle soumises à licence, dont certaines
sont disponibles pour un coût supplémentaire : RAC (Real Application Cluster), Oracle Partitioning,
OLAP (Informatique Décisionnelle), Datawarehousing, Oracle Tuning Pack, Advanced Security....
Express Edition : Edition gratuite qui inclut une base de données pré-configurée, assortie de quelques
limites (un seul processeur utilisé, une seule base dont la taille est limitée à 4Go, pas d'OEM, taille
mémoire limitée à 1Go, pas d’upgrade ni de support technique prévus...).
Personal Edition : Identique à Enterprise Edition, mais limitée à un poste de travail (sur plateforme
windows, uniquement).
Les produits Oracle sont vendus selon 2 modes de licences :
 Utilisateurs nommés, prenant en compte le nombre de personnes se connectant aux bases de données.
 Processeurs, prenant en compte le nombre de processeurs du serveur hébergeant le logiciel Oracle. Ce
mode est particulièrement adapté aux architectures « trois tiers » dont le nombre de clients est
difficilement connu, ou lorsque le nombre de personnes accédant à la base de données est très
important. Un tarif spécifique est appliqué aux puces dite « multi-core » (Power, Intel, AMD, etc…).
(Documentation de référence : Oracle® Database Licensing Information)
XEROX formation
Page 7
ORACLE 11G – Administration
Généralités
I.2
Numérotation de Version (depuis Oracle9i Release 2)
11.2.0.2.0
N° de Version
N° de Release
(serveur BD)
N° de Release
(serveur Appli.)
Les 2 derniers chiffres correspondent, aux « patchs » Oracle et O.S. La vue du dictionnaire
PRODUCT_COMPONENT_VERSION permet d’afficher les informations relatives aux composants installés.
PRODUCT
-----------------------------------------NLSRTL
Oracle Database 11g Enterprise Edition
PL/SQL
TNS for 32-bit Windows:
I.3
VERSION
------------11.2.0.1.0
11.2.0.1.0
11.2.0.1.0
11.2.0.1.0
STATUS
----------Production
Production
Production
Production
L'organisation en couches d'Oracle11g
Noyau
Noyau Oracle
Dictionnaire
de Données
Référence l'ensemble des objets et ressources constituant une base de
données. Il appartient au schéma SYS.
SQL
Structured Query Language : langage de requêtes.
Outils et
langages
Moyens mis en œuvre pour adresser des requêtes SQL au noyau.
XEROX formation
Page 8
ORACLE 11G – Administration
Généralités
Organisation du dictionnaire de données
Le dictionnaire de données est créé par le CREATE DATABASE. C'est un ensemble de tables qui permet de
répertorier tous les objets et les ressources d'une base de données. Il est accessible grâce à des vues et des
synonymes. Les segments du dictionnaire de données sont stockés dans le tablespace SYSTEM. Tous les
objets du dictionnaire de données appartiennent au schéma SYS.
Il existe deux types de vues :
 Les VUES STATIQUES, référencées dans le dictionnaire. Elles regroupent trois familles :
 USER_XXXX, fournissant des informations sur les ressources et objets dont l'utilisateur connecté est
propriétaire.
 ALL_XXXX, fournissant des informations sur les ressources et objets pour lesquels l'utilisateur
connecté dispose de droits.
 DBA_XXXX, fournissant des informations sur toutes les ressources et objets (rôle DBA requis).
 Les VUES DYNAMIQUES, qui sont créées au démarrage de l’instance. Elles pointent sur la SGA
ou sur le fichier de contrôle. Elles sont accessibles même si la base est fermée.
Elles regroupent deux familles :
 V$xxxx, pour les vues spécifiques à une instance.
 GV$xxx, pour les vues globales dans le cas du R.A.C.
Il existe trois vues spécifiques fournissant des informations sur les vues du dictionnaire :
 V$FIXED_TABLE pointant sur la liste des vues dynamiques (depuis la V11G).
 DICTIONARY pointant sur la liste des vues statiques.
 DICT_COLUMNS pointant sur la liste des colonnes des vues dynamiques et statiques.
Exemple 01 : Nombre de vues dynamiques
SELECT COUNT(*)
FROM
V$FIXED_TABLE
WHERE REGEXP_LIKE(name, '^V\$') -- WHERE name LIKE 'V$%';
Exemple 02 : Recherche de vues statiques
SELECT table_name FROM DICTIONARY
WHERE REGEXP_LIKE(table_name, 'TABLESPACES$') -- WHERE name LIKE '%TABLESPACES';
Exemple 03 : Liste des colonnes d'une vue
SELECT column_name, comments FROM DICT_COLUMNS
WHERE table_name = 'DBA_TABLESPACES';
XEROX formation
Page 9
ORACLE 11G – Administration
Généralités
I.4
TACHES DE L’ADMINISTRATEUR (DBA)
L'administrateur de Base de Données est, en général, impliqué dans les tâches suivantes :
 Installation du logiciel Oracle.
 Contrôle et de la configuration des instances (structures mémoire...).
 Création des bases de données.
 Gérer la sécurité et les comptes utilisateurs (schémas).
 Gérer certains objets de la base (tables, index...).
 Gérer les performances (tuning).
 Gérer les sauvegardes et, les restaurations.
 Organiser et assurer les migrations (releases ou versions).
 Diagnostiquer et rendre compte des erreurs critiques, auprès du support technique Oracle.
I.5
LES OUTILS D'ADMINISTRATION

SQL*Plus et Sql Developer
Depuis la version 11G, Sql*Plus doit être utilisé pour la création des bases de données, ainsi que
pour toutes les manipulations liées au démarrage/arrêt et modification d'état de l'instance.
Toute autre tâche peut être effectuée via Sql Developer.
En version 11G, iSqlPlus (version graphique de Sql*Plus) disparait...

Oracle Universal Installer et Database Upgrade Assistant
OUI est l’utilitaire permettant d’installer le logiciel Oracle et ses options.
DUA est l’utilitaire d’aide à l’installation d’une nouvelle release.

DataBase Configuration Assistant
DBCA est l’utilitaire d’aide à la création d’une base de données.

Net Configuration Assistant
NETCA est l’utilitaire d’aide à la configuration du réseau (serveur et client).

Oracle Enterprise Manager
OEM est un outil graphique, permettant d'administrer une ou plusieurs base de données. Il propose
également une interface permettant d’accéder aux conseillers de performances, ainsi qu’à des outils
comme Recovery Manager (RMAN) ou SQL*Loader.
Plusieurs versions sont proposées :
 OEM Database Control, qui permet d'accéder à une base de données (en fait, une URL par base
existante sur le serveur).
 OEM Database Grid Control, qui permet d'accéder simultanément à toutes les bases Oracle,
existantes sur le serveur.
XEROX formation
Page 10
ORACLE 11G – Administration
Généralités
I.6
Installation des composants Oracle (11G)
I.6.1
Prérequis matériels et logiciels
L’installation d’Oracle 11G, nécessite les ressources suivantes :
 Processeur 32-Bit ou 64-Bit.
 Mémoire physique (RAM) : 1 GB minimum (2 GB pour Windows 7).
 Mémoire virtuelle : Taille correspondant à 2 fois la taille de la RAM.
 Espace disque : 5,39 GB (pour une installation typique), dont 3,5GB pour le Oracle Home.
Il est conseillé que les disques ne servent qu’à Oracle.
 Sous Windows, système de fichiers NTFS recommandé (plutôt que FAT32).
I.6.2
Installation du logiciel Oracle (oracle Home)
L’installation d’Oracle 11G, requiert les droits système d’administration. Elle comporte, dans les grandes
lignes, les étapes suivantes :
 Choix du type d’installation (Logiciel et Base de données ou Logiciel uniquement).
 Choix de la classe système (Desktop ou Serveur).
 Choix des langages à installer.
 Choix de la distribution à installer.
 Spécification du répertoire de l’ORACLE_BASE.
Les directives OFA ayant (encore !!!) changées, le répertoire proposé par défaut est :
lecteur:\app\compte_OS_installation
 Choix du type de base à créer.
I.6.3
Tâches de Post-installation
Après installation du logiciel et création de la base, Oracle apporte les recommendations suivantes :
 Installation du patch le plus récent.
 Recompilation des modules PL/SQL grâce au script utlrp.sql.
 Installation de la dernière version de SQL Developer
(Documentation de référence : Oracle® Database Installation Guide)
XEROX formation
Page 11
ORACLE 11G – Administration
Généralités
I.7
ORGANISATION DES COMPOSANTS PHYSIQUES D’ORACLE
I.7.1
Optimal Flexible Architecture
Le « standard » OFA est une structuration intelligente des répertoires, recommandée par Oracle, afin de
faciliter et uniformiser le travail des administrateurs. Ce standard s’avère indispensable lorsque plusieurs
bases de données et/ou plusieurs versions, cohabitent sur un même serveur.
OFA a subit d’importantes modifications en version 11G.
I.7.2
Le répertoire de l’ ORACLE_BASE
Ce répertoire représente la « racine » (Top-Level Directory) à partir de laquelle seront stockés les
composants des différentes versions d’Oracle Database installées sur le serveur.
La variable ORACLE_BASE identifie le chemin d’accès de ce répertoire :
 lecteur:\app\utilisateur_OS (version 11G).
 lecteur:\oracle\product\10.2.0 (version 10G, dont le Top Level Directory était le oracle_home plutôt
que le oracle_base).
 lecteur:\oracle (jusqu'à la version 9i).
C’est à partir de ce répertoire que l’on trouve :
 Le répertoire de chaque version (ORACLE_HOME).
 Les répertoires des fichiers base de données (ORACLE_BASE\oradata\db_unique_name).
 Les répertoires des fichiers de configuration (ORACLE_BASE\admin\db_unique_name).
 Le répertoire de la Flash Recovery Area (ORACLE_BASE\flash_recovery_area).
 Le répertoire du Automatic Diagnostic Repository (ORACLE_BASE\diag).
I.7.3
Le répertoire de l’ ORACLE_HOME
Chaque version est installée dans son propre répertoire, localisé par la variable ORACLE_HOME :
 ORACLE_BASE\product\11.2.0\dbhome_1 (version 11g).
 ORACLE_BASE\db_1 (version 10g).
 ORACLE_BASE\ora92 (version 9.2i).
I.7.4
Le répertoire ORADATA
Le répertoire ORADATA contient un sous–répertoire par base de données créée sur le serveur :
 ORACLE_BASE\oradata\db_unique_name).
Chaque sous répertoire contient :
 Des fichiers de données (extension .DBF)
 Des membres de journaux (extension .LOG)
 Un exemplaire (ou tous, s’il n’y a pas de F.R.A) du fichier de contrôle (extension .CTL)
XEROX formation
Page 12
ORACLE 11G – Administration
Généralités
I.7.5
Le répertoire FLASH_RECOVERY_AREA
Ce répertoire, localisé par le paramètre d’instance db_recovery_file_dest, contient un sousrépertoire par base créée sur le serveur. On peut y stocker les fichiers issus des sauvegardes effectuées par
RMAN. Dans ce cas, l’espace disque alloué à la F.R.A, est géré automatiquement par RMAN.
Depuis la V11G, la F.R.A contient l’un des exemplaires du fichier de contrôle (si la base a été créée via
DBCA).
I.7.6
Le répertoire ADMIN
Le répertoire ADMIN contient un sous–répertoire par base de données créées sur le serveur :
 ORACLE_BASE\admin\db_unique_name).
Rôle de chaque sous répertoire :
 adump contient les fichiers issus des opérations d’audit (paramètre audit_file_dest).
 dpdump est la destination par défaut, pour les « Data Pump ».
 pfile, créé par DBCA, vide depuis la V9i (il contenait l’init.ora).
 scripts, créé par DBCA, qui contient les scripts et les traces de création de la base.
En V11g
Les répertoires bdump, cdump, et udump, sont remplacés par le répertoire
ORACLE_BASE\diag\rdbms\db_unique_name\instance_name\trace.
de Automatic Diagnostic Repository (ADR)
XEROX formation
Page 13
ORACLE 11G – Administration
Généralités
I.8
La structure ADR (Automatic Diagnostic Repository)
A.D.R. est un référentiel dans lequel sont automatiquement enregistrées toutes données permettant de
prévenir, diagnostiquer et traiter les erreurs critiques.
Ces données sont stockées sous la forme du fichier d’alerte (alert_sid.log), des fichiers de trace (extension
.trc) et des rapports « Health Monitor ». Le répertoire racine (ADR base) de cette arborescence, est
localisé par le paramètre d’instance DIAGNOSTIC_DEST.
Le répertoire racine peut contenir plusieurs ADR Home (répertoire racine pour le stockage des données
d’erreurs d’un composant : instance, Oracle Net, ASM, RAC etc...).
L’arborescence suivante est automatiquement créée lors du premier démarrage de l’instance, avant la
création de la base de données.
La vue dynamique V$DIAG_INFO permet d’afficher les répertoires de destination des fichiers d’alerte et de
traces.
SELECT name, value FROM v$diag_info;
NAME
VALUE
------------------ -----------------------------------------------------Diag Enabled
TRUE
ADR Base
c:\app\formation
ADR Home
c:\app\formation\diag\rdbms\xrx11g\xrx11g
Diag Trace
c:\app\formation\diag\rdbms\xrx11g\xrx11g\trace
Diag Alert
c:\app\formation\diag\rdbms\xrx11g\xrx11g\alert
Diag Incident
c:\app\formation\diag\rdbms\xrx11g\xrx11g\incident
Diag Cdump
c:\app\formation\diag\rdbms\xrx11g\xrx11g\cdump
Health Monitor
c:\app\formation\diag\rdbms\xrx11g\xrx11g\hm
Default Trace File
c:\app\formation\diag\rdbms\xrx11g\xrx11g\trace\xrx11g_ora_2064.trc
Active Problem Count
0
Active Incident Count
0
XEROX formation
Page 14
ORACLE 11G – Administration
Généralités
I.8.1
Les sous-répertoires du ADR Home
alert
cdump
incident
trace
I.8.2
:
:
:
:
Fichier alert au format XML.
Fichiers core.
Sous-répertoires des incidents (un pour chaque incident).
Fichiers alert au format texte et fichiers trace des processus server et background.
Le fichier ALERT
Le fichier alert contient la chronologie des messages liés à des évènements ou erreurs survenus dans la
base :
 Liste des paramètres d’instance dont la valeur n’est pas celle prévue par défaut, lors du STARTUP.
 Manipulations d’instance (STARTUP, SHUTDOWN, ARCHIVE LOG, RECOVER).
 Erreurs internes (ORA-600), de corruption de bloc (ORA-1578) ou de « deadlock » (ORA-60).
 CREATE, ALTER, DROP DATABASE.
 CREATE, ALTER, DROP TABLESPACE.
 Erreurs liées au rafraîchissement automatique d’une vue matérialisée.
I.8.3
Les fichiers TRACES
Les processus server et background écrivent régulièrement dans des fichiers traces, des informations
relatives à leur état, leur activité ou leurs erreurs.
Les traces de type dump, sont propres à un évènement spécifique.
Les fichiers dont l’extension est .trm, sont les traces map associés à certains fichiers trace. Ils contiennent
des informations liées à la structure des traces, et permettent des opérations de recherche et navigation via
ADRCI, par exemple.
I.8.4
Les fichiers CORE
Les fichiers core sont des « dump » mémoire. Ils ne sont exploités que par le support technique Oracle.
XEROX formation
Page 15
ORACLE 11G – Administration
Généralités
I.9
L’utilitaire ADRCI (ADR Command Interpreter)
Cet outil, dont on déclenche l’exécution à partir d’une ligne de commande O.S., permet de :
 Consulter les données relatives aux problèmes et incidents, stockées dans ADR.
 Consulter les rapports « Health Monitor ».
 De regrouper et transmettre toutes les informations relatives à un incident, au support Oracle, sous
forme d’un fichier compressé.
On appelle PROBLEME, une erreur critique (erreur interne de type ORA-600, ou autre erreur « sévère ») se
produisant dans la base de données. Il est associé à une problem key
Lorsque qu’un PROBLEME se (re)produit, Oracle ouvre alors un INCIDENT daté par problème, identifié
par un incident ID numérique. ADR envoie une alerte à OEM.
XEROX formation
Page 16
ORACLE 11G – Administration
Connexion à un serveur base de données
II. CONNEXION A UN SERVEUR ORACLE
II.1
Types de connexion à un serveur ORACLE
Tout programme utilisateur (C, Java, perl) ou application (Sql Developer, Sql*plus) devant manipuler des
données, doit préalablement se connecter à l'instance permettant d'accéder à une base de données.
Il existe deux types de connexion :
 La connexion locale (sans réseau).
 La connexion client-serveur, proposant deux modes :
 Le mode "serveur dédié" (mono-thread server).
 Le mode "serveur partagé" (multi-thread sever).
Une connexion est le.mécanisme (O.S. pour une connexion locale ou software réseau pour une connexion
C/S) permettant au process utilisateur et au process serveur de communiquer.
Une session représente l’ensemble des éléments (dont le username et le mot de passe) permettant à un
processus d’être connecté à l'instance.
XEROX formation
Page 17
ORACLE 11G – Administration
Connexion à un serveur base de données
II.1.1 Connexion locale
Dans ce cas, la base de données et l'application (ou programme) y accédant, se trouvent sur la même
machine. La connexion est établie grâce au mécanisme inter-processus de l’O.S (protocole IPC).
Elle nécessite un compte et son mot de passe.
Dans cette configuration, chaque "process user" est associé :
 A un "process server", qui lui est dédié.
 A une zone mémoire privée, la PGA (Private Global Area), intégrant une zone de tri (sort area).
SG A
Buffers de données
PGA
PGA
Process
Serv er
Process
Serv er
DBWR
Process
User
Process
User
Base de
données
INCONVENIENTS
Les applications utilisateur et la base de données se trouvent sur la même machine.
Par conséquent, le nombre de processus engendrés peut dégrader les performances.
XEROX formation
Page 18
ORACLE 11G – Administration
Connexion à un serveur base de données
II.1.2 Connexion réseau : Mode "serveur dédié"
Dans ce cas, le serveur base de données (back end) et l'application cliente (front end), se trouvent sur
des machines différentes. La connexion est établie via un processus Oracle Net, le listener. Elle nécessite
un compte, son mot de passe et une chaine hôte. Le lien entre les deux process (serveur et utilisateur) est
assuré par le middleware de communication Oracle Net.
Dans cette configuration, chaque "process user" est associé à un "process server", qui lui est dédié et à
une PGA.
SGA
Buffers de données
PGA
PGA
Process
Server
Process
Server
Base de
données
MiddleWare
Oracle Net
Process
User
DBWR
Process
User
AVANTAGES
Cette configuration permet d'équilibrer les charges entre différentes machines.
Les applications utilisateur peuvent fonctionner sous des O.S. différents.
XEROX formation
Page 19
ORACLE 11G – Administration
Connexion à un serveur base de données
II.1.3 Connexion réseau : Mode "serveur partagé"
La connexion et le lien entre les deux process sont identiques au mode "server dédié".
Avec la configuration MTS (Multi-Thread Server), chaque couple "process server"-PGA n'est plus dédié
à un "process user ", il est partagé. La répartition est effectuée par des processus appelés dispachers.
SGA
Buffers de données
LARGE POOL
PGA
PGA
PGA
Process
DISPATCHER
Server
Process
Server
Process
DBWR
Server
Base de
données
MiddleWare
Oracle Net
Process
User
Process
User
REMARQUES
Cette configuration permet de limiter le nombre de processus sur le serveur, mais nécessite beaucoup plus
de ressources mémoire en SGA:
 La large pool, qui contient les files d'attente des requêtes et des résultats.
 La shared-pool dont la taille augmente (partie des PGA partagées).
Oracle conseille d'opter pour cette configuration lorsque le nombre de sessions concurentes est supérieur
à ce que le système d’exploitation peut supporter (par exemple, les applications web dont les traitements
sont plutôt courts et n’occasionnent que peu d’I/O sur le serveur.).
XEROX formation
Page 20
ORACLE 11G – Administration
Connexion à un serveur base de données
II.1.4 Rôle du "process server"
Lors de la demande d'exécution d'une requête SQL par un processus utilisateur, le processus serveur
assure les tâches suivantes :

Le "PARSING", comportant :
 L’analyse de syntaxe.
 L’analyse sémantique (tests d'existence) grâce aux informations stockées dans le Dictionary
Cache.
 Le choix du plan d'exécution qui est conservé dans la sqlarea partagée.

Lecture des blocs base de données contenant les lignes demandées par le processus utilisateur.
Ces blocs sont placés dans les database buffers.
En cas de mise à jour (insert, update, delete) :
 Copie des images-avant dans le segment d’annulation alloué à la transaction.
 Mise à jour des blocs de données.
 Au commit (ou rollback), écriture des images avant et après dans les redolog buffers, en vue de leur
écriture par le LOGWR dans les journaux de reprise.
II.1.5 Modification des paramètres d'une session
Chaque paramètre d'une session dont l' attribut ISSES_MODIFIABLE est positionné à 'TRUE', peut
être modifié dynamiquement par ALTER SESSION. Cette modification est temporaire (jusqu’à la fin de
session).
La commande ALTER SESSION
ALTER SESSION SET paramètre=valeur
Exemple : Modification du format d'affichage de la date
ALTER SESSION
SET nls_date_format='YYYY-MM-DD:HH24:MI:SS'
XEROX formation
Page 21
ORACLE 11G – Administration
Connexion à un serveur base de données
II.1.6 Structure de la PGA (Program Global Area)
La PGA est une zone mémoire non partagée, allouée à un "process server". Son contenu dépend de la
configuration adoptée (serveur partagé ou dédié). Elle comporte différentes régions.

L’UGA (User Global Area), qui contient des données relatives à l’état de la session (variables,
contextes, informations de login, état d’un package, contenu des variables d’un package, etc...).

La private SQL area (ou curseur), qui recueille et maintient les informations relatives à l’exécution
d’une requête. Le nombre de curseurs pouvant être alloué à une session, est limité par le paramètre
d’initialisation OPEN_CURSORS (300 par défaut). Elle se subdivise en 2 régions :
 La run-time area, qui contient des informations relatives à l’état de la requête en cours
d’exécution (nombre de lignes traitées, par exemple).
 La persistent area, la valeur des bind variables (valeurs apportées à une requête SQL, au moment
de son exécution).

Les SQL working areas, qui permettent à certaines opérations internes déclenchées par une requête,
de se dérouler en mémoire. Elles comportent 3 régions :
 La sort area, pour les tris déclenchés par ORDER BY ou GROUP BY.
 La hash area, pour la création d’une table de hashage, lors d’une jointure de type HASH JOIN ;
 La bitmap merge area, pour les opérations impliquant des index bitmap.
XEROX formation
Page 22
ORACLE 11G – Administration
Connexion à un serveur base de données
Tuning de la mémoire alloué aux PGA
Depuis la version 11g, Oracle gère automatiquement et dynamiquement la répartion mémoire entre SGA
et PGA, en fonction de la quantité globale de mémoire mise à sa disposition (Automatic Memory
Management), grâce au paramètre MEMORY_TARGET.
Dans le cas contraire, la gestion de la taille des PGA peut être automatisée indépendament de celle de la
SGA (Automatic Shared Memory Management), à condition que la valeur du paramètre MEMORY_TARGET
soit 0. Dans ce cas, 2 paramètres doivent être renseignés :
 PGA_AGGREGATE_TARGET indiquant la taille maximale pouvant être allouée à l'ensemble des PGA
utilisateur (par défaut, une valeur représentant 20% de la taille de la SGA).
 WORKAREA_SIZE_POLICY avec la valeur AUTO (ou MANUAL pour une gestion manuelle).
Tuning automatique de la PGA (avec memory_target à 0)
PARAMETRE
----------------------------------pga_aggregate_target
workarea_size_policy
VALUE
-----------------------------95420416
AUTO
ISSYS_MOD
--------IMMEDIATE
IMMEDIATE
Vues du dictionnaire de données (PGA)
V$PGASTAT
V$SESSTAT
V$STATNAME
: Statistiques sur la gestion des PGA
: Valeurs des statistiques des process user
: Nom des statistiques
Statistiques sur les PGA : V$PGASTAT (avec memory_target à 1232M)
NAME
VALUE UNIT
------------------------------------------------------------ ---------- -------aggregate PGA target parameter
520093696 bytes
aggregate PGA auto target
448017408 bytes
global memory bound
104017920 bytes
total PGA inuse
22384640 bytes
total PGA allocated
26411008 bytes
maximum PGA allocated
47020032 bytes
total freeable PGA memory
0 bytes
process count
24
max processes count
30
PGA memory freed back to OS
0 bytes
total PGA used for auto workareas
0 bytes
maximum PGA used for auto workareas
1816576 bytes
total PGA used for manual workareas
0 bytes
maximum PGA used for manual workareas
0 bytes
over allocation count
0
bytes processed
1465468928 bytes
extra bytes read/written
0 bytes
cache hit percentage
100 percent
recompute count (total)
89334
XEROX formation
Page 23
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III. STRUCTURE D’UNE INSTANCE
III.1
COMPOSANTS D'UNE INSTANCE
Une instance Oracle représente l'ensemble de ressources permettant d'accéder à une base de données.
Elle peut porter le même nom que sa base. Elle se compose :
 De zones mémoire constituant la SGA (System Global Area), dont le contenu est accessible (partagé)
par toutes les sessions connectées à l’instance.
 De processus background.
Les paramètres de l'instance sont stockés en mémoire, dans la fixed sga.
Leurs valeurs initiales proviennent du fichierde paramètres utilisé lors du démarrage de l'instance
(SPFILEsid.ORA ou INITsid.ORA).
Vues du dictionnaire de données (Instance/Base)
V$DATABASE
V$INSTANCE
V$PARAMETER
: Informations sur la base de données.
: Informations sur l'instance.
: Valeurs des paramètres de l'instance.
Instance
Shared Pool
fixed
sga
.Lib.Cache (pl/sql)
Req . Queue
Log
Buffer Java Pool
SQLAREA
DB Dictionary
Cache
SMON
Large Pool DB Buffer
Resp. Queue
Cache
Dnnn
Snnn
Reco
ARCn
LGWR
CKPT
DBWn
ArcLogFile
PMON
Listener
Process
Server
PGA
initSID. ora
Control. ctl
spfileSID. ora
Logfiles
pwdfile
Datafiles
Base Données
XEROX formation
Process
User
Page 24
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.2
Structure de la S.G.A
Vues du dictionnaire de données (SGA)
V$SGAINFO (10G)
V$SGA
V$SGASTAT
V$SQLAREA
V$SQL
:
:
:
:
:
Informations sur les constituants de la SGA
Taille des pools de la SGA (moins complet que V$SGAINFO)
Informations détaillées sur la SGA
Statistiques sur les SQL AREAS partagées.
Statistiques sur chaque requête exécutée (child cursor).
Exemple : Affichage d'informations sur la SGA
SELECT * FROM v$sgainfo;
NAME
BYTES RES
-------------------------------- ---------- --Fixed SGA Size
1374808 No
Redo Buffers
5259264 No
Buffer Cache Size
536870912 Yes
Shared Pool Size
209715200 Yes
Large Pool Size
8388608 Yes
Java Pool Size
8388608 Yes
Streams Pool Size
0 Yes
Shared IO Pool Size
0 Yes
Granule Size
8388608 No
Maximum SGA Size
778387456 No
Startup overhead in Shared Pool
58720256 No
Free SGA Memory Available
8388608
III.2.1 La Fixed Sga
Elle contient des informations relatives à l’état de la base, la valeur actuelle des paramètres d’instance,
ainsi que des informations inter-processus (les verrous en cours, par exemple).
XEROX formation
Page 25
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.2.2 Le DATABASE BUFFER cache
Cette partie de la SGA contient les blocs qui ont été lus depuis les fichiers physiques.
Ils sont accessibles (partageables) par tout processus connecté à l'instance.
Lorsqu’à travers l’exécution d’une requête, un processus user tente d’accèder à des données, le processus
serveur procède comme suit :
 Il cherche les données dans le database buffer cache. S’il les trouve (cache hit), les données sont
directement lues en mémoire. L’accés est rapide , puisqu’il n’entraîne que des lectures logiques
(logical reads).
 S’il ne les trouve pas (cache miss), les données sont lues depuis un data file. L’accés est nettement
moins performant, puisqu’il entraîne des lectures physiques (physical reads) ainsi que des
interrogations dictionnaire (recursive calls).
Structure du database buffer cache
Chaque bloc du database buffer cache est dans l’un des états suivant :
 FREE (ou unused), s’il est vide et qu’il n’a jamais été utilisé (après démarrage d’instance).
 CLEAN, s’il est disponible (les données qu’il contient et la base de données sont synchrones).
 PINNED, s’il est en cours d’utilisation.
 DIRTY, si les données modifiées qu’il contient, n’ont pas encore été écrites dans la base de
données. Elles le seront lors du prochain check-point, et le bloc passera à l’état CLEAN.
L'ensemble des blocs du cache de données est organisé en deux listes, mises à jour par les process server:
 La LRU list (Least Recently Used) qui organisent les blocs (pinned, dirty, clean et free) du plus
récemment utilisé au moins récemment utilisé.
 La Checkpoint Queue, qui pointe sur les dirty buffers en attente d'écriture dans les data files.
XEROX formation
Page 26
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
Configuration du database buffer cache
Le database buffer cache, peut être divisé en plusieurs caches (pools) :




Le default pool (obligatoire). La taille de ses blocs, qualifiée de standard, est celle spécifiée par le
paramètre d’instance DB_BLOCK_SIZE (par défaut 8K). Il héberge les données provenant du tablespace
SYSTEM, ainsi que celles des tablespaces créés sans clause BLOCKSIZE.
Les nK pool (facultatif). La taille des blocs est celle spécifiée par un paramètre d’instance
DB_nK_CACHE_SIZE (depuis la V9i). Ils hébergent les données provenant de tablespaces créés avec une
clause BLOCKSIZE nK.
Le keep pool (facultatif). La taille des blocs est standard. Il héberge les données provenant de
segments créés avec la clause STORAGE (BUFFER_POOL KEEP) et dont les données ont de fortes
chances d’être réutilisées. Sa taille est spécifiée par le paramètre DB_KEEP_CACHE_SIZE.
Le recycle pool (facultatif La taille des blocs est standard. Il héberge les données provenant de
segments créés avec la clause STORAGE (BUFFER_POOL RECYCLE) et dont les données n’ont que peu
de chances d’être réutilisées. Sa taille est spécifiée par le paramètre DB_RECYCLE_CACHE_SIZE.
PARAMETRAGE MANUEL DU DATABASE BUFFER CACHE
db_block_size
db_cache_size
db_nk_cache_size
: Taille des blocs standards.
: Taille du cache regroupant les blocs standards.
: Taille des caches regroupant des blocs spécifiques (n : 2, 4, 8, 16 ou 32)
REINITIALISATION DU DATABASE BUFFER CACHE
Depuis la version 10G, il est possible de vider le cache de données, afin de mesurer les performances de
certaines requêtes. Cette opération n'est pas recommandée sur les bases de production.
ALTER SYSTEM FLUSH BUFFER_CACHE
XEROX formation
Page 27
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.2.3 Le SHARED POOL
Cette partie de la SGA contient les informations et données relatives aux traitements en cours.
Impliquée dans une majorité des opérations effectuées sur la base, elle est divisée en plusieurs régions.
Le library cache
Il contient le code exécutable (forme « parsée ») des requètes SQL et des blocs PL/SQL en cours
d’exécution, ainsi que les plans d’exécution des requêtes SQL.
Pour chaque requête ou chaque unité de traitement d’un bloc PL/SQL (bloc anonyme, procédure, fonction,
package ou déclencheur) exécuté, Oracle alloue un espace mémoire dans le library cache, que l’on appelle
une SHARED SQL AREA. Son contenu est conservé pour être réutilisé, en cas d'exécutions multiples
d'une même requête (utilisateurs connectés à la même application, par exemple…).
Le Data Dictionary cache
Il permet de conserver en mémoire les données provenant des interrogations dictionnaire (recursive calls).
Le Pool réservé
Il constitue une « réserve », pour les traitements nécessitant d’ importantes quantités de mémoire (curseur
pl/sql, Java...).
XEROX formation
Page 28
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
Le Server result cache (depuis la V11G)
Il se divise en 2 parties :
 Le SQL Query Result Cache, qui permet de maintenir en mémoire des résultats de requêtes.
L’utilisation du cache est conditionnée par la valeur du paramètre d’instance RESULT_CACHE_MODE :
 MANUEL, pour une mise en cache uniquement si la requête présente le hint RESULT_CACHE.
 FORCE, pour une mise en cache systématique, sauf si la requête présente le hint NO_RESULT_CACHE.
 Le SQL Function Result Cache, qui permet de maintenir en mémoire des résultats de requêtes, si la
fonction a été créée avec l’option RESULT_CACHE.
PARAMETRAGE MANUEL DU SHARED POOL
shared_pool_size
: Taille totale du cache partagé (par défaut 32M sur les plateformes 32 bits, et
84M sur les plateformes 64 bits.
REINITIALISATION DU SHARED POOL
Cette opération est nécessaire avant de démarrer une analyse de performances. Elle n'affecte pas les
requêtes en cours d'exécution (sqlarea).
ALTER SYSTEM FLUSH SHARED_POOL
XEROX formation
Page 29
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.2.4 Le REDO LOG BUFFER
Cette partie de la SGA contient les informations relatives aux mises à jour portées à la base de données
(requêtes DML et DDL). Elles sont organisées en postes (redo entries) qui sont écrits par le LGWR dans
les membres du journal de reprise current.
PARAMETRAGE MANUEL DU REDO LOG BUFFER
log_buffer
: Taille du cache utilisé pour écrire dans les journaux de reprise.
III.2.5 Le LARGE POOL
Cette partie optionnelle de la SGA est utilisée pour les Entrées/Sorties de certains processus.
 E/S des opérations de sauvegardes et restaurations RMAN (Recovery MANager).
 E/S des processus Snnn et Dnnn (connexions en mode "serveur partagé") pour les accès aux files
d'attente de requêtes et de résultats.
 E/S des process-serveur exécutant les requêtes parallèles (échanges de données entre les processserveur et le process coordinateur).
PARAMETRAGE MANUEL DU LARGE POOL
large_pool_size
: Taille du cache optionnel.
III.2.6 Le JAVA POOL
Cette partie de la SGA est utilisée par la JVM (Java Virtual Machine). Elle permet de stocker les états
d'objets et classes java en cours d'exécution.
PARAMETRAGE MANUEL DU JAVA POOL
java_pool_size
XEROX formation
: Taille du cache utilisé par la JVM.
Page 30
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.3
Tuning automatique de la mémoire allouée à l’instance
XEROX formation
Page 31
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.3.1 Tuning global de la SGA et des PGA (AMM)
Depuis la version 11g, Automatic Memory Management, permet la gestion automatique et dynamique
de la répartion mémoire entre la SGA et les PGA, en fonction de la quantité globale de mémoire prévue
par le paramètre d’instance MEMORY_TARGET.
Les différents composants de la SGA, sont également gérés automatiquement.
PARAMETRAGE DU TUNING GLOBAL DE LA SGA et des PGA
: La valeur spécifiée active AMM et indique la quantité de mémoire globale
mise à la disposition de l'instance.
Si la valeur est 0, le tuning est manuel ou assuré par ASMM.
MEMORY_MAX_TARGET
: Indique la quantité de mémoire globale maximale.
SGA_TARGET
: La valeur devrait être 0 si AMM est active.
Dans le cas contraire, la valeur spécifiée indique à AMM, la taille minimale
devant être affectée à la SGA.
PGA_AGGREGATE_TARGET : La valeur devrait être 0 si AMM est active.
Dans le cas contraire, la valeur spécifiée indique à AMM, la taille minimale
devant être affectée aux PGA.
MEMORY_TARGET
Tuning global de la mémoire
SELECT component, current_size, min_size, max_size, user_specified_size
FROM
V$MEMORY_DYNAMIC_COMPONENTS
ORDER BY component;
COMPONENT
CURRENT_SIZE
MIN_SIZE
MAX_SIZE USER_SPECIFIED_SIZE
----------------------------------- ------------ ---------- ---------- ------------------ASM Buffer Cache
0
0
0
0
DEFAULT buffer cache
536870912 536870912 536870912
0
DEFAULT 16K buffer cache
0
0
0
0
DEFAULT 2K buffer cache
0
0
0
0
DEFAULT 32K buffer cache
0
0
0
0
DEFAULT 4K buffer cache
0
0
0
0
DEFAULT 8K buffer cache
0
0
0
0
java pool
8388608
8388608
8388608
0
KEEP buffer cache
0
0
0
0
large pool
8388608
8388608
8388608
0
PGA Target
520093696 520093696 520093696
0
RECYCLE buffer cache
0
0
0
0
SGA Target
771751936 771751936 771751936
0
Shared IO Pool
0
0
0
0
shared pool
209715200 209715200 209715200
0
streams pool
0
0
0
0
Vues du dictionnaire de données (MEMOIRE)
V$MEMORY_DYNAMIC_COMPONENTS :
V$MEMORY_TARGET_ADVICE
:
XEROX formation
Tailles des composants dynamiquement ajustées par AMM.
Conseils sur des valeurs estimées du MEMORY_TARGET et leur
impact sur les performances.
Page 32
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.3.2 Tuning personnalisé de la SGA et des PGA (ASMM)
Depuis la version 10g, Automatic Storage Memory Management, permet la gestion automatique et
dynamique personnalisée de la SGA et des PGA, grâce aux valeurs des paramètres SGA_TARGET et
PGA_AGGREGATE_TARGET. Dans ce cas, la valeur du paramètre MEMORY_TARGET doit être 0.
Les paramètres indiquant la taille d'un pool, doivent être positionnés à 0. Dans la cas contraire, la taille
spécifiée représente la taille minimum à conserver pour le pool.
Dans tous les cas, les paramètres suivants doivent être gérés manuellement :
 LOG_BUFFER
 DB_nK_CACHE_SIZE
 DB_KEEP_CACHE_SIZE
 DB_RECYCLE_CACHE_SIZE
Ce tuning personnalisé est assuré par 2 processus :
 MMON, qui est en charge de la collecte de statistiques relatives à l’utilisation de la SGA. Ces
informations collectées fréquemment (intervalle de quelques minutes), sont utilisées pour modifier
dynamiquement la taille des différents composants de la SGA, selon les besoins.
 MMAN, qui est en charge de la coordination de la modification dynamique de la taille des différents
composants.
PARAMETRAGE DU TUNING PERSONNALISE DE LA SGA et des PGA
: La valeur spécifiée doit être 0.
: La valeur spécifiée active ASMM et indique la quantité de mémoire allouée
à la SGA.
Si la valeur est 0, le tuning est manuel.
SGA_MAX_SIZE
: Indique la quantité de mémoire maximale.
PGA_AGGREGATE_TARGET : La valeur spécifiée indique à ASMM, la quantité de mémoire allouée aux
PGA.
MEMORY_TARGET
SGA_TARGET
Tuning automatique personnalisé de la SGA
PARAMETRE
----------------------------------java_pool_size
large_pool_size
sga_max_size
sga_target
shared_pool_size
DISPLAY_VALUE
--------------0
0
276M
276M
0
ISSYS_MOD
--------IMMEDIATE
IMMEDIATE
FALSE
IMMEDIATE
IMMEDIATE
DISPLAY_VALUE
--------------4M
4M
276M
0
92M
ISSYS_MOD
--------IMMEDIATE
IMMEDIATE
FALSE
IMMEDIATE
IMMEDIATE
Tuning manuel de la SGA
PARAMETRE
----------------------------------java_pool_size
large_pool_size
sga_max_size
sga_target
shared_pool_size
XEROX formation
Page 33
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.4
LES PROCESSUS OBLIGATOIRES
Vues du dictionnaire de données (PROCESSUS)
V$SESSION
V$BGPROCESS
V$SESSTAT
V$STATNAME
:
:
:
:
Informations sur les sessions en cours.
Informations processus background.
Informations statistiques sur les process user.
Nom des statistiques (pour V$SESSTAT et V$SYSSTAT).
Colonnes de jointure : STATISTIC#
Exemple : Affichage des processus actifs
-SELECT
FROM
WHERE
AND
-NoThread
---------1612
1616
1636
1640
1652
1656
1660
1672
1676
1744
1784
2100
3968
1732
5444
2952
1688
2064
768
4304
3392
1004
p.spid
AS "NoThread",
b.name
AS "ORA Proc",
s.username AS "ORA User",
s.osuser
AS "OS User",
s.status
AS "Etat",
s.serial# AS "NoSes",
s.program AS "OS Proc"
v$process p, v$bgprocess b, v$session s
s.paddr
= p.addr
b.paddr (+) = p.addr;
ORA Proc
ORA User
---------- ---------PMON
VKTM
GEN0
DIAG
DBRM
PSP0
DIA0
MMAN
DBW0
LGWR
CKPT
SMON
SMCO
RECO
CJQ0
SYS
QMNC
MMON
MMNL
XEROX formation
SYS
OS User
-------------------SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
formation
SYSTEM
SYSTEM
SYSTEM
SYSTEM
SYSTEM
S06-06795\formation
SYSTEM
Etat
NoSes OS Proc
-------- ---------- -----------------ACTIVE
1 ORACLE.EXE (PMON)
ACTIVE
1 ORACLE.EXE (VKTM)
ACTIVE
1 ORACLE.EXE (GEN0)
ACTIVE
1 ORACLE.EXE (DIAG)
ACTIVE
1 ORACLE.EXE (DBRM)
ACTIVE
1 ORACLE.EXE (PSP0)
ACTIVE
1 ORACLE.EXE (DIA0)
ACTIVE
1 ORACLE.EXE (MMAN)
ACTIVE
1 ORACLE.EXE (DBW0)
ACTIVE
1 ORACLE.EXE (LGWR)
ACTIVE
1 ORACLE.EXE (CKPT)
ACTIVE
1 ORACLE.EXE (SMON)
ACTIVE
15 ORACLE.EXE (SMCO)
ACTIVE
1 ORACLE.EXE (RECO)
INACTIVE
375 SQL Developer
ACTIVE
2 ORACLE.EXE (QMNC)
ACTIVE
1 ORACLE.EXE (MMON)
ACTIVE
1 ORACLE.EXE (MMNL)
ACTIVE
256 ORACLE.EXE (W000)
ACTIVE
433 ORACLE.EXE (Q004)
ACTIVE
610 sqlplus.exe
ACTIVE
2 ORACLE.EXE (Q000)
Page 34
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.4.1 Le processus DataBase WRiter (DBWn)
Le processus DBW0 écrit les dirty buffers dans les fichiers physiques de la base de données.
Chaque nouveau dirty buffer est placé en tête de la checkpoint queue.
L'écriture (multi-blocs) cible les dirty buffers les plus anciens (qui figurent en queue des listes LRU ou
checkpoints). Elle se produit dans les cas suivants :
 Nombre insuffisant de buffers disponibles (clean) dans le cache.
 Toutes les 3 secondes (permet d’optimiser le prochain checkpoint).
 Exécution d'un checkpoint.
 Tablespace mis read only ou offline
 DROP ou TRUNCATE d'un segment.
Sur une plateforme multi-processeurs, il est possible de prévoir des processus DBWn supplémentaires, afin
d'optimiser les écritures.
PARAMETRAGE DES PROCESSUS DBWn
db_writer_processes
: Nombre de processus d'écriture prévu.
 1 à 36 (DBW0 à DBW9 puis DBWa à DBWz).
 Par défaut 1 ou cpu_count/8
III.4.2 Le processus LoG WRiter (LGWR)
Le process LGWR gère le contenu du log buffer. Il écrit dans le(s) membre(s) du journal de reprise en
cours, dans l’un des cas suivants :
 COMMIT (écriture des données et du numéro SCN associés à la transaction).
 Lorsqu’un « switch de log » se produit.
 1/3 du redo log buffer est plein (écriture temporaire jusqu'à fin de transaction)
 Toutes les 3 secondes (écriture temporaire jusqu'à fin de transaction).
 Lorsque le DBW0 écrit des données dans les fichiers physiques.
XEROX formation
Page 35
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.4.3 Le processus ChecK PoinT (CKPT)
Le mécanisme de « check point » permet de valider le fait que toute mise à jour enregistrée dans les
journaux de reprise, le soit également dans la base de données. Ceci permet, entre autre, de reduire le
temps d’un éventuel RECOVERY, après un arrêt d’instance inopiné.
Il existe différents types de checkpoints :

Le CHECKPOINT D’INSTANCE.
Le DBW0 écrit tous les dirty buffers du buffer cache, dans les fichiers physiques.
Le process CKPT écrit les informations de checkpoint (SCN, adresse et séquence du journal...) dans le
fichier de contrôle et dans l’entête de chaque fichier de données.
Ce type de checkpoint se produit dans l’un des cas suivants :
 Switch de journal (logfile plein ou ALTER SYSTEM).
 Arrêt d’instance (sauf abort).
 ALTER SYSTEM checkpoint
 ALTER DATABASE begin backup
 Délai spécifié par le paramètre LOG_CHECKPOINT_TIMEOUT dépassé (par défaut, 1800 s).

Le CHECKPOINT DE FICHIER DE DONNEES.
Ce type de checkpoint se produit dans l’un des cas suivants :
 ALTER TABLESPACE offline (ou read-only)
 ALTER TABLESPACE begin backup

Le CHECKPOINT INCREMENTAL.
Du au fait que le DBW0 vérifie s’il a des buffers à écrire toutes les 3 secondes.
Dans ce cas, le process CKPT écrit les informations de checkpoint dans le fichier de contrôle mais pas
dans les entêtes des fichiers de données.
III.4.4 Le processus System MONitor (SMON)
Le process SMON intervient au démarrage de la base :
 Démarrage après arrêt normal, SMON ouvre la base (état cohérent).
 Démarrage après arrêt anormal, SMON tente d'effectuer un crash recovery :
 Lecture des segments d’annulation, afin d'annuler les transactions non cohérentes au moment
de l'arrêt.
 Lecture des redo logfiles, afin de finaliser les transactions cohérentes au moment de l'arrêt.
 Libération des ressources allouées au moment de l'arrêt (verrous, segments temporaires…).
Une fois la base ouverte, SMON surveille son fonctionnement :
 Recyclage des segments temporaires devenus inutiles.
 Fusion des extents libres et contigus, dans les fichiers physiques (coalesce).
XEROX formation
Page 36
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
III.4.5 Le processus Process MONitor (PMON)
Le processus PMON surveille l'activité des autres processus serveur.
 Libération des ressources utilisées par un processus client qui se termine (cache, verrous…).
 Annulation de la transaction (rollback) d'un processus qui s'arrête anormalement.
 Supervision de l'activité des dispatcher Dnnn et serveur Snnn (mode serveur partagé).
III.5
LES PROCESSUS FACULTATIFS
III.5.1 Le processus ARCHiver (ARCn)
Le processus ARCn archive un journal de reprise, libéré par un switch.
Depuis la version 10G, ce process démarre automatiquement dès que l'on passe en mode archivelog (le
paramètre archive_log_start n'est plus supporté).
Si la destination des archives est saturée, la base de données se bloque (trace dans le fichier d'alertes).
III.5.2 Le processus LISTENER
Le process listener permet les connexions client-serveur avec l'instance. Il possède son propre fichier
de configuration, et son démarrage n'est pas lié à celui de l'instance (service indépendant).
III.5.3 Le processus RECO
Le process RECO gère les problèmes liés aux transactions distribuées (bases de données réparties).
III.5.4 Processus divers
Processus CJQ0 et Jnnn.
Ces processus gèrent des tâches batch planifiées.
Processus MMNL.
Ces processus gèrent certaines émissions d'alerte et capture de statistiques.
XEROX formation
Page 37
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
IV. Démarrage/Arrêt d'une instance
Une connexion utilisant les privilèges SYSDBA (schéma SYS) ou SYSOPER (schéma PUBLIC) est
indispensable aux manipulations d'instance suivantes :
 STARTUP
 ALTER DATABASE
 SHUTDOWN
Ces manipulations peuvent être effectuées via Sql*Plus, Enterprise Manager ou Recovery MANager.
Connexion à Sqlp*Plus pour démarrage/manipulation/arrêt d'instance
1. Démarrage de Sql*Plus (variable oracle_sid positionnée, si connexion locale)
SQLPLUS /NOLOG
2. Connexion à l'instance
CONNECT SYS/xxxx[@chaine_hôte] AS SYSDBA
3. STARTUP ou ALTER DATABASE ou SHUTDOWN
Les différents états du couple instance/base
alter database open
open
Base ouverte
alter database
mount
mount
Base montée
Base fermée
startup nomount
alter
database
close
nomount
Instance démarrée
Base fermée
alter
database
dismount
shutdown
instance arretée
XEROX formation
Page 38
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
IV.1
Mise en œuvre du couple instance/base
La mise en œuvre d'une instance et de sa base de données, se décline en 3 étapes :
 Le démarrage de l'instance (état nomount).
 Le montage de la base de données (état mount).
 L'ouverture de la base de données (état open).
L'ensemble peut être réalisé grâce aux commandes STARTUP et ALTER DATABASE
La commande STARTUP
STARTUP [ FORCE ] [ RESTRICT ] [ PFILE=chemin initxx.ora ] [ QUIET ]
[ NOMOUNT ou MOUNT ou OPEN [ open_options ] ]
FORCE
RESTRICT
PFILE
QUIET
NOMOUNT
MOUNT
OPEN (défaut)
 READ WRITE
 READ ONLY


RECOVER
UPGRADE
: Arrêt avec un shutdown abort, pui redémarrage de l'instance.
A éviter.
: Seuls les utilisateurs dotés du privilège RESTRICTED SESSION peuvent se
connecter. Cet état peut être annulé grâce à la commande :
ALTER SYSTEM DISABLE RESTRICTED SESSION;
Il peut également être rétabli grâce à la commande :
ALTER SYSTEM ENABLE RESTRICTED SESSION;
: Chemin d'accès et nom du fichier de paramètres (client, non persistant).
Par défaut :
 Recherche du fichier persistant SPFILEoracle_sid.ORA.
 Recherche d'un SPFILE.ORA.
 Recherche du fichier texte INIToracle_sid.ORA.
Les fichiers recherchés par défaut, doivent se trouver dans :
 $ORACLE_SID/dbs pour Unix/linux.
 %ORACLE_SID%\database pour Windows.
: Supprime l'affichage des messages d'allocation mémoire (SGA).
: Pour démarrer l'instance.
: Pour démarrer l'instance et monter la base de données.
: Pour démarrer l'instance, monter et ouvrir la base de données.
: Ouverture en lecture /écriture (défaut).
: Ouverture en lecture seule.
Ce mode n'affecte que les écritures dans les data files et les redo logfiles.
: Déclenche un media recovery avant le STARTUP.
: (Depuis la V11G) Pour une 1ère ouverture de la base, avec une nouvelle version
d’Oracle.
Si la base de données n'est pas ouverte par le STARTUP, il est nécessaire d'exécuter la commande
ALTER DATABASE autant de fois qu'il reste d'étapes à franchir (MOUNT/OPEN).
XEROX formation
Page 39
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
IV.1.1 Démarrage de l'instance (nomount)
xrx11g-SYS> STARTUP NOMOUNT
xrx11g-SYS> select instance_name, status from v$instance;
INSTANCE_NAME
STATUS
---------------- -----------xrx11g
STARTED
Le démarrage d’instance consiste en les étapes suivantes :
 Recherche d’un fichier de paramètres
 Allocation de la SGA.
 Démarrage des processus background.
 Ouverture du fichier d’alerte et des fichiers de traces.
La base de données n'est pas accessible.
IV.1.2 Montage de la base de données (mount)
xrx11g-SYS> ALTER DATABASE MOUNT;
xrx11g-SYS> SELECT INSTANCE_NAME as instance, HOST_NAME as serveur, STATUS,
NAME as base, CREATED as creation, LOG_MODE, OPEN_MODE
FROM
V$INSTANCE, V$DATABASE;
INSTANCE SERVEUR
STATUS
BASE
CREATION LOG_MODE
OPEN_MODE
-------- ------------ ---------- -------- -------- ------------ ---------xrx11g
ALAIN-11G
MOUNTED
XRX11G
02/02/12 NOARCHIVELOG MOUNTED
Le montage de la base consiste en les étapes suivantes :
 Ouverture de tous les exemplaires du fichier de contrôle, identifiés par le paramètre control_files.
La base de données n'est pas accessible. Les seules opérations possibles sont celles qui permettent de
mettre à jour le fichier de contrôle.
IV.1.3 Ouverture de la base de données (open)
L’ouverture de la base consiste en les étapes suivantes :
 Ouverture des fichiers physiques (DBF et LOG) identifiés par le fichier de contrôle.
La base de données est entièrement disponible.
xrx11g-SYS> ALTER DATABASE OPEN;
xrx11g-SYS> SELECT INSTANCE_NAME as instance, HOST_NAME as serveur, STATUS,
NAME as base, CREATED as creation, LOG_MODE, OPEN_MODE
FROM
V$INSTANCE, V$DATABASE;
INSTANCE SERVEUR
STATUS
BASE
CREATION LOG_MODE
OPEN_MODE
-------- ------------ ---------- -------- -------- ------------ ---------xrx11g
ALAIN-11G
OPEN
XRX11G
02/02/12 NOARCHIVELOG READ WRITE
XEROX formation
Page 40
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
IV.2
FERMETURE DE BASE ET ARRET D'INSTANCE
L'ensemble consiste en 3 étapes (connexion en tant que SYSDBA ou SYSOPER) :
 La fermeture de la base de données (close).
 Le démontage de la base de données (dismount).
 L'arrêt de l'instance.
L'ensemble peut être réalisé grâce aux commandes SHUTDOWN et ALTER DATABASE
La commande SHUTDOWN
SHUTDOWN [ NORMAL ou IMMEDIATE ou TRANSACTIONAL ou ABORT ]
NORMAL
:
TRANSACTIONAL
:
IMMEDIATE
:
ABORT
:
XEROX formation
C’est le mode par défaut :
 Aucune nouvelle connexion n’est acceptée.
 Oracle attend la fin d’exécution de tous les processus client.
 Tous les buffers (database et redo) sont écrits sur disque.
 La base est démontée et fermée dans un état cohérent.
 Le prochain démarrage ne nécessitera pas de recovery.
Ce mode garantit la préservation des transactions en cours :
 Aucune nouvelle transaction ne peut être démarrée (donc pas de connexion).
 Oracle attend la fin de chaque transaction en cours, pour déconnecter le
processus client.
 Tous les buffers (database et redo) sont écrits sur disque.
 La base est démontée et fermée dans un état cohérent.
Le prochain démarrage ne nécessitera pas de recovery.
Ce mode est utilisé par défaut, par Enterprise Manager :
 Aucune nouvelle connexion n’est acceptée.
 Les requêtes SQL en cours d’exécution, sont interrompues.
 Les transactions en cours sont annulées (rollback).
 Oracle n’attend pas la fin d’exécution des processus client. Ils sont
déconnectés.
 Tous les buffers (database et redo) sont écrits sur disque.
 La base est démontée et fermée dans un état cohérent.
Le prochain démarrage ne nécessitera pas de recovery.
Ce mode implique un crash recovery lors du prochain démarrage:
 Aucune nouvelle connexion n’est acceptée.
 Les requêtes SQL en cours d’exécution, sont interrompues.
 Les transactions en cours ne sont pas annulées.
 Les processus clients sont immédiatement déconnectés.
 Aucun buffer (database et redo) n’est écrit sur disque.
 La base n’est ni démontée, ni fermée (état incohérent).
Lors de la tentative de redémarrage, les redos seront utilisés pour appliquer
les mises à jours et les segments d’annulation pour annuler les transactions
incomplètes.
Page 41
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
IV.3
LES PARAMETRES D'INSTANCE
Il existe 2 types de fichiers de paramètres :
 Le fichier Server Parameter File (SPFILEsid.ORA).
C’est un fichier binaire, persistant qui peut être modifié par le noyau Oracle (lors d’un ajustement
automatique des pools mémoire, par exemple). Il permet des modifications de paramètres dynamiques
permanentes, via un ALTER SYSTEM.
 Le fichier Parameter File (INITsid.ORA).
C’est un fichier texte, qui ne peut pas être modifié par le noyau Oracle. Les modifications de
paramètres dynamiques via un ALTER SYSTEM, ne sont que temporaires.
Il est fortement recommandé que ces deux fichiers restent cohérents.
Les paramètres de l'instance peuvent être divisés en 3 catégories :
 Les paramètres dynamiques, qui peuvent être modifiés par ALTER SYSTEM.
Leur attribut ISSYS_MODIFIABLE est positionné à 'IMMEDIATE' ou 'DEFERRED'.
Ils peuvent également être modifiés par ALTER SESSION, si leur attribut
ISSES_MODIFIABLE est positionné à 'TRUE'.
 Les paramètres statiques, dont la modification passe par celle du fichier de paramètres, et un
arrêt/redémarrage de l’instance. Leur attribut ISSYS_MODIFIABLE est positionné à 'FALSE'.
 Les paramètres non modifiables.
Vues dynamiques (PARAMETRES)
V$PARAMETER
:
V$SPPARAMETER
:
V$SYSTEM_PARAMETER :
Valeur en cours des paramètres de la session (héritage de
v$system_parameter).
Contenu du spfile.
Valeur en cours des paramètres de l’instance (fixed sga).
On peut également obtenir ces caractéristiques grâce à la commande Sql*plus SHOW PARAMETER.
IV.3.1 Création et mise à jour des fichiers de paramètres
Le fichier de paramètres INITsid.ORA, est créé grâce à un éditeur de textes (vi ou bloc-notes).
Il permet :
 Le démarrage d'instance (création de la base), tant que le SPFILEsid.ORA n'existe pas.
 La création du fichier de paramètres SPFILEsid.ORA.
Chacun de ces fichiers peut être créé à partir de l'autre.
CREATE SPFILE
FROM
PFILE='chemin accès/initsid.ora';
CREATE PFILE='chemin accès/initsid.ora'
FROM
SPFILE;
XEROX formation
Page 42
ORACLE 11G – Administration
L'instance : Structure mémoire et Processus
IV.3.2 Modification des paramètres d'instance DYNAMIQUES
La commande ALTER SYSTEM
ALTER SYSTEM SET paramètre=valeur [ DEFERRED ] SCOPE={ BOTH
| MEMORY
| SPFILE };
BOTH
:
MEMORY
:
SPFILE
:
Affecte la valeur en cours du paramètre en mémoire ET sa valeur initiale dans le fichier
spfilesid.ora (défaut).
Cette option n'est autorisée que pour les paramètres dont l'attribut ISSYS_MODIFIABLE est
positionné à 'IMMEDIATE' ou 'DEFERRED' (dans ce cas, l'option DEFERRED doit être
spécifiée).
La mise à jour du fichier initsid.ora est fortement recommandée.
Affecte la valeur en cours du paramètre en mémoire. L’effet est donc temporaire.
Cette option n'est autorisée que pour les paramètres dont l'attribut ISSYS_MODIFIABLE est
positionné à 'IMMEDIATE'.
Affecte la valeur initiale du paramètre dans le fichier spfilesid.ora. La modification ne
sera effective que lors du prochain démarrage de l'instance.
Cette option est la seule autorisée pour les paramètres statiques (l'attribut
ISSYS_MODIFIABLE est positionné à 'FALSE').
La mise à jour du fichier initsid.ora est fortement recommandée.
Exemple : Attribut ISSYS_MODIFIABLE d'un paramètre
NAME
----------------------------------sort_area_size
shared_pool_size
large_pool_size
java_pool_size
log_archive_start
DISPLAY_VALUE
--------------65536
0
0
0
FALSE
ISSYS_MODIFIABLE
---------------DEFERRED
IMMEDIATE
IMMEDIATE
IMMEDIATE
FALSE
IV.3.3 Modification des paramètres d'instance STATIQUES
Pour modifier un PARAMETRE STATIQUE (ISSYS_MODIFIABLE positionné à 'FALSE') :
 Soit mise à jour du fichier texte initsid.ora,
puis mise à jour du fichier persistant spfilesid.ora par create spfile from pfile=…
 Soit mise à jour du fichier persistant spfilesid.ora par alter system … scope=SPFILE,
puis mise à jour du fichier texte initsid.ora par create pfile=… from spfile.
XEROX formation
Page 43
ORACLE 11G – Administration
Architecture de la base
V. ARCHITECTURE D'UNE BASE ORACLE
Pour gérer l’ensemble des données d’une base, Oracle utilise 2 types de structures de stockage
indépendantes l’une de l’autres :
 Les structures physiques, dont les composants sont stockés sur disque.
 Les structures logiques, dont les caractéristiques (métadonnées) sont stockées dans le dictionnaire.
XEROX formation
Page 44
ORACLE 11G – Administration
Architecture de la base
V.1
Les structures physiques

Le BLOC PHYSIQUE O.S.
Les données de la base sont stockées sur des disques formatés en blocs, dont la taille est dépendante de
l’O.S. Le bloc système (physique) est l’unité de lecture/écriture pour le système d’exploitation.

Les FICHIERS BASE DE DONNEES
Ce sont des espaces physiques réservé à Oracle. On distingue :
 Le fichier de contrôle, qui contient des informations sur les autres fichiers physiques de la base.
 Les membres de journaux, qui contiennent des informations relatives aux transactions.
 Les fichiers de données, qui contiennent les données utilisateur (data files) ou des données
temporaires (temp files).
Il existe trois méthodes de gestion des emplacements et des tailles des fichiers physiques.

Gestion manuelle
C’est le système de fichiers de l’O.S. qui est utilisé pour le stockage des fichiers physiques.
L'administrateur doit spécifier, l'emplacement, le nom, la taille et les conditions d'extension des
fichiers physiques. C’est la méthode la plus utilisée.

Gestion par O.M.F. (Oracle Managed Files, depuis la 9i)
C’est le système de fichiers de l’O.S. qui est utilisé pour le stockage des fichiers physiques.
Oracle se charge de nommer, créer et gérer les fichiers physiques, grâce à des paramètres
d'initialisation. Cette méthode, ancienne, est peu utilisée. Elle est cependant adoptée par RMAN.

Gestion par AS.M. (Automatique Storage Management depuis la 10G)
C’est un système de fichier spécifique à Oracle qui est utilisé.
Certains fichiers "externes" sont également utilisés.
 Les fichiers de paramètres.
 Les fichiers d'alertes et de traces.
 Le fichier de mot de passe externe.
 Les fichiers de configuration du réseau (listener.ora et tnsnames.ora).
XEROX formation
Page 45
ORACLE 11G – Administration
Architecture de la base
V.2
Les structures logiques

Le BLOC LOGIQUE est l'unité de lecture/écriture utilisée par Oracle.
Sa taille (de 2K à 32K) doit être un multiple de celle du bloc physique.
Elle est spécifiée par le paramètre DB_BLOCK_SIZE (8K par défaut).

Le TABLESPACE est un objet ("structure logique de stockage") permettant d'administrer un
espace physique constitué d’un ensemble de blocs logiques (extent) :
 Réparti sur plusieurs fichiers de données (1 à 1022 data files), pouvant contenir chacun jusqu'à 4
millions de blocs, pour les tablespaces "smallfile".
 Groupé dans un unique fichier de données, pouvant contenir jusqu'à 4 billions de blocs, pour les
tablespaces "bigfile" et dont la taille peut atteindre les 128 To (depuis la version 10G).

L'EXTENT est un ensemble de blocs logiques contigus :
 Alloué à un objet Oracle (segment) pour y stocker des données.
 Libre.

Le SEGMENT représente l'ensemble des extents, alloué à un objet Oracle.
Un segment est un objet (tables, index…) dont les données sont stockées dans un « data file ».
Il n’appartient qu’à un, et un seul, tablespace.
XEROX formation
Page 46
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI. LES STRUCTURES PHYSIQUES
VI.1
LE FICHIER DE CONTROLE
Le fichier de contrôle est un fichier binaire (non éditable) contenant des informations sur les structures
physiques de la base et sur son état :
 Le nom et le timestamp de la base (généré lors de la création de la base).
 Le DBID (identifiant unique affecté à la base)
 Le nom et les chemins d'accès des fichiers de données et des membres de journaux en ligne et
archivés.
 Le numéro de séquence du journal de reprise en cours.
 Des informations de check point relatives aux entrées dans les journaux de reprise.
Ces informations sont écrites par le processus CKPT toutes les trois secondes. Elles permettent de
déterminer les données écrites dans les journaux mais non écrites dans les fichiers de données. Ces
entrées seraient nécessaires lors d'un "recovery" de la base.
VI.1.1 Création du fichier de contrôle
Etant donné son rôle essentiel dans le fonctionnement de la base, il est conseillé de multiplexer le fichier
de contrôle, c'est à dire d'en créer plusieurs exemplaires sur des disques différents. Ceux-ci sont identifiés
par le paramètre d'initialisation CONTROL_FILES, et seront créés par la commande CREATE DATABASE.
Dans ce cas :
 Tous les exemplaires devant être identiques, Oracle les utilise tous lors d'opérations d'écriture.
 Seul le premier d'entre eux est utilisé pour les opérations de lecture.
 L'instance ne peut fonctionner qu'avec l'ensemble des exemplaires identifiés dans le fichier de
paramètres.
Oracle conseille de stocker un exemplaire du fichier de contrôle sur chaque unité physique accueillant
des membres de journaux de reprise.
PARAMETRAGE DU FICHIER DE CONTRÔLE
control_files=("exemplaire1","exemplaire2",…) : Liste des fichiers de contrôle associés à la base.
Vues du dictionnaire de données (Fichiers de contrôle)
V$CONTROLFILE : Chemins d’accès des exemplaires du fichier de contrôle.
V$DATABASE
: Informations contenues dans le fichier de contrôle.
VI.1.2 Manipulations de fichier(s) de contrôle
Il est possible d'ajouter, de renommer et de déplacer le(s) fichier(s) de contrôle.
1.
2.
3.
4.
Arrêt de l'instance
Copie ou Déplacement ou changement de nom (commandes de l'O.S.)
Mise à jour des fichiers de paramètres
Redémarrage de l'instance
XEROX formation
Page 47
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI.1.3 Création de nouveau(x) fichier(s) de contrôle
En cas de perte partielle des fichiers de contrôle, il suffit d'utiliser l'un de ceux restant, pour récupérer ceux
manquant ou endommagés (copie avec la commande O.S.).
Par contre, en cas de perte totale, il faut exécuter la commande CREATE CONTROLFILE.
Celle-ci peut-être générée par une commande qu'il convient d'exécuter à chaque modification physique de
la base de données (ajout d'un fichier de données, d'un membre de journal etc…) :
ALTER DATABASE BACKUP CONTROLFILE TO TRACE.
La trace ainsi générée, puis "nettoyée", peut être conservée sous forme d'un script.
-STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "XRX11G" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\APP\FORMATION\ORADATA\XRX11G\REDO01.LOG' SIZE 50M BLOCKSIZE 512,
GROUP 2 'C:\APP\FORMATION\ORADATA\XRX11G\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
GROUP 3 'C:\APP\FORMATION\ORADATA\XRX11G\REDO03.LOG' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'C:\APP\FORMATION\ORADATA\XRX11G\SYSTEM01.DBF',
'C:\APP\FORMATION\ORADATA\XRX11G\SYSAUX01.DBF',
'C:\APP\FORMATION\ORADATA\XRX11G\UNDOTBS01.DBF',
'C:\APP\FORMATION\ORADATA\XRX11G\USERS01.DBF'
CHARACTER SET WE8MSWIN1252
;
-- Database can now be opened normally.
ALTER DATABASE OPEN;
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\APP\FORMATION\ORADATA\XRX11G\TEMP01.DBF'
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
-- End of tempfile additions.
--
VI.1.4 Suppression de fichier(s) de contrôle
Pour supprimer un fichier de contrôle, il convient de respecter les étapes suivantes.
1.
2.
3.
4.
Arrêt de l'instance
Mise à jour des fichiers de paramètres
Suppression du fichier (commande de l'O.S.)
Redémarrage de l'instance
XEROX formation
Page 48
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI.2
LES JOURNAUX DE REPRISE EN LIGNE
Un journal de reprise est constitué d'un groupe de 1 à n fichiers physiques (members).
Une base Oracle doit comporter au moins deux journaux.
Ces journaux contiennent les traces des mises à jour apportées aux données de la base.
Etant donné leur rôle essentiel dans l'intégrité et la cohérence des données, il est conseillé de multiplexer
le membre d'un groupe, c'est à dire d'en créer plusieurs exemplaires sur des disques différents.
Les groupes et leur(s) membre(s) sont créés par le CREATE DATABASE.
Log
Buffer
SGA
LGWR
Groupe1
Groupe2
Groupe3
Membre1
Membre1
Membre1
Disque1
Membre2
Membre2
Membre2
Disque2
GROUP#
SEQUENCE#
MEMBERS STATUS
ARC
------- ---------- ---------- ---------------- --1
40
1 ACTIVE
YES
2
41
1 CURRENT
NO
3
39
1 INACTIVE
YES
GROUP#
------1
1
2
2
3
3
MEMBER
STATUS
------------------------------------------------------------ -----C:\APP\FORMATION\ORADATA\XRX11G\REDO01.LOG
C:\APP\FORMATION\ORADATA\XRX11G\REDO01_2.LOG
C:\APP\FORMATION\ORADATA\XRX11G\REDO02.LOG
C:\APP\FORMATION\ORADATA\XRX11G\REDO02_2.LOG
C:\APP\FORMATION\ORADATA\XRX11G\REDO03.LOG
C:\APP\FORMATION\ORADATA\XRX11G\REDO03_2.LOG
XEROX formation
Page 49
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI.2.1 Contenu et fonctionnement des journaux en ligne
Un membre de journal est constitué d'entrées. Chacune d'entre elles, contient la trace des modifications
apportées aux données d'un bloc d'un segment (images avant et après). Un numéro SCN (System Change
Number) est asssigné à l'ensemble des entrées d'une transaction validée.
Ces données pourront être utilisées :
 Lors d'un recovery d’instance, pour écrire dans les fichiers de données tout ce qui n'avait pas encore
été écrit au moment de l'arrêt inattendu de l'instance.
 Lors d'une récupération de base, afin de retrouver un état cohérent de la base.
C'est le processus LGWR, qui écrit les entrées du log buffer dans le(s) membre(s) du journal en cours :
 Lorsqu'une transaction est validée.
 Lorsque le log buffer est plein.
Lorsque le journal en cours est plein, le LGWR commence à écrire dans le prochain journal disponible
(celui présentant le numéro de séquence le plus petit). Le précédent est alors disponible pour l'archivage.
Un journal peut se trouver dans l'un des états suivant :
 CURRENT, pour le journal alloué au LGWR.
 ACTIVE, pour les journaux nécessaires à un recovery d'instance, c'est à dire ceux dont les données
n'ont pas encore été écrites pas le DBWR dans les fichiers de données.
C'est également l'état d'un journal en cours d'archivage.
 INACTIVE, pour les journaux qui ne sont plus nécessaires au recovery d'instance ou qui ont été
archivés.
PARAMETRAGE DES JOURNAUX (dans le CREATE DATABASE)
MAXLOGFILES
:
MAXLOGMEMBERS
:
ARCHIVE_LAG_TARGET :
Nombre maximum de journaux (groupes)
La valeur par défaut dépend du système d'exploitation.
Depuis le version 10G, le paramètre est mis à jour si le nombre de
journaux dépasse celui prévu (recréation du fichier de contrôle dans les
autres cas).
Nombre maximum de membres par journaux.
La valeur par défaut dépend du système d'exploitation.
Permet de forcer un switch du journal en cours, à intervalle régulier.
La valeur est exprimée en secondes.
Vues du dictionnaire de données (REDO LOGS)
V$LOG
: Informations sur les journaux (groupes).
V$LOGFILE
: Informations sur les membres de journaux.
V$LOG_HISTORY (10G) : Historique d'utilisation des journaux.
XEROX formation
Page 50
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI.2.2 Manipulations des Redo Log Files
AJOUT D'UN GROUPE
ALTER DATABASE ADD LOGFILE GROUP n
('chemin\membre1', 'chemin\membre2') SIZE s
[ REUSE ]
La taille peut être fournie en Ko (K) ou en Mo (M).
REUSE permet de détruire et de ré-créer les fichiers physiques, s'ils existent déjà.
SUPPRESSION D'UN GROUPE
ALTER DATABASE DROP LOGFILE GROUP n
Le groupe doit être inactif.
AJOUT D'UN MEMBRE
ALTER DATABASE ADD LOGFILE MEMBER 'chemin\membre' TO GROUP n
SUPPRESSION D'UN MEMBRE
ALTER DATABASE DROP LOGFILE MEMBER 'chemin\membre'
Le groupe doit être inactif.
RENOMMER/DEPLACER UN MEMBRE
ALTER DATABASE RENAME FILE 'chemin\membre'
TO 'nouveau_chemin\membre'
Cette commande ne doit être exécutée qu'après avoir effectivement déplacé/renommé le membre, avec les
commandes de l'O.S.
Le groupe doit être inactif.
FORCER UN SWITCH OU UN CHECKPOINT
ALTER SYSTEM SWITCH LOGFILE
ALTER SYSTEM CHECKPOINT
XEROX formation
Page 51
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI.3
LES JOURNAUX DE REPRISE ARCHIVES
Log
Buffer
SGA
Archive
LGWR
ARC
Groupe1
Groupe2
Groupe3
Membre1
Membre1
Membre1
Disque1
Membre2
Membre2
Membre2
Disque2
Ces archives sont des sauvegardes (copies) de journaux online switchés. Elles sont créées par le
processus ARCn dans le répertoire spécifié par le fichier de paramètres. Elles participeront à une
éventuelle récupération de base, au même titre que les journaux en ligne.
XEROX formation
Page 52
ORACLE 11G – Administration
Architecture de la base : STRUCTURES PHYSIQUES
VI.4
Les FICHIERS DE DONNEES
Les fichiers de données (Data Files) sont des espaces disques réservés à Oracle, pour le stockage des
données des segments de la base.
Les premiers blocs d’un data file contiennent l’entête du fichier. On y trouve :
 Le numéro absolu du fichier (de 1 à n, identifiant unique dans la base).
 Le numéro relatif du fichier (de 0 à n, identifiant unique dans le tablespace).
Il est préférable de stocker les data files sur des disques différents de ceux des journaux.
PARAMETRAGE DES FICHIERS DE DONNEES (dans le CREATE DATABASE)
MAXDATAFILES
:
Nombre maximum de fichiers de données. Il permet de calculer la taille
initiale réservée à la portion « datafile » dans le fichier de contrôle.
Par défaut : 100. Si l'on ajoute un fichier dont le numéro est supérieur à la
valeur spécifiée, mais est inférieure à celle du paramètre d'initialisation
DB_FILES, alors le fichier de contrôle est mis à jour.
PARAMETRAGE DES FICHIERS DE DONNEES (fichier de paramètres)
DB_FILES
:
Nombre maximum de fichiers de données pouvant être ouverts, et pour
lesquels il faut réserver de l'espace en SGA.
Par défaut : 200.
Vues du dictionnaire de données (Fichiers de données)
V$DATAFILE
V$DATAFILE_HEADER
V$TEMPFILE
DBA_DATA_FILES
DBA_TEMP_FILES
DBA_EXTENTS
DBA_FREE_SPACE
Numéro
Absolu
------1
1
2
3
4
:
:
:
:
:
:
:
Informations sur les fichiers associés aux tablespaces permanents.
Informations sur les entêtes des fichiers.
Informations sur les fichiers associés aux tablespaces temporaires.
Informations sur les fichiers associés aux tablespaces permanents.
Informations sur les fichiers associés aux tablespaces temporaires.
Description des extents alloués aux segments.
Description des extents libres.
NAME
------------------------------------------------------C:\APP\FORMATION\ORADATA\XRX11G\SYSTEM01.DBF
C:\APP\FORMATION\ORADATA\XRX11G\TEMP01.DBF
C:\APP\FORMATION\ORADATA\XRX11G\SYSAUX01.DBF
C:\APP\FORMATION\ORADATA\XRX11G\UNDOTBS01.DBF
C:\APP\FORMATION\ORADATA\XRX11G\USERS01.DBF
XEROX formation
Page 53
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
VII. Les STRUCTURES LOGIQUES d'une base Oracle
VII.1
LES TABLESPACES
VII.1.1 Organisation des données à travers les tablespaces
Il existe trois catégories de tablespaces :
 Les tablespaces permanents, pour le stockage des segments permanents Oracle et utilisateur.
 Les tablespaces temporaires, pour le stockage de segments temporaires (opérations de tri, création
d’index…).
 Les tablespaces "undo", dédiés à la gestion automatique des segments d'annulation.
Deux critères déterminent le nombre et le contenu des tablespaces : les performances et l'organisation.
L'utilisation de plusieurs tablespaces offrent les avantages suivants :
 Séparation des données Oracle (system et sysaux) de celles des utilisateurs (users).
 Séparation des données de type différent (tables, index,…).
 Séparation des données d'une application de celles d'une autre application.
 Répartition des données sur différents disques, afin d’optimiser les temps d’accès et de limiter les
risques de contention.
 Souplesse d'organisation des sauvegardes physiques individuelles.
Oracle recommande d'utiliser au moins un tablespace par type de segment. Le nombre de tablespaces
par base de données n'est pas limité (contrairement aux datafiles).
Les tablespaces suivants sont créés lors de la création de la base de données :
 SYSTEM et SYSAUX pour les segments de données Oracle (obligatoire).
 UNDOTBS1 pour les segments d’annulation (obligatoire si undo_management=auto).
 TEMP, un tablespace temporaire PAR DEFAUT.
 USERS, un tablespace permanent PAR DEFAUT (facultatif mais conseillé) (depuis la V10G).
Pour les segments utilisateur, la configuration minimum recommandée, est la suivante :
 Un tablespace pour les segments tables, si celui-ci n’a pas été créé lors de la création de la base.
 Un tablespace pour les segments index.
D'autres tablespaces peuvent être créés pour y stocker des segments présentant des caractéristiques
spécifiques (cluster de données, tables partitionnées,...).
XEROX formation
Page 54
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
Tablespaces créés par le CREATE DATABASE
CREATE DATABASE "AE"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE 'F:\app\formation\oradata\AE\system01.dbf' SIZE 700M REUSE AUTOEXTEND ON
NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'F:\app\formation\oradata\AE\sysaux01.dbf' SIZE 600M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
'F:\app\formation\oradata\AE\temp01.dbf' SIZE 20M REUSE AUTOEXTEND
ON NEXT 640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE
'F:\app\formation\oradata\AE\undotbs01.dbf' SIZE 200M REUSE
AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET WE8MSWIN1252
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('F:\app\formation\oradata\AE\redo01.log') SIZE 51200K,
GROUP 2 ('F:\app\formation\oradata\AE\redo02.log') SIZE 51200K,
GROUP 3 ('F:\app\formation\oradata\AE\redo03.log') SIZE 51200K
Vue du dictionnaire de données (tablespaces)
V$SYSAUX_OCCUPANTS
: Informations sur les occupants du tablespace SYSAUX, ainsi que sur
V$TABLESPACE
DBA_TABLESPACES
DBA_TABLESPACE_GROUPS
: Informations sur les tablespaces.
: Informations sur les tablespaces.
: Informations sur les groupes de tablespaces temporaires.
les procédures de déplacements.
XEROX formation
Page 55
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
VII.1.2 Méthodes de gestion de l’espace des tablespaces
Au moment de la création d’un tablespace, l’une des deux méthodes permettant de gérer ses espaces libres
et occupés, doit être choisie :

Tablespace géré localement. (EXTENT MANAGEMENT LOCAL)
Les repères d’espaces libres ou occupés, sont gérées via un index bitmap stocké dans l’entête de
chaque data file. C’est la méthode proposée par défaut, et celle qui devrait être choisie.
Les avantages de cette méthode, plus performante, sont nombreux :
 La mise à jour de l’index bitmap ne génère pas de données d’annulation (pas de mise à jour de
tables).
 Réduction d’espace disque utilisé dans le dictionnaire.
 Les opération de « coalesce » des extents libres contigus, deviennent inutiles.
 La taille des extents des segments peut être gérée automatiquement par Oracle.

Tablespace géré par dictionnaire. (EXTENT MANAGEMENT DICTIONARY)
Les informations relatives aux espaces libres ou occupés, sont stockées dans le dictionnaire.
C’était la méthode utilisée avant la V9i.
VII.1.3 Espace des tablespaces gérés localement
Pour les tablespaces dont l’espace est géré localement, le mode d’allocation des extents des segments et le
mode de gestion de l’espace à l’intérieur des segments, doivent être spécifiés.

Allocation des extents.(EXTENT MANAGEMENT LOCAL AUTOALLOCATE ou UNIFORM)
Avec AUTOALLOCATE, la taille des extents est automatiquement déterminée par Oracle (64K minimum).
C’est un bon choix pour les tablespaces destinés à héberger des objets nécessitant de nombreux extents
de tailles différentes. Il est par contre possible qu’un peu d’espace soit perdu.
Cette méthode n’est pas autorisée pour les tablespaces temporaires.
Avec UNIFORM, la taille des extents, spécifiée par la clause SIZE , est fixe (1M par défaut).

Espace des segments.(SEGMENT SPACE MANAGEMENT AUTO ou MANUAL)
Avec AUTO (ASSM, Atomatic Segment Space Management), les espaces libres d’un segment sont
gérés à l’aide d’un index bitmap.
Avec MANUAL, les espaces libres d’un segment sont gérés à l’aide des clauses PCTUSED, FREELISTS et
FREELIST GROUP. Cette méthode n’est plus recommandée par Oracle. Elle pourrait devenir obsolète,
dans les versions à venir.
XEROX formation
Page 56
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
VII.2
GESTION DES TABLESPACES PERMANENTS
VII.2.1 Les tablespaces "utilisateur"
CREATION D'UN TABLESPACE PERMANENT
CREATE [ SMALLFILE ou BIGFILE] [ UNDO ] TABLESPACE nom_tablespace
DATAFILE 'chemin\fichier' SIZE s [ REUSE ]
[ AUTOEXTEND OFF ou ON ] [ NEXT n ] [ MAXSIZE n ]
[ BLOCKSIZE nK ]
[ LOGGING ou NOLOGGING ]
[ EXTENT MANAGEMENT LOCAL option_local ou DICTIONARY ]
[ SEGMENT SPACE MANAGEMENT AUTO ou MANUAL ]
[ DEFAULT STORAGE ( options_default_storage ) ]
SMALLFILE
BIGFILE
UNDO
:
:
:
Pour un espace physique pouvant comporter plusieurs fichiers.
Pour un espace physique ne comportant qu'un fichier unique.
Pour créer un tablespace UNDO.
DATAFILE
SIZE
:
:
REUSE
AUTOEXTEND
NEXT
MAXSIZE
BLOCKSIZE
LOGGING/NOLOGING
:
:
:
:
:
:
Chemin d'accès et nom du fichier de données.
Taille de l'extension initiale du fichier de données.
Exprimée en Ko (K), en Mo (M), en Go (G) ou en To (T)
Pour détruire le fichier de données, s'il existe déjà.
Pour une extension automatique du fichier de données (défaut OFF).
Taille d'une extension supplémentaire.
Limite de taille de l'ensemble des extensions.
Taille du bloc Oracle (défaut taille de bloc standard).
Clause logging par défaut des segments créés dans le tablespace.
EXTENT MANAGEMENT
 LOCAL (défaut)
 AUTOALLOCATE
:
:
:


UNIFORM SIZE s
DICTIONARY
:
:
SEGMENT SPACE MANAGEMENT :

AUTO (défaut)
:

MANUAL
:
XEROX formation
Mode de gestion des extents des segments créés dans le tablespace.
Les informations d'espace sont stockées dans l'entête du datafile.
Les extents des segments sont gérés automatiquement
(défaut pour les tablespaces permanents et undo)
Les extents ont tous la même taille (si UNIFORM SIZE s)
(défaut pour les tablespaces temporaires)
Les informations d'espace sont stockées dans le dictionnaire. Les
extents des segments sont gérés grâce à la clause STORAGE des
CREATE de segment ou à la clause DEFAULT STORAGE du
CREATE TABLESPACE.
(uniquement pour les tablespaces permanents et gérés localement).
Les blocs libres et occupés d'un segment sont gérés par des
"bitmaps". Les options PCTUSED et FREELIST de la clause
STORAGE des CREATE, sont ignorées.
Les blocs libres et occupés d'un segment sont gérés par via les "free
lists". Cette option est déconseillée par Oracle.
Page 57
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
MODIFICATION DES CARACTERISTIQUES D'UN TABLESPACE
ALTER [ UNDO ] TABLESPACE nom_tablespace
[ AUTOEXTEND OFF ou ON ] [ NEXT n ] [ MAXSIZE n ]
[ ONLINE ou OFFLINE option_offline ]
[ BEGIN BACKUP ou END BACKUP ]
[ READ WRITE ou READ ONLY ]
[ COALESCE ]
[ LOGGING ou NOLOGGING ] [ FORCE LOGGING ]
Les conditions d'extension AUTOEXTEND, NEXT et MAXSIZE ne peuvent être modifiées par ALTER
TABLESPACE que pour les tablespaces "bigfile". Pour les autres, il convient d'utiliser la commande
ALTER DATABASE.
OFFLINE
 NORMAL (défaut)
:
:

TEMPORARY
:

IMMEDIATE
:
ONLINE
BEGIN ou END BACKUP
:
:
READ WRITE ou ONLY
FORCE LOGGING
:
:
Pour empêcher l'accès au tablespace.
D'éventuels "dirty buffers" sont écrits dans les fichiers de données
Pas de recovery nécessaire lors de la remise ONLINE.
Un check point est exécuté mais les écritures ne sont pas assurées.
Recovery possible lors de la remise ONLINE.
Oracle ne s'assure pas que les fichiers soit disponibles et n'exécute
pas de check point. Recovery nécessaire lors de la remise ONLINE.
Pour rétablir l'accès au tablespace.
Au début ou à la fin d'une sauvegarde à chaud sans mise OFFLINE
du tablespace.
Modification de l'état du tablespace lecture/écriture ou lecture.
Force le logging quelle que soit la valeur de chaque segment.
RENOMMER UN TABLESPACE (Depuis la V10G)
ALTER TABLESPACE ancien_nom RENAME TO nouveau_nom
AJOUT D'UN FICHIER PHYSIQUE A UN TABLESPACE
ALTER TABLESPACE nom_tablespace
ADD DATAFILE ou TEMPFILE 'chemin\fichier' SIZE n REUSE
[ AUTOEXEND OFF ou ON ] [ NEXT n ] [ MAXSIZE n ]
SUPPRESSION D'UN FICHIER PHYSIQUE
ALTER TABLESPACE nom_tablespace
DROP DATAFILE ou TEMPFILE 'chemin\fichier'
SUPPRESSION D'UN TABLESPACE
DROP TABLESPACE nom_tablespace
[ INCLUDING CONTENTS [ AND DATAFILES ] [ CASCADE CONSTRAINTS ] ]
XEROX formation
Page 58
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
Exemple : Création d'un tablespace permanent
CREATE TABLESPACE tbs_loc
DATAFILE 'C:\app\formation\oradata\xrx11g\tbs_perm.dbf'
SIZE 50M REUSE
AUTOEXTEND on NEXT 10M MAXSIZE 100M
Exemple : Création d'un tablespace associé à 2 fichiers physiques
CREATE TABLESPACE tbs_2datf
DATAFILE 'C:\app\formation\oradata\xrx11g\tbs_2datf_1.dbf' SIZE 20M,
'C:\app\formation\oradata\xrx11g\tbs_2datf_2.dbf' SIZE 30M
AUTOEXTEND on NEXT 10M MAXSIZE 80M;
VII.2.2 Les tablespaces SYSTEM et SYSAUX
Ces deux tablespaces sont obligatoires. Ils sont créés par le CREATE DATABASE.
Le tablespace SYSTEM contient les tables du dictionnaire de données.
Depuis V10G, le tablespace SYSAUX contient les données (référentiels) de certains utilitaires Oracle.
VII.2.3 Le tablespace "UNDO"
Ce tablespace est obligatoire, si la gestion des segments d’annulation est automatique (conseillé). Il est
dans ce cas créé par le CREATE DATABASE. L'instance ne peut être associée qu'à un seul tablespace
undo. Aucun segment ne peut être créé dans ce tablespace, hormis ceux créés par Oracle.
Le tablespace undo est assigné à l'instance :
 Au startup. Il est soit désigné par le fichier de paramètres, soit choisi par Oracle (tbs disponible).
 Soit grâce à la commande ALTER SYSTEM SET UNDO_TABLESPACE=nom_tbs
PARAMETRAGE DE LA GESTION DES SEGMENTS D’ANNULATION
undo_management=auto ou manual : Mode de gestion des segments d’annulation.
undo_tablespace= nom_tbs
: Indique le nom du tablespace à activer, dans le cas où il y en
aurait plusieurs (facultatif).
rollback_segments=(tbs1, tbs2…)
: Liste des segments d’annulation mis ON-LINE au démarrage
de l'instance (si undo_management=manual).
Exemple : Création d'un tablespace undo
CREATE UNDO TABLESPACE tbs_undo
DATAFILE 'C:\app\formation\oradata\xrx11g\tbs_undo.dbf'
SIZE 100M AUTOEXTEND on;
XEROX formation
Page 59
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
VII.3
LES TABLESPACES TEMPORAIRES
VII.3.1 Role de tablespaces temporaires
Les tablespaces temporaires fournissent un espace supplémentaire aux opérations de tri ne disposant plus
d'assez d'espace en mémoire (sort_area insuffisante). Le tablespace temporaire associé à un compte est :
 Celui prévu par la commande CREATE USER.
 Par défaut :
 Celui prévu par la commande CREATE DATABASE (obligatoire si l'espace du tablespace
system est géré localement).
 Le tablespace system, si l'espace de celui-ci est géré par dictionnaire.
VII.3.2 Notion de groupe de tablespaces temporaires (V10G)
Depuis la version 10G, il est possible d'affecter à un compte un groupe de tablespaces temporaires. Ceci
permet d'améliorer les performances d'opérations de tri simultanées, exécutées par un utilisateur. Le
groupe existe dès l'attribution d'un premier tablespace. Il disparaît dès le retrait de son dernier tablespace.
VII.3.3 Gestion de tablespaces temporaires
CREATION D'UN TABLESPACE TEMPORAIRE
CREATE TEMPORARY TABLESPACE nom_tbs TEMPFILE 'chemin\fichier' SIZE s
[ TABLESPACE GROUP groupe_tablespace ]
TEMPFILE
SIZE
REUSE
TABLESPACE GROUP
Options imposées
:
:
:
:
:
[ REUSE ]
Chemin d'accès et nom du fichier de données temporaire.
Taille de l'extension initiale (Ko (K), Mo (M), Go (G) ou To (T)
Pour détruire le fichier de données déjà existant.
Pour intégrer le tablespace à un groupe.
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
BLOCKSIZE taille_block_standard
AJOUT/RETRAIT D'UN TABLESPACE TEMPORAIRE A UN GROUPE
ALTER TABLESPACE nom_tablespace TABLESPACE GROUP groupe_tablespace
Pour retirer un tablespace de son groupe, il suffit de spécifier '' à la place du nom de groupe.
MODIFICATION DU TABLESPACE TEMPORAIRE PAR DEFAUT
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE nom_tablespace ou groupe
RECUPERATION D’ESPACE (EXTENTS) DANS UN TABLESPACE TEMPORAIRE
ALTER TABLESPACE nom_tablespace SHRINK SPACE KEEP nM
ALTER TABLESPACE nom_tablespace SHRINK TEMPFILE ‘chemin\fichier’
XEROX formation
Page 60
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
Exemple : Création d'un tablespace temporaire
CREATE TEMPORARY TABLESPACE tbs_temp
TEMPFILE 'C:\app\formation\oradata\xrx11g\tbs_temp.dbf'
SIZE 100M
TABLESPACE GROUP tbs_temp_group;
Vue du dictionnaire de données (tablespaces temporaires)
V$SORT_SEGMENT
:
V$TEMP_USAGE
:
DBA_TEMP_FREE_SPACE :
XEROX formation
Informations sur les segments des tablespaces temporaires.
Informations sur les utilisateurs utilisant les segments temporaires.
Informations sur extents des tablespaces temporaires.
Page 61
ORACLE 11G – Administration
Architecture de la base :STRUCTURES LOGIQUES
VII.4
MANIPULATIONS DE FICHIERS DE DONNEES
MODIFICATION DES CONDITIONS D'EXTENSION D'UN FICHIER DE DONNEES
ALTER DATABASE
DATAFILE ou TEMPFILE 'chemin\fichier'
[ AUTOEXEND OFF ou ON ] [ NEXT n ] [ MAXSIZE n ]
AUTOEXEND
NEXT
MAXSIZE
:
:
:
Modificationdu mode d'extension du fichier de données.
Modification de la taille d'une extension supplémentaire.
Modification de la limite de taille de l'ensemble des extensions.
MODIFICATION DE LA TAILLE D'UN FICHIER DE DONNEES
ALTER DATABASE
DATAFILE ou TEMPFILE 'chemin\fichier'
RESIZE nouvelle_taille
RENOMMER/DEPLACER UN FICHIER DE DONNEES D'UN TABLESPACE "NON-SYSTEM"
Il est indispensable d'effectuer l'opération physique (commandes de l'O.S.) avant de mettre à jour le fichier
de contrôle par ALTER TABLESPACE. Pour cela il faut mettre le tablespace OFFLINE.
ALTER TABLESPACE nom_tablespace
RENAME DATAFILE 'ancien_chemin\nom' TO 'nouveau_chemin\nom'
RENOMMER/DEPLACER LE FICHIER DE DONNEES DU TABLESPACE SYSTEM
Il est indispensable d'effectuer l'opération physique (commandes de l'O.S.) avant de mettre à jour le fichier
de contrôle par ALTER DATABASE. Pour cela il faut arrêter l'instance.
ALTER DATABASE
RENAME FILE 'ancien_chemin\nom' TO 'nouveau_chemin\nom'
XEROX formation
Page 62
ORACLE 11G – Administration
CREATION D'UNE BASE DE DONNEES
VIII. CREATION D'UNE BASE ORACLE 11G
La création d'une base de données consiste en un certain nombre d'étapes, permettant :
 De définir les ressources mémoire constituant la nouvelle instance.
 De créer les différentes structures physiques constituant la nouvelle base.
 D'intégrer la base dans l'environnement de travail.
Il est conseillé d'utiliser l'interface graphique DBCA (DataBase Configuration Assistant)
VIII.1 Etapes préalables
Ces étapes permettent de mettre en place toutes les ressources nécessaires au CREATE DATABASE.
 Créer les répertoires (commandes DOS ou SHELL)
 Créer un fichier de paramètres initsid.ora
 Créer et démarrer le service OracleserviceSID, avec oradim (sous windows uniquement)
 Créer un fichier de mots de passe externe, avec orapwd
VIII.1.1 L'outil ORADIM
Chaque instance Oracle doit être associée à un service Windows OracleServiceSID (ou un daemon unix).
L'outil oradim permet de créer et de paramétrer ce service. Il peut également être utilisé pour
démarrer/arrêter le service et/ou l'instance (le démarrage et l'arrêt du service et de l'instance peuvent être
synchronisés).
Exemples de création et de suppression de service
ORADIM –new –sid XRX –startmode AUTO –srvcstart SYSTEM –spfile
ORADIM –delete –sid XRX
-startmode :
-srvcstart
:
Indique si l'instance démarre après démarrage du service (AUTO) ou pas (MANUAL)
Indique si le service démarre au démarrage de l'ordinateur (SYSTEM) ou pas (DEMAND)
XEROX formation
Page 63
ORACLE 11G – Administration
CREATION D'UNE BASE DE DONNEES
VIII.1.2 L'outil ORAPWD
Cet outil permet de créer le fichier de mots de passe externe (%ORACLE_HOME%\database\PWDsid).
Ce fichier permet le démarrage et l'arrêt de l'instance à partir de postes distants (qui ne peuvent pas hériter
du groupe ORA_DBA qui se trouve sur le serveur). Il contient les informations concernant les utilisateurs
autorisés à se connecter avec les privilèges SYSDBA et SYSOPER.
Attention, depuis la V11G, les mots de passe sont case-sensitive, par défaut.
Exemple de création du fichier de mots de passe externe
ORAPWD file=chemin\PWDsid password=mot de passe [ entries=nombre ]
file
:
password :
entries
:
Chemin d'accès complet du fichier de mot de passe.
Mot de passe de l'utilisateur SYS.
Nombre d'utilisateurs autorisés à se connecter en utilisant le fichier de mots de passe.
PARAMETRAGE D'UTILISATION DU FICHIER DE MOTS DE PASSE EXTERNE
remote_login_passwordfile :
 NONE
:


EXCLUSIVE
SHARED
:
:
Seuls les membres du groupe ORA_DBA sont autorisés à démarrer/arrêter
l'instance (connexion locale).
L'utilisation du fichier de mots de passe est autorisée.
Le fichier de mots de passe est partagé entre plusieurs instances (RAC).
Vues du dictionnaire de données
V$PWFILE_USERS : Liste des utilisateurs pouvant se connecter avec sysdba/sysoper.
L'ajout de nouveaux utilisateurs autorisés à utiliser le fichier de mots de passe, se fait grâce à un GRANT.
GRANT SYSDBA ou SYSOPER TO compte
SELECT * FROM V$PWFILE_USERS;
USERNAME
-----------------------------SYS
SYSTEM
XEROX formation
SYSDBA
----TRUE
TRUE
SYSOPER
----TRUE
FALSE
Page 64
ORACLE 11G – Administration
CREATION D'UNE BASE DE DONNEES
VIII.1.3 Le fichier de paramètres initsid.ora
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
###########################################
# Cache and I/O
###########################################
db_block_size=8192
###########################################
# File Configuration
###########################################
control_files=("C:\app\formation\oradata\xrx11g\control01.ctl",
"C:\app\formation\flash_recovery_area\xrx11g\control02.ctl")
db_recovery_file_dest=C:\app\formation\flash_recovery_area
db_recovery_file_dest_size=5218762752
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# Miscellaneous
###########################################
compatible=11.2.0.0.0
diagnostic_dest=C:\app\formation
memory_target=1287651328
###########################################
# Database Identification
###########################################
db_domain=""
db_name=xrx11g
###########################################
# NLS
###########################################
nls_language="FRENCH"
nls_territory="FRANCE"
###########################################
# Processes and Sessions
###########################################
processes=150
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1
###########################################
# Security and Auditing
###########################################
audit_file_dest=C:\app\formation\admin\xrx11g\adump
audit_trail=db
remote_login_passwordfile=EXCLUSIVE
XEROX formation
Page 65
ORACLE 11G – Administration
CREATION D'UNE BASE DE DONNEES
VIII.2 CONNEXION ET DEMARRAGE DE LA NOUVELLE INSTANCE
Sous SQL*Plus
Positionnement de la variable ORACLE_HOME (choix de la version)
 set oracle_home=chemin_version
(DOS)
 export ORACLE_HOME=chemin_version
(SHELL)
Positionnement de la variable ORACLE_SID (identification de l'instance)
 set oracle_sid=instance
(DOS)
 export ORACLE_SID=instance
(SHELL)
Connexion à l'instance sous SQL*PLUS
 sqlplus sys/mot de passe AS SYSDBA
Démarrage de l'instance
 STARTUP NOMOUNT PFILE="chemin\initSID.ora"
VIII.3 CREATION DE LA BASE DE DONNEES
Exécution du CREATE DATABASE qui permet :
 La création du fichier de contrôle.
 La création des tablespaces SYSTEM et SYSAUX.
 La création d'un undo tablespace (si gestion automatique des segments d’annulation).
 La création des redo log files.
 La création d'un tablespace temporaire par défaut.
 La création des tables du dictionnaire de données.
 Création du schéma SYSTEM.
XEROX formation
Page 66
ORACLE 11G – Administration
CREATION D'UNE BASE DE DONNEES
Exemple de commande CREATE DATABASE
CREATE DATABASE "XRX11G"
MAXINSTANCES 8
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE 'C:\app\formation\oradata\XRX11G\system01.dbf' SIZE 300M REUSE AUTOEXTEND
ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SYSAUX
DATAFILE 'C:\app\formation\oradata\XRX11G\sysaux01.dbf' SIZE 120M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TABLESPACE USERS
DATAFILE 'C:\app\formation\oradata\XRX11G\user01.dbf' SIZE 5M
REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE 'C:\app\formation\oradata\XRX11G\temp01.dbf' SIZE 20M
REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS1"
DATAFILE 'C:\app\formation\oradata\XRX11G\undotbs01.dbf' SIZE 200M
REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
SET DEFAULT TABLESPACE SMALLFILE
CHARACTER SET WE8ISO8859P15
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('C:\app\formation\oradata\XRX11G\redo01.log') SIZE 51200K,
GROUP 2 ('C:\app\formation\oradata\XRX11G\redo02.log') SIZE 51200K,
GROUP 3 ('C:\app\formation\oradata\XRX11G\redo03.log') SIZE 51200K
USER SYS IDENTIFIED BY "&&sysPassword"
USER SYSTEM IDENTIFIED BY "&&systemPassword";
VIII.4 Tâches supplémentaires
Exécution de procédures fournies par Oracle, permettant :
 La création des vues du dictionnaire de données.
 L'installation des packages pl/sql.
 La création des tablespaces supplémentaires.
 L'installation de ressources nécessaires à certaines options ou outils (textes d'aide de sqlplus).
VIII.5 Tâches de "Post-installation"
Exécution de procédures fournies par Oracle ou par l'utilisateur :
 Création du spfileSID.ora à partir de l'initSID.ora.
 Configuration du réseau (service lié au listener…).
 Création de schémas.
 Création des différents objets qui permettront d'accueillir les données de la base.
 Sauvegarde de la base de données.
Vues du dictionnaire de données
V$DATABASE
: Informations sur la base de données.
DATABASE_PROPERTIES : Affichage de certaines propriétés de la base de données.
XEROX formation
Page 67
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX. GESTION DE L’ESPACE DISQUE
IX.1
Le schéma et ses objets
On appelle "SCHEMA" l'ensemble des objets Oracle dont un utilisateur de la base est propriétaire.
Le compte de l'utilisateur et le schéma porte le même nom. Il peut être constitué des objets suivants :
 SEGMENTS (tables, index, …)
 Vues et synonymes
 Séquences
 Liens de base de données (database links)
 Traitements stockés (procédures, fonctions et déclencheurs)
 Les packages PL/SQL
 Ressources, classes et sources Java
Certains objets de la base, n'appartiennent pas à un schéma :
 Comptes utilisateur (schémas...)
 Tablespaces
 Roles
 Profiles
 Directories
Il est possible de créer les tables et les vues d’un utilisateur en une opération unique (considérée comme
une transaction), grâce à la requête CREATE SCHEMA. Cette opération ne créé pas le schéma (qui doit
exister), mais des objets dont celui-ci sera propriétaire.
La requête CREATE SCHEMA ne peut contenir que des CREATE TABLE (sans clause STORAGE), CREATE
VIEW, ou GRANT.
CREATE SCHEMA AUTHORIZATION scott
CREATE TABLE dept (
deptno NUMBER(3,0) PRIMARY KEY,
dname VARCHAR2(15),
loc VARCHAR2(25))
CREATE TABLE emp (
empno NUMBER(5,0) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
job VARCHAR2(10),
mgr NUMBER(5,0),
hiredate DATE DEFAULT (sysdate),
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(3,0) NOT NULL
CONSTRAINT dept_fkey REFERENCES dept)
CREATE VIEW brut_annuel AS
SELECT d.dname, e.empno, e.ename, e.sal*13 AS "BRUAN"
FROM e.emp, d.dept
WHERE e.deptno = d.deptno
GRANT SELECT ON brut_annuel TO cours1;
XEROX formation
Page 68
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.2
Notion de SEGMENT
Le segment est l'unité logique de stockage de données dans le(s) fichier(s) de données d’un tablespace.
Il est composé d'extents dans lesquels sont stockées les données. La taille d'un segment est la somme des
tailles de ses extents. Certains segments (tables et index) peuvent être partitionnés sur plusieurs
tablespaces.
Vues du dictionnaire de données (segments et extents)
DBA_EXTENTS
DBA_FREE_SPACE
DBA_SEGMENTS
IX.3
: Informations sur les espaces occupés des tablespaces
: Informations sur les espaces libres des tablespaces
: Informations sur les segments
Les SEGMENTS UTILISATEUR
IX.3.1 Types de segments utilisateur





Les tables non partitionnées ne sont constituées que d’un seul segment.
Les tables partitionnées présentent un segment par partition.
Les index non partitionnés ne sont constitués que d’un seul segment.
Les index partitionnés présentent un segment par partition.
Le cluster de données comporte un seul segment, dans lequel sont stockées les données de chaque
table du cluster.
Depuis la Release 11.2.0.1, la création du segment est différée, c'est-à-dire qu’aucun espace disque initial
n’est alloué lors de la création de l’objet (table ou index non partitionnés).
Ceci est du au paramètre d’initialisation DEFERRED_SEGMENT_CREATION=TRUE ainsi qu’à la clause
SEGMENT CREATION DEFERRED par défaut du CREATE TABLE.
Depuis la Release 11.2.0.2, la création du segment est différée pour les tables ou index partitionnés.
La colonne segment_created des vues DBA_TABLES, DBA_INDEXES, DBA_TAB_PARTITIONS ou
DBA_IND_PARTITIONS, permet de vérifier si un segment est créé ou pas.
XEROX formation
Page 69
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.3.2 Création d’un segment
Clauses communes à tous les «create» de segment
Certaines options sont modifiables par ALTER.
SEGMENT CREATION DEFERRED|IMMEDIATE
TABLESPACE nom_tablespace
PCTFREE pourcentage_espace_update
PCTUSED pourcentage_espace_insert
INITRANS nombre_entrées_transactions
STORAGE (
voir page suivante
)
SEGMENT CREATION :

DEFERRED
:

IMMEDIATE
TABLESPACE
:
:
PCTFREE
:
PCTUSED
:
INITRANS
:
Pour différer la création du segment de celle de l’objet (table, index ou
partition), et donc l’allocation d’espace disque. Celui-ci sera alloué dès le 1er
INSERT effectué dans la table (défaut).
Pour créer le segment immédiatement.
Identifie le tablespace «dans lequel» les données du segment seront stockées.
Si cette clause n’est pas renseignée, c’est le tablespace par défaut du schéma qui
est utilisé.
Sa valeur détermine le pourcentage d’espace devant être réservé pour les
UPDATE dans chaque bloc Oracle (défaut 10).
Un bloc est candidat aux INSERT, si son pourcentage d’espace utilisé est en
dessous de la valeur spécifiée. (défaut 40).
Ce paramètre est ignoré en cas de gestion automatique de l’espace du segment.
Nombre minimum d’entrées réservé aux transactions concurrentes, dans chaque
bloc. (défaut 2). Oracle préconise de ne pas modifier cette valeur.
Remarques concernant PCTFREE


Pour les tables qui ne sont jamais mises à jour (update), prévoir un PCTFREE=0 pour économiser de
l'espace disque.
Pour les tables dont plusieurs colonnes sont à NULL, mais fréquemment mises à jour (UPDATE) par la
suite, prévoir un grand PCTFREE pour limiter le risque de lignes chaînées.
XEROX formation
Page 70
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
Création d’un segment (suite)
STORAGE ( INITIAL
NEXT
BUFFER POOL
INITIAL
:
 AUTOALLOCATE
:
 UNIFORM
:
NEXT
:
BUFFER POOL
:



KEEP
KEEP
RECYCLE
:
:
:
taille_extent_initial
taille_extent_supplémentaire
DEFAULT ou KEEP ou RECYCLE )
Si le tablespace est géré localement, la valeur spécifiée permet à Oracle de
déterminer la quantité initiale d’espace disque allouée à l’objet.
Oracle procède par extents de 64K, 1M, 8M ou 64M. Il choisit la taille
inférieure ou égale à la valeur spécifiée dans INITIAL et créé autant d’extents
que nécessaire. Par exemple, pour un INITIAL à 4M, 4 extents de 1M seront
alloués.
Il se peut que la taille allouée soit supérieure à celle spécifiée. Ainsi pour un
INITIAL à 14M, 2 extents de 8M seront alloués.
Oracle utilise la valeur spécifiée dans INITIAL ainsi que la taille des extents
spécifiée lors de la création du tablespace, pour déterminer le nombre d’extents à
créer.
Si le tablespace est géré par dictionnaire, la valeur spécifiée est arrondie à un
multiple de 5 blocs.
Pour un tablespace est géré localement, la valeur est déterminée par Oracle.
Pour un tablespace est géré par dictionnaire, la taille par défaut est de 5
blocs.
Indique dans quelle partie du DB Buffer Cache, les blocs seront stockés.
Pour stocker les blocs dans le default pool.
Pour stocker les blocs dans le keep pool.
Pour stocker les blocs dans le recycle pool.
Si la clause MINEXTENTS est utilisée pour un segment créé dans un tablespace géré localement, Oracle
utilise également les clauses INITIAL, NEXT et NEXT pour calculer la taille de l’extent initial.
XEROX formation
Page 71
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.4
GESTION DE L’ESPACE D’UN SEGMENT UTILISATEUR
IX.4.1 Structure du bloc Oracle
Les premiers octets d’un bloc, contiennent les métadonnées du bloc (non accessibles aux utilisateurs) :
 L’entête du bloc (block header), qui contient l’adresse du bloc, le type de segment auquel il est
alloué et l’espace réservé aux transactions (transaction entries).
 (pour les tables uniquement) La table directory, qui contient les métadonnées relatives à la table
dont les données sont stockées dans le bloc.
 Le row directory, qui contient les adresses des lignes (rowid) stockées dans le bloc.
L’ensemble occupe entre 84 et 107 octets, dont 23 pour les transaction entries.
L’espace libre (free space), correspond au pourcentage prévu par l’option PCTFREE (espace réservé aux
updates). Une valeur adaptée permet limiter les lignes chaînées ou migrées entre plusieurs blocs.
L’espace restant permet de stocker les données sous forme de lignes.
XEROX formation
Page 72
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.4.2 STRUCTURE D’UNE LIGNE DE DONNEES
La ligne de données se compose de l'entête de ligne (row header) suivi, pour chaque colonne, de la taille
de la colonne (column length) et de la valeur de la colonne (column value).
IX.4.3 Structure du ROWID
Le ROWID est l’identifiant unique d’une ligne dans la base de données. Il n’est pas physiquement
stocké dans la base, mais il est construit grâce aux métadonnées contenues dans le fichier et le bloc dans
lesquels la ligne est stockée. Il est constitué des éléments suivant :




L’identifiant (data object number) affecté au segment.
Le numéro relatif du datafile dans son tablespace.
Le numéro du bloc contenant la ligne (relatif au datafile et non au tablespace).
Le numéro de la ligne dans son bloc.
XEROX formation
Page 73
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.4.4 Allocation/Désallocation d'extents
Un extent est un ensemble de blocs Oracle contigus. L’espace initial est alloué à la création du segment
selon le mode d’allocation spécifié, puis ponctuellement selon les besoins.
En temps normal, l’espace alloué à un segment n’est «rendu» au tablespace que lorsque l’objet est droppé.
Depuis la Release 11.2.0.2, il est possible de supprimer le segment (après un DELETE de toutes les lignes,
par exemple) grâce au package DBMS_SPACE_ADMIN.
Certaines opérations permettent la désallocation manuelle d'extents :
 Le coalesce des extents libres d’une table (inutile si l’espace est géré automatiquement) ou d’un index.
 Le SHRINK de table ou d’index.
 Le TRUNCATE de table ou de cluster.
 La récupération d’espace par ALTER... DEALLOCATE
SHRINK d’un segment table
Cette opération comporte 2 phases :
 La première réorganise les lignes de la table.
 Le seconde ajuste le HWM (High-Water-Mark) et libère l’espace libre.
Dans la mesure où les rowids des lignes peuvent être modifiés par l’opération, le mouvement de lignes
doit être autorisé.
ALTER TABLE emp ENABLE ROW MOVEMENT;
ALTER TABLE emp SHRINK SPACE CASCADE;
XEROX formation
Page 74
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
RECUPERATION D'EXTENT LIBRE
L'espace libéré se situe au dessus du "High Water Mark".
ALTER TABLE | INDEX schéma.nom_objet
DEALLOCATE UNUSED [ KEEP valeur ];
KEEP
Taille à conserver au dessus du HWM.
Si KEEP n'est pas spécifié alors :
 Si HWM > INITIAL ou MINEXTENTS, tout l'espace en plus du HWM est libéré.
 Si HWM < INITIAL ou MINEXTENTS, tout l'espace en plus du MINEXTENTS est libéré.
Vidage d'un segment : TRUNCATE
Permet de vider une table, en gardant ou en supprimant les extents alloués.
TRUNCATE TABLE schéma.nom_table
[ DROP ou REUSE STORAGE ]
Suppression d'un segment : DROP
DROP TABLE | INDEX schéma.nom_objet
XEROX formation
Page 75
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
Evaluation des espaces inutilisés
SQL> desc dbms_space
...
PROCEDURE UNUSED_SPACE
Nom d'argument
-----------------------------SEGMENT_OWNER
SEGMENT_NAME
SEGMENT_TYPE
TOTAL_BLOCKS
TOTAL_BYTES
UNUSED_BLOCKS
UNUSED_BYTES
LAST_USED_EXTENT_FILE_ID
LAST_USED_EXTENT_BLOCK_ID
LAST_USED_BLOCK
PARTITION_NAME
Type
----------------------VARCHAR2
VARCHAR2
VARCHAR2
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
VARCHAR2
E/S par defaut ?
------ -------IN
IN
IN
OUT
OUT
OUT
OUT
OUT
OUT
OUT
IN
DEFAULT
Exemple
SQL> VAR TOTAL_BLOCKS NUMBER
SQL> VAR TOTAL_BYTES NUMBER
SQL> VAR UNUSED_BLOCKS NUMBER
SQL> VAR UNUSED_BYTES NUMBER
SQL> VAR VAR5 NUMBER
SQL> VAR VAR6 NUMBER
SQL> VAR VAR7 NUMBER
SQL> EXECUTE DBMS_SPACE.UNUSED_SPACE('SCOTT','EMP','TABLE',
:TOTAL_BLOCKS,:TOTAL_BYTES,:UNUSED_BLOCKS, :UNUSED_BYTES,:VAR5,:VAR6,:VAR7)
Procédure PL/SQL terminée avec succès.
SQL> PRINT TOTAL_BLOCKS TOTAL_BYTES UNUSED_BLOCKS UNUSED_BYTES
TOTAL_BLOCKS
-----------16
TOTAL_BYTES
----------65536
UNUSED_BLOCKS
------------14
UNUSED_BYTES
-----------57344
XEROX formation
Page 76
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.5
Les SEGMENTS UNDO
Les données d’annulation (undo data) sont stockées dans les segments d’annulation (undo segments),
eux-mêmes regroupés dans un tablespace spécifique (undo tablespace).
Ces données sont utilisées :
 Pour annuler une transaction en cours (ROLLBACK).
 Pour assurer la pertinence des lectures.
 Lors d’un recovery (crash ou media).
 Pour certaines opérations de flashback.
L’allocation et la désallocation d’espace dans les segments d’annulation, sont entièrement automatiques.
IX.6
Les SEGMENTS TEMPORAIRES
Certaines étapes de l’exécution d’une requête SQL, nécessitent parfois un espace de travail temporaire
(typiquement tri, création d’index, opération de hashage, données d’une table temporaire, etc...).
Dans ce cas, Oracle créé un segment temporaire dans un tablespace temporaire (celui affecté à
l’utilisateur exécutant la requête), exclusivement si l’opération ne peut pas se dérouler en mémoire.
L’allocation et la désallocation des segments temporaires associés à une session, sont entièrement
automatiques.
XEROX formation
Page 77
ORACLE 11G – Administration
Gestion de l’espace disque alloué aux objets d’un schéma
IX.6.1 « Etat de santé » de la base : Health Check Monitor (depuis V11g)
L’outil HEALTH MONITOR remplace l’outil dbverify, qui est obsolète.
Il permet de vérifier, grâce à des opérations appelées CHECKS, l’état de divers composants de la base
(fichiers physiques, mémoire, intégrité des transactions, dictionnaire de données,...) mais également
d’établir un diagnostic et d’apporter des éléments aidant à la résolution des problèmes.
Un CHECK peut être actif (exécution automatique liée à une erreur) ou pro-actif (exécution manuelle ou
planifiée).
La liste des CHECKS disponibles, peut être consultées grâce à la vue V$HM_CHECK.
Les paramètres d’execution des CHECKS, peuvent être consultés grâce à la vue V$HM_CHECK_PARAM.
Les rapports générés par les CHECKS sont des fichiers XML, stockés dans la structure ADR.
Ils peuvent être consultés grâce à la vue V$HM_RUN, au package DBMS_HM, ou via les outils ADRCI ou EM.
XEROX formation
Page 78
ORACLE 11G – Administration
Oracle NET : Configuration du réseau
X. COMMUNICATION RESEAU ET REPARTITION
X.1
ORACLE NET : Architecture générale
Oracle Net est l'ensemble des moyens de communication mis en œuvre entre une application cliente et un
serveur de données Oracle.
Oracle Net (instant client) sur les postes clients
Oracle Net Server sur le serveur
tnsnames.ora
listener.ora
Configuration du Client :

Un fichier de paramètres des instances auquelles se connecter
(ORACLE_HOME\network\admin\tnsnames.ora).
Configuration du Serveur :



Un module d'écoute (listener) qui écoute les connexions clientes et les dirige vers les instances
écoutées.
Un fichier de paramètres du module d'écoute (ORACLE_HOME\network\admin\listener.ora).
La commande OS de contrôle du module d'écoute (lsnrctl).
XEROX formation
Page 79
ORACLE 11G – Administration
Oracle NET : Configuration du réseau
X.1.1 Oracle Net en Serveur Dédié
Les fichiers des paramètres Oracle Net sont stockés par défaut dans le répertoire :
ORACLE_HOME\network\admin
S'ils sont stockés dans un répertoire différent, celui-ci doit être spécifié dans la variable d'environnement
TNS_ADMIN.
Connexion distante
C:\>sqlplus scott/tiger@xrx11g
Le fichier de paramètres tnsnames (clients)
# tnsnames.ora Network Configuration File:
C:\app\formation\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
XRX11G =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = S06-01567)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = xrx11g)
)
)
Le fichier de paramètres du listener (serveur dédié)
# listener.ora Network Configuration File:
C:\app\formation\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = xrx11g)
(ORACLE_HOME = C:\app\formation\product\11.2.0\dbhome_1)
(SID_NAME = xrx11g)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = S06-01567)(PORT = 1521))
)
ADR_BASE_LISTENER = C:\app\formation\product\11.2.0\dbhome_1\log
XEROX formation
Page 80
ORACLE 11G – Administration
Oracle NET : Configuration du réseau
Commande et options de gestion du listener : lsnrctl
lsnrctl command [ listener_name ]
Cette commande doit être exécutée sous DOS (windows) ou SHELL (unix)
 START pour démarrer le listener.
 STOP pour arrêter le listener.
 STATUS pour.
 HELP pour afficher l'aide.
 EXIT pour sortir (si l'on exécute lsnrctl en mode interactif).
XEROX formation
Page 81
ORACLE 11G – Administration
Oracle NET : Configuration du réseau
X.2
Bases de données réparties (database link)
X.2.1 Création d'un database link
Le database link est un objet Oracle, permettant d'accéder à un objet distant.
CREATE [ PUBLIC ] DATABASE LINK nom_dblink
CONNECT TO nom_compte IDENTIFIED BY mot_de_passe
USING 'entrée_du_tnsnames'
PUBLIC
CONNECT TO
USING
Pour un database link accessible à tous.
Compte et mot de passe associé au database link.
Chaîne hôte (nom de service) du fichier tnsnames.ora
Exemple
SQL> create public database link lnk_cours1
2 connect to cours1 identified by cours1
3 using 'XRX11G';
SQL> select * from dept@lnk_cours1;
DEPTNO
---------10
20
30
40
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON ;
SQL> insert into dept@lnk_cours1 values (55, 'LOISIRS', 'PARIS');
SQL> select * from dept@lnk_cours1;
DEPTNO
---------10
20
30
40
55
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOISIRS
XEROX formation
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
PARIS
Page 82
ORACLE 11G – Administration
Oracle NET : Configuration du réseau
X.2.2 Les transactions distribuées
La validation d'une transaction utilisant un database link, comporte deux phases (TPC pour Two Phase
Commit). Ce type de validation permet de gérer automatiquement, la cohérence de la transaction
distribuée. Le journal de reprise en ligne de chaque base est mis à jour avec les informations de reprise de
la transaction de la base « locale ». Les deux phases sont :
 Prepare phase : Le noeud qui a initialisé la transaction, dit coordinateur global, demande aux autres
de préparer le COMMIT.
 Commit phase : Si toutes les bases ont répondu favorablement à l'étape précédente, le coordinateur
global demande l'exécution du COMMIT. Dans le cas contraire (problème sur une base) le coordinateur
demande l'exécution du ROLLBACK.
Exemple de transaction distribuée
UPDATE scott.dept@lnk_hq
SET loc = 'REDWOOD SHORES'
WHERE deptno = 10;
UPDATE scott.emp
SET deptno = 11
WHERE deptno = 10;
UPDATE scott.bldg@lnk_maint
SET room = 1225
WHERE room = 1163;
COMMIT;
XEROX formation
Page 83
ORACLE 11G – Administration
Administration de la sécurité
XI. Administration de la sécurité d'une base Oracle
Depuis la V11g, toute base créée via DBCA, adopte par défaut, un certain nombre de nouvelles
règles de sécurité :
 Mots de passe case-sensitives.
 Interdiction, pour les comptes pré-définis (SYSTEM/manager, SYS/change_on_install), d’utiliser leur
mot de passe par défaut.
 Imposition d’un certains nombre de contraintes lors du changement de mot de passe.
 Nouvelles valeurs par défaut, pour certains paramètres du profile DEFAULT.
XI.1






Les tâches du DBA.
Gestion des comptes utilisateur et des schémas.
Chaque utilisateur de la base de données (être humain ou application) doit disposer :
 D’un compte qui lui propre (user).
 D’une méthode d’authentification (généralement un mot de passe).
 D’un tablespace par défaut.
 D’un tablespace temporaire.
 D’un profile.
Le schéma représente l’ensemble des objets dont un utilisateur est propriétaire.
Gestion des comptes utilisateur pré-définis SYS, SYSTEM, DBSNMP et SYSMAN.
Gestion des rôles (par métier et/ou par fonction et/ou par application).
Attribution des privilèges système et des privilèges sur objet à travers les rôles ou des privilèges
individuels.
Gestion des profiles.
Protection au niveau système d'exploitation du fichier de mots de passe externe pwdSID.ora et de
l'exécutable Oracle orapwd.
XEROX formation
Page 84
ORACLE 11G – Administration
Administration de la sécurité
XI.2
Les rôles
Le rôle est un ensemble prédéfini de privilèges système et/ou de privilèges sur objet, dont les
caractéristiques sont les suivantes :
 Un rôle peut être attribué à des utilisateurs et à des rôles.
 Un rôle peut être activé ou désactivé par SET ROLE...
 Un rôle n'appartient pas à un schéma.
 Les rôles et les privilèges sont attribués et retirés aux utilisateurs par les commandes : GRANT et
REVOKE. Tous les privilèges qui sont dans le rôle sont ainsi automatiquement attribués à l'utilisateur.
Avantages de l'utilisation des rôles :
 Réduire les manipulations de droits individuels.
 Gestion globale et centralisée de la sécurité lors des contrôles des privilèges des utilisateurs.
 Gestion dynamique des privilèges. La mise à jour des privilèges d'un rôle affecte automatiquement les
utilisateurs associés à ce rôle, sans se reconnecter ou passer la moindre commande.
 Gestion de la sécurité par activation ou désactivation des éventuels rôles en changeant tout simplement
leur mot de passe.
Liste des rôles existant
SQL> select ROLE from DBA_ROLES;
ROLE
-----------------------------CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
RECOVERY_CATALOG_OWNER
GATHER_SYSTEM_STATISTICS
LOGSTDBY_ADMINISTRATOR
AQ_ADMINISTRATOR_ROLE
AQ_USER_ROLE
GLOBAL_AQ_USER_ROLE
OEM_MONITOR
HS_ADMIN_ROLE
WM_ADMIN_ROLE
JAVAUSERPRIV
JAVAIDPRIV
JAVASYSPRIV
JAVADEBUGPRIV
EJBCLIENT
JAVA_ADMIN
JAVA_DEPLOY
XDBADMIN
AUTHENTICATEDUSER
SALES_HISTORY_ROLE
27 ligne(s) sélectionnée(s).
XEROX formation
Page 85
ORACLE 11G – Administration
Administration de la sécurité
Rôles prédéfinis
CONNECT
Descriptions
Permet de se connecter et de créer des objets.
SELECT * FROM DBA_SYS_PRIVS WHERE
GRANTEE
PRIVILEGE
---------- ---------------------CONNECT
CREATE SESSION
GRANTEE='CONNECT';
ADM
--NO
Permet de compléter le rôle CONNECT pour un usage orienté
développement en PL/SQL. Intègre le privilège système UNLIMITED
TABLESPACE.
RESOURCE
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
GRANTEE
PRIVILEGE
ADM
------------ ----------------------RESOURCE
CREATE TYPE
NO
RESOURCE
CREATE TABLE
NO
RESOURCE
CREATE CLUSTER
NO
RESOURCE
CREATE TRIGGER
NO
RESOURCE
CREATE OPERATOR
NO
RESOURCE
CREATE SEQUENCE
NO
RESOURCE
CREATE INDEXTYPE
NO
RESOURCE
CREATE PROCEDURE
NO
...
Attribue tous les privilèges système avec WITH ADMIN OPTION.
DBA
EXP_FULL_DATABASE
IMP_FULL_DATABASE
DELETE_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
SELECT_CATALOG_ROLE
XEROX formation
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='DBA'
ORDER BY 2 ;
GRANTEE
PRIVILEGE
------------- --------------------------------DBA
ADMINISTER DATABASE TRIGGER
DBA
ADMINISTER RESOURCE MANAGER
DBA
ALTER ANY CLUSTER
DBA
ALTER ANY DIMENSION
DBA
ALTER ANY EVALUATION CONTEXT
DBA
ALTER ANY INDEX
DBA
ALTER ANY INDEXTYPE
DBA
ALTER ANY LIBRARY
DBA
ALTER ANY OUTLINE
DBA
ALTER ANY PROCEDURE
DBA
ALTER ANY ROLE
. . .
139 ligne(s) sélectionnée(s).
ADM
--YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
YES
Permet les exports complets de la base de données.
Permet les imports complets de la base de données.
Permet de vider les tables d'audit.
Permet d'exécuter les packages PL/SQL système.
Permet la consultation du dictionnaire de données.
Page 86
ORACLE 11G – Administration
Administration de la sécurité
XI.2.1 Exploitation des rôles
Il faut (si cela est possible) :
 Répertorier les différents types d'utilisateurs (selon leurs métiers, applications, besoins formulés,
hiérarchie...).
 Créer un rôle par type d'utilisateur.
 Répertorier les privilèges nécessaires à chaque type d'utilisateur.
 Attribuer les privilèges répertoriés à leur(s) rôle(s).
 Attribuer le(s) rôle(s) à chaque utilisateur.
 Attribuer les rôles d'exploitation SYSOPER et SYSDBA.
SYSOPER
SYSDBA
STARTUP, SHUTDOWN, ALTER DATABASE {OPEN | MOUNT | BACKUP
CONTROLFILE | ARCHIVELOG | RECOVER, RESTRICT SESSION }
SYSOPER + DBA (CREATE DATABASE, ALTER DATABASE ...)
C'est le paramètre REMOTE_LOGIN_PASSWORDFILE conditionne l'utilisation du fichier de mots de passe.
Emplacement par défaut du fichier d'authentification pwdSID.ora :
 ORACLE_HOME\database pour window
 ORACLE_HOME/dbs
pour Unix
XEROX formation
Page 87
ORACLE 11G – Administration
Administration de la sécurité
XI.2.2 Manipulations de rôles
CREATION D'UN ROLE
CREATE ROLE nom_role
[ NOT IDENTIFIED ou
IDENTIFIED { BY passwd | USING [schema.]package }
] ;
NOT IDENTIFIED
IDENTIFIED BY
USING package
L'utilisateur qui possède ce rôle peut l'activer sans donner de mot de passe.
L'utilisateur doit donner le mot de passe pour activer ce rôle.
Pour créer un rôle qui n'est activé qu'à travers l'utilisation d'un package.
AFFECTATION DE PRIVILEGES A UN ROLE
GRANT privilege1,...,role1,... TO nom_role;
AFFECTATION DES PRIVILEGES D'UN ROLE A UN COMPTE
GRANT nom_role TO nom_user;
ATTRIBUTION D'UN ROLE PAR DEFAUT A UN UTILISATEUR
Par défaut, tous les rôles octroyés à un compte sont activés, lorsque ce compte se connecte.
ALTER USER nom_user
DEFAULT ROLE role1, role2 ou
ALL [ EXCEPT role1, role2.] ou
NONE
ACTIVATION D'UN ROLE
Permet à un utilisateur d'activer/désactiver de manière sélective, les rôles qui lui sont octroyés.
SET ROLE role1 [ IDENTIFIED BY password ], role2...
ALL [ EXCEPT role1, role2.]
NONE
ou
ou
SUPPRESSION D'UN ROLE
DROP ROLE
nom_rôle ;
XEROX formation
Page 88
ORACLE 11G – Administration
Administration de la sécurité
XI.3
Gestion des privilèges
Un privilège est un droit d’exécuter un certain type de requête SQL, ou d’accéder à un objet dont on n’est
pas propriétaire. Il existe deux catégories de privilèges :
 Privilèges système.
 Privilèges sur objets.
XI.3.1 Les privilèges système
Permettent à l'utilisateur d'effectuer des opérations systèmes (comme créer un objet Oracle : table, vue,
procédure...) dans la base de données. Les privilèges système ne sont pas dépendants de l'existence d'un
schéma à l'inverse des privilèges d'objets.
Liste des privilèges système
SQL> SELECT NAME FROM SYSTEM_PRIVILEGE_MAP ORDER BY 1;
NAME
---------------------------------------ADMINISTER DATABASE TRIGGER
ADMINISTER RESOURCE MANAGER
ADMINISTER SECURITY
ALTER ANY CLUSTER
ALTER ANY DIMENSION
ALTER ANY EVALUATION CONTEXT
ALTER ANY INDEX
...
UNDER ANY TYPE
UNDER ANY VIEW
UNLIMITED TABLESPACE
UPDATE ANY TABLE
WRITEDOWN
WRITEDOWN DBLOW
WRITEUP
WRITEUP DBHIGH
157 ligne(s) sélectionnée(s).
ATTRIBUTION D'UN PRIVILEGE SYSTEME
GRANT privilège_système1, …
TO
user ou role ou PUBLIC
[ WITH ADMIN OPTION ]
RETRAIT D'UN PRIVILEGE SYSTEME
REVOKE privilège_système1, …
FROM
user ou role ou PUBLIC
XEROX formation
Page 89
ORACLE 11G – Administration
Administration de la sécurité
Vues du dictionnaire de données
DBA_SYS_PRIVS, DBA_ROLE_PRIVS, system_privilege_map...
XI.3.2 Les privilèges sur objets
Ces privilèges permettent à l'utilisateur d'accéder à des objets d'autre schéma de la base de données (table,
une vue, procédure, fonction...). Le propriétaire possède tous les droits sur "ses" objets. Par défaut, un
utilisateur n'a pas le droit d'accèder à un objet dont il n'est pas propriétaire (sauf si l'objet appartient au
schéma PUBLIC).
SELECT
INSERT
UPDATE
DELETE
REFERENCES
ALTER
INDEX
EXECUTE
READ
TABLE
X
X
X
X
X
X
X
VUE
X
x
x
x
SEQUENCE
X
PROCEDURE
DIRECTORY
X
X
X
ATTRIBUTION D'UN PRIVILEGE SUR OBJET
GRANT ALL,
privilège1, …
ON
[schéma.]objet
TO
user ou role ou PUBLIC
[ WITH GRANT OPTION ]
Le privilège UPDATE peut être restreint aux colonnes dont le nom figure entre parenthèses.
WITH GRANT OPTION permet au receveur d'accorder à d'autres utilisateurs.
RETRAIT D'UN PRIVILEGE SUR OBJET
GRANT ALL,
privilège1, …
ON
[schéma.]objet
FROM
user ou role ou PUBLIC
XEROX formation
Page 90
ORACLE 11G – Administration
Administration de la sécurité
XI.4
Les comptes utilisateur (schémas)
CREATION DES UTILISATEURS
Toutes ces options peuvent être modifiées par ALTER USER.
CREATE USER
nom_compte
IDENTIFIED BY mot_de_passe ou EXTERNALLY ou GLOBALLY
DEFAULT TABLESPACE
tablespace_par_défaut
TEMPORARY TABLESPACE tablespace_temporaire_par_défaut
QUOTA q ON tablespace, …
PROFILE nom_profile
PASSWORD EXPIRE
ACCOUNT UNLOCK ou LOCK
IDENTIFIED BY
 mot de passe
:

:
EXTERNALLY
(déconseillé par
Oracle)

GLOBALLY
DEFAULT TABLESPACE
:
:
TEMPORARY TABLESPACE :
QUOTA
PROFILE
PASSWORD EXPIRE
ACCOUNT
:
:
:
:
Définit la façon dont on vérifie l’identité de l’utilisateur.
L’utilisateur est identifié par un mot de passe, limité à 30 caractères et
case-sensitive par défaut depuis la V11g.
Oracle suppose que si l'authentification de l'utilisateur est validée au niveau
du système d'exploitation, elle l'est alors également au niveau de la base.
Cette clause impose la présence de 2 paramètres :
 REMOTE_OS_AUTHENT=TRUE (par défaut FALSE)
 OS_AUTHENT_PREFIX="xxx" (en général OPS$)
qui servira de préfixe au nom de compte autorisé à ce type de connexion
Pour une authentification au niveau réseau (service d'annuaire…).
Tablespace par défaut de l'utilisateur
(par défaut celui prévu dans le create database)
Tablespace temporaire par défaut de l'utilisateur
(par défaut celui prévu dans le create database)
Permet de limiter la quantité d'espace accordé à l'utilisateur.
Identifie le profil associé à l'utilisateur.
Pour forcer l'utilisateur à changer son mot de passe à la première connexion.
Pour déverrouiller (UNLOCK) ou verrouiller (LOCK) le compte.
SUPPRESSION DES UTILISATEURS
DROP USER nom_compte [ CASCADE ]
CASCADE
Obligatoire si l'utilisateur est propriétaire d'objets
XEROX formation
Page 91
ORACLE 11G – Administration
Administration de la sécurité
GESTION DES MOTS DE PASSE

La vue DBA_USERS_WITH_DEFPWD, permet de lister les comptes Oracle utilisant leur mot de passe
par défaut (scott/tiger, par exemple).

Pour activer les règles de gestion des mots de passe de la V11g (après avoir créé une base
manuellement, par exemple), il faut exécuter la procédure
$ORACLE_HOME/rdbms/admin/secconf.sql. Cette procédure affecte la gestion des mots de passe et
la mise en œuvre de l’audit.

Pour désactiver les règles de gestion des mots de passe de la V11g (après avoir créé une base via
DBCA, par exemple), il faut exécuter la procédure $ORACLE_HOME/rdbms/admin/undopwd.sql. Cette
procédure n’affecte que la gestion des mots de passe et ne concerne pas l’audit.

La vérification de la complexité des mots de passe est effectuée par une fonction
(password_verify) dont le script se trouve dans $ORACLE_HOME/rdbms/admin/utlpwdmg.sql.
Cette fonction impose les contraintes suivantes lors du choix d’un mot de passe :
 8 caractères minimum et 30 caractères maximun.
 Le nom de l’utilisateur ou du serveur sont interdits (y compris avec un nombre de 1 à 100 au bout).
 Le mots « simples » sont interdits (par exemple, oracle, oracle666,password2, abcdef, etc...).
 Le mot de passe doit inclure au moins une lettre et un chiffre.
 Le mot de passe doit présenter au moins 3 lettres différentes, par rapport au précédent.

La sensibilité à la « casse » des mots de passe est contrôlée par le paramètre d’initialisation
dynamique : SEC_CASE_SENSITIVE_LOGON=TRUE|FALSE.
La colonne PASSWORD_VERSIONS de la vue DBA_USERS permet de détecter si le mot de passe d’un
utilisateur est « case-sensitive » ou pas.
SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;
USERNAME
-----------------------------JONES
ADAMS
CLARK
PRESTON
BLAKE




PASSWORD_VERSIONS
----------------10G 11G
10G 11G
10G 11G
11G
10G
Les mots de passe des comptes Jones, Adams et Clark, ont été créés en V10g, puis modifiés en
V11g, après import. Ils sont donc « case-sensitives ».
Le mot de passe du compte Preston a été créé en V11g. Il est donc « case-sensitive ».
Le mot de passe du compte Blake a été créé en V10g, mais n’a pas été modifié en V11g, après
import. Il est donc « case-insensitive ».
La sensibilité à la « casse » des mots de passe du fichier de mot de passe externe est contrôlée par
l’arguement IGNORECASE=N|Y.
XEROX formation
Page 92
ORACLE 11G – Administration
Administration de la sécurité
XI.5
Gestion des ressources par les profils
Un profil permet de limiter l'utilisation de certaines ressources de la base. Plusieurs profils peuvent être
créés. Après avoir élaboré une politique de gestion des ressources, l’administrateur créé et assigne le profil
adéquat à chaque groupe d’utilisateurs de la base.
A l'inverse des rôles, un utilisateur ne peut être associé qu'à un seul profil.
Le profil DEFAULT est assigné par Oracle par défaut à un compte lors de sa création. Depuis la V11g, ce
profil établit un certain nombre de limites, par défaut.
PARAMETRE D'ACTIVATION DES PROFILS
resource_limit


FALSE
TRUE
:
:
:
(Paramètre dynamique)
Les profils ne sont pas actifs (défaut).
Les profils sont actifs.
CREATION DE PROFIL
Chaque paramètre admet l'une des 3 valeurs :
 UNLIMITED pour une utilisation sans limite.
 DEFAULT pour utiliser la valeur prévue dans le profil DEFAULT.
 valeur (entier) pour affecter une valeur spécifique.
Pour les paramètres dont l’unité est le jour, il est possible d’utiliser des fractions (1/24 pour une heure,
1/1440 pour 1 minute, ...).
Toutes les options peuvent être modifiées par ALTER PROFILE.
XEROX formation
Page 93
ORACLE 11G – Administration
Administration de la sécurité
CREATE PROFILE nom_profile LIMIT
-- Paramètres ressources
SESSIONS_PER_USER valeur
CPU_PER_SESSION valeur
CPU_PER_CALL valeur
CONNECT_TIME valeur
IDLE_TIME valeur
LOGICAL_READS_PER_SESSION valeur
LOGICAL_READS_PER_CALL valeur
PRIVATE_SGA valeur
FAILED_LOGIN_ATTEMPTS valeur
-- Paramètres mots de passe
PASSWORD_LIFE_TIME valeur
PASSWORD_REUSE_TIME valeur
PASSWORD_REUSE_MAX valeur
PASSWORD_LOCK_TIME valeur
PASSWORD_GRACE_TIME valeur
PASSWORD_VERIFY_FUNCTION fonction
SESSIONS_PER_USER
Nombre maximum de sessions simultanées par utilisateur.
CPU_PER_SESSION
Temps CPU maximum par session (en 1/100 de seconde).
CPU_PER_CALL
Temps CPU maximum par appel (parse,execute,fetch) (en 1/100 de
seconde).
IDLE_TIME
Temps d'inaction maximum (en minutes) du process serveur. La
transaction en cours est annulée et la session déconnectée.
CONNECT_TIME
Temps de connexion maximum (en minutes). La transaction en cours
est annulée et la session déconnectée.
LOGICAL_READS_PER_SESSION
Nombre maximum de lectures blocs (mémoire et disque) par session.
LOGICAL_READS_PER_CALL
Nombre maximum de lectures blocs par appel (parse,execute,fetch)
pour traiter une requête SQL.
PRIVATE_SGA
FAILED_LOGIN_ATTEMPTS
PASSWORD_LIFE_TIME
PASSWORD_REUSE_TIME
PASSWORD_REUSE_MAX
PASSWORD_LOCK_TIME
PASSWORD_GRACE_TIME
PASSWORD_VERIFY_FUNCTION
XEROX formation
Taille de l’espace mémoire privé que la session peut s’allouer dans la
shared pool (valide uniquement pour les configuration MTS.
Nombre de tentatives autorisées de connexion (10 par défaut).
Durée de vie (jours) du mot de passe (180 par défaut).
Nombre de jours avant q'un mot de passe puisse être réutilisé.
Nombre de changement de mot de passe, avant qu'un mot de passe
puisse être réutilisé.
Nombre de jours de verrouillage du compte lorsque le
FAILED_LOGIN_ATTEMPTS est atteint (1 par défaut).
Nombre de jours à partir duquel un warning est émis, avant que le
PASSWORD_LIFE_TIME ne soit atteint (7 par défaut).
Fonction effectuant des vérifications supplémentaires sur le mot de
passe (verify_function par défaut).
Page 94
ORACLE 11G – Administration
Administration de la sécurité
Remarques sur l’utilisation de PASSWORD_REUSE_TIME ET PASSWORD_REUSE_MAX
Pour être efficace, les 2 paramètres doivent être renseignés. Par exemple :
 Si PASSWORD_REUSE_TIME=60 et PASSWORD_REUSE_MAX=5, alors l’utilisateur pourra réutiliser le mot de
passe au bout de 60 jours, si toutefois il a déjà été changé 5 fois.
 Si PASSWORD_REUSE_TIME=60 et PASSWORD_REUSE_MAX=UNLIMITED, ou l’inverse, alors l’utilisateur ne
pourra jamais réutiliser le mot de passe.
La valeur par défaut pour les 2 paramètres est UNLIMITED.
ATTRIBUTION D'UN PROFIL A UN COMPTE
ALTER USER compte PROFILE nom_profile
SUPPRESSION D'UN PROFIL
DROP PROFILE nom_profile [ CASCADE ]
CASCADE est obligatoire si le profil est assigné à des utilisateurs. Après suppression, c'est le profil
DEFAULT qui est utilisé.
XEROX formation
Page 95
ORACLE 11G – Administration
Index
A
M
ADR .............................................................................................13
Allocation/Désallocation d'extents .............................................73
ALTER SESSION .....................................................................20
MANIPULATIONS DE FICHIERS DE DONNEES ............................. 61
Montage de la base de données ................................................ 39
B
bloc Oracle ..................................................................................71
C
CKPT ............................................................................................35
comptes utilisateur .....................................................................90
connexion ...................................................................................16
Création d’un segment ...............................................................69
création d'une base de données ................................................62
D
database buffer cache................................................................25
database link...............................................................................81
DBW ............................................................................................34
démarrage de l'instance .............................................................38
Démarrage de l'instance .............................................................39
dictionnaire de données ..............................................................8
distributions d'Oracle 11G ............................................................6
O
OF 11
Oracle Net .................................................................................. 78
ORACLE_BASE ......................................................................... 11
ORACLE_HOME ......................................................................... 11
ORADIM...................................................................................... 62
ORAPWD .................................................................................... 63
P
PARAMETRES D'INSTANCE ......................................................... 41
PGA ............................................................................................ 21
PMON ......................................................................................... 36
privilèges .................................................................................... 88
processus serveur ...................................................................... 20
profils ......................................................................................... 92
R
REDO LOG BUFFER ..................................................................... 29
rôles ........................................................................................... 84
F
S
FICHIER DE CONTROLE ................................................................46
FICHIERS DE DONNEES................................................................52
fichiers de paramètres ................................................................41
schéma ....................................................................................... 67
SEGMENT ................................................................................... 68
SEGMENTS TEMPORAIRES ......................................................... 76
SEGMENTS UNDO....................................................................... 76
SEGMENTS UTILISATEUR ............................................................ 68
session ....................................................................................... 16
SGA ............................................................................................. 24
SHARED POOL ............................................................................ 27
SHUTDOWN................................................................................ 40
SMON ......................................................................................... 35
STARTUP ..................................................................................... 38
STRUCTURE D’UNE LIGNE DE DONNEES..................................... 72
Structure du ROWID ................................................................... 72
structures physiques .................................................................. 44
G
GESTION DES MOTS DE PASSE ....................................................91
I
installation d’Oracle 11G ............................................................10
instance ......................................................................................23
J
JAVA POOL ..................................................................................29
JOURNAUX DE REPRISE ...............................................................48
L
LARGE POOL ...............................................................................29
Les structures logiques ...............................................................45
LGWR ..........................................................................................34
listener ........................................................................................79
XEROX formation
T
tablespace "UNDO" .................................................................... 58
TABLESPACES ............................................................................. 53
tablespaces gérés localement .................................................... 55
TABLESPACES PERMANENTS ...................................................... 56
tablespaces SYSTEM et SYSAUX ................................................. 58
TABLESPACES TEMPORAIRES ..................................................... 59
tnsnames .................................................................................... 79
Tuning PGA ................................................................................. 22
Tuning SGA ................................................................................. 30
Page 96
Téléchargement
Study collections