Vous êtes sur la page 1sur 14

Serveur oracle constitué dune base de donnée et d’une instance

Base de données on a 2 structures :

Structure physique et structure logique de la base de données

Structure physique de la base de donnée on a des fichiers qui existent


physiquement dans le system d’exploitation cette partie est visible au niveau du
system d’exploitation

Les fichiers de donnée, les fichiers de paramètres, les fichiers de mot de passe,
les archive log file, Les fichiers de données, les fichiers de contrôle, fichier de
journalisation (redo log file) on peut voir ces fichiers dans le system
d’exploitation.

Pour la structure logique c’est une structure qui organise la structure physique

Les tablespace contiennent les fichiers de données

Chaque fichier de donnée appartient à un tablespace

La structure logique est seulement pour organisation des fichiers de données

Et aussi le tablespace system dans lequel on trouve des tables et des vues pour
les informations sur l’instance, sur les fichiers de données sur le comportement
de la base de donnée tablespace system et tablespace utilisateurs

La base de données est constituée de deux structures on à la structure logique et


la structure physique

On passe maintenant à l’instance elle se compose d’une structure de mémoire


partagé appelé SGA system global area et un ensemble de processus en arrière
plan appelé background process et des serveurs process

Ayant chacun un rôle bien précis

Un ensemble de processus serveur serveur process chargé de traité les requêtes


des utilisateurs

Chaque processus serveur a de la mémoire qui s’appelle PGA program global


area c’est une zone mémoire privé pour chaque processus serveur
Chaque processus serveur a une mémoire privé appelé PGA on peut avoir
plusieurs instances qui peut se lancé simultanément sur le même serveur oracle
dans ce cas chaque instance est désigné par son oracle Sid c’est id de l’instance

Chaque instance à sa propre mémoire partagé SGA et ces propres process


serveur

Lors de administration le DBA désigne instance dans lequel il souhaite travaillé


grâce à la variable d’environnement oracle_sid donc c’est important plusieurs
instance sont lancé sur le serveur

SID pour désigner instance

Donc un serveur oracle est composé d’une instance et d’une base de données

Une instance est composée d’une structure de mémoire partagé + processus


oracle

En rouge c’est le coté serveur et en jaune le coté utilisateur

Dans le coté serveur on a le serveur oracle dans le serveur oracle on trouve


instance et la base de donnée et l’instance est lié à la base de donnée

Instance est la zone de mémoire partagé + les process

Et la base de données les fichiers qui existe physiquement dans le system


exploitation

On a les serveurs process et on a les process utilisateurs


Les processus serveur pour gérer les requetes utilisateurs

Une instance ne peut ouvrir qu’une seul base de donné à la fois

Dans la grande majorité des cas une base de données est ouverte par une seule
instance

La mise en place rac real application cluster une base de donnée peut être
ouverte par plusieurs instance qui sont situé dans un nœud distinct on parle de
clustering

En dehors des processus serveur il existe des processus utilisateur correspond à


l’application utilisé par utilisateur

Chaque utilisateur utilise une application pour se connecté à la base de donnée


cette application ce sont des processus utilisateurs on aura le sqlplus, sql
developper ce sont des outils pour se connecté à une base de donnée

Ici dans les architectures client serveur les processus utilisateur et les processus
serveur établit une connexion on parle ici d’une session

Une connexion d’un utilisateur à une base de donnée s’appelle session

Les processus utilisateur sont situé sur le poste de utilisateur et communique


avec le serveur à travers le réseau grace à la couche réseau qui s’appel oracle
net

Donc un serveur oracle est composé dune instance et dune base de donnée
une instance est composé dune zone de mémoire partagé et processus oracle

On a des utilisateurs qui se connecte au serveur de base de donnée via oraclenet


via le listner qu’on va voir par la suite

On a une instance et une base donnée

Une instance contient processus et mémoire partagé

Base donnée ce sont les fichiers physique qui existe au niveau du system
d’exploitation

Voila la différence entre instance et base de données


On va entamer la structure de la mémoire oracle on parle de deux choses

SGA system global area et la PGA Program global area

SGA c’est la mémoire partagé par les processus d’instance

PGA c’est la mémoire dédie pour chaque processus serveur

 SGA est alloué au démarrage de l’instance oracle et elle est libérée lors
d’arrêt d’instance
 Elle est dimensionnée par un ensemble de paramètre défini dans le fichier
des paramètres
 La taille maximale de la mémoire SGA est limitée par le paramètre
SGA_MAX_SIZE

SGA comporte les structures suivantes :

Shared pool , java pool , streams pool, Database buffer cache , large pool , redo
log buffer

Database buffer cache qui est le cache des données

Redo log buffer c’est une mémoire tampon pour enregistrement des
modifications apportés à la base donnée

Shared pool zone mémoire de partage de requête et dictionnaire de donnée


oracle

Java pool est une mémoire utilisé par la machine virtuel java intégré

Large pool zone mémoire optionnel utilisé par les processus dans les
configurations particulières

Stream pool zone mémoire pour assurer la syntonisation entre les bases de
données
Comment gérer la mémoire :

Gestion automatique de la mémoire

Gestion manuel de la mémoire

Les méthodes de configuration

DBCA

SQLPLUS

ENTREPRISE MANAGER c’est une interface web

STRUCTURE DES PROCESSUS ARRIERE PLAN

Un processus d’arrière plan est un processus qui s’exécute dans les coulisses

