Vous êtes sur la page 1sur 53

Institut Supérieur d’Informatique et de Mathématiques

de Monastir

Chapitre2:
Architecture de la base
de données Oracle
Enseignante: Alija BOUZIDI
aljia.bouzidi@gmail.com

2ème Licence Fondamentale en Informatique


Année Universitaire :2021-2022
Objectifs
A la fin de ce chapitre, vous pourrez :
• expliquer la différence entre instance Oracle et base de
données Oracle.
• énumérer les principaux composants de l'architecture
d'une base de données Oracle.
• expliquer les structures mémoire
• décrire les processus en arrière-plan
• définir la relation entre les structures de stockage logiques
et physiques.
Contenu du chapitre2
1. Introduction
2. Partie1: Une instance d’une base de données Oracle
3. Partie 2 : Base de données Oracle
4. Annexes
Institut Supérieur d’Informatique et de Mathématiques
de Monastir

Introduction
Contenu de l’introduction

1. Serveur de base de données Oracle


2. Architecture d’un serveur de base données Oracle
3. Connexion à un serveur de base données Oracle
Serveur de base de données Oracle(1/2)

6/52
Serveur de base de données Oracle(2/2)

o Un serveur Oracle :
• est un système de gestion de base de données qui
fournit une approche intégrée et complète de
gestion des données
o Un serveur Oracle utilise :
• CPU: Traiter et calculer (langage binaire (0/1))
• RAM: Stoker les données temporaires
• Disque: Stocker des données permanant

Comment Oracle organise ces composants?!?!

7/52
Architecture d’un serveur de base données
Oracle(1/5)

o L’architecture d’un serveur


Oracle:
• est constituée d'une instance et
d'une base de données

Serveur Oracle= instance+ base de données

8/52
Architecture d’un serveur de base données
Oracle(2/5)

o Une instance de base de données:


• est définie par un nom SID (Oracle System IDentifier)

• permet d’accéder à une base de données Oracle

• n’ouvre qu’une seule base de données

• Est constituée de structures de processus en arrière plan et des


structures mémoire

9/52
Architecture d’un serveur de base données
Oracle(3/5)

Instance= structures mémoire + processus


en arrière plan
10/52
Architecture d’un serveur de base données
Oracle(4/5)

o Une Base de données est un ensemble de fichiers (sur disque) :

• Fichiers contenant les données,

• Fichiers contenant les informations sur les données,

• Fichiers contenant les informations de configuration, installation


du serveur oracle

• Fichiers contenant les traces d’executions ( requêtes SQL, logs, etc.)

• Etc.

11/52
Architecture d’un serveur de base données
Oracle(5/5)

Base de données= structures de fichiers=


structures de stockage
12/52
Connexion à un serveur de base données
Oracle(1/2)

Demande de
Connexion
connexion
établie
résultat

Session crée

BD
Tunnel de
communication est
créé

13/52
Connexion à un serveur de base données
Oracle(2/3)

o L’Optimiseur (Optimizer) c’est celui qui gère toutes les opérations


dans la mémoire à l’aide des processus en arrière plan

o Les principaux tâches d’optimiseur :

• Vérifier la syntaxe

• Créer les plans d’exécution,

• Sectionner le plan le plus court

• Il exécute la requête

14/52
Connexion à un serveur de base données
Oracle(3/3)
o Connexion: La mise en communication entre le processus
utilisateur et une instance de base de données

o Session: Connexion spécifique entre le processus client


(processus utilisateur) et une instance de base de
données

• La session identifier par : SID et serial#


• Plusieurs sessions peuvent être ouvertes en même
temps
• Il ne doivent pas dépasser un nombre paramétrés

15/52
Institut Supérieur d’Informatique et de Mathématiques
de Monastir

Partie 1:
Instance de base de
données Oracle
Contenu de la partie 1

1. Architecture d’un serveur de base données Oracle : Rappel


2. Définition d’une instance de base de données Oracle
3. Structures mémoire
4. Types de processus
5. Structures de processus
6. Structures de processus les plus courants
Architecture d’un serveur
de base données Oracle: Rappel

Serveur Oracle= Instance+ base de données

