Vous êtes sur la page 1sur 35

Architecture d'une base de données Oracle

Oracle DB définition
Oracle Une base de données est un ensemble de données
traitées comme une seule et même unité. Elle sert
principalement à stocker et à extraire des informations
connexes. Le système de gestion de base de données
relationnelle (SGBDR) d'Oracle est capable de gérer de
manière fiable une grande quantité de données dans un
environnement multiutilisateur, permettant ainsi à de
nombreux utilisateurs d'accéder simultanément aux mêmes
données tout en bénéficiant de performances élevées. En
outre, il empêche les accès non autorisés et fournit des
solutions efficaces pour la récupération des données après
incident.
Oracle: Vue d’ensemble

❑ Oracle: Vue d’ensemble


➢ Oracle est le leader du marché des SGBDR, avec une
part de marché allant jusqu’à 49% (Gartner Group).
➢ Oracle commercialise différents produits; Oracle
Database, Oracle Developer Suite, Oracle Application
Server, Oracle Applications, Oracle Collaboration
Suite, Oracle Services…
❑ Oracle Database
➢ Le produit principal d’Oracle est la version 11g. Chaque
version est commercialisée sous différentes éditions:
➢ Enterprise Edition: inclut toutes les fonctionnalités d’Oracle.
➢ Standard Edition: basique, destinée aux serveurs à 4 processeurs.
➢ Standard Edition One: basique, destinée aux serveurs biprocesseurs.
➢ Personal Edition: uniquement sur Windows, destinée aux développeurs.
➢ Express Edition: édition gratuite, fonctionne sur des machines à 1
processeur.
➢ Lite Edition: destinée aux machines mobiles.
❑ Interaction avec Oracle Database

-SQL*Plus
-iSQLPlus
- OEM (DB Control)
- Oracle Discoverer, Oracle Reports, Oracle Forms
- PL/SQL
Présentation de l’Architecture d'un serveur de base
de données Oracle
L'architecture d'un serveur de base de
données Oracle comprend trois principaux
types de structure : structures mémoire,
structures de processus et structures de
stockage. Un système de base de données
Oracle élémentaire est constitué d'une base
Oracle et d'une instance de cette base. La
base de données est constituée de structures
physiques et de structures logiques.
L’instance
Il se compose de structures mémoire et de
processus en arrière-plan. 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. Lorsqu'une instance est démarrée, le
logiciel Oracle l'associe à une base de données
précise. Ce processus est appelé montage de la
base de données. La base peut alors être
ouverte et mise à la disposition des utilisateurs
autorisés.
L’instance en resumé
❑ C’est l’ensemble de structures mémoire et de processus qui assurent
la gestion de la base de données.
❑ Le fichier de paramètres est utilisé pour configurer l’instance lors de
son démarrage.
❑ Une instance ne peut ouvrir qu’une seule base de données.
❑ Une instance emploie deux zones mémoire principales; la SGA
(System Global Area) et la PGA (Program Global Area).
Connexion à une instance de base de données
• Connexion : Communication entre un processus
utilisateur et une instance
• Session : Connexion spécifique d'un utilisateur à
une instance via un processus utilisateur
Les processus utilisateur et serveur

❑ Le processus utilisateur s’exécute au niveau client.


❑ Le processus serveur s’exécute au niveau serveur BD.
➢ L’interaction entre le serveur et les clients se fait en réalité grâce à
ces deux processus, chacun de son côté.
❑ Lorsque le client est lié au serveur, on parle d’une connexion.
❑ Lorsque l’utilisateur s’identifie, il ouvre une session.
❑ Plusieurs sessions peuvent être ouvertes en même temps. Elles ne
doivent pas dépasser la valeur du paramètre SESSIONS.
Structures mémoire d'une base de données
Oracle
Oracle Database crée et utilise des structures
mémoire à des fins diverses. La mémoire
contient, par exemple, le code des programmes
en cours d'exécution, les données partagées
entre utilisateurs et des zones de données
privées pour chaque utilisateur connecté.

Deux structures mémoire élémentaires sont


