Administration
Oracle
Partie 1
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE 1
Introduction
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE
Les bases de données
• Une base de donnée est un ensemble de donnée stockées
d’une manière structurée , organisée avec le moins de
redondance possible .
3
Systèmes de gestion de bases de données
(SGBD)
o Oracle est un Système de Gestion de Base de Données Relationnelle
(SGBDR)
o Oracle est chargé de :
• Stocker les données,
• Vérifier les contraintes d’intégrité définies,
• Garantir la cohérence des données qu’il stocke, même en cas de
panne (arrêt brutal) du système,
• Assurer les relations entre les données définies par les utilisateurs,
• Respecte la norme ACID.
o Oracle est un Système de Gestion de Base de données multi-
platormes (UNIX, Linux et Windows)
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE 4
Les Bases de données Relationnelles
5
Historique d’Oracle Database
• Oracle est un SGBD édité par la société du même nom (Oracle Corporation,
société Américaine- [Link] )
• 1979: Oracle Database est lancé pour la première fois par Larry Ellison, Bob
Miner et Ed Oates sous le nom d'Oracle V2.
• 1983: Oracle Database 3 est publié, marquant le début de l'utilisation du modèle
relationnel.
• 1992: Oracle 7 est lancé, introduisant des améliorations significatives telles que la
gestion des transactions distribuées et la prise en charge des déclencheurs au
niveau de la base de données.
• 1997: Oracle 8 apporte des fonctionnalités telles que les objets relationnels et les
procédures stockées Java.
6
Historique d’Oracle Database
• 2001: Oracle 9i met l'accent sur l'auto-gestion et l'optimisation automatique des
performances.
• 2005: Oracle Database 10g introduit l'architecture de grille et la gestion automatique
des ressources.
• 2007: Oracle Database 11g se concentre sur la gestion automatisée et la
consolidation des données.
• 2013: Oracle Database 12c introduit le concept de base de données en tant que
service (DBaaS) et met en œuvre des améliorations majeures telles que la prise en
charge du multitenant et la gestion des données in-memory.
• 2023: Oracle continue à publier des versions majeures avec des améliorations de
la sécurité, des performances et de la gestion des données, la dernière version
connue étant Oracle Database 21c
7
Les métiers autour des bases de données
• Administrateurs
• Responsable de la sécurité
• Administrateurs réseaux
• Développeurs d’applications
• Utilisateurs: modifier les données, créer des rapports …
8
Tâches d'un administrateur de BD
Oracle
L’administrateur de la base de données est principalement chargé de :
1. Evaluer le matériel du serveur de base de données
2. Installer le logiciel Oracle
3. Elaborer la stratégie pour la base de données et la sécurité
4. Créer, migrer et ouvrir la base de données
5. Sauvegarder la base de données
6. Inscrire les utilisateurs système et définir leur accès
7. Implémenter la conception de la base de données
8. Récupérer la base de données suite à une panne
9. Surveiller les performances de la base de données
Les composants d'Oracle
On peut classer les outils d'Oracle selon diverses catégories :
• Les outils d'administration
• Les outils de développement
• Les outils de communication
• Les outils de génie logiciel
• Les outils d'aide à la décision
10
Outils d’administration de BD Oracle
• Oracle Universal Installer (OUI) : permet d’installer le logiciel Oracle et ses options
• Database Configuration Assistant (DBCA) : permet de créer, configurer et supprimer les bases de
données
• Database Upgrade Assistant (DBUA) : mise à niveau d'une base Oracle existante vers une nouvelle
version.
• Oracle Net Manager (NetMgr) : permet de configurer la connectivité réseau des bases de données et
applications Oracle
• Oracle Net Configuration Assistant (NetCA) : permet de configurer et de gérer des configurations Oracle
Network.
• Oracle Enterprise Manager (EM) : interface web pour gérer la base de données
• Enterprise Manager Database : pour administrer une seule base de données.
• Enterprise Manager Grid Control : pour administrer simultanément plusieurs bases de données.
• SQL*Plus : est une interface de ligne de commande standard permettant de gérer la base de données.
• Recovery Manager (RMAN) est une solution Oracle complète pour les opérations de sauvegarde, de
restauration et de récupération de l'ensemble de la base de données ou de fichiers spécifiques
11
Outils de développement d'Oracle
Oracle propose également de nombreux outils de développement
permettant d'automatiser la création d'applications s'interfaçant avec la
base de données. Ces outils de développement sont :
• Oracle Designer
• Oracle Developer
• SQL*Plus : une interface interactive permettant d'envoyer des
requêtes SQL et PL/SQL à la base de données.
12
Outils de développement d'Oracle
• Oracle Forms (anciennement SQL*Forms) : un outil permettant d'interroger
la base de données de façon graphique sans connaissances préalables du
langage SQL.
• Oracle Reports (SQL*ReportWriter) : un outil permettant de réaliser des état
• Oracle Graphics : un outil de génération automatique de
graphiques dynamiques.
• Procedure Builder : un outil permettant de développer des procédures,
des fonctions et des packages.
13
Architecture
d’Oracle
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE
Base de données et instance
Un serveur de base de données Oracle se compose d'une base de données et une
instance de base de données
•Base de données
Une base de données est un ensemble de fichiers, situés sur le disque, qui
stockent des données.
•Instance de base de données
Se compose d’une mémoire SGA , et de processus d’arrière plan .
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE 15
Connexion à un serveur Oracle
Lorsque qu’un utilisateur est connecté à une machine sur laquelle reside un
serveur oracle , deux processus sont invoqués le prcessus utilisateur et le
processus serveur
Processus
utilisateur
Processus Serveur
serveur
PGA
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE 16
Architecture Oracle globale 11g
• L'architecture d'un serveur de base de données se base sur deux
composants:
• L’instance
• Stockage des base de donnees
• Elle comprend 3 principaux types de structure
• Structure memoire
• Structure de processus
• Structure de stockage
• Il y a 2 memoires principales:
• SGA (System Global Area)
• PGA (Program Global area)
EMSI-HONORIS 2021/2022 PR. HASNAE SAKHI/ORACLE 17
Architecture du serveur Oracle
Definition
Une instance Oracle est un ensemble de structures de mémoire (SGA - System Global
Area) et de processus en arrière-plan (background processes) qui fonctionnent
ensemble pour gérer et manipuler les données dans une base de données Oracle.
A chaque démarrage d'une instance, une zone de mémoire partagée appelée
mémoire SGA (System Global Area) est allouée et les processus en arrière-plan
sont lancés.
18
Architecture du serveur Oracle
• SGA (System Global Area) :
La SGA est une zone de mémoire partagée qui stocke les données et les contrôles nécessaires au bon
fonctionnement de la base de données.
Elle est composée de différents composants tels que le cache tampon (buffer cache),…
• Processus en Arrière-Plan (Background Processes) :
Les processus en arrière-plan sont des processus qui s'exécutent en continu pour effectuer diverses
tâches de gestion et de maintenance de la base de données. (PMON , SMON, LGWR, DBWn)
Permettent d’etablir la communication entre les sous memoires SGA et les fichiers physiques d’Oracle.
• Processus Serveur :
Les processus serveur gèrent les connexions des utilisateurs et exécutent les requêtes.
Il existe deux types principaux de processus serveur : les processus dédiés (dedicated server processes) et
les processus partagés (shared server processes).
19
Structure de la mémoire
La mémoire d'un système de gestion de base de données (SGBD) Oracle est divisée
en deux principales composantes: la SGA (System Global Area) et la PGA
(Program Global Area).
• La SGA (System Global Area)
• La SGA est une zone de mémoire partagée utilisée par tous les processus de
l'instance Oracle (les processus serveur et les processus en arrière- plan).
• Elle contient des informations globales nécessaires pour la gestion de la base
de données.
SGA (system global area)
20
Mémoire SGA
Les principaux composants de la SGA
• Buffer Cache (Le cache tampon)
• Shared Pool (zone de mémoire partagée)
• Redo Log Buffer (Tampon de journalisation)
• Large Pool (zone de mémoire large)
• Java Pool (zone de mémoire Java)
• Streams Pool (zone de mémoire Streams)
SGA (system global area)
21
Mémoire SGA
Shared Pool (zone de mémoire partagée)
• Elle permet de stocker :
les dernières instructions SQL exécutées,
les dernières définitions de données utilisées.
• Elle est constituée de deux structures mémoire clés liées aux
performances :
Cache librairie
Cache du dictionnaire de données
22
Mémoire SGA
Shared Pool (zone de mémoire partagée)
• Le cache "library" conserve des informations sur les dernières instructions SQL
et PL/SQL utilisées.
• Il permet le partage des instructions fréquemment utilisées.
• Il est géré par un algorithme LRU.
• Il est composé de deux structures :
la zone SQL partagée,
la zone PL/SQL partagée.
• Sa taille dépend du dimensionnement de la zone de mémoire partagée.
23
Mémoire SGA
Shared Pool (zone de mémoire partagée)
• Le cache du dictionnaire de données contient les dernières définitions utilisées
dans la base.
• Il contient des informations sur les fichiers, les tables, les index, les colonnes,
les utilisateurs, les privilèges et d'autres objets de la base de données.
• Au cours de l'analyse, le processus serveur recherche les informations dans le
cache du dictionnaire pour résoudre les noms d'objet et valider l'accès.
• La mise en mémoire cache des informations du dictionnaire de données réduit
le temps de réponse aux interrogations et aux instructions LMD.
24
Mémoire SGA
Buffer Cache (Le cache tampon)
• Ce cache conserve des copies des blocs de
données extraits des fichiers de données.
• Il permet des gains de performances considérables
lors de l'obtention et de la mise à jour de données.
• Il est géré par un algorithme LRU.
• Le paramètre DB_BLOCK_SIZE détermine la taille
du bloc principal.
25
Mémoire SGA
Buffer Cache (Le cache tampon)
• Keep Buffer Pool (db_keep_cache_size)
Conservation des blocs en mémoire meme après leur utilisation
• Recycle Buffer Pool (db_recycle_cache_size)
• Bloc disponible immédiatement après leur utilisation
• Write Queue (File d'Attente d'Écriture)
Contient les blocs qui ont été modifiés en mémoire et qui attendent d'être écrits sur le
disque. Ces écritures peuvent être différées pour optimiser les performances en
regroupant les opérations d'écriture.
Show parameter db_cache_size
26
Mémoire SGA
Redo Log Buffer (Tampon de journalisation)
• Il enregistre toutes les modifications apportées aux blocs de données
de la base.
• Sa principale fonction est la récupération de données.
• Les modifications enregistrées constituent des entrées de
journalisation.
• Les entrées de journalisation contiennent des informations permettant
de reconstruire des modifications
27
Mémoire SGA
Zone de mémoire Java
◦ La zone de mémoire Java répond aux besoins d'analyse des commandes Java.
◦ Elle est nécessaire si Java est installé et utilisé.
Zone de mémoire LARGE POOL
o Elle réduit la charge de la zone de mémoire partagée.
28
Structure de la mémoire PGA
• la PGA (Program Global Area).
• La PGA est une zone de mémoire privée allouée à chaque processus serveur
PGA PGA
User User
Stack Stack
Global Global
space space
Area Area
Server Server
process process
1 2
• Il s'agit d'une mémoire non partagée qui est créée par Oracle Database au
démarrage d'un processus serveur
• Chaque session utilisateur et chaque processus serveur ont leur propre PGA.
29
Structure de la mémoire PGA
• la PGA (Program Global Area).
PGA
• Mémoire réservée à chaque processus
User
Stack
Global
utilisateur qui se connecte à une base space
Area
Server
process
de données Oracle. 1
• Elle est allouée lorsqu'un processus est créé.
• Elle est libérée à la fin du processus.
• Elle n'est utilisée que par un processus.
30
Structure des processus
Le fonctionnement de la base Oracle est régi par un certain nombre de processus chargés en mémoire.
On distingue généralement deux types de processus :
• Les processus utilisateurs (appelés aussi user process ou noyau oracle)
• Application ou outil qui se connecte à la base de données Oracle (SQL*plus, SQL Developer, JDBC … ).
• Les processus systèmes (oracle process).
• Les processus serveurs (process server) gérant les requêtes des utilisateurs. Se connecte à
l'instance Oracle et démarre lorsqu'un utilisateur ouvre une session
• Les processus d'arrière-plan (background process) chargés d'assurer le fonctionnement interne du
SGBD Oracle (gestion de la mémoire, écriture dans les fichiers, ...). Ils démarrent en même temps
qu'une instanceOracle.
31
Structure des processus
Les processus serveurs: Listener Process
• Listener Processes (processus d'écoute réseau) représente le pont (gateway) pour
accéder à la base de données oracle
• Il s'agit d'un processus qui fonctionne en arrière-plan et qui est chargé d'écouter les
demandes de connexion provenant d'autres ordinateurs (clients) et de diriger ces
connexions vers le processus approprié de la base de données Oracle
32
Le processus DBWn (Obligatoire)
Buffer Cache Shared Pool Buffer redo log
Java pool
Library cache
Large
Dictionnary cache pool
PMON DBWn LGWR CKPT SMON ARCn
Nombre de processus : DB_WRITER_PROCESSES Fichiers
Fichier
de journaux
contrôle archivés
PGA Processus
01010101010101
0101 0101010101
0101 0101010010
10 10101001
serveur 01010101
Fichiers 010101010101010
101010101010101
01 010101
01 010101
010101010010101
Fichiers de Redo Log 0101001 01010101
01010101
010100
données
33
Processus DBWn (Database Writer)
• Il est responsable de l'écriture des blocs de données modifiés (dirty) de la mémoire cache (buffer cache) de la
base de données vers les fichiers de données sur le disque.
• Chaque instance Oracle peut avoir plusieurs processus DBWn fonctionnant simultanément, chacun associé à
un ensemble spécifique de fichiers de données.
Fréquence d’écriture du DBW
Toutes les trois secondes
Dès que la Dirty List (liste des blocs modifiés) dépasse un seuil prédéfini
Chaque fois qu’un processus consulte la liste LRU (last recently used) et ne trouve pas un emplacement
libre après un nombre prédéterminé de recherche de bloc
Lors de chaque Checkpoint (CKPT)
Chaque fois qu’une base est arrêtée normalement
Chaque fois qu’un tablespace est mis en mode OFFLINE ou READ ONLY ou s’il fait partie d’une sauvegarde en
ligne
34
Le processus LGWR (obligatoire)
INSTANCE
SGA
Buffer Cache Shared Pool Buffer redo log
Java pool
Library cache
Large
Dictionnary cache pool
PMON DBWn LGWR CKPT SMON ARCn
Fichiers journaux
Fichiers archivés
Redo Log
PGA Fichier
01010101010101
0101 0101010101
Processus
0101 0101010010
10 10101001
de
serveur
01010101010101
contrôle 010101010101010101010101
010101010101010010101010
1001
0101 0101010101
0101 0101010010
10 10101001
01010101010101
01010101010101
01010101010010
1010101001
35
Le processus LGWR (obligatoire)
• Chargé de gérer la mémoire tampon de journalisation (redo log buffer) en écrivant ses entrées
dans un fichier de journalisation sur le disque (redo log files).
• Le tampon de journalisation est réutilisable. Une fois que le processus LGWR a écrit son contenu
dans un fichier de journalisation sur le disque, il peut recevoir de nouvelles données provenant des
processus serveur
• LGWR effectue une opération d'écriture :
1. Quand un processus utilisateur valide une transaction.
2. Quand un tiers du tampon de journalisation est plein.
3. Avant qu'un processus DBWn écrive des tampons modifiés sur le disque.
4. Toutes les 3 secondes.
36
Processus CKPT (Checkpoint)
INSTANCE
SGA
Buffer Cache Shared Pool Buffer redo log
Java pool
Library cache
Large
Dictionnary cache pool
PMON DBWn LGWR CKPT SMON ARCn
Fichiers journaux
Fichiers archivés
Redo Log
PGA 01010101010101
0101 0101010101
0101 0101010010
Processus
10 10101001
Fichier
01010101010101
serveur de 010101010101010101010101
010101010101010010101010
1001
0101 0101010101
0101 0101010010
contrôle
10 10101001
Fichiers de
01010101010101
01010101010101
01010101010010
1010101001
données
37
Processus CKPT (Checkpoint)
Ce processus est chargé :
• de signaler DBWn aux points de reprise,
• de mettre à jour les en-têtes de fichiers de données avec les informations sur le
point de reprise,
• de mettre à jour les fichiers de contrôle avec les informations sur le point de reprise.
Fréquence d’écriture du CKPT
Lors d’un basculement des fichiers journaux
Manuellement : ALTER SYSTEM CHECKPOINT
24
Lors d’un arrêt propre de l’instance Oracle
38
Le processus PMON (obligatoire)
INSTANCE
SGA
Buffer Cache Shared Pool Buffer redo log
Java pool
Library cache
Large
Dictionnary cache pool
PMON DBWn LGWR CKPT SMON ARCn
Fichiers de
données Fichier
de
contrôle
PGA Fichiers 01010101010101
0101 0101010101
Processus
0101 0101010010
journaux
10 10101001
serveur
01010101010101
Fichiers archivés
010101010101010101010101 0101 0101010101
010101010101010010101010 0101 0101010010
1001 10 10101001
Redo Log 01010101010101
01010101010101
01010101010010
1010101001
[Link]™©
39
Le processus PMON (obligatoire)
Son rôle principal est de gérer les processus serveur et d'assurer la cohérence et la fiabilité du
système en cas de défaillance.
Principales fonctions:
Suite à l'échec de processus, PMON exécute des opérations de nettoyage :
• Il annule la transaction (rollback)
• Il libère des verrous
• Il libère d'autres ressources qui étaient éxploitées par les utilisateurs
40
Processus ARCn (Archiver)
INSTANCE
SGA
Buffer Cache Shared Pool Buffer redo log
Java pool
Library cache
Large
Dictionnary cache pool
PMON DBWn LGWR CKPT SMON ARCn
Fichier
de
contrôle
PGA Processus
01010101010101
0101 0101010101
Fichiers 0101 0101010010
10 10101001
serveur journaux 01010101010101
Fichiers
010101010101010101010101 0101 0101010101
010101010101010010101010 0101 0101010010
archivés
1001 10 10101001
Fichiers de Redo Log 01010101010101
01010101010101
01010101010010
1010101001
données
Oracle Database : 11g DBA 1 (1Z0-052) [Link]™©
41
Processus ARCn (Archiver)
• Processus d'arrière-plan facultatif
• Archivage des fichiers de journalisation (redo log files) pleins.
• Copie les fichiers de journalisation dans les disques.
• Peut collecter des données de journalisation sur les transactions et les transmettre
à des destinations de secours.
42
Le processus SMON (obligatoire)
INSTANCE
SGA
Buffer Cache Shared Pool Buffer redo log
Java pool
Library cache
Large
Dictionnary cache pool
PMON DBWn LGWR CKPT SMON ARCn
Fichiers de
données Fichier
de Fichiers
PGA contrôle
01010101010101
0101 0101010101
Processus journaux
0101 0101010010
10 10101001
serveur archivés 01010101010101
0101 0101010101
0101 0101010010
10 10101001
Fichiers
010101010101010101010101
010101010101010010101010
1001
01010101010101
Redo Log
01010101010101
01010101010010
1010101001
43
Processus SMON
• Il est nécessaire au démarrage de l’instance Oracle
• Il écrit des données dans les fichiers de données qui ont été validées au niveau
des fichiers de journalisation
• Il s'assure que les modifications non validées sont annulées pour garantir la
cohérence des données.
• Il est chargé de nettoyer ces enregistrements inutilisés.
• Libérer l'espace inutilisé dans les fichiers de données. Cela contribue à optimiser
l'espace de stockage.
44
Présentation des principaux composants
Instance
Processus
utilisateur Zone de mémoire Mémoire SGA
partagée
Cache Cache de
tampons de Tampon de
"library" journalisation
la base
Cache du de données
Processus
serveur dictionnaire Zone de mémoire
Zone de
de données mémoire Java LARGE POOL
PGA
PMON SMON DBWR LGWR CKPT Autres
Fichiers de Fichiers de Fichiers de
données contrôle journali- Fichiers de
Fichier de
sation Journalisation
paramètres
archivés
Fichier
de mots
de passe
Base de données