Administration de bases de données ORACLE

publicité
Administration de bases de données
ORACLE Préparation à la certification Oracle OCA : Oracle Certified Associate"
Prof. Nissrine SOUISSI"
2015-2016
OBJECTIFS DU COURS
•  Acquérir une base solide de l'administration élémentaire d'une base
de données Oracle. "
•  Comprendre l'architecture de la base de données Oracle ainsi que la
façon dont ses composants fonctionnent et interagissent. "
•  Apprendre à créer, démarrer et arrêter correctement une base de
données Oracle."
•  Apprendre à gérer correctement et efficacement les différentes
structures de la base Oracle."
•  Apprendre à créer et gérer les utilisateurs de la base Oracle."
"
OCA – Oracle Certified Associate Database : confirme le niveau
d’initié dans l’administration de ORACLE.!
2
PLAN DU COURS
• Chapitre 1 : Architecture du serveur oracle"
• Chapitre 2 : Utilisation de la mémoire par oracle"
• Chapitre 3 : Les processus d’oracle"
• Chapitre 4 : Les fichiers d’une base oracle
"
"
• Chapitre 5 : Gestion des tablespaces"
"
• Chapitre 6 : Gestion des utilisateurs
3
CHAPITRE 1
Architecture du serveur Oracle
Architecture du serveur Oracle Introduction
Oracle DataBase : intervenants
•  utilisateurs naïfs "
•  utilisateurs traditionnels "
•  utilisateurs confirmés "
•  concepteurs de BD "
•  développeurs d'application "
•  administrateurs de BD"
•  développeurs de SGBD "
5
Architecture du serveur Oracle
Introduction Oracle : DBA
•  Définir le matériel requis (taille et nombre de disques, puissance
CPU, taille mémoire…)."
•  Ecrire le script de création de la base de données et l’installer
sur le serveur. (Recours éventuel à un outil graphique)"
•  Ecrire les scripts d’arrêt et de redémarrage de la base sur le
serveur. (Recours éventuel à un outil graphique)"
•  Déclarer les utilisateurs, fixer leurs autorisations d’accès sur la
base et mettre en place le contrôle des accès et la sécurité."
•  Organiser les opérations de sauvegarde, de restauration et de
récupération de la base."
•  Mesurer les performances et les temps de réponse des
demandes des utilisateurs pour optimiser le rendement.
6
Architecture du serveur Oracle
Introduction Oracle DataBase : serveur de données
•  Oracle a établi sa réputation comme
serveur de données, sur de multiples
plates-formes : Windows est l’une
d’entre elles. "
•  Par sa facilité d’installation et de
paramétrage, un serveur Windows relié
à des postes clients constitue une
configuration client-serveur à faible coût."
Dans cette architecture, les programmes
fonctionnent sur les clients et
interagissent avec la base de données.
Seules les données utiles aux
programmes sont échangées entre le
client et le serveur."
7
Architecture du serveur Oracle
Introduction Oracle DataBase : serveur de données
•  Le i d’Oracle8i et 9i signifie Internet, le g d’Oracle 10g et 11g signifie Grid, le c
d’Oracle 12c signifie Cloud."
•  L’orientation Grid d’Oracle 10g ou 11g permet :"
•  d’associer plusieurs machines "
•  obtenir plus de disponibilité, de puissance, gérer de plus gros volumes de
données."
•  de supporter la virtualisation des capacités de traitement."
•  La virtualisation consiste à faire fonctionner sur un seul ordinateur plusieurs
systèmes d'exploitation comme s'ils fonctionnaient sur des ordinateurs
distincts."
•  Oracle Database 12c permet aux clients d’améliorer la qualité et les performances
de leurs applications, gagner du temps avec une disponibilité maximale de
l’architecture et de la gestion du stockage, et simplifier la consolidation de la base
de données en gérant des centaines de bases de données comme s’il n’y en avait
qu’une. "
8
Architecture du serveur Oracle
Introduction Oracle DataBase: serveur de données
Vers une maintenance simplifiée "
• Auto-ajustement des caractéristiques de la base."
"
• L ’automatisation des tâches d’administration: un
ordonnanceur interne permet de programmer des tâches
d’administration dans des « fenêtres de maintenance ». Par
exemple, la collecte automatique des statistiques, pour un
fonctionnement optimum de l’optimiseur statistique. "
"
• Les alertes automatiques: le serveur envoie directement un
e-mail lorsqu’un incident survient ou qu’un seuil prédéfini est
franchi.
9
Architecture du serveur Oracle
Introduction Oracle DataBase : outils et assistants
•  Le logiciel DBCA (Oracle Database Configuration Assistant) offre
une interface graphique conviviale pour guider l’administrateur. Cet
utilitaire réclamé par tous les administrateurs Oracle depuis des
années est disponible depuis Oracle 8. Il s’avère très bien conçu et
ses versions 10g et 11g prennent en compte toutes les nouveautés
apportées par Oracle.
10
Architecture du serveur Oracle
Introduction Oracle DataBase : outils et assistants
• OEM (Oracle Enterprise Manager), la console d’administration graphique
d’Oracle : un fonctionnement 100 % à distance par interface Web."
• Accéder à distance de façon sécurisée à toutes les bases, à d’autres logiciels
Oracle ainsi qu’aux serveurs."
• Administrer, gérer la performance et superviser plusieurs bases et serveurs."
• Contrôler les scripts, tant pour la base que pour le serveur."
• Disposer instantanément d’indicateurs graphiques de performances sans qu’il
soit nécessaire de lancer des ordres SQL complexes."
• ..."
11
Architecture du serveur Oracle
Introduction Exemple
Oracle 10g : OEM
•  OEM
12
Architecture du serveur Oracle
Introduction Exemple
Oracle 11g : OEM
•  OEM
12
Architecture du serveur Oracle
Introduction Oracle DataBase : outils et assistants
• Oracle Administration Assistant for Windows permet de paramétrer les
options de démarrage et d’arrêt d’une base Oracle."
"
"
"
"
!
!
• Oracle SQL*Plus permet entre autres de démarrer et d’arrêter les bases Oracle.
C’est l’outil standard privilégié pour effectuer toutes les opérations sur une base
Oracle."
13
Architecture du serveur Oracle
Composants
Oracle Database : composants
•  Les composants « fichiers » "
•  Les fichiers de données (datafile)"
•  Les fichiers redo-log ou de journalisation (logfile)"
•  Les fichiers de contrôle (controlfile)"
•  Les fichiers d’administration (pfile, spfile, ...)"
•  Les composants « programmes » ou « processus »"
•  Les composants « mémoire »
14
Architecture du serveur Oracle
Composants Les composants fichiers
• Les fichiers de données (ex. Filename1.dbf) contiennent
les tables, index, procédures, fonctions et le dictionnaire de
données (conçu lors de la création d’une base de données)."
•  Le dictionnaire, géré à 100 % par Oracle, est le cœur de la
gestion interne de la base. "
• Les fichiers de données constituent plus de 90 % du volume
global d’une base Oracle."
""
" La taille, l’emplacement et le paramétrage de ces fichiers
sont de la responsabilité de l’administrateur de la base de
données.
15
Architecture du serveur Oracle
Composants Les composants fichiers
•  Les fichiers redo-log (ex. Redo1.log) mémorisent
l’historique de tous les ordres modifiant des données
ou la structure de la base de données. "
"
•  Leur taille est fixée lors de la création de la base de
données (modifiable ultérieurement)."
•  Leur fonctionnement est géré à 100 % par Oracle.
16
Architecture du serveur Oracle
Composants Les composants fichiers
•  Les fichiers de contrôle (control1.ctl) renseignent la base de
données sur son état précédent de l’arrêt, lors du
démarrage, et lors de certaines phases de fonctionnement. "
•  Par exemple, lors de son démarrage, leur consultation permet
de savoir quel type d’arrêt a eu lieu précédemment : normal,
brutal, etc. "
•  Ces fichiers contiennent les chemins d’accès et les noms de
tous les fichiers (de données et redo-log) qui composent la
base de données. "
•  Pour démarrer une base de données, il suffit que le logiciel
oracle sache où se trouvent les fichiers de contrôle. Il y puise
un ensemble de renseignements qui lui serviront à réaliser
l’opération. Leur taille, quelques centaines de kilo-octets
maximum et leur fonctionnement sont gérés à 100 % par
Oracle.
17
Architecture du serveur Oracle
Composants Les composants fichiers
•  Les fichiers d’administration servent à l’administration
courante d’Oracle : "
"
• Les fichiers d’initialisation utilisés lors du démarrage de la
base (*.ora)."
• Les fichiers servant à paramétrer certains outils et enfin
les différents fichiers de trace (*.trc) et d’alerte (*.log)
générés par Oracle.
18
Architecture du serveur Oracle
Composants Les composants programmes
•  Ces composants « programmes » sont les exécutables qui
assurent le fonctionnement de la base de données. Ils
réalisent toutes les actions sur les fichiers (données,
contrôle, redo-log)."
•  Sous Windows, les programmes englobent les «
exécutables », les « processus » et les « threads »."
•  L’architecture du système d’exploitation Windows permet
à l’exécutable d’Oracle d’être multitâche et multithread.
Ce sont ces différents threads qui interagissent avec les
composants mémoires, les fichiers.
19
Architecture du serveur Oracle
Composants Les composants programmes
•  Le serveur Oracle fonctionne sous Windows comme un
exécutable unique ayant de multiples threads. "
•  Chaque thread a ses propres tâches à réaliser. "
•  Des threads sont dus aux connexions des utilisateurs. "
•  Des threads réalisent le fonctionnement de la base de
données en tâche de fond."
20
Architecture du serveur Oracle
Composants Les composants mémoires
•  Une zone mémoire partagée par tous les utilisateurs et
threads Oracle "
•  Une zone mémoire privée pour chaque thread utilisateur
21
Architecture du serveur Oracle
BD et Instance Oracle BD et Instance
• Une base de données Oracle en action (démarrée) se
compose de :"
•  fichiers : données, redo-log, contrôle"
•  processus (exécutables) : pour faire fonctionner la base "
•  mémoire"
• Une base de données en arrêt est un ensemble de fichiers"
• Une instance regroupe la zone mémoire allouée et les
exécutables assurant le fonctionnement de la base. "
"
instance + fichiers = une base de données « en action »
22
Architecture du serveur Oracle
BD et Instance Oracle BD et Instance
23
Architecture du serveur Oracle
BD et Instance Oracle
Service et Instance
•  Le nom du service sera toujours OracleServiceSID,
où SID représente l’identifiant de l’instance Oracle.
Ce service est associé à un exécutable oracle.exe."
•  Le service OracleServiceSID se compose initialement
de quelques threads, qui ont pour tâche de gérer
l’ensemble des threads ultérieurs. C’est sous le
contrôle de ce service initial que s’effectuent des
opérations telles que le démarrage ou l’arrêt de la
base de données."
•  S’il y a plusieurs instances Oracle sur un serveur, il y
aura autant de services OracleServiceSID et
d’exécutables oracle.exe lancés que d’instances.
24
Architecture du serveur Oracle
BD et Instance Oracle Illustration
25
Architecture du serveur Oracle
BD et Instance Oracle Démarrer et arrêter une base Oracle
•  Le démarrage s’effectue base fermée -- Il n’est pas
possible de conserver les privilèges dans la base "
•  Les droits ou les mots de passe sont vérifiés et stockés hors de
la base de données."
•  Un privilège au niveau du système d’exploitation fournit à un
utilisateur Windows les droits nécessaires. C’est le cas de
l’appartenance au groupe Windows ORA_DBA (ce groupe
est créé automatiquement lors de l’installation d’Oracle)."
•  Un utilisateur déclaré dans la base, disposant du privilège
Oracle SYSDBA ou SYSOPER, peut démarrer ou arrêter la
base, si sa sécurité d’accès repose sur des fichiers mots
de passe stockés dans des fichiers extérieurs à la base.
26
Architecture du serveur Oracle
BD et Instance Oracle Démarrer et arrêter une base Oracle
• Le fonctionnement d’Oracle sous Windows impose que
le service Windows soit démarré avant de pouvoir
démarrer l’instance Oracle. L’ordre imposé est donc :"
"1. Démarrer le service « OracleServiceSID »."
"2. Démarrer l’instance Oracle « SID »."
35
Architecture du serveur Oracle
BD et Instance Oracle Démarrer et arrêter une base Oracle
• Le fonctionnement d’Oracle sous Windows impose que
l’instance Oracle soit arrêtée avant de pouvoir arrêter le
service Windows. L’ordre imposé est donc :"
"1. Arrêter l’instance Oracle SID."
!2. Arrêter le service OracleServiceSID."
36
Architecture du serveur Oracle
BD et Instance Oracle Démarrer et arrêter une base Oracle
•  Le STARTUP assure le démarrage de l’instance
(nomount) l'association de la base de données
(mount) et l’ouverture de la base de données (open)."
•  Instance lancée : Mémoire allouée + Threads démarrés."
•  Sql>Startup nomount"
•  BD montée : La base est associée à une instance
démarrée."
•  Sql>Alter database mount;"
•  BD ouverte : Les utilisateurs peuvent se connecter à la
base et accéder aux données."
•  Sql>Alter database open;"
44
Architecture du serveur Oracle
BD et Instance Oracle Démarrer et arrêter une base Oracle
•  Le SHUTDOWN assure la fermeture de la base, le
démontage de la base et l’arrêt de l’instance."
•  BD fermée : La base devient indisponible à l’ensemble des
utilisateurs. "
•  Sql>alter database close immediate;"
•  BD démontée : L’association entre les fichiers de la base
et l’instance est supprimée. "
•  Sql>alter database dismount ;"
•  Instance arrêtée : Les processus sont supprimés et la
mémoire est libérée."
•  Sql>shutdown;"
45
Architecture du serveur Oracle
BD et Instance Oracle Démarrer et arrêter une base Oracle
•  SHUTDOWN NORMAL;"
•  Le SHUTDOWN NORMAL attend que l’ensemble des utilisateurs soit
déconnecté pour fermer la base. L’inconvénient, c’est que l’on peut
attendre longtemps si, par exemple, un utilisateur s’est absenté sans
fermer son application : sa session est toujours active."
•  SHUTDOWN IMMEDIATE;"
•  Le SHUTDOWN IMMEDIATE déconnecte automatiquement tous les
utilisateurs, puis ferme correctement votre base de données."
•  SHUTDOWN TRANSACTIONAL;"
•  Le SHUTDOWN TRANSACTIONAL offre une alternative à ces
méthodes : il attend la fin de toutes les transactions en cours en
interdisant toute nouvelle transaction."
•  SHUTDOWN ABORT;"
•  Le SHUTDOWN ABORT est un arrêt violent qui correspond à
supprimer brutalement le processus oracle.exe, ses threads, la
mémoire et libérer tous les verrous sur les fichiers.
46
Atelier Pratique 1
Démarrer et arrêter une base Oracle
•  Création d’une base Oracle"
•  Démarrage d’une base Oracle"
1.  Démarrage du service Windows "
2.  Démarrage de l’instance Oracle "
•  Arrêt d’une base Oracle "
1.  Arrêt de l’instance Oracle "
2.  Arrêt du service Windows"
Tâche à effectuer !
Choix prioritaire !
Choix complémentaire!
Créer une base de données "
DBCA"
SQL*Plus"
Démarrer une base "
Gestionnaire de services de
Windows "
SQL*Plus"
Oracle Enterprise Manager"
Arrêter une base "
Gestionnaire de services de
Windows "
SQL*Plus"
Oracle Enterprise Manager"
Paramétrer le démarrage"
et l’arrêt d’une base"
Oracle Administration Assistant Regedit
for Windows "
27
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
•  L’utilitaire Oracle Database Configuration Assistant est
accessible depuis le menu :"
•  Démarrer>Programmes>Oracle–..... >Configuration and
Migration Tools.
28
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
29
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
30
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
31
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
32
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
33
Atelier Pratique 1
Création d’une base Oracle Démarrer et arrêter une base Oracle
34
Atelier Pratique 1
Le service OracleServiceSID
Démarrer et arrêter une base Oracle
•  Démarrer et arrêter le service OracleServiceSID!
•  Démarrer>Taper : services.msc "
•  Démarrer>Panneau de configuration>Système et
sécurité>Outils d'administration>services "
37
Atelier Pratique 1
Le service OracleServiceSID
Démarrer et arrêter une base Oracle
38
Atelier Pratique 1
L’instance Oracle
Démarrer et arrêter une base Oracle
•  Démarrer et arrêter l’instance Oracle « SID »"
et arrêter l’instance par le service
OracleServiceSID"
•  D é m a r r e r
•  Synchronisation du démarrage et de l’arrêt de l’instance avec le
service"
•  L’utilitaire Oracle Administration Assistant for Windows est
accessible depuis le menu :"
Démarrer>Programmes>Oracle–...>Configuration and Migration Tools."
•  Démarrer et arrêter l’instance avec SQL*Plus"
•  Démarrer>Programmes>Oracle–... >Application Development "
•  Démarrer et arrêter l’instance avec OEM"
•  http://localhost:n°port/em/"
39
Atelier Pratique 1
L’instance Oracle Démarrer et arrêter une base Oracle
1. Paramétrage du démarrage et de l’arrêt de l’instance
40
Atelier Pratique 1
Démarrage d’une instance Oracle Démarrer et arrêter une base Oracle
2. Démarrer l’instance avec SQL*Plus"
• Définir la valeur de la variable ORACLE_SID : elle
permet de définir une instance par défaut. Il est possible
de changer cette valeur ou de se connecter à une autre
instance : "
•  en modifiant ORACLE_SID dans la base de registre avec
regedit."
•  depuis l’Oracle Administration Assistant for Windows ."
•  depuis l’invite de commandes Windows avec cmd."
•  Set ORACLE_SID=nom_SID!
• Vérifier que le service OracleOraDb10g_home1TNSListener
est démarré."
•  Le listener Oracle est un service permettant d'utiliser TCP/IP pour
accéder à la base de données via le réseau.
41
Atelier Pratique 1
Démarrage d’une instance Oracle Démarrer et arrêter une base Oracle
42
Atelier Pratique 1
Démarrage d’une instance Oracle Démarrer et arrêter une base Oracle
43
Atelier Pratique 1
Démarrage et arrêt avec OEM
Démarrer et arrêter une base Oracle
Démarrer l’instance avec OEM"
• Les services Windows suivants doivent être lancés :"
•  OracleServiceSID"
•  Le service qui lance la base de données identifiée par SID"
•  OracleOraDb10g_home1TNSListener"
•  Le Listener Oracle "
•  OracleJobSchedulerSID "
•  L’agent d’OEM de la base identifiée par SID"
•  OracleDBConsoleSID"
•  Le gestionnaire de la console OEM pour la base identifiée par SID
47
Atelier Pratique 1
Démarrage et arrêt avec OEM Démarrer et arrêter une base Oracle
48
Démarrer et arrêter une base Oracle Atelier Pratique 1
•  Livret des exercices"
•  Outils utilisés"
•  DBCA"
•  Oracle Administration Assistant for Windows"
•  SQL*Plus"
•  OEM
49
Chapitre 2
Utilisation de la mémoire par Oracle
•  Introduction"
•  Paramètres d’allocation mémoire"
•  La mémoire partagée "
•  La zone SGA (System Global Area) "
•  La mémoire privée "
•  Mémoire allouée pour chaque thread utilisateur "
•  La zone PGA (Program Global Area) "
50
Utilisation de la mémoire par Oracle Introduction
• La mémoire désigne
la mémoire RAM (Read Access
Memory). C’est le type de mémoire le plus rapide, le
plus performant et tous les systèmes d’exploitation
l’utilisent : mémoire physique "
• Tous les systèmes d’exploitation attribuent à la
mémoire RAM un espace disque de débordement
(espace de pagination sous Windows) : mémoire
virtuelle"
L’échange continu entre la mémoire physique et la mémoire virtuelle
risque d’engorger le système.
51
Utilisation de la mémoire par Oracle Introduction
Oracle Database a besoin de mémoire pour :"
•  mettre à la disposition de multiples utilisateurs, un
maximum d’informations et de données provenant de
la base."
•  permettre aux programmes qui gèrent la base Oracle
(les threads) de fonctionner en mémoire."
•  assurer la transmission des données entre la base
Oracle et les threads des utilisateurs.
52
Utilisation de la mémoire par Oracle Paramètres d’allocation mémoire d’Oracle
•  Toutes
les bases Oracle utilisent un fichier
d’initialisation pour démarrer. "
• pfile : …\oracle\product\...\admin\SID\pfile\initSID.ora"
• spfile : …\oracle\product\...\db_1\database\spfileSID.ora"
"
•  La plupart des bases de données Oracle nécessitent
uniquement l’utilisation de quelques paramètres de
base pour fonctionner correctement."
53
Utilisation de la mémoire par Oracle Paramètres d’allocation mémoire d’Oracle
• Les paramètres d’initialisation dynamiques et statiques sont consultables par la
vue V$PARAMETER."
•  Show parameter;"
•  NAME
TYPE
VALUE"
•  Affichage par ordre alphabétique"
•  Show parameter mot"
•  Affiche la valeur des paramètres dont le nom contient ‘mot’"
• La commande ALTER SYSTEM permet de modifier les paramètres en mémoire,
dans le fichier SPFILE ou simultanément en mémoire et dans le SPFILE."
•  alter system set paramètre=valeur scope= memory ;"
•  alter system set paramètre=valeur scope= spfile ;"
•  alter system set paramètre=valeur scope= both ;"
"
"
"
54
Utilisation de la mémoire par Oracle Bloc de données
•  Un bloc Oracle est une unité exprimée en octets
qui sert d’unité d’échange entre les fichiers, la
mémoire et les processus."
•  La taille du bloc Oracle (DB_BLOCK_SIZE) est définie
lors de la création de la base de données. Ce
paramètre détermine la taille initiale pour le formatage
interne des fichiers de données, ainsi que celle de la
zone mémoire réservée à l'instance. Il précise aussi la
dimension des échanges entre la mémoire et les
disques. Ce paramètre est très important pour les
performances.
55
Utilisation de la mémoire par Oracle Bloc de données
•  Sa taille est déterminée selon la fonction que la base
aura à supporter. La répartition suivante donne une idée
de grandeur: "
•  2K : pour les applications réalisant beaucoup de
transactions, qui accèdent et manipulent peu de données à
la fois; "
•  4K : valeur correcte pour les applications transactionnelles
et des requêtes balayant beaucoup de blocs de données
sur disque; "
•  8K et 16K : pour les applications décisionnelles qui
accèdent toutes à de gros volumes de données. "
56
Utilisation de la mémoire par Oracle Zones mémoire
Mémoire allouée au processus Oracle.exe=1 SGA+ n PGA"
"n : nombre de threads utilisateurs (côté serveur)"
Œ