Et sans intervention de l’utilisateur

Les processus démarrent avec le démarrage de l’instance et s’arrête avec l’arrêt


de l’instance
Unix chaque processus s’exécute individuellement

Windows oracle.exe

Chaque processus a un rôle bien défini

Chkpt CHECKPOINT

SYSTEM MONITOR SMON

PROCESS MONITOR PMON

DATABSE WRITER DBWn

Logwriter LGWR

Archiver Arcn
Processus DATABSE WRITER DBWn

 sont chargés décrire les blocs modifiés de database buufffer cache vers le
fichier de donnée

Il réalise des écritures multi bloc écriture est déclenché lors des événements
suivants :

 Processus serveur ne trouve pas de place dans le cache


 Soit pour faire avancer le point de reprise checkpoint
 Soit le fichier de donnée peut ne pas contenir des données modifiés de
transaction validé par exemple les transactions qui sont comités

Logwriter LGWR le processus d’arrière plan LGWR

Chargé décrire le redolog buffer qui contient les modifications sur la base de
données dans le fichier de journalisation

Il écrit le contenu de cette mémoire dans le fichier de journalisation

On a plusieurs fichier d journalisation le lgwr va écrire sur le fichier de


journalisation courant

Lgwr écrit séquentiellement dans le fichier d ejorunalsiatuon écriture déclenché


par les éléments suivants

Soit une transaction est validée par commit

Le redo log buffer il st plein le database writer saprete à écrire le sblos modifié
des trsactiuons qui sont non validés dans le fichier de donnée si le délai est
dépassé de 3 secondes

Ecriture dans le fichier de journalisation redolog buffer est la seule chose qui
produit lors de Validation de commit cette opération d’écriture est normalement
rapide notion de fast commit
Lorsque on fai un commit lwgr écrit redo log bugger zone mémoire dédiée aux
enregistrements des modifications apportés à la base de donnée il va écrire cette
zone mémoire dans le fichier de journalisation courant ou le fihcier de
journalisation actuel

Le checkpoint chkpt

Périodiquement tous le bloc modifiés de database buffer cache sont écrit dans
les fichiers de données cé le mécanisme de synchronisation ou checkpoint

Par ce biais le fichier de donnée et le fichier de contrôle sont rendu cohérent on


parle ici de SCN

Cela permet de garantir que les blocks modifiés en mémoire sont bien utilisé
dans le fichier de donnée

Ce mécanisme définit aussi un point de reprise dans le fichier de journalisation


cette position correspond à la modification de bloc

Le processus d’arrière plan checkpoint a simplement pour rôle

 d’enregistrer le point de reprise dans entête de fichier de donnée et de


fichier de contrôle

SMON system monitor process chargé de faire la récupération de l’instance


après arrêt anormal

 Récupéré l’instance au moment d’un arrêt anormal


 Chargé de libéré les segments temporaires unitilisé

Opérations :

 Rôle forward appliquer au fichier de donnée les modifications non


enregistré des transactions validée
 Role back enlevé les fichiers de donnée des modifications enregistrées des
trsaction non validée
PMON

 chargé de nettoyer le plantage d’un processus utilisateur annulation roll


back de la transaction
 libération des verrous et des ressources

Arcn archiver sont chargé de l’archivage de fichier de journalisation plein

Lorsqu’un fichier d journalisations devient plein il est archivé automatiquement


la le prices arcn

TABLESPACE SYSTEM contient dictionnaire de donnée

Tablespace undo pour annulation

Tablespace users pour les utilisateurs

Tablespace temp pour les éléments temporaires


Petit résumé :
lorsque l'utilisateur veut démarré une session il doit fournir nom
d’utilisateur , mot de passe, chaine de connexion celui sera comparé avec
le fichier tsname.ora après la connexion vers le serveur et démarré le
process user process sera dirigé vers écouteur le lister celui ci permettra de
démarré un processus sur le serveur appelé sudo process oracle la
connexion est établie entre le client et le serveur l’utilisateur fera une
commande dans ce cas on fera une commande SQL update user process va
évalué la séquence de la commande et également existence des objets,
privilège de objet ceci sera reconfirmé vers le user process la commande
sera dans 2 compartiments le sharedpool et le logbuffer on trouvera dans
sharepool le plan d'exécution le sudo process permettra exécuter le plan et
lire les blocs de la table afin de les stocker dans un comportement database
buffer cache nous allons appelé image avant nous trouvera aussi image
avant dans undo segment quand on fais une commande SQL nous allons
trouvé dans le databasebuffer cache image après tout cela sera confirmé par
le user process
après utilisateur met une commande commit et va écrire dans logbuffer
commit va déclenché le processus lgwr dans le fichier de journalisation
image va être écrasé dans le undo segment confirmation sera retourné par
le user process lorsque le log du fichier de journaliser est rempli il
déclenche le processus arcn celui ci va généré un fichier arcn file était la
copie du bloc courant un Switch log sera déclenché écrasant le contenu du
log précédente Switch déclencher un processus qui appellera checkpoint
celui ci va généré une valeur checkpoint number la valeur du block sera
écrit à intérieur des entêtes du fichier de contrôle et du fichier de donnée le
chekpoint déclenchera un autre processus dbwr celui ci va récupéré image
après de l'intérieur du database buffer cache afin de écrire à l’intérieur de la
table

Vous aimerez peut-être aussi