Vous êtes sur la page 1sur 44

Administration de

base de données
avancée

Saloua.elmotaki@usmba.ac.ma 1
Objectif

A la fin de cette partie, vous pourrez:


• Décrire l’architecture Oracle et ses principaux composants.
• Répertorier les structures utilisées dans la connexion d’un utilisateur à
une instance Oracle.

2
Les SGBDs

• MySQL : Open source


• Postgre : Open source
• SQL server : Créé par Microsoft
• DB2 : créé par IBM
• Sybase : Créé par Sybase
• Oracle : Créé par Oracle
•…
3
Microsoft & IBM

• On ne peut pas connaître ce qui se passe derrière l’application


Microsoft & IBM. On parle des applications fermée.
• Les produits de de Microsoft & IBM nécessitent un système
d’éxploitation convenable pour fonctionner.

4
Avantages d’Oracle

• On peut connaître ce qui se passe en arrire-plan, ainsi que comment la


requête est exécutée
• Il s’agit d’un produit:
• non fermé;
• Tunable;
• Portable;
• Illimié;
• …
5
Serveur Oracle

• Serveur Oracle : c’est un SGBD qui comporte plusieurs fichiers, processus et


structures mémoire, mais ces éléments ne sont pas tous utilisés dans le
traitement des instructions SQL.
• Un serveur Oracle se compose de:
• Instance Oracle: est une combinaison des processus d'arrière-plan et des structures
mémoire.
• Base de données : est constituée de fichiers du système d'exploitation, appelés fichiers de
base de données. Ces fichiers constituent l'espace de stockage physique des données de
la base. Ils permettent de maintenir la cohérence des données et peuvent être récupérés
en cas d'échec de l'instance.

6
Serveur Oracle

• Serveur Oracle : c’est un SGBD qui comporte plusieurs fichiers, processus et


structures mémoire, mais ces éléments ne sont pas tous utilisés dans le
traitement des instructions SQL.
• Un serveur Oracle se compose de:
• Autres fichiers importants : Les fichiers qui ne sont pas des fichiers de base de données qui
s’interviennent dans différents cas d’exécution.
• Processus utilisateur et serveur : Les processus utilisateur et serveur sont les principaux
processus intervenant dans l'exécution d'une instruction SQL.
• Autres processus : Les options telles que Advanced Queuing, Real Application Clusters,
Shared Server, Advanced Replication, etc. utilisent d'autres processus.

7
Vue générale

Fichier Mémoire
Oracle
Processus Programme

8
Physique & Logique

Physique
Physique
• Physique : des unités réel qui existent dans
le disque (ex: fichiers)
Physique

• Logique : c’est une manière d’organisation


des unités physiques (ex : dossiers)

Logique
9
Architecture Client-Serveur

Interface

• Permet l’utilisateur
de créer et gérer les
données stockées
dans le serveur

Serveur
Clients
10
Architecture Client-Serveur

Oracle server
Package
Base de données Connexion
Oracle client

Mémoire
Disque
RAM

11
La notion du package

Oracle server Package


• Adresse IP
Base de données


Port (1521 par défaut)
Connexion
Le nom de la base de données (SID) Oracle client
• User name/ password
Mémoire • Requête
Disque
RAM

12
Les moyens de transport

• Pour se connecter à une base de données, on a besoin d’un moyen de


transmission.
• Les moyens de transport (dans ce contexte) sont des processus qui
assurent la transmission des paquets entre les composants.
• Exemple de moyens de transport:
• Processus client : créer par oracle
• ODBC : installé par défaut sur Windows
• :JDBC driver de Java
13
Processus client

• Pour envoyer une requête, Oracle client déclenche le processus


client.
• C’est un moyen de transport qui se charge de chercher la
machine où le serveur Oracle est installé en se basant sur les
informations contenues dans le paquet.
• Une fois qu’il trouve le port du serveur Oracle, il s’arrête.

14
Listener

• Le Listener prend le paquet depuis le processus client.


• Les tâches du Listener:
• Écouter
• Ouvrir le port
• Vérifier l’existence de la base de données (SID)
• Après avoir trouver la base de données, le Listener renvoie un
accord au processus client pour créer un tunnel.
15
Vues détaillées

Instance Oracle
Processus1 Programme1
Mémoire
Processus2 Programme2
SGA
PGA
ProcessusN ProgrammeP
Composant1 Composant2 ComposantM

16
SGA (System Global Area)

• SGA est la partie mémoire où toutes les opérations de la base de


