Vous êtes sur la page 1sur 45

Chapitre 1

Architecture du serveur Oracle


Objectifs du cours

• Connaître les composants du serveur Oracle :


• Mémoires : pga et sga
• Processus : Server Process,User Process et les processus en
background
• Fichiers
• Manipuler les différentes vues du dictionnaire de
données.
• Connaître les différents modes de démarrage et d’arrêt
de la base

Architecture de serveur Oracle 2


Composants du serveur oracle
• Un serveur Oracle est un système de gestion de base
de données qui fournit une approche intégrée, complète
et ouverte de la gestion des informations
• Un serveur Oracle est composé d'une instance Oracle
et d'une base de données Oracle.
• Une base de données Oracle n’est accessible que via une
instance.

• Une instance du serveur Oracle est composée d’une


structure de mémoire partagée SGA (Système Global
Area) et de plusieurs processus Oracle en arrière-plan
ayant chacun un rôle bien déterminé.

Architecture de serveur Oracle 3


Structure du serveur oracle
Structures mémoire Instance
Mémoire SGA
Structures (System Global Area)
de processus
Processus en arrière-plan

Structures de stockage Fichiers de base de données

Architecture de serveur Oracle 4

Référence: cours officiel d’oracle


Structures mémoire Oracle

Processus Processus
Mémoire Mémoire Processus en Mémoire
serveur serveur
PGA PGA arrière-plan PGA
1 2

Mémoire SGA

Zone de mémoire Zone de mémoire Zone de mémoire


partagée Streams LARGE POOL

Cache de tampons Tampon de


Zone de mémoire
de la base journalisation
Java
de données

Référence: cours officiel d’oracle


Mémoires
• Mémoire SGA (System Global Area): partagée par
tous les processus serveur et les processus arrière-
plan.

• MémoirePGA(ProgramGlobalArea): propre à
chaque processus serveur et processus en arrière-
plan.

Architecture de serveur Oracle 6


Structure mémoire SGA

• Cache de tampons (Buffer Cache) : mets en mémoire


cache les blocs de données extraits de la base.
• Tampondejournalisation(RedoLogbuffer) : mets en
mémoire cache les informations de journalisation.
• Zonedemémoirepartagée(Sharedpool) cette zone sert à
mémoriser, analyser et traiter les requêtes SQL

provenant des divers utilisateurs.


• Zone de mémoire (large Pool) : zone de mémoire
facultative qui fournit des espaces importants
d’allocation de mémoire à des processus volumineux
(sauvegarde, récupération..)
Architecture de serveur Oracle 7
Structure processus oracle
• Processus utilisateur :un utilitaire ou
programme qui permet de se connecter à une
instance de BD avec un profil utilisateur.
• Processus serveur :crée suite à une connexion
d’un processus utilisateur à l’instance d’une BD. Ce
processus ,logé dans un tampon mémoire appelé
PGA (Process Global Area) communique avec
l'instance Oracle et exécute des instructions pour le
compte du processus utilisateur.
• Processus en arrière-plan: démarrés en même temps
qu’une instance Oracle.

Architecture de serveur Oracle 8


Structure de Processus Oracle
Mémoire SGA

Zone de mémoire Zone de mémoire Zone de mémoire


partagée Streams LARGE POOL

Cache de
Zone de mémoire Tampon de
tampons de la
Java journalisation
base de données

Processus
Processus Processus Processus Fichiers de
Log Writer journalisation
SMON PMON DBWn
(LGWR) archivés

Point de Fichiers de Processus


reprise contrôle d'archivage
(CKPT) Fichiers de Fichiers de ARCn
données journalisation

Référence: cours officiel d’oracle


Processus en arrière-plan

• Processus DatabaseWriter (DBWn): écrit les blocs modifiés du


cache de tampons de la base de données vers les fichiers de
données présents sur le disque.
• Point de reprise (CKPT): met à jour l’ensemble des fichiers de
données et de contrôle de la base de données afin d’indiquer le
point de reprise le plus récent.
• Processus LGWR (LogWriter): écrit des entrées de
journalisation sur le disque.

Architecture de serveur Oracle 10


Processus en arrière-plan

• Processus d’archivage (ARCn): copie les fichiers de


journalisation dans l’emplacement de stockage d’archive
• ProcessusSMON (System Monitor): effectue la récupération
après une panne lorsque l’instance est démarrée suite à une
défaillance.
• Processus PMON (Process Monitor): procède au nettoyage des
processus utilisateur en cas d’échec.

Architecture de serveur Oracle 11


Processus serveur et cache de
tampons de base de données

• Mémoires tampon
Processus Mémoire SGA (buffers) :
serveur Cache de tampons • Tampon faisant l'objet
de la base d'opérations pin
de données (Pinned)
• Propre (Clean)
• Disponible/inutilisé
(Free/unused)
• "Dirty"
DBWn