57
Utilisation de la mémoire par Oracle La zone SGA
•  La SGA (System Global Area) représente la zone
mémoire déterminante d’une instance, tant par sa
taille que par son rôle. C’est elle qui assure le
partage des données entre les utilisateurs. C’est une
mémoire partagée par les différents threads d’une
instance."
•  Toute donnée lue ou modifiée transite par la SGA.
Il est important d’en comprendre les fonctions
majeures, pour faire face à des problèmes de
performance ou un événement inattendu."
•  La SGA est allouée au démarrage de l’instance et
libérée à l’arrêt de l’instance.
58
Utilisation de la mémoire par Oracle La zone SGA
LOCK_SGA"
•  La SGA est un élément clé des performances
d’Oracle. Il faut absolument éviter qu’elle « sorte » de
la mémoire vive et qu’elle soit paginée. Le paramètre
d’initialisation LOCK_SGA permet « d’accrocher » la
SGA en mémoire vive."
•  Lock_sga=true ou false"
•  Cette zone mémoire est partagée et réside dans la
mémoire vive. Elle n’est ni swappée ni paginée pour
des raisons de performances.
59
Utilisation de la mémoire par Oracle La zone SGA : composants
Les composants obligatoires :"
• Cache de tampons de la base de données (Database Buffer)"
• Tampon de journalisation (Redo-Log Buffer) : Mémoire tampon
pour l’enregistrement des modifications apportées à la base de
données."
•  Zone de mémoire partagée (Shared Pool) : Zone de partage
des requêtes et du dictionnaire de données."
"
Les composants facultatifs :"
• Zone de mémoire Large Pool : Zone de mémoire optionnelle
utilisée par des threads dans des configurations particulières."
• Zone de mémoire Java (Java Pool) : Mémoire utilisée pour la
machine virtuelle Java.
60
Utilisation de la mémoire par Oracle Database Buffer
•  Cette zone comporte toutes les données en
provenance de la base ou destinées à y être écrites
(données lues par un SELECT ou modifiées par un
UPDATE, INSERT, DELETE)."
•  Cette zone mémoire est d’une taille fixe, bien
inférieure à la dimension de la base de données. Il est
nécessaire que des mécanismes libèrent de l’espace
pour permettre à de nouveaux blocs de données de «
monter » en mémoire.
61
Utilisation de la mémoire par Oracle Database Buffer : paramètres
•  DB_BLOCK_BUFFERS : ce paramètre défini le nombre de
blocs Oracle qui pourront être contenus dans le Database
Buffer."
•  Pour augmenter ou diminuer la taille du cache mémoire, il
faut modifier le paramètre DB_CACHE_SIZE. Ce
paramètre est dynamique. La valeur affectée est adaptée
pour être un multiple du DB_BLOCK_SIZE."
•  Ce paramètre définit la zone mémoire utilisée pour
conserver les données des tables et des index accédés.
Plus cette zone est grande, plus petite est la probabilité
d'accéder au disque à la suite d'un ordre SELECT. C'est lui
qui a le plus d'impact sur la taille totale de la SGA. "
62
Utilisation de la mémoire par Oracle Redo-Log Buffer
•  Dès qu’une modification intervient sur les données
(INSERT, UPDATE, DELETE), elle se répercute sur
les blocs de données en mémoire, qui sont
simultanément copiés dans les buffers redo-log."
•  L’utilisateur n’a pas à attendre l’écriture des
nouveaux éléments dans les fichiers de données (ce
qui peut être long). Aucune information ne sera
perdue, car toutes sont écrites dans les fichiers redolog."
•  Le Redo-Log Buffer stocke les modifications
apportées à la base de données, avant leur
écriture dans un fichier de journalisation.
63
Utilisation de la mémoire par Oracle Redo-Log Buffer : paramètres
•  Le paramètre statique LOG_BUFFER dimensionne
cette zone mémoire. Il s’exprime en octets et ne peut
être modifié dynamiquement."
•  Alloue une zone qui conserve les données à insérer
dans les fichiers Redo-Log. Augmenter cette zone
permet de réduire les entrées/sorties des fichiers
redo-log. En général, une valeur haute de ce
paramètre réduit les E/S des Redo-log,
particulièrement si les transactions sont longues et
nombreuses."
64
Utilisation de la mémoire par Oracle Shared Pool
•  Cette zone mémoire se découpe en 2 éléments : "
•  La Library Cache. Une zone mémoire qui va stocker les
informations sur les ordres SQL exécutés récemment dans
une zone SQL Cache qui contiendra le texte de l'ordre SQL,
la version compilée de l'ordre SQL et son plan d'exécution. Cette
zone mémoire sera utilisée lorsqu'une requête sera exécutée
plusieurs fois, car Oracle n'aura plus alors à recréer la version
compilée de la requête ainsi que son plan d'exécution car ceux-ci
seront disponible en mémoire."
•  Le Dictionnary Cache. Une zone mémoire qui va contenir les
informations (dictionnaire des données) sur les objets de la
base de données ainsi que sur les droits et privilèges
accordés aux utilisateurs. Cette zone mémoire permettra au
serveur Oracle de ne pas avoir à aller chercher ces informations
sur le disque à chaque exécution d'une requête SQL"
65
Utilisation de la mémoire par Oracle Shared Pool : paramètres
•  Le paramètre SHARED_POOL_SIZE dimensionne
cette zone mémoire. Il s’exprime en octets et il peut
être modifié dynamiquement."
•  Cette zone mémoire est utilisée pour conserver les
plans d'exécution des requêtes ainsi que les
procédures PL/SQL traitées par le serveur. Elle peut
être diminuée si l’utilisation du PL/SQL est faible, car
c'est une des zones qui occupe le plus d'espace. "
66
Utilisation de la mémoire par Oracle Java Pool
•  Oracle propose un environnement Java intégré à la
base. Il nécessite de la mémoire pour fonctionner.
L’installation du moteur Java dans la base Oracle est
facultative. "
•  Cette zone comme son nom l'indique est utilisée pour
les applications Java dans la base de données.
67
Utilisation de la mémoire par Oracle Java Pool : paramètres
•  La mémoire allouée en SGA pour le fonctionnement du
moteur Java est précisée par la variable
JAVA_POOL_SIZE. Cette valeur est fixée à 50 Mo
minimum lors de l’installation du catalogue Java, mais
elle peut être augmentée ou diminuée par la suite."
•  Si la machine virtuelle Java intégrée à Oracle n’est
pas utilisée, ce paramètre peut être mis à zéro.
68
Utilisation de la mémoire par Oracle Large Pool
•  Le large pool est une zone mémoire optionnelle de la
SGA configurée uniquement dans un environnement
serveur partagé. Quand un utilisateur se connecte à
un serveur partagé, Oracle a besoin d’allouer de
l’espace supplémentaire dans les shared pool pour
stocker les informations de connexions entre les
différents processus utilisateurs. Le large pool permet
donc d’alléger certaines zones mémoires de la SGA."
•  LARGE_POOL_SIZE : La taille du large pool, par
défaut est 0.
69
Utilisation de la mémoire par Oracle La zone SGA : composants
• Pour visualiser la taille de la SGA:"
•  show sga;"
Total System Global Area 171966464 bytes"
Fixed Size
787988 bytes"
Variable Size
145750508 bytes"
Database Buffers
25165824 bytes"
Redo Buffers
262144 bytes"
•  select * from v$sga;"
NAME
VALUE"
-----------------------------"
Fixed Size
787988"
Variable Size
145750508"
Database Buffers
25165824"
Redo Buffers
262144"
"
•  Fixed Size : Mémoire réservée à l’ensemble des variables qui
comportent les valeurs des différents paramètres d’initialisation."
•  Variable Size : Shared Pool + Large Pool + Java Pool
70
Utilisation de la mémoire par Oracle La zone SGA : paramètres
SGA_TARGET"
• Ce paramètre est situé dans le fichier d’initialisation. Sa
valeur par défaut est sga_target = 0."
"Automatic Shared Memory Management (ASMM) : désactivé"
• Si sga_target>0 ==> ASSM : activé. "
• Ce paramètre permet de répartir automatiquement un
espace mémoire disponible entre le buffer de
données, la Shared Pool, la Large Pool et la Java
Pool. C’est une fonction très utile pour des bases dont
l’activité variable peut charger temporairement l’une
de ces zones mémoire."
71
Utilisation de la mémoire par Oracle La zone SGA : paramètres
• Pour utiliser ASMM, il suffit :"
•  de donner une taille mémoire à sga_target (autre que 0). "
•  de positionner les valeurs (taille minimale) définissant les
buffers de données, la Shared Pool, la Java Pool, etc., à 0.
Si une valeur autre que 0 est conservée, ASMM
l’interprétera comme une taille minimale de mémoire à
conserver pour cette zone."
SGA_MAX_SIZE"
• La taille maximale de mémoire SGA indique la quantité de
mémoire allouée lors du démarrage de la base de
données. En spécifiant la taille maximale de mémoire
SGA, il est possible de modifier ultérieurement et de façon
dynamique la taille totale de mémoire SGA.
72
Utilisation de la mémoire par Oracle La zone PGA
•  C e t t e
zone mémoire est allouée pour le
fonctionnement de chaque thread utilisateur."
•  Dans une configuration serveur dédié, une connexion
à une base Oracle engendre la création d’un thread
utilisateur et de sa mémoire associée, la PGA."
•  La PGA est toujours située sur le serveur qui
héberge la base de données. Elle stocke des
informations concernant les variables utilisées, la
session utilisateur et l’état des transactions en
cours. Elle contient également la zone mémoire
dans laquelle s’effectue le tri des données.
73
Utilisation de la mémoire par Oracle La zone PGA : paramètres
•  Depuis Oracle 10g, la gestion de la taille de la PGA
peut être automatique :"
•  PGA_AGGREGATE_TARGET donne la mémoire
maximale que vous allouez pour l’ensemble des PGA
utilisateurs."
•  Lorsque de nombreux utilisateurs accèdent à cette base,
la multiplication des threads utilisateur et de chacune de
leur PGA conduit à une surcharge du système."
•  L’administrateur d’une base Oracle n’a pas à se
soucier de l’existence et du fonctionnement de la PGA
(c’est pourquoi elle est si peu connue !).
74
Utilisation de la mémoire par Oracle Atelier pratique 2
•  Livret des exercices "
•  Outils utilisés : "
•  SQL*Plus"
•  OEM
75
Chapitre 3
Les processus d’Oracle
•  Côté client"
•  Processus utilisateur (ou client)"
"
•  Côté Serveur"
•  Processus Serveur (thread utilisateur)"
•  Thread dédié à un processus utilisateur"
•  Thread partagé entre plusieurs processus utilisateurs"
•  Processus Background (threads de Oracle.exe)"
•  Les threads indispensables "
•  Les threads optionnels "
76
Les processus d’Oracle Processus utilisateur
•  Il fonctionne sur la machine du client ou le serveur de
traitement"
•  Il démarre lors de l'appel de l'outil ou de l'application"
•  SQL*Plus, Oracle Entreprise Manager, etc."
•  Il se termine lorsque l'utilisateur quitte ou interrompt l’outil
ou l’application"
•  Il appelle le serveur Oracle (serveur de données)
77
Les processus d’Oracle Processus serveur (Thread utilisateur)
•  Il fonctionne sur la machine serveur de données"
•  Suite à la demande du processus utilisateur, le
processus serveur lit les données des fichiers à
l'intérieur du buffer de données"
•  Il envoie les résultats au client"
•  Il cherche des blocs clean pour y charger les données
qu’il faut (à la suite d’une interrogation utilisateur :
SELECT) à partir des fichiers de données.
78
Les processus d’Oracle Processus serveur/Processus utilisateur
•  Dans une configuration de serveur dédié"
•  1 processus utilisateur <--> 1 processus serveur"
• Thread dédié à un utilisateur (Thread utilisateur dédié)"
•  Nb de processus serveur = Nb de processus utilisateur"
"
•  Dans une configuration de serveur partagé"
•  Partage de processus serveur"
•  k processus utilisateurs <--> 1 processus serveur "
"
•  Le processus serveur utilise une PGA exclusive
79
Les processus d’Oracle Illustration
80
Les processus d’Oracle Les threads indispensables
Ce sont ces threads qui relient les fichiers de la base de
données, la zone mémoire réservée à l’instance
(SGA), ainsi que la mémoire allouée à chaque
processus serveur (PGA)"
•  DBW0/DBWR (Database Writer) "
•  LGWR (Log Writer) "
•  CKPT (Checkpoint) "
•  PMON (Process Monitor) "
•  SMON (System Monitor)
81
Les processus d’Oracle Les threads indispensables
•  Visualisation des threads indispensables :"
• Oracle Administration Assistant for Windows"
"
"
"
"
"
"
"
"
• select * from v$bgprocess;
82
Les processus d’Oracle Les threads indispensables
DBW0 (Database Writer)"
• Il transfert les blocs de données modifiés du database buffer
de la SGA dans les fichiers de données. Dès qu’un ordre
SQL de type INSERT, UPDATE, DELETE intervient, il
travaille prioritairement avec les buffers de données en
mémoire, pour plus de performance. "
• Le nombre de blocs existants en mémoire est fixe.
=>Chaque buffer modifié diminue le nombre de buffers
libres disponibles. Dans ce cas, si un ordre SQL a besoin
de lire des données depuis les fichiers de données pour les
placer dans les buffers de données, un algorithme LRU
(Least Recently Used) écrit les plus anciennes données
modifiées sur le disque pour libérer de la place mémoire.
83
Les processus d’Oracle Les threads indispensables
DBW0 (Database Writer)"
• Ce processus est déclenché par les événements :"
•  Un processus serveur ne trouve pas de blocs clean après
qu’il ait scanné le Database Buffer."
•  Après une certaine période pour faire avancer le point de
reprise. "
•  Le point de reprise est la position dans les fichiers redo-log à partir
de laquelle l’instance est récupérable. Cette position est
déterminée par le plus ancien bloc dans le cache de données."
• Le comportement de DBWR est contrôlé par le paramètre
d’initialisation DB_WRITERS, qui permet de démarrer
plusieurs threads DBWR, afin d’augmenter le taux
d’écriture sur disque dans les systèmes très fortement
sollicités.
84
Les processus d’Oracle Les threads indispensables
LGWR (Log Writer)"
• Dès qu’une transaction est validée, Oracle écrit les données
modifiées à deux emplacements différents, de façon à pouvoir «
repartir » si un problème survient. "
•  La 1ère copie est assurée par le DBWR dans les fichiers contenant
les données. Cette copie n’est pas forcément immédiate : pour
augmenter les performances et éviter des goulots d’étranglement,
un délai d’écriture peut exister."
•  Une seconde copie immédiate est assurée par le LGWR dans les
fichiers redo-log. "
• D ès qu’un COMMIT intervient, le thread LGWR écrit
immédiatement les données modifiées depuis la zone mémoire
redo-log dans les fichiers redo-log."
" --> Toute modification validée est immédiatement écrite sur le
disque, puis la zone mémoire redo-log occupée est libérée.
85
Les processus d’Oracle Les threads indispensables
CKPT (Checkpoint)"
• À intervalles réguliers, toutes les données modifiées et
présentes dans le Database Buffer sont écrites dans
les fichiers de données par le thread DBWR. Cet
événement se nomme un checkpoint. "
• Le thread CKPT signale les checkpoints au thread
DBWR et modifie l’ensemble des fichiers qui
composent la base de données, pour que le numéro
d’ordre du plus récent checkpoint soit inscrit en entête de fichier.
86
Les processus d’Oracle Les threads indispensables
CKPT (Checkpoint)"
• Une opération de CheckPoint est déclenchée par l'un de ces
événements :"
•  Lorsque le nombre maximal de blocs est atteint depuis le dernier
CHECKPOINT (Ce nombre est fixé par le paramètre
LOG_CHECKPOINT_INTERVAL. "
•  Le temps écoulé en secondes depuis le dernier CHECKPOINT
a t t e i n t l a v a l e u r d é fi n i e d a n s l e p a r a m è t r e
LOG_CHECKPOINT_TIMEOUT. Pour désactiver ce paramètre il
suffit de le mettre zéro."
•  Manuellement avec la commande : ALTER SYSTEM
CHECKPOINT"
87
Les processus d’Oracle Les threads indispensables
PMON (Process Monitor)"
•  Le thread PMON (Process Monitor) nettoie les
transactions défaillantes, comme celles d’un poste
distant arrêté brutalement durant une transaction. Ce
nettoyage libère les zones mémoire allouées, supprime
les verrous posés par les transactions et annule les
ressources affectées aux threads de la transaction."
• Chaque connexion à une base Oracle consomme
quelques mégaoctets de mémoire et du temps
processeur. Si un utilisateur arrête brutalement son PC au
cours d’une longue requête SQL, il peut ainsi bloquer
inutilement un ensemble de ressources.
88
Les processus d’Oracle Les threads indispensables
SMON (System Monitor)"
• Le thread SMON (System Monitor) surveille la base de
données lors de son démarrage puis au cours de son
fonctionnement."
•  Il vérifie si le dernier arrêt a été correctement effectué. Si tel
est le cas, il ne fait rien. Mais en cas d’arrêt brutal, il existe
certainement des transactions en cours qui n’ont été ni
validées, ni annulées. SMON annule les données en attente
de validation. "
•  Enregistrements validés : SMON récupère dans les fichiers
redo-log ceux qui ont été modifiés (par un COMMIT ou un
ROLLBACK) mais n’ont pas encore été écrits dans la base
Oracle, et ce afin de les y insérer. !
89
Les processus d’Oracle Les threads indispensables
SMON (System Monitor)"
•  SMON peut aussi être appelé par d’autres threads. "
•  SMON vérifie que des espaces libres subsistent dans les
fichiers de la base de données. Dans ce cas, il essaie de
les regrouper. En effet, même si on dispose de beaucoup
de place dans un fichier de la base, cet espace peut
ressembler à du « gruyère »."
•  Le fonctionnement de SMON est automatique : aucune
action de l’administrateur de la BD n’est requise.
C’est l’un des points forts d’Oracle par rapport à ses
concurrents."
•  Si SMON s’arrête, il faut redémarrer l’instance Oracle.
90
Les processus d’Oracle Les threads optionnels
ARC ou ARCn "
•  Le thread ARC n’existe que si la base de données est en
mode ARCHIVELOG. Il est responsable de la copie des
fichiers redo-log, lorsqu’ils sont saturés, vers leur
destination de stockage. "
•  Si la base est en mode ARCHIVELOG sans démarrer le
thread ARC, la base de données se bloquera dès qu’elle
aura besoin « d’historiser » un fichier redo-log saturé. Un
message sera alors écrit dans le fichier d’alerte."
•  Pour démarrer le thread ARC, le paramètre d’initialisation
LOG_ARCHIVE_START doit avoir pour valeur TRUE et
la base de données doit être en mode ARCHIVELOG.
91
Les processus d’Oracle Les threads optionnels
Listener "
• Le listener Oracle n’est généralement pas compris
dans la liste des processus indispensables au
fonctionnement d’Oracle. Pourtant, il doit être lancé
pour permettre d’établir des connexions client-serveur
avec la base de données."
• Son lancement n’est pas lié à celui de la base de
données et il possède ses propres fichiers de
configuration.
92
Configurer un processus d’écoute
Les processus d’Oracle
•  L’utilitaire Assistant Configuration Oracle Net est accessible depuis
le menu :"
•  Démarrer>Programmes>Oracle–... >Configuration and Migration
Tools."
93
Configurer un processus d’écoute
Les processus d’Oracle
94
Les processus d’Oracle
Atelier pratique 3
•  Livret des exercices "
•  Outils utilisés : "
•  SQL*Plus"
•  Oracle Administration Assistant for Windows
95
Chapitre 4
Les fichiers d’une base Oracle
"
"
"
"
"
• Les fichiers de données"
• Les fichiers redo-log "
• Les fichiers d’initialisation "
• Les fichiers de contrôle "
• L’architecture OFA proposée par Oracle
96
Les fichiers d’une base Oracle Les fichiers de données
•  Les fichiers de données (.dbf) contiennent toutes les
informations de la base dans un format spécifique à
Oracle. Il n’est pas possible d’en visualiser le
contenu avec un éditeur de texte. "
•  Le seul et unique moyen pour accéder et manipuler des
données stockées dans Oracle est d’utiliser SQL."
•  Les fichiers de données contiennent deux types
d’informations : celles du dictionnaire de données et
celles des utilisateurs.
97
Les fichiers d’une base Oracle Les fichiers de données
•  L’administrateur peut visualiser le nom des fichiers de
données dans la base en interrogeant la vue V
$datafile ou dba_data_files"
•  Name : nom du fichier"
•  Bytes : taille en octets"
•  Creation_date : date de création du fichier"
•  Block_size : taille du bloc"
•  Db_files (paramètre d'initialisation) : nombre maximal
de fichiers de données gérés dans l’instance"
"
98
Les fichiers d’une base Oracle Les fichiers redo-log
•  Les fichiers redo-log sont des fichiers de journalisation
utilisés pour le fonctionnement interne d’Oracle, ils
enregistrent et conservent toutes les modifications
successives de la base de données. Ils sont utiles lors
d’une récupération à la suite d’un problème d’instance
ou de disque. Cette récupération consiste à rejouer le
contenu des fichiers redo-log dans la base.
99
Les fichiers d’une base Oracle Les fichiers redo-log
• Avant la réutilisation d’un fichier redo-log, Oracle le sauvegarde à
un autre emplacement si la base fonctionne en mode archivelog
(ARCHIVELOG). Dans les autres cas, Oracle le réemploie en
supprimant son contenu sans sauvegarde préalable."
"
• Pour des raisons de sécurité, ces fichiers peuvent être multiplexés
(dupliqués) dans des groupes (Groups). Si chaque membre d’un
groupe est situé sur un disque différent, cela évite une perte
d’informations en cas de panne d’un disque.
100
Les fichiers d’une base Oracle Les fichiers redo-log archivés
•  Lorsqu’une base est en mode ARCHIVELOG, les fichiers
redo-log sont archivés à mesure de leur remplissage."
•  Si le répertoire de destination des archives est saturé, la base
de données se bloque et un message s’inscrit dans le fichier
d’alerte. "
•  L’emplacement et le nettoyage régulier des anciens
fi c h i e r s a r c h i v é s r e p r é s e n t e n t l e s p r i n c i p a l e s
préoccupations de l’administrateur d’une base en mode
ARCHIVELOG.
101
Les fichiers d’une base Oracle Gestion des fichiers redo-log
Informations sur le mode ARCHIVELOG"
•  V$DATABASE (log_mode): identifie si la base de données
est en mode ARCHIVELOG ou NOARCHIVELOG "
•  V$ARCHIVED_LOG : affiche des informations issues du
fichier de contrôle concernant les fichiers redo-log
archivés "
•  V$ARCHIVE_DEST : décrit la destination des fichiers
archivés "
•  V$LOG et V$LOGFILE : décrivent les fichiers redo-log et
indiquent celui qui est actif
102
Les fichiers d’une base Oracle Gestion des fichiers redo-log
• Comment activer l’archivage des fichiers redo-log ?"
1. Démarrer le thread ARC (log_archive_start) et définir un
répertoire destination (log_archive_dest) des fichiers de
journalisation archivés.!
•  log_archive_start = true"
•  log_archive_dest = ‘chemin+nom du répertoire’"
"
2. Arrêtez la base. Le thread ARC sera lancé aux prochain
démarrage."
"
3. Démarrez la base en mode mount avec SQL*Plus et
positionnez-la en mode archivelog :"
•  shutdown immediate ;"
•  startup mount;"
•  alter database archivelog ;"
•  alter database open;
103
Les fichiers d’une base Oracle Gestion des fichiers redo-log
• Comment basculer la base en mode NOARCHIVELOG ?"
•  alter database noarchivelog ;"
"
• Comment ajouter des fichiers redo-log à un groupe ?"
•  alter database add logfile member 'chemin+nom du redo-
log ' to group n°groupe; "
"
• Comment ajouter un groupe de fichiers redo-log ?"
•  ALTER DATABASE ADD LOGFILE GROUP n°groupe
'chemin+nom du redo-log' size nombreM;
104
Les fichiers d’une base Oracle Gestion des fichiers redo-log
•  Comment supprimer un groupe de fichiers redo-log ?"
• ALTER DATABASE DROP LOGFILE GROUP n°groupe;"
"
•  Comment supprimer un fichier redo-log ?"
• ALTER DATABASE DROP LOGFILE MEMBER 'chemin
+nom du redo-log ';
105
Les fichiers d’une base Oracle Les fichiers d’initialisation
•  Toute instance Oracle nécessite des paramètres
d’initialisation utilisés à chaque démarrage. Ils peuvent
être conservés sous forme d’un fichier texte (initSID.ora)
ou enregistrés dans un fichier d’initialisation persistant
(spfileSID.ora)."
•  instance_name : nom de l’instance qui doit correspondre
à la variable d’environnement ORACLE_SID. Souvent
nommé SID."
•  db_name : nom interne de la base de données. Il est
recommandé d’attribuer à la base de données et au SID
le même nom.
106
Les fichiers d’une base Oracle Les fichiers d’initialisation
• control_files : noms et emplacements des fichiers de contrôle
de la base. Ils sont tous identiques et doivent être
disponibles à chaque démarrage. Si l’un d’eux est perdu
(destruction, défaillance disque...), il faut le supprimer de la
liste des fichiers pour démarrer l’instance ;"
• db_files-db_block_size-sga_target-db_cache_size-db_block_buffers-
log_buffer-shared_pool_size-large_pool_size-java_pool_sizepga_aggregate_target-sessions"
"
• Créer un fichier d’initialisation à partir d’un autre :"
•  create pfile='D:\oracle\product\...\admin\SID\pfile\initSID.ora'"
!
from spfile='D:\oracle\product\...\Db_1\database\spfileSID.ora';
107
Les fichiers d’une base Oracle Les fichiers de contrôle
•  Les fichiers de contrôle sont créés en même temps que la base
de données. Ils sont principalement utilisés à chaque
démarrage de celle-ci, puis mis à jour automatiquement par
Oracle. "
•  Il est possible de créer plusieurs fichiers de contrôle, mais ils
sont tous identiques."
•  Le fichier d’initialisation utilisé pour lancer l’instance situe
l’emplacement des fichiers de contrôle. Chacun d’eux
précise la localisation de tous les autres fichiers (données
et redo-log) qui composent la base."
•  Les fichiers de contrôle indiquent si la base de données a été
correctement fermée et si une récupération est nécessaire. Il
est impossible de les visualiser pour en exploiter le contenu.
108
Les fichiers d’une base Oracle Gestion des fichiers de contrôles
• La vue V$CONTROLFILE permet de connaître la liste des fichiers de contrôle d’une
instance en cours de fonctionnement."
"
"
"
"
"Ou « SHOW PARAMETER CONTROL_FILES »"
• Sauvegarder un fichier de contrôle d’une base « en marche »"
•  ALTER DATABASE BACKUP CONTROLFILE TO 'CHEMIN+NOM DU
CONTROL FILE' ;"
•  ALTER DATABASE BACKUP CONTROLFILE TO TRACE;"
•  Cette commande crée un fichier en format texte dans le répertoire UDUMP,
qu'on peut modifier pour reconstruire un nouveau fichier de contrôle. "
"
109
Les fichiers d’une base Oracle Gestion des fichiers de contrôles
• Multiplexage des fichiers de contrôle en utilisant le spfile"
"1. Ajouter le nouveau fichier de contrôle dans le paramètre CONTROL_FILES en
utilisant « Alter system … scope=spfile »"
"2. Arrêter la base"
"3. Copier le fichier de contrôle en utilisant les commandes OS"
"4. Démarrer la base"
• Multiplexage des fichiers de contrôle en utilisant le pfile"
"1. Arrêter la base"
"2. Modifier le paramètre CONTROL_FILES dans le fichier initSID.ora (pfile)"
"3. Copier le fichier de contrôle en utilisant les commandes OS"
" 4. Démarrer la base"
110
Les fichiers d’une base Oracle Les fichiers d’alertes
•  Chaque base Oracle possède son fichier d’alerte. Il ajoute des
informations durant la vie d’une base. Pendant le démarrage de la
base, si le fichier d’alerte n’existe pas, Oracle en crée un pour y
écrire des informations.
111
Les fichiers d’une base Oracle Architecture OFA
•  OFA (Optimal Flexible Architecture). C’est un ensemble de règles
d’installation et de configuration qui vous donneront des bases Oracle
rapides, fiables, faciles à installer et nécessitant peu de maintenance."
•  Pour une meilleure organisation, OFA propose de ne pas mélanger les
fichiers des bases de données avec ceux des logiciels Oracle."
•  Pour bien séparer les fichiers de données des logiciels Oracle
(ORACLE_BASE\db_1\bin), les fichiers de données sont placés
directement sous ORACLE_BASE\oradata."
112
Les fichiers d’une base Oracle Architecture OFA
•  Comment nommer les fichiers des bases de
données ?
113
Les fichiers d’une base Oracle Architecture OFA
• Où placer les fichiers d’administration des bases ? (ex.
Oracle10g)"
"
"
"
"
• Pour bien structurer les fichiers d’administration de chaque base,
Oracle crée sous ORACLE_BASE\admin\SID les répertoires :"
•  \bdump : trace des threads de la base "
•  \cdump : fichier d’erreur du « noyau Oracle » "
•  \create : fichiers de création de la base "
•  \exp : fichiers d’export de la base (optionnel, à ajouter) "
•  \pfile : fichier d’initialisation de la base (initSID.ora) "
•  \udump : fichiers trace d’ordres SQL
114
Les fichiers d’une base Oracle Atelier pratique 4
•  Livret des exercices "
•  Outils utilisés : "
•  SQL*Plus"
•  OEM
115
Chapitre 5
Gestion des tablespaces
•  Structure logique : Concepts"
•  Tablespace"
•  Création "
•  Modification"
•  Suppression"
•  Ajout de fichiers"
•  Suppression de fichiers"
•  …
116
Gestion des tablespaces
Structure logique : Concepts
•  Extension (Extent) = ensemble de blocs contigus"
•  Segment = ensemble d’extensions."
•  Fichier = ensemble de segments"
Entête du segment 1"
Liste de tous les extents "
Taille de tous les extents
117
Gestion des tablespaces
Structure logique : Concepts
•  Types de segment"
•  Segment de données (TABLE) comporte l’ensemble
des données d’une table."
•  Segment d’index (INDEX) comporte un index."
•  Segment temporaire (SORT) où sont effectués les tris."
•  Segment d’annulation (ROLLBACK) comporte les
données en attente de validation ou d’annulation."
118
Gestion des tablespaces
Structure logique : Concepts
•  A chaque tablespace sont associés un ou plusieurs fichiers. Tout objet
(table, index, …) est placé dans un tablespace, sans précision du
fichier de destination. Le tablespace effectue ce lien.
119
Gestion des tablespaces
Tablespaces : exemple
Tablespace "
utilisateur
120
Gestion des tablespaces Tablespaces : caractéristiques
•  Pour connaître les caractéristiques de chaque
tablespace, les vues utiles du dictionnaire de données
sont :"
•  SYS.DBA_DATA_FILES : détail des fichiers de
données."
•  SYS.DBA_TEMP_FILES : détail des fichiers des
tablespaces temporaires."
•  SYS.DBA_TABLESPACES : détail des tablespaces."
•  SYS.DBA_FREE_SPACE : espace disponible restant
dans les tablespaces.
121
Gestion des tablespaces
Création de tablespace : Mode Local
• La gestion locale stocke tous les aspects d’allocation de segments à
l’intérieur de chaque tablespace."
"
• Création d’un tablespace"
• 
• 
• 
• 
CREATE TABLESPACE test1"
DATAFILE ‘D:\oracle\product\10.1.0\oradata\TEST\test1_01.dbf’ SIZE 20M"
EXTENT MANAGEMENT LOCAL !
DEFAULT STORAGE ( INITIAL 100 K"
!
!
!
NEXT 100 K"
!
!
!
MINEXTENTS 2"
!
!
!
MAXEXTENTS 100"
!
!
!
PCTINCREASE 0 );"
"
• INITIAL précise la taille de la première extension. "
• NEXT précise la taille de la deuxième extension. Lorsque la première
est remplie, Oracle alloue automatiquement une seconde de NEXT
octets. Toutes les extensions futures se fondent sur cette valeur."
• PCT_INCREASE est un paramètre qui dirige l’incrément de taille des
extensions suivantes. Par exemple, INITIAL = 1 Mo, NEXT = 1 Mo et
PCT_INCREASE = 50 %. La première extension sera de 1 Mo, la
deuxième de 1 000 + 50 % (1 000) = 1,5 Mo, la troisième de 2,25 Mo,
etc.
122
Gestion des tablespaces Options du mode local
•  CREATE TABLESPACE test1"
•  DATAFILE 'oracle_home\oradata\TEST\test1_01.dbf' SIZE 20M"
•  EXTENT MANAGEMENT LOCAL AUTOALLOCATE;"
• AUTOALLOCATE : c’est l’option par défaut. Oracle gère automatiquement
toutes les allocations d’espace dans le tablespace. Elles peuvent être de
tailles différentes ;"
•  CREATE TABLESPACE test1"
•  DATAFILE 'oracle_home\oradata\TEST\test1_01.dbf' SIZE 20M"
•  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;"
• UNIFORM SIZE : toute allocation d’espace sera de cette taille (minimum 1
Mo). Le tablespace TEMPORARY utilise cette option par défaut. "
"
•  SPACE MANAGEMENT AUTO|MANUAL;
123
Gestion des tablespaces
Création de table
CREATE TABLE emp ("
..."
liste des colonnes de la table..."
..."
)"
STORAGE ("
"INITIAL 100K"
"NEXT 100 K"
"PCTINCREASE 0 )"
"TABLESPACE user_data;
124
Gestion des tablespaces
Clause Storage d’une table
•  L’ordre SQL suivant visualise le nombre d’extensions de tous les
segments propriété de l’utilisateur SYS."
•  select segment_name,tablespace_name,
segment_type,extents,max_extents,bytes,owner"
•  from sys.dba_segments!
•  where owner = ‘SYS’"
"
•  L’ordre SQL suivant fournit le détail de chacune des extensions de la
table TEST de l’utilisateur SYS."
•  select owner, segment_name, segment_type, tablespace_name,
extent_id, bytes!
•  from sys.dba_extents!
•  where segment_name = ‘TEST’ and owner = ‘SYS'
125
Gestion des tablespaces
Clause Storage d’une table
•  L’ordre SQL suivant donne le détail de la clause STORAGE de la table
TEST."
•  select owner, table_name, initial_extent, next_extent, min_extents,
max_extents, pct_increase"
•  from sys.dba_tables!
•  where table_name = ‘TEST’ and owner = ‘SYS’"
126
Gestion des tablespaces Opérations sur les tablespaces
•  Définir un tablespace par défaut"
•  Modifier un tablespace"
•  Renommer un tablespace"
•  Supprimer un tablespace
127
Gestion des tablespaces Définir un tablespace par défaut
•  Oracle apporte la notion de tablespace par défaut pour
toute la base. Il suffit de l’indiquer une seule fois au
plus haut niveau :"
•  ALTER DATABASE"
•  DEFAULT TABLESPACE tablespace_utilisateur;"
•  Tout nouvel utilisateur créé qui n’aura pas de
tablespace par défaut utilisera alors celui précisé au
plus haut niveau. C’est un avantage qui limite les
erreurs lors de la création d’utilisateurs.
128
Gestion des tablespaces Modifier/Renommer un tablespace
•  Modifier un tablespace"
•  Un tablespace peut être online (actif, accessible à tous les
utilisateurs) ou offline (inactif, inaccessible aux
utilisateurs, même administrateur)."
•  alter tablespace user_data online ;"
•  Renommer un tablespace"
•  A l’exclusion des tablespaces SYSTEM et SYSAUX
réservés par Oracle."
•  alter tablespace test rename to test1 ;
129
Gestion des tablespaces Supprimer un tablespace
• Pour supprimer un tablespace ne contenant aucun
segment de données ou d’index, l’ordre DROP
TABLESPACE suffit :"
•  drop tablespace test ;"
"
• Si le tablespace contient des tables et des index, vous
devez le préciser sinon l’ordre SQL précédent échoue."
•  drop tablespace test including contents ;"
•  drop tablespace test including contents and datafiles ;"
130
Gestion des tablespaces Gestion des fichiers d’un tablespace
Ajouter un fichier de données"
• Il existe deux possibilités : la première consiste à créer un nouveau
tablespace et à lui associer le nouveau fichier, la seconde à ajouter un
nouveau fichier à un tablespace existant."
• alter tablespace user_data"
"add datafile ’...\oradata\TEST\user02.dbf' size 50M;"
• NB : Il est possible d’ajouter un fichier à un tablespace mais il est
impossible de supprimer un seul fichier d’un tablespace. Il faut alors
supprimer le tablespace entier."
"
Modifier la taille d’un fichier de données"
• alter database datafile ’...\oradata\TEST\user_01.dbf'"
"resize 100M"
131
Gestion des tablespaces Gestion des fichiers d’un tablespace
Extension automatique d’un fichier de données"
• Que faire lorsqu’un segment (de données, d’index, de tri, de
rollback) cherche à s’étendre dans un tablespace et ne dispose
plus de place dans les fichiers pour y créer un nouvel extent ?"
Oracle permet que les fichiers des tablespaces augmentent
automatiquement de taille :"
• 
• 
• 
• 
• 
alter database"
datafile ‘...\oradata\TEST\user01.dbf'"
autoextend on"
next 25M"
maxsize 2000M; "
• D ans cet exemple, la taille du fichier peut augmenter
automatiquement, par palier de 25 Mo jusqu’à la limite
maximale de 2 000 Mo
132
Gestion des tablespaces Gestion des fichiers d’un tablespace
Déplacer/renommer les fichiers de données"
1. Positionnez le tablespace concerné offline ;"
•  alter tablespace users offline;"
Espace de tables (TABLESPACE) modifié."
2. Copiez/renommez sous Windows les anciens fichiers dans leur
nouvelle destination."
3. Indiquez au dictionnaire de la base ce changement
d’emplacement :"
•  alter tablespace users rename datafile"
•  ‘c:\oracle\oradata\TEST\user_old.dbf'"
•  to ‘d:\oracle\oradata\TEST\user_new.dbf' ;"
4. Mettez le tablespace concerné online :"
•  alter tablespace users online;"
Espace de tables (TABLESPACE) modifié."
5. Vérifiez par la vue DBA_DATA_FILES la prise en compte des
modifications, puis supprimer sous Windows l’ancien fichier.
133
Tablespace temporaire (Temporary)
Gestion des tablespaces
•  Si un tablespace temporaire n’est pas créé, les tris
sont effectués dans le tablespace SYSTEM qui
contient le dictionnaire. Cela n’est pas son rôle et il
convient de toujours créer un tablespace temporaire."
•  create temporary tablespace temp_data!
"
•  tempfile ’...\oradata\TEST\temp_data01.dbf’ size 50M
"
•  extent management local ;
•  Une fois le tablespace temporaire créé, Oracle l’utilisera pour tous les
tris des utilisateurs, sans qu’il soit nécessaire d’indiquer pour chaque
utilisateur quel est son tablespace de tri."
"
•  ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
•  Après avoir exécuté cette commande, tous les utilisateurs créés après
utiliseront le tablespace temporaire indiqué.
134
Gestion des tablespaces Tablespace temporaire (Temporary)
• Ajouter un fichier temporaire"
•  alter temporary tablespace temp_data"
"
"add tempfile ’...\oradata\TEST\temp_data02.dbf' "
"
"size 50M"
"
• L es vues V$TEMPFILE et DBA_TEMP_FILES
permettent d’accéder à toutes les caractéristiques des
tablespaces temporaires."
135
Gestion des tablespaces Gestion des données en attente ou d’annulation
•  Le fichier d’initialisation de la base doit préciser le mode de
gestion des données en attente de validation ou d’annulation
choisi. Le paramètre UNDO_MANAGEMENT accepte les
valeurs :"
"
• UNDO_MANAGEMENT=AUTO : la gestion par tablespace
UNDO est retenue. Le paramètre UNDO_TABLESPACE doit
alors indiquer quel tablespace de type UNDO il doit utiliser ;"
"
• UNDO_MANAGEMENT=MANUAL : la gestion par rollback
segment est retenue. (Tablespace System)"
136
Gestion des tablespaces Tablespace d’annulation (UNDO)
•  Un tablespace de type UNDO est un nouveau type de
tablespace destiné à remplacer l’ancien mode, les
rollback segments. C’est dans cet espace que sont
gérées par Oracle les données en attente de
validation ou d’annulation."
•  Create UNDO TABLESPACE UNDOTBS"
•  DATAFILE 'c:\oracle\oradata\TEST\undotbs01.dbf‘"
•  SIZE 50M"
•  AUTOEXTEND ON"
•  NEXT 5120K"
•  MAXSIZE 1000M
137
Gestion des tablespaces Rollback segment
Création d’un rollback segment"
•  create public rollback segment rb1"
•  Storage (initial 200K"
•  next 200K)"
•  tablespace system;"
"
• Dès qu’il est créé, le rollback segment est OFFLINE,
c’est-à-dire qu’aucune transaction ne peut l’utiliser. "
•  alter rollback segment RB1 online ;
138
Gestion des tablespaces Rollback segment
Visualiser les rollback segments"
• select segment_name, owner, tablespace_name,"
• initial_extent , next_extent,pct_increase,status"
• from sys.dba_rollback_segs;!
!
Suppression d’un rollback segment"
• alter rollback segment RB1 offline ;"
• drop rollback segment RB1 ;
139
Atelier pratique 5
Gestion des tablespaces
•  Livret des exercices"
•  Outils utilisés : "
•  SQL*Plus"
•  OEM
Chapitre 6
Gestion des utilisateurs et de la sécurité
•  Création des profils"
•  Création des rôles"
•  Création des utilisateurs
141
Création des profils
Gestion des utilisateurs et de la sécurité
• Un PROFIL est un ensemble de limitations. Une fois qu'un PROFIL a été
assigné à un utilisateur celui-ci ne pourra plus dépasser les limitations
imposées."
"
• Deux types de limitations:
"
•  Les limitations du mot de passe (onglet MOT DE PASSE de EM)"
•  Les limitations des ressources système (onglet GENERAL de EM)"
"
• Mise en place
"
•  Etablir les limitations de mot de passe et les limitations système."
•  Créer le profil"
•  Attribuer le profil aux utilisateurs qui devront être limités."
"
Création des profils
Limitations système
Gestion des utilisateurs et de la sécurité
Administration>…>Profils>Bouton « Créer »
La valeur DEFAULT: Oracle
ira récupérer la valeur de la
limitation dans le profil
DEFAULT.
Nom du profil
à
à
Le temps de processeur max en centièmes de secondes
qu'une session pourra utiliser.
-Le temps de processeur max en centièmes de secondes qu'un "appel
serveur" pourra utiliser. "
-Le temps (min) pour la durée de connexion max d'une session. "
-Le temps (min) pour la durée d'inactivité maximale d'une session.
Le nombre de session max qu'un utilisateur pourra ouvrir.
à
à
-Le nombre max de bloc lus durant une session."
-Le nombre max de bloc lus durant un «appel serveur» "
-La taille que pourra utiliser une session"
-Le coût total des limitations autorisées pour une session
Création des profils
Limitations Mot de passe
Gestion des utilisateurs et de la sécurité
Si le paramètre Nb de jours de conservation a été initialisé avec
une valeur numérique, alors le paramètre Nb de PWD à conserver
(PASSWORD_REUSE_MAX) devra être à UNLIMITED et
inversement. Si les deux paramètres possèdent la valeur
UNLIMITED, alors Oracle n'utilisera aucune de ces deux limitations
de mot de passe.
Définir le nom d'une fonction PL/SQL qui servira à vérifier
les mots de passe saisis. Sinon, la valeur NULL.
Définir le nombre maximal de tentatives de connexion. Si
le nombre de connexion est atteint le compte sera alors
verrouillé pendant une période.
Création des rôles
Gestion des utilisateurs et de la sécurité
• Un rôle est un regroupement de privilèges. Une fois créé il peut être assigné à un
utilisateur ou à un autre rôle ."
1. Les privilèges de niveau système"
"Ils permettent la création, modification, suppression, exécution de groupes d'objets . Le
privilège CREATE TABLE, par exemple permet à l'utilisateur qui l’a reçu de créer des
tables."
2. Les privilèges de niveau objet"
" Ils permettent les manipulations sur des objets spécifiques. Les privilèges SELECT,
INSERT, UPDATE, DELETE sur la table SCOTT.EMP par exemple permettent à
l'utilisateur qui les a reçu de sélectionner, ajouter, modifier et supprimer des lignes dans
la table EMP appartenant à l'utilisateur SCOTT."
• Les privilèges objets sont typiquement les droits que peuvent accorder des utilisateurs
sur les objets dont ils sont les auteurs alors que les privilèges système sont réservés au
DBA."
"
• 
Création des rôles
Gestion des utilisateurs et de la sécurité
• Exemples de Rôles"
•  CONNECT : Autorise la connexion à une base Oracle. Parmi les
privilèges associés à cette commande : CREATE TABLE, CREATE VIEW, CREATE SESSION ..."
"
• 
RESOURCE : Permet, en plus de la création de table et de vue,
l'utilisation de trigger et de procédure (CREATE PROCEDURE,
CREATE TRIGGER ...). "
"
•  DBA : Ce rôle regroupe tous les privilèges système pour la gestion des
utilisateurs et de leurs tables.
Création des rôles
Gestion des utilisateurs et de la sécurité
Administration>…>Rôles>Bouton « Créer »"
Nom représente le nom du rôle"
• Authentification"
"
•  Mot de passe : indique qu'un mot de passe est nécessaire pour activer le rôle"
•  EXTERNE indique que l'autorisation provient d'une source externe "
•  Aucune : indique qu'aucun mot de passe n'est nécessaire pour activer le rôle
•  GLOBAL pour un user GLOBAL géré par exemple par Enterprise Directory Service
Création des utilisateurs
Gestion des utilisateurs et de la sécurité
Administration>…>Utilisateurs>Bouton « Créer »
Création des profils
Privilèges système
Gestion des utilisateurs et de la sécurité
•  Ils permettent la création, modification, suppression, exécution de
groupes d'objets (tables, vues, index…) .
Création des profils
Privilèges objet
Gestion des utilisateurs et de la sécurité
•  Ils permettent les manipulations sur des objets spécifiques. On
choisit d’abord un objet et ensuite on définit les privilèges.
Atelier pratique Gestion de la sécurité
•  Livret des exercices"
•  Outil utilisé : OEM
Téléchargement