associées à une instance :
• Mémoire SGA (System Global Area)
• Mémoire PGA (Program Global Area)
• Mémoire SGA (System Global Area) :
Groupe de structures mémoire partagées
(appelées composants SGA) qui contiennent
les données et les informations de contrôle
correspondant à une instance Oracle
Database. La mémoire SGA est partagée par
les processus serveur et par les processus en
arrière-plan. Elle contient notamment les
blocs de données en mémoire cache et les
zones SQL partagées.
La mémoire SGA contient des informations de contrôle et des
données relatives à l'instance. Elle contient les structures de
données suivantes :
• Zone de mémoire partagée : Elle met en mémoire cache diverses structures pouvant être partagées par
les utilisateurs.
• Cache de tampons (buffer cache) de la base de données : Il met en mémoire cache les blocs de
données extraits de la base.
• Espace de tampons à conserver : Type particulier de cache de tampons qui est configuré pour le
stockage de blocs de données pendant de longues périodes.
• Espace de tampons à recycler : Type particulier de cache de tampons qui est configuré pour un
recyclage ou une suppression rapide de blocs.
• Cache de tampons de blocs de taille nK : Type particulier de cache de tampons conçu pour le stockage
des blocs qui présentent une taille différente de la taille de bloc par défaut de la base de données.
• Tampon de journalisation : Il met en mémoire cache les informations de journalisation (utilisées pour la
récupération d'instance) jusqu'à ce qu'elles puissent être écrites dans les fichiers de journalisation
(fichiers redo log) physiques stockés sur le disque.
• Zone de mémoire LARGE POOL : Il s'agit d'une zone facultative qui fournit des espaces importants
d'allocation de mémoire à des processus volumineux, tels que les opérations de sauvegarde et de
récupération Oracle et les processus serveur d'E/S.
• Zone de mémoire Java : Elle est utilisée pour l'ensemble du code Java et des données propres à la
session, dans la JVM (Java Virtual Machine).
• Zone de mémoire Streams : Elle est utilisée par Oracle Streams pour stocker les informations
nécessaires aux opérations de capture et d'application des modifications.
• Mémoire PGA (Program Global Area) :
Région de la mémoire qui contient des
données et des informations de contrôle pour
un processus serveur ou un processus en
arrière-plan. Il s'agit d'une mémoire non
partagée qui est créée par Oracle Database au
démarrage d'un processus serveur ou d'un
processus en arrière-plan. Seul ce processus a
accès à sa zone de mémoire PGA. Chaque
processus serveur ou d'arrière-plan a sa
propre mémoire PGA.
Architecture des processus
On distingue :
• Processus utilisateur : Application ou outil qui se
connecte à la base de données Oracle
• Processus de base de données
- Processus serveur : Se connecte à l'instance
Oracle et démarre lorsqu'un utilisateur ouvre une
session
- Processus en arrière-plan : Démarrés en même
temps qu'une instance Oracle
• Démon / processus applicatifs composé de
Processus d'écoute réseau et des Démons de
l'infrastructure de grid
Une instance Oracle Database peut comprendre
un grand nombre de processus en arrière-plan
les processus en arrière-plan les plus courants sont les suivants :
• DBWn (Database Writer) : Les processus Database Writer écrivent le contenu des
tampons dans des fichiers de données. Ils sont chargés de transférer sur disque
le contenu des tampons modifiés ("dirty") du cache de tampons de la base de
données.
• LGWR (Log Writer) : Le processus Log Writer (LGWR) est chargé de gérer la
mémoire tampon de journalisation (redo log buffer) en écrivant ses entrées
dans un fichier de journalisation sur le disque. Il écrit toutes les entrées de
journalisation qui ont été copiées dans le tampon depuis la dernière opération
d'écriture.
• CKPT (processus de point de reprise) : Un point de reprise (checkpoint) est une
structure de données qui définit un numéro SCN (System Change Number) dans
le thread de journalisation d'une base. Les points de reprise sont enregistrés
dans le fichier de contrôle et dans chaque en-tête de fichier de données. Ils sont
essentiels pour le processus de récupération. Quand un point de reprise est
créé, Oracle Database doit mettre à jour les en-têtes de tous les fichiers de
données pour actualiser les informations correspondantes. Cette opération est
effectuée par le processus CKPT.
• SMON (System Monitor) : Si nécessaire, le processus SMON (System
Monitor) se charge d'effectuer la récupération des données au
démarrage de l'instance. Il assure également le nettoyage des
segments temporaires qui ne sont plus utilisés.
• PMON (Process Monitor) : Le processus PMON assure la récupération
des processus utilisateur qui ont échoué. Il est chargé de nettoyer le
cache de tampons de la base de données et de libérer les ressources
bloquées par les processus utilisateur en échec.
• RECO (processus de récupération) : C’est un processus en arrière-plan
qui est utilisé dans une configuration de base de données distribuée
pour résoudre automatiquement les échecs impliquant des
transactions distribuées.
• CJQ0 (coordonnateur de file d'attente de travaux)
• Jnnn (processus esclaves de travail)
• ARCn (processus d'archivage) : Les processus d'archivage ARCn copient
les fichiers de journalisation (fichiers redo log) sur le périphérique de
stockage désigné après un changement de fichier de journalisation.
• QMNn (processus de surveillance de file d'attente)
Architecture de stockage de la base de données Oracle
Fichier de contrôle (Control File)
Ils contiennent des données sur la base elle-même
(informations sur sa structure physique).
• Nom de la base, noms et chemins des fichiers de données
et de journalisation, informations de restaurations etc…
- Un des premiers fichiers lu par l’instance lors du
démarrage.
- La vue V$CONTROLFILE nous renseigne sur le contenu
du fichier de contrôle.
Ces fichiers sont d'une importance capitale pour la base.
Sans eux, vous ne pouvez pas ouvrir les fichiers de
données de la base. Ils peuvent également contenir des
métadonnées relatives aux sauvegardes.
Fichier de données (Data Files)
- Stockent les données sous un format spécial à Oracle.
- Physiquement, un fichier de données est un ensemble de blocs SE.
Un bloc SE constitue l’unité d’E/S (écriture/lecture) des fichiers.
- Les fichiers de données sont logiquement regroupés sous forme de
Fichiers de données
tablespaces.
- Une BD Oracle 10g inclut au moins deux tablespaces, SYSTEM et
SYSAUX.
-Fichiers de données : Ils contiennent les données utilisateur ou les
données des applications, ainsi que des métadonnées et le
dictionnaire de données.
Fichiers de journalisation

❑ Les fichiers de journalisation contiennent toutes les modifications


effectuées sur les données depuis une certaine durée.
❑ En cas de crash du système, ou d’altération des fichiers de données,
on peut reconstituer les données à partir des fichiers journaux.
❑ L’écriture sur les fichiers journaux est multiplexée et cyclique.
❑ L’ensemble des fichiers multiplexés (qui contiennent donc les mêmes
informations) sont appelés membres et forment un groupe.
❑ L’écriture est donc multiplexée à l’intérieur d’un groupe, et cyclique
entre les groupes.
❑ La vue V$LOGFILE contient les informations des fichiers journaux.
Fichiers de journalisation

Groupe 1

DELETE DELETE
UPDATE UPDATE
INSERT INTO INSERT INTO
UPDATE UPDATE
UPDATE… UPDATE…
INSERT INTO INSERT INTO

Membre 1 Membre 2

Groupe 2

INSERT INTO INSERT INTO


UPDATE… UPDATE…
DELETE... DELETE...

Membre 1 Membre 2
Le fichier de paramètres
❑ Un fichier de paramètres inclut l’ensemble des paramètres de configuration du
serveur BD.
❑ •L’instance
Consultable via la et
lit ce fichier vue V$PARAMETER
fonctionne selon les valeurs des paramètres qui y sont
spécifiés.
❑ SELECT
Il est utilisé name,
pour définirvalue FROM
la façon dont V$PARAMETER
l'instance est configurée au démarrage.
❑ Il existe deux types de fichiers de paramètres:

PFILE (parameter file) SPFILE (server parameter file)


Fichier texte Fichier binaire
Modifiable via un éditeur texte Modifiable via SQL
Disponible sur la machine de démarrage Centralisé (sur le serveur uniquement)

Nommé init%.ora Nommé spfile%.ora


Modification à froid Modification à chaud
Le fichier mot de passe
❑ Oracle doit authentifier le DBA avant que la base ne soit ouverte, et
donc le mot de passe DBA est enregistré hors de la BD → dans un
fichier de mot de passe
❑Il permet aux utilisateurs sysdba, sysoper et sysasm de se connecter
à distance à la base de données et d'effectuer des tâches
d'administration.
❑ L’authentification du DBA se fait ou bien via le système
d’exploitation (REMOTE_LOGIN_PASSWORDFILE=none), ou bien via le
fichier de mot de passe (REMOTE_LOGIN_PASSWORDFILE=exclusive
ou shared).
- none : Authentification via le SE uniquement
- exclusive : utilisation d’un FMP dédié à une seule BD. Possibilité de donner le
role SYSDBA ou SYSOPER à d’autres utilisateurs et - shared : utilisation d’un FMP
partagé par plusieurs BDs. Seul SYS peut utiliser les privilèges SYSDBA ou SYSOPER
• Fichiers de sauvegarde : 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 une erreur utilisateur a endommagé ou supprimé les
fichiers d'origine.
• Fichiers de journalisation archivés : Ils contiennent l'historique complet des
modifications de données (informations de journalisation) générées par
l'instance. Vous pouvez, à l'aide de ces fichiers et d'une sauvegarde de la base,
restaurer un fichier de données perdu.
• Fichiers trace : Chaque processus serveur ou en arrière-plan peut écrire dans un
fichier trace associé. Lorsqu'un processus détecte une erreur interne, il effectue
un dump des informations sur l'erreur dans son fichier trace. Certaines de ces
informations sont destinées à l'administrateur de base de données, et d'autres au
support technique Oracle.
• Fichier d'alertes : Il contient des entrées de trace spéciales. Le fichier d'alertes
d'une base de données est un journal chronologique des messages et des erreurs.
Oracle recommande de le consulter régulièrement.
Structures logiques et physiques d'une base de
données

• Une base de données comprend des


structures logiques et des structures
physiques: Bases de données, tablespaces et
fichiers de données.
• Le serveur de base de données Oracle alloue
de l'espace de manière dynamique.
• Les tablespaces SYSTEM et SYSAUX sont
obligatoires. Ils sont créés en même temps que
la base de données. Ils doivent être en ligne.
• Le tablespace SYSTEM est utilisé pour les
fonctionnalités principales (les tables du
dictionnaire de données, par exemple).
• Le tablespace auxiliaire SYSAUX sert aux
composants de base de données
supplémentaires (tels que le référentiel
Enterprise Manager).
• Il est déconseillé d'utiliser les tablespaces
SYSTEM et SYSAUX pour stocker les données
des applications.
❑ Les tablespaces
- Un tablespace est une unité logique qui correspond
physiquement à un ou plusieurs fichiers de données.
- L’administrateur (DBA) agit sur les tablespaces et non sur les
fichiers de données.
- Une BD est organisée sous forme de plusieurs tablespaces,
chacun correspondant à un contexte (thème).
- EX: On peut créer plusieurs tablespaces dans une BD.
tablespaces budget, paie, facturation etc..
Structure de stockage
Database

- C’est l’espace occupé par un objet base


de données (Table ou Index) Tablespace
Fichier de
données
- Il existe 4 types de segments:
1. Segment table: espace occupé par une table Segment

2. Segment index: espace occupé par un index


3. Segment d’annulation: espace qui inclut les Extension

informations d’annulation
4. Segment temporaire: espace annexe à la Bloc de données Bloc SE
Mémoire Centrale les opérations volumineuses.
Structure Logique Structure Physique
Le segment d’annulation

❑ Le segment d’annulation sert à stocker les données nécessaires


A l’annulation

Update table1
Mémoire centrale Set col1=A
Nouvelle Ancienne
image (A) image (B) Where col1=B;

Segment
table
Disque
Segment
d’annulation
En effet, la MAJ peut être effectuée sur
disque sans attendre un COMMIT.

La nouvelle image est enregistrée dans un segment table, l’ancienne dans un segment d’annulation. Au cas où
un ROLLBACK est effectué, c’est cette image qu’on utilisera pour rétablir les données.
Le segment temporaire

❑ Le segment temporaire sert à stocker les données relatives à des


opérations volumineuses si la mémoire centrale ne suffit pas à les
exécuter.
Exemple d’opérations volumineuses:
- Certains tris.
- Certaines jointures.
- Création d’index.
- Etc.
Extension

❑ Un segment est à son tour composé d’extensions Database

❑ Une extension est un ensemble de blocs


appartenant à un même fichier de Tablespace
Fichier de
données
données
❑ Par contre un segment peut s’étaler sur Segment

plusieurs fichiers à travers ses


extensions. Extension

❑ La taille d’un bloc de données est définie


par le paramètre DB_BLOCK_SIZE Bloc de données Bloc SE

Structure Logique Structure Physique


Exemple

Segment A (Extent 1) Segment A (Extent 2) Database

Tablespace Fichier de
données

Segment B (Extent 2)
Segment
Segment B (Extent 1)

Extension
Segment C (Extent 1)

Bloc de données Bloc SE

Fact01.dbf Fact02.dbf
Structure Logique Structure Physique

Structure du tablespace FACTURATION

Vous aimerez peut-être aussi