Fichiers de données
Architecture de serveur Oracle 12
Structure physique de la Base de
Données
• Fichiers decontrôle: contient l’emplacement des fichiers de
données, de journalisation et de backup.
• Fichiers de données : Contiennent des données utilisateurs de la
base
• Fichiers de journalisation: Utilisés pour la récupération d’une
instance de la base de données.
• Fichiers desauvegarde: Utilisés pour la récupération de la base
de données lorsque le fichier d’origine est endommagé ou
supprimé

13

Architecture de serveur Oracle


Structure physique de la Base de
Données
• Fichier de paramètres : utilisé pour définir la façon dont l'instance
est configurée au démarrage.
• Fichier de mots de passe : permet aux utilisateurs de se connecter
à distance à la base de données et d'effectuer des tâches
d'administration.
• Fichiers de journalisation archivés :
• contiennent un historique des modifications des données
(informations de journalisation) générées par l'instance.
• A l'aide de ces fichiers et d'une sauvegarde de la base de
données, on peut récupérer un fichier de données perdu.

14

Architecture de serveur Oracle


Structure physique de la Base de
Données
• Fichiers trace : 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.

15

Architecture de serveur Oracle


Structure physique de la Base de
Données
• Fichiers d'alertes :

• Il s'agit de fichiers trace spéciaux, dans lesquels sont


consignées les alertes.
• c’ est un journal chronologique des messages et des erreurs.

16

Architecture de serveur Oracle


Structure logique de la Base de
Données
• Tablespaces et fichiers de données:
• Une base de données est divisée en unités de stockage logiques
appelés tablespaces.
• Chaque base de données est divisée de manière logique en un ou
plusieurs tablespaces.
• Les tablespaces sont constitués d'un ou de plusieurs fichiers de
données.
• Les fichiers de données appartiennent à un seul tablespace.
• Les tablespaces SYSTEM et SYSAUX sont obligatoires.
Ils sont créés en même temps que la base de données et
doivent être en ligne.

Architecture de serveur Oracle 17


Structure logique de la Base de
Données
Tablespace

Segment Extents Blocs de Blocs du


données disque

Architecture de serveur Oracle 18


Dictionnaire de données

Architecture de serveur Oracle 15


Dictionnaire de données

Tables contenant Serveur Oracle Vues du dictionnaire


des données métier : de données :
EMPLOYEES DICTIONARY
DEPARTMENTS USER_OBJECTS
LOCATIONS USER_TABLES
JOB_HISTORY USER_TAB_COLUMNS
... ...

Architecture de serveur Oracle 20


Dictionnaire de données
• Ensemble de tables et vues systèmes relatifs à
l’utilisateur SYS.
• Contient :
• La structure logique et physique de la base.
• Les utilisateurs de la BD (ainsi que leurs privilèges et
rôles)
• Les informations relatives aux contraintes
d’intégrités
• Les espaces alloués pour chaque objet crée
• Crée en même temps que la base de données et mis à
jour régulièrement.

Architecture de serveur Oracle 21


Dictionnaire de données

• Convention d’appellation des vues


Préfixe de la vue Usage

USER Vue de l’utilisateur (ce que contient votre


schéma, dont vous êtes propriétaire)
ALL Vue étendue de l’utilisateur (ce à quoi vous
pouvez accéder)
DBA Vue de l’administrateur de base de données
(ce que contient le schéma de chaque
utilisateur)
V$ Données relatives aux performances

Architecture de serveur Oracle 22


Quelques vues et tables du
dictionnaire de données

• USER_TABLES : tables et vues créées par l'utilisateur.


• USER_CATALOG (ou CAT) : tables et vues sur lesquelles l'utilisateur a des
droits à l'exception des tables et vues du dictionnaire de données.
• USER_TAB_COLUMNS (ou COLS) : colonne de chaque table ou vue créée
par l'utilisateur courant.
• USER_CONSTRAINTS : définition des contraintes pour les tables des
utilisateurs.
• USER_CONS_COLUMNS : colonnes qui interviennent dans les définitions
des contraintes.
• USER_OBJECTS : contient des informations sur les objets créés par
l'utilisateur.
• DICT ou DICTIONNARY contient le nom des tables du dictionnaire ainsi
qu'un commentaire.
Vues dynamiques de performance

• Enregistrent l’activité en cours de la base de données


• Constamment mises à jour lorsque la base de données est
active
• Les informations sont lues à partir de la mémoire et du
fichier de contrôle
• Commencent par le prefixe v$
• Accessible par un dba
Vues dynamiques : exemples

• V$session : affiche les sessions en cours :