18/52
Définition d’une instance de base de
données Oracle (1/3)
o Chaque base de données Oracle en cours d'exécution est
associée à une instance Oracle.

o Lorsque vous démarrez une base de données sur un serveur


Oracle:
• le logiciel Oracle alloue une zone de mémoire partagée
• et lance plusieurs processus Oracle en arrière-plan.

La combinaison de la zone mémoire partagée et les


processus Oracle forme ce que l'on appelle une instance
Oracle

19/52
Définition d’une instance de base de
données Oracle (2/3)
o Une fois l'instance démarrée:
• le logiciel Oracle l'associe à une base de données précise:
• ce mécanisme est appelé montage de la BD.
• la BD peut alors être ouverte et mise ainsi à disposition des
utilisateurs autorisés.

o Plusieurs instances peuvent s'exécuter


simultanément sur le même ordinateur:
• chacune ayant accès à sa propre base de données physique.
• un fichier de paramètres est utilisé par l'instance lors de son
démarrage pour se configurer et faire le lien avec la BD.
20/52
Définition d’une instance de base de données
Oracle (3/3)

Instance= structures mémoire+ Processus en


arrière plan

21/52
Structures mémoire

o Les structures mémoire associées à une base de données oracle


sont décomposées en deux partie:
• Mémoire SGA (System Global Area)
• Mémoire PGA (Program Global Area)

Zone 1 Zone 2
SGA PGA
PGA
….

22/52
Structures mémoire : PGA
La PGA (Program Global Area):
• est une zone de mémoire privée des différents processus en
arrière plan et processus serveur
• Pour un processus en arrière plan: Cette PGA sert à
temporiser les données que manipule le processus toujours dans
un souci d’optimisation
• Pour un processus serveur, la PGA contient : des
informations sur la session, variables des hôtes, des informations
sur le traitement des requêtes de la session,

Note : chaque processus serveur et processus en


arrière-plan dispose de sa propre mémoire PGA.
Donc PGA n’est pas partagée. 23/52
Structures mémoire : SGA (1/2)
La SGA (System Global Area):
• Sert comme la partie de la mémoire où toutes les opérations de la
base de données se sont produites.
• Est un espace mémoire partagé par tous les processus de l’instance
des différents utilisateurs, c'est-à dire qu'il s'agit de la zone
contenant les structures de données accessibles par tous les
processus (si plusieurs utilisateurs se connectent en même temps à
la base alors tous les processus partages cette zone mémoire)
• Est allouée au démarrage de l’instance et libérée lors de son
arrêt
• Est une composante fondamentale d’une instance Oracle
• SGA inclut 6 zones mémoires principales.

24/52
Structures mémoire : SGA (2/2)
o Exemple de sous mémoires SGA:
cache de blocs de Cache de log/log
Zone partagée: est partagée
données/ buffer buffer: pour
par tous les utilisateurs.
cache/ cache de sauvegarder les logs/
Elle contient les requêtes SQL
tampon de la BD: met requêtes de MAJ avant
les plus récemment exécutées:
en mémoire cache les l’exécution de requête (
• Data dictionary cache:
contient le dictionnaire de blocs de données extraits avant de passer au
données en cache de la base et utilisés buffer cache)
• Library cache: contient le récemment. (de ou Sous forme des tableaux
texte, compilation et plan
vers la base) (enregistrements).
d’exécution des requêtes
récentes

Shared pool SGA


Data dictionary
Data base Redo log
cache
buffer buffer
Library cache cache

25/52
Types de processus

Oracle utilise trois types de processus:

• Processus Utilisateur( client) : est un outil qui permet à un


utilisateur de se connecter au serveur Oracle
• Processus serveur: Etablit la connexion à l’instance Oracle
et est démarré lorsqu’un utilisateur ouvre une session
• Processus en arrière plan: sont lancés avec ou après ( à la
demande) le démarrage d’une instance Oracle