données se produisent.
GA
• Le SGA est partagé entre tous les processus de l’instance.
• Si plusieurs utilisateurs se connectent en même temps, ils partagent
tous le SGA.
• Cette zone est allouée avec le démarrage de l’instance, et elle est
libérée avec son arrêt.
• SGA inclut 6 zones principales.

17
PGA (Program Global Area)

Lorsque qu’un process serveur est créé, la base de données Oracle


alloue une zone globale de programme (PGA Program Global Area ou
bien Process Global Area) dans la mémoire. C’est un buffer mémoire
qui contient les données et les informations de contrôle pour ce
process serveur.

18
Disque

• C’est la partie dans laquelle Oracle stocke les données d’une manière
permanente.
• Exemples
• Fichiers d’installation
• Fichier de stockage
• Fichier de paramétrage
• ….

19
Processus en arrière-plan

• Ce sont des processus qui font des tâches nécessaires à l’exécution


des requêtes.
• Ils permettent d’assurer le fonctionnement interne du SGBD Oracle
(gestion de mémoire, création des fichiers, écriture…
• Exemple : PMON, LGWR, MGWR…

20
Programme

• SQL*Plus : permet de se connecter à une base de données


• OUI : Oracle Universal Installer
• DBCA : Database Creation Assistant
• ….

21
Dictionnaire de données : Meta-data

• Le dictionnaire de données est un ensemble de tables et de vues où


est stockée l’information sur la structure logique et physique de la
BDD:
• Les utilisateurs des bases de données
• Noms et caractéristiques des objets stockés dans la base de donnée
• Contraintes d’intégrités
• Ressources physiques allouées à la base
• …
22
Dictionnaire de données : Meta-data

• Le dictionnaire de données est créé à la création de la base de


données, mis à jour au fur et à mesure de la création d’objets.
• Les utilisateurs des bases de données, les développeurs
d'applications, les administrateurs de bases de données et le serveur
Oracle utilisent le dictionnaire de données comme une source
centrale d’information associée à une base de données.

23
SGA : Shared pool

SGA

……
Shared pool

24
SGA : Shared pool

• C’est la partie SGA qui est utilisée par tous les utilisateurs de la base
de données Oracle.
• Utilisée pour partager les informations sur les objets de la base de
données, ainsi que les privilèges et les droits des utilisateurs.
• Elle contient les requêtes les plus récemment exécutées, et les
informations du dictionnaire de données les plus récemment
employées.
25
SGA : Shared pool

SGA
Library cache

Dictionary cache ……

Shared pool
26
Processus serveur & Optimizer

• Processus serveur
• C’est un autre moyen de transport d’Oracle.
• Il permet, entre autre, de transférer le paquet depuis le Listener vers l’Optimizer.
• Optimizer
• Il gère toutes les opérations dans la mémoire à l’aide des processus en arrière
plan.
• Les tâches de l’Optimizer:
• Vérifier la syntaxe
• Créer les plans de l’exécution
• Sélectionner le plan le plus court
• Exécute la requête 27
Vérification de la syntaxe

• L’optimizer vérifie la syntaxe dans la zone Library cache


• Il utilse les données de dictionnaire (Dictionary cache ) Meta-data
comme base de vérification.
• Dictionary cache:
• C’est le composant de SGA qui stocke les Meta-data.
• Utilsé pour la vérification de la syntaxe et la création des plans d’exécution.
• Il stocke toutes les informations nécessaire à l’analyse sémantique de la
requête (table, colonne, droits d’accès…

28
Library cache

• 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.
• Library cache est composé de deux structures :
• Zone SQL partagée : La zone SQL partagée stocke et partage le plan
d'exécution et l'arborescence de l'analyse des instructions SQL exécutées
dans la base de données.
• Zone PL/SQL partagée : La zone PL/SQL partagée stocke et partage les
dernières instructions PL/SQL exécutées.
29
SGA : Buffer cache

SGA
Library cache
Buffer cache
Dictionary cache ……

Shared pool
30
Buffer cache

• Buffer cache (ou data base bufffer cache) est une zone mémoire qui
sert à stocker les blocks de données interrogées récemment.
• Est utilisée pour stocker des blocs de données en mémoire afin
d'accélérer l'interrogation et/ou la modification.
• Aucune modification est faite directement sur les données du disque.
• Oracle lit les données suite à la demande d'un processus utilisateur et ensuite
valide les modifications sur le disque
• Il utilise un algorithme nommé LRU mois récemment utilisés (Least-
RecentlyUsed) pour déterminer les données à libérer du cache
31
Buffer cache

• Le buffer cache est organisé en 2 listes :


• La dirtylist
• La listeLRU (Least Recently Used)
• La dirtylist contient les buffers qui ont été modifiés mais ne sont pas
encore écrits sur le disque
• La liste LRU contient les buffers libres (qui n'ont pas été modifiés), les
« pinned» buffers (qui sont en cours de modification, les dirtybuffers
qui n'ont pas encore été déplacés dans la dirtylist

32
Plan d’exécution

• C’est une manière à suivre pour exécuter une requête.


• L’optimizer crée plusieurs plans d’exécution.
• Pour créer le plan d’exécution, l’Optimizer se base sur les meta-datas
sauvegardées dans Dictionary cache.
• Exemple de plan d’exécution:
• Balayage complet.
• Pointer directement sur les lignes concernées par un index.
• ….

33
Plan d’exécution

• En plus de création des plans d’exécution, l’Optimizer identifie le coût


de chaque plan en menant des simulations d’exécution.
• L’Optimizer, ainsi, sélectionne le plan d’exécution le plus rapide.
• Avant l’exécution, l’Optimizer crée un log dans Buffer Redo Log.
• L’Optimizer exécute la requête (Buffer cache).

34
SGA : Buffer Redo Log

SGA

Library cache
Buffer cache
Dictionary cache ……

Buffer Redo Log


Shared pool
35
SGA : Buffer Redo Log

• C’est un buffer circulaire qui stocke les modifications réalisées sur la


base de données avec les opérations: insert, delete, update, create,
alter et drop.
• Permet à oracle de reconstruire les modifications des données en cas
de panne.
• L'information Redo reste dans le buffer Redo log jusqu'à ce qu‘oracle
la stocke sur le disque.
• Elle se compose d’entrées qui contiennent les blocs changés, la
position du changement et la nouvelle valeur.
36
Processus

• Les processus permettent l’interraction entre les différents


composants du serveur, ainsi qu’avec les utilisateurs.
• Il existe trois types de processus:
• Processus client ou utilisateur.
• Processus serveur.
• Processus d’arrière-plan.

37
Processus client & processus serveur

• Le processus client s’exécute au niveau d’Oracle client.


• Le processus serveur s’exécute au niveau d’Oracle serveur.
• Les deux processus sont des moyens de transport.

38
Processus d’arrière-plan

• Ils assurent le bon fonctionnement du serveur.


• Ils maximisent la performance du serveur.
• Ils démarrent à la demande ou bien au démarrage de l’instance.
• Certains peuvent être exécutés en n exemplaires.

39
PMON : Process Monitoring

• PMON (ProcessMonitor)
• Ce processus gère les ressources utilisateurs
• Il est chargé de nettoyer les composants de l’instance Oracle (ex :
zone mémoire SGA).
• Exemple:
• Nettoyer les composants de SGA si nécessaire (Buffer cache, Buffer Redo Log,
Meta-data…).
• Supprimer les plans d’exécution non sélectionnés.

40
PMON : LRU

• LRU : Least Recently Used


• C’est un algorithme utilisé pour identifier le(s) dernier(s) élément(s)
non utilisé(s) dans les composants mémoire, si la mémoire est
saturée.
• Applicable sur tous les composants de SGA.
• PMON supprime les éléments identifiés par LRU comme moins utilisés
récemment.

41
PMON : Process Monitoring

• PMON (Process Monitor)


• Ce processus gère les ressources utilisateurs
• Si un incident survient (arrêt brutal du poste client)
• PMON annule les transactions en cours
• Il supprime les verrous posés sur les tables et les lignes
• Et libère les ressources utilisées

42
Connexion à un serveur Oracle

• Une connexion est un chemin de communication entre un processus


utilisateur et un processus serveur.
• Il existe trois types de connexions grâce auxquelles un utilisateur peut accéder
à un Serveur Oracle :
• Connexion locale : Selon cette méthode, un utilisateur est directement connecté sur la
machine faisant office de Serveur Oracle.
• Connexion Deux Tiers : Ce type de connexion est couramment nommé "Connexion
Client Serveur", un utilisateur se connecte à partir d'une machine directement
connectée à un Serveur Oracle.
• Connexion Multi Tiers : Dans une architecture multi tiers, la machine de l'utilisateur se
connecte à un Serveur applicatif (Par exemple un Serveur Web) qui lui même va se
connecter au serveur Oracle pour récupérer les données issues de la base de données. 43
Session Oracle

• Une session est une connexion spécifique d’un utilisateur à un serveur


oracle.
• La session démarre lorsque l’utilisateur est authentifié par le serveur
oracle et se termine lorsque l’utilisateur se déconnecte ou en cas de
déconnexion anormale.

44

Vous aimerez peut-être aussi