select sid,serial#,user#,username from v$session;
5 1 0
6 1 0
7 164 5 SYSTEM
• V$logfile : affiche la liste des fichiers journaux :
select GROUP#,TYPE,MEMBER from v$logfile;
3 ONLINE C:\ORACLE\ORADATA\DBLABO\REDO03.LOG
2 ONLINE C:\ORACLE\ORADATA\DBLABO\REDO02.LOG
1 ONLINE C:\ORACLE\ORADATA\DBLABO\REDO01.LOG
4 ONLINE C:\ORACLE\ORADATA\DBLABO\REDOO41.ORA
4 ONLINE C:\ORACLE\ORADATA\DBLABO\REDOO42.ORA
Vues dynamiques : exemples

• V$controlfile : Affiche tous les noms des fichiers de contrôles


et leurs statut qui peut être NULL ou INVALID
• SELECT * FROM V$CONTROLFILE;
• show parameter control_files
• SELECT VALUE FROM V$PARAMETER WHERE NAME =
'control_files';
Fichiers de paramètres
d’initialisation

• Pour démarrer une instance ,le serveur Oracle doit lire le


fichier de paramètres d’initialisation. Ce dernier peut être
de 2 types :
• Fichier de paramètres statique PFILE : (nommé initSID.ORA)
• Fichier de paramètres persistant SPFILE : (nommé spfileSID.ora)

27
Init<SID>.ORA

• Fichier texte
• Il peut être modifié manuellement à l’aide d’un éditeur du
système d’exploitation
• Les modifications sont effectives au démarrage suivant
• Il ne peut être ouvert que lors du démarrage de l’instance.
s’il est modifié en cours l’instance doit être interrompue et
redémarré pour que les nouvelles valeurs des paramètres
soit effectives.
• Indispensable dans les postes clients

28
spfile<SID>.ORA

• Fichier binaire préféré


• Accessible par le serveur de BD
• Ne doit pas être modifié manuellement
• Moyen dynamique de gérer les modifications des
paramètres apportées par le serveur.

29
Contenu des fichiers de paramètres
d’initialisation

• Nom de la base de données à laquelle l’instance est


associé
• Affectation destinée aux structures mémoire de la SGA
(System Global Area)
• Utilisation des fichiers de journalisation
• Noms et emplacement des fichiers de contrôle

30
Création d’un fichier spfile à partir
d’un fichier de paramètre standard
• On peut créer un fichier de parametre au format text « pfile » à partir
d’un fichier de parametre au format binaire « spfile » avec la syntaxe
suivante :
create pfile [=‘nom_pfile’]
From
Spfile [=‘nom_spfile’]
• On peut aussi créer un fichier de parametre spfile à partir d’un fichier de
paramètre text pfile
create spfile [=‘nom_spfile’]
From
pfile [=‘nom_pfile’];

31
Visualisation des paramètres

• Visualisation des valeurs des paramètres : SHOW PARAMETERS


SHOW PARAMETERS resource_limit
• Utilisation de la vue V$PARAMETERS
select name,value,isdefault from v$parameter where name like
‘resource_limit’

32
Modification des paramètres du fichier
d’initialisation

ALTER SYSTEM SET <nom_paramètre> = <valeur_paramètre>


[SCOPE = MEMORY | SPFILE | BOTH]
ALTER SYSTEM : permet d’apporter des modification aux valeurs des
paramètres et d’indiquer si ces modifications sont temporaires ou
persistantes
nom_parametre : correspond au nom du paramètre à modifier
Valeur_paramètre : correspond à la valeur à affecter au paramètre
SCOPE : indique si la modification est à apporter dans la mémoire ,dans le
fichier SPFILE ou dans les deux
MEMORY :modifie la valeur du paramètre uniquement dans l’instance en cours
SPFILE : modifie la valeur du paramètre uniquement dans le fichier SPFILE
BOTH : modifie la valeur du paramètre dans la mémoire et dans le fichier
SPFILE
33
Paramètres de démarrage de l’instance
Oracle

Paramètres de base Paramètres avancés

CONTROL_FILES DB_CACHE_SIZE
DB_BLOCK_SIZE DB_FILE_MULTIBLOCK
PROCESSES _READ_COUNT
UNDO_MANAGEMENT SHARED_POOL_SIZE
… …

32
Exemples

• Afficher le contenu des paramètres suivants : RESOURCE_LIMIT,


DB_CACHE_SIZE
• Modifier la valeur du paramètre RESOURCE_LIMIT à FALSE en
mémoire et dans le fichier spfile
• Modifier la valeur du paramètre DB_CACHE_SIZE = 50000000

35
Arrêt et démarrage d’une BD

Architecture de serveur Oracle 31