26/52
Structures de processus
1o Processus Utilisateur: est crée quand un utilisateur lance une
application cliente
• Une connexion va être créée avec l’instance Oracle, l’utilisateur va
ouvrir une session,
2 Processus serveur: va retourner les données
o
• Mode dédié: un processus serveur pour un processus client
• Mode partagé : les clients partagent un groupe de processus serveurs
3o Processus en arrière plan: qui vont exécuter de façon asynchrone
des opérations d’E/S et de contrôle d’autres processus Oracle
• Ces processus sont démarrés avec ou après le démarrage d’une instance
Oracle et permettent une interaction entre les différentes composants du
serveur ainsi qu’avec les utilisateur
1 2

3
27/52
Structures de processus les plus courants
(1/4)
o Program MONitor (PMON) Ou processus de monitoring:
• Rôle: nettoyage de tous les composants (zones mémoires) de la
BD
• Exemples:
 supprime les sessions après la déconnexion
 enlève les plans d’exécution qui ne sont pas choisis
 Annule la transaction (ROLLBACK),
 Etc.

o LRU (Last Recently Used) :


• Rôle : identifie les derniers éléments dont le composant
mémoire non utilisés si la mémoire est pleine.
• Il est utilisés dans tous les composants de SGA
• PMON supprime les éléments mentionnées par LRU

28/52
Structures de processus les plus courants
(2/4)
o System MONitor (SMON) :
• Rôle: Il effectue la récupération après pannes lorsque l’instance est
redémarrée à une défaillance. Il assure le nettoyage des ressources
inutiles de la base (segments temporaires qui ne sont plus utilisés)
• SMON effectue deux opérations sur la mémoire:
 Un roll forward: pour appliquer aux fichiers de données les modifications
non enregistrées des transactions validées (commit)
 Puis un roll back pour des fichiers enregistrées des transactions non
validées
Rajouter les transactions
 Valider les transactions Redo log
SMON Annuler les transactions non validées buffer
X

Libérer toutes les


ressources de la BD
redo log

BD 29/52
Structures de processus les plus courants
(3/4)
o Data Base WRiter (DBWn):
• Rôle: Il récupère les métadonnées à utilisés récemment s’ils
n’existent pas dans dictionary cache. Il écrit les données de la zone
Data Base Buffer cache dans les fichiers de la base de données

o LoG WRiter (LGWR):


• Rôle: Il écrit les informations de la zone Redo Log Buffer dans les
fichiers journalisation REDOLOG File
• LGWR es déclenché par:
 Presque 3 milli seconde
 Lors d’un commit: écriture des
entrés redo relatifs à la
transaction confirmée
 Si 1/3 de log buffer est plein
30/52
Structures de processus les plus courants
(4/4)
o Processus d’archivage (ACRn):
• Rôle: Se déclenche lorsqu’un groupe (={} de fichiers
redo log) est plein
• responsable à l’archivage. Il copie les fichiers de journalisation (
fichier Redo Log) dans l’emplacement de stockage d’archivage
sur le disque

31/52
Institut Supérieur d’Informatique et de Mathématiques
de Monastir

Partie 2:
Base de Données Oracle
Contenu de la Partie2

1. Architecture d’un serveur de base données Oracle: Rappel


2. Base de données : Physique et logique
3. Structure de stockage physique
4. Structure de stockage logique
Architecture d’un serveur de base données
Oracle: Rappel

Structures mémoire Instance

SGA PGA
Structures
de processus

Processus en arrière-plan

Fichiers
Base de BD
de données

Structures
de stockage

34/52
Base de données : Physique et logique

o Physique : se sont des unités


réels existent dans le disque
(ex: des fichiers)

o Logique: c’est une notion


pour organiser les unités
physiques (ex: dossier)

35/52
Structure de stockage physique (1/6)
La structure physique comprend principalement trois types de fichiers:

• Fichier de contrôle
• Fichiers de données
• Fichiers de journalisation

36/52
Structure de stockage physique (2/6)
Mais la structure physique comprend aussi les 6 types de fichiers suivants

37/52
Structure de stockage physique (3/6)
o Un fichier de contrôle (control file):
• est un petit fichier binaire nécessaire à une base de données Oracle pour
démarrer et fonctionner avec succès
• Contient les informations relatives à la structure physique de la
BD: nom de la base, localisation des fichiers de données et de reprise,
Nom de la BD
 Date/heure de la création de la BD

 Emplacement des autre fichiers de la base (f. de données et f.de journalisation

 Des informations sur les point de reprise

 Etc.
• Ces fichiers sont essentiels pour la base de données. Sans eux, vous ne
pouvez pas ouvrir les fichiers de données pour accéder aux données de la
base.
• Chaque BD contient un fichier de contrôle unique (on peut en faire
plusieurs copies pour protéger les données).

38/52
Structure de stockage physique (4/6)
o Des fichiers de données (data files) ou dbf:
• contiennent les données d'application ou les données utilisateur de
la base c-à-d contiennent les données proprement dites de la base (tables
et index, données utilisateurs de la base, etc.)
• Chaque données liés au applications (structure et contenu) est stockée
dans ce type de fichier.
• Les fichiers de données ( d’extension .DBF) sont logiquement regroupés
en tablespace (est une unité logique de stockage composé d’un ou de
plusieurs fichiers physiques)
• Chaque fichier de données est associée à une seule base de données
o Des fichiers de journalisation en ligne (Redo log Files):
• Fichiers binaires pour sauvegarder physiquement les logs
• Permettent en cas de panne (matérielle ou logicielle) de remettre la
BD dans un état cohérent
• Si la base de données connaît une défaillance et qu'aucun fichier de
données n'est perdu, l'instance peut récupérer la base de données à partir
des informations de ces fichiers.
• La base sera arrêtée si le fichier log est supprimé 39/52
Structure de stockage physique (5/6)
o Des fichiers d’archivage/de journalisation archivés (Archived
redo log files):
• Contiennent l’historiques complet des modifications de données
(information de journalisation) générées par l’instance
• A l’aide de ces fichiers et d’une sauvegarde de la base, vous pouvez
récupérer un fichier perdu
o Un fichier de mot de passe:
• Il permet aux utilisateurs bénéficiant des rôles QYQDBA,
SYSOPER,SYSBACKUP,SYSDG,SYSKM et SYSASM de se de
connecter à distance à l’instance et d’effectuer des tâches
d’administrations
o Un fichier de paramètres (parameter file):
• Stocke tous les paramètres de configuration de la base
• Un fichier de paramètre est utilisé par l’instance lors de son
démarrage pour se configurer et faire le lien avec la BD
• Assure le fonctionnement basique de la base 40/52
Structure de stockage physique (6/6)
o Des fichiers de sauvegarde (Backup files):
• Ils sont utilisés pour la récupération de la base de données
• Les fichiers de sauvegarde sont généralement restaurés lorsqu'une
défaillance physique ou un erreur utilisateur a endommagé ou
supprimé les fichiers d’origine
o Des fichiers de trace ( trace files):
• Chaque processus serveur et processus en arrière-plan peut écrire
dans un fichier trace associé.
• Lorsqu'un processus détecte une erreur interne, il réalise dans son
fichier trace un dump des informations relatives à cette erreur.
Certaines informations écrites dans un fichier trace sont destinées à
l'administrateur de base de données, et d'autres au support technique
Oracle.
o Des fichiers d’alerte(alert files):
• Il s'agit de fichiers trace spéciaux, dans lesquels sont consignées les
alertes. Le fichier d'alertes d'une base de données est un journal
chronologique des messages et des erreurs.
• Oracle recommande de consulter ces fichiers.
41/52
Vue d’ensemble des structures de
stockage physiques
Fichiers de la base de données Oracle

Fichiers de Fichiers de Fichiers de journalisation en


contrôle données ligne

Parameter file
Backup files Fichiers de
journalisation
archivés

Password file Alert log and trace files

42/52
Structure de stockage logique (1/2)

o La structure logique d’une base de données Oracle


comprend :

• Tablespaces

• Segments

• Blocs de données

• Blocs du disque

43/52
Structure de stockage logique (2/2)
o Chaque base de données est divisée de manière logique en un ou
plusieurs tablespaces qui peuvent être utilisées pour regrouper des
structures logiques liées

o Une base de données doit avoir au moins un tablespace appelé


SYSTEM qui contient les tables systèmes (dictionnaire de données)

o Les segments existent dans un tablespace. Un segment est un


ensemble d’extentions (extents)
o Un extent est un ensemble de blocs de données contigus

o Les blocs de données sont mis en correspondance avec des blocs du


disque.

44/52
Annexes

1. Architecture d’une instance de BD


2. Architecture détaillée d’un serveur Oracle
3. Transaction
4. Interaction avec une base de données Oracle
Architecture d’une instance de BD

46/52
Architecture détaillée d’un serveur Oracle

47/52
Transaction

o une transaction est un ensemble d'opérations (requêtes) de mises à


jour (insert, update et delete) qui finit par un COMMIT (validation)
ou un ROLLBACK (annulation).

o La validation/annulation concerne tout le bloc de mises à jour


(l'ensemble des opérations) depuis un COMMIT/ROLLBACK
ultérieur ou depuis le début de la connexion.

o Une transaction finit donc par un COMMIT/ROLLBACK ou par une


déconnexion de l'utilisateur qui vaut un COMMIT si c'est une
déconnexion normale et un ROLLBACK si elle ne l'est pas.

48/52
Interaction avec une base de données Oracle :
Mémoire, processus et stockage(1/4)

49/52
Interaction avec une base de données Oracle :
Mémoire, processus et stockage (2/4)
L'exemple suivant décrit le niveau le plus élémentaire des interactions
avec la base de données Oracle. Il utilise une configuration de base de
données dans laquelle l'utilisateur et le processus serveur associé se
trouvent sur des ordinateurs distincts connectés via un réseau:

1. Une instance a été démarrée sur un nœud où Oracle Database est installé. Ce
nœud est souvent appelé hôte ou serveur de base de données

2. Un utilisateur démarre une application qui lance un processus utilisateur.


L'application essaie d'établir une connexion au serveur (11 peut s'agir d'une
connexion locale, client/serveur ou d'une connexion à trois niveaux [3- tiers]
fournie par un niveau intermédiaire.)

50/52
Interaction avec une base de données Oracle :
Mémoire, processus et stockage (3/4)
3. Le serveur exécute un processus d'écoute (listener) qui contient le gestionnaire
Oracle Net Services approprié. Le serveur détecte la demande de connexion
émise par l'application et crée un processus serveur dédié pour le compte du
processus utilisateur.

4. L'utilisateur exécute une instruction SQL de type DML (langage de


manipulation de données) et valide la transaction. Par exemple, il change
l'adresse d'un client dans une table et valide la modification dans la base.

5. Le processus serveur reçoit l'instruction et recherche dans la zone de mémoire


partagée (composant SGA) une zone SQL partagée contenant une instruction
SQL semblable. S'il trouve cette zone SQL partagée, le processus serveur vérifie
les privilèges de l'utilisateur pour l'accès aux données demandées et utilise la
zone SQL partagée existante pour traiter l'instruction. A défaut, une nouvelle
zone SQL partagée est allouée à l'instruction pour que celle-ci puisse être
analysée et traitée.

51/52
Interaction avec une base de données Oracle :
Mémoire, processus et stockage (4/4)

6. Le processus serveur extrait les valeurs de données nécessaires, à partir du


fichier de données réel (table) ou à partir du cache de tampons de la base.

7. Le processus serveur modifie les données dans la mémoire SGA. Comme la


transaction est validée, le processus Log Writer (LGWR) enregistre
immédiatement la transaction dans le fichier d ournalisation (fichier redo log).
Le processus Database Writer (DBWn) les blocs modifiés sur le disque au
moment opportun.

8. Si la transaction réussit, le processus serveur envoie un message à l'application


via le réseau. Si elle échoue, un message d'erreur est transmis.

9. Tout au long de cette procédure, les autres processus en arrière-plan


s'exécutent pour détecter les conditions nécessitant leur intervention. Par
ailleurs, le serveur de base de données gère les transactions des autre
utilisateurs et empêche les problèmes de contention entre les transactions qui
demandent les mêmes données. 52/52
Fin

aljia.bouzidi@gmail.com

Vous aimerez peut-être aussi