Démarrage de l’instance Oracle

• STARTUP permet de démarrer l’instance ORACLE avec le fichier


SPFILE nommé spfileSID.ora.
• Si aucun fichier spfileSID.ora n’est détecté ,le fichier SPFILE par
défaut est utilisé pour démarrer l’instance.

• Si aucun fichier SPFILE par défaut n’est détecté, le fichier


initSID.ORA est utilisé pour démarrer l’instance.

32
Démarrage d’une base de données
• Possibilité de choix de l’état de démarrage selon différents niveaux
• Démarrage en mode NOMOUNT
• Démarrage en mode MOUNT
• Démarrage en mode OPEN
• Possibilité de démarrer en mode RESTREINT : cas de la mise à jour
des structures ou de l’import/export d’une base de données, pour
limiter l’accès uniquement aux utilisateurs disposant du privilège
RESTRICTED SESSION: STARTUP RESTRICT
• On peut placer une instance de BD en mode restreint avec la
commande ALTER SYSTEM : ALTER SYSTEM ENABLE RESTRICTED
SESSION.

33
Démarrage d’une base de données

• Shutdown Open : Startup


• Shutdown Nomount : startup nomount
• Shutdown Mount : startup mount
• Nomount Open : alter database mount
alter database open

Architecture de serveur Oracle 39


Démarrage

Open

• Vérifier que tous les fichiers de données et de


Startup Open
Open journalisation en ligne peuvent être ouvert
Startup
• Contrôler la cohérence de la BD et donne
Mount accès aux utilisateurs pour manipuler la BD.

• Démarrer une instance et monter une base de données


sans l’ouvrir.
Startup Mount • Lecture des fichiers de contrôle pour extraire le nom et le
statut des fichiers de données et des fichiers de
Nomount journalisation.

• La lecture des fichiers d’initialisation à partir du répertoire


Startup Nomount spfile.ora ou initSID.ora
• L’affectation de la mémoire SGA
Shutdown • Le démarrage des processus d’arrière-plan (SMON)
• L’ouverture des fichiers d’alerte et des fichiers trace
40

Architecture de serveur Oracle


Arrêt de la base de données

• Pour arrêter une base il faut se connecter en tant que SYSOPER


OU SYSDBA
• Syntaxe :
SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE |
ABORT]

41
Arrêt de la base de données
Mode d'arrêt A I T N
Autorise les nouvelles connexions Non Non Non Non
Attend la fin des sessions en cours Non Non Non Oui
Attend la fin des transactions en cours Non Non Oui Oui
Force un point de reprise (checkpoint) Non Oui Oui Oui
et ferme les fichiers

Mode d'arrêt :
• A = ABORT
• I = IMMEDIATE
• T = TRANSACTIONAL 42

Architecture de serveur Oracle • N = NORMAL


• NORMAL :
• Aucune nouvelle connexion ne peut être établie
• Le serveur Oracle attend la déconnexion préalable de tous les
utilisateurs
• Les tampons de journalisation et de la base de données sont écrits
sur disque
• La récupération de l’instance n’est pas nécessaire au redémarrage
• TRANSACTIONNEL :
• Aucun client ne peut lancer une nouvelle transaction pour l’instance
indiquée
• Le client est déconnecté lorsqu’il termine la transaction en cours
• La fin de toutes les transaction entraîne l’arret immédiat de la base de
données
• La récupération de l’instance n’est pas nécessaires lors du redémarrage

43
• IMMEDIATE :
• Les instructions SQL en cours de traitement ne sont pas terminées

• Le serveur Oracle n’attend pas la déconnexion des utilisateurs de la BD

• Oracle annule les transactions actives et déconnecte tous les utilisateurs

• Orale ferme et démonte la BD avant d’arrêter l’instance

• La récupération de l’instance n’est pas nécessaire au redémarrage

• ABORT :
• Utile si l’arrêt en mode Normal et Immediate échoue.
• Les tampons de journalisation et de la base de données ne sont pas écrits sur
disque
• Les transactions non validés ne sont pas annulées
• L’instance est interrompue sans fermeture des fichiers
• La base de données n’est pas fermée ni démontée
• Une récupération est nécessaire au redémarrage , elle s’effectue
44
automatiquement.
Arrêt des sessions utilisateurs BD

ALTER SYSTEM KILL SESSION ‘integer 1,integer 2’


(valeur de la colonne SID et de la colonne SERIAL# de la vue
V$SESSION du Dictionnaire DD)
• Conséquence :
• le processus PMON effectue les tâches suivantes :
• Annulation de la transaction en cours
• Libération de tous les verrous de table ou de ligne
• Libération de toutes les ressources réservées par
l’utilisateur

45

Vous aimerez peut-être aussi