Vous êtes sur la page 1sur 39

Génie Informatique - S3

ENSA Hoceima

Administration des Bases de Données


Avancées
Chapitre 5

Pr. ZANNOU ABDERRAHIM

2021/2022
1
Administration d’une base de données Oracle

2
Rôles d’un administrateur de BD

L'administrateur de base de données (appelé DBA) est responsable du


contrôle et de la configuration du système et la gestion des
utilisateurs. Les rôles de DBA sont:
 Installation et mise à jour du logiciel.
 Création des bases de données oracle.
 Gestion d’arrêt et de démarrage.
 Gestion des structures de stockage et des opérations de récupération.
 Création et surveillance des utilisateurs.
 Contact avec le service support d’Oracle.
 Etc.

3
Connexion

 La connexion au niveau d’oracle est la liaison entre l’oracle client et


oracle serveur.
Oracle serveur
Oracle client

DB1 DB.. DBn

• Adresse IP ou nom de machine


• Port (par défaut 1521)

4
Listener
 Le Listener reçoit la requête du processus client
 Les taches de Listener
 Il écoute.
 Il ouvre le port.
 Vérifier l’existence de la base de (SID).
Oracle serveur

Oracle client

Listener

• Adresse IP ou nom de machine


• Port (par défaut 1521)
• Le nom de Base des données (SID)

5
Connexion à un serveur Oracle
o Il existe trois types de connexions grâce auxquelles un utilisateur peut
accéder à un Serveur Oracle :

 Connexion à 1-tier

Oracle client et oracle serveur

6
Connexion à un Serveur Oracle
 Connexion à 2-tiers

Oracle client

Oracle client
Oracle serveur

Oracle client

7
Connexion à un Serveur Oracle
 Connexion à n-tiers

Client oracle
Serveur Serveur
d’application d’application
1 n

Client oracle

Serveur
Client oracle oracle

8
Session

 Lorsque l’utilisateur s’identifie, oracle serveur crée une session.

Oracle serveur
Oracle client

Listener
DB1 DB.. DBn

• Adresse IP ou nom de machine


• Port (par défaut 1521)
• Le nom de Base des données (SID)
• Nom d'utilisateur et mot de passe

9
Session ID et requête

 Chaque session est définie par session ID.


 La requête est amené vers oracle serveur avec session ID.
Oracle serveur
Oracle client

Listener
DB1 DB.. DBn

• Session ID
• Requête

10
Architecture d’oracle (Composantes Principales )
Serveur oracle

Instance
Mémoire SGA
Shared Pool Buffer Large
Library Cache Pool
Cache
Client oracle
Processus Processus Dictionary Redo Log Java
client serveur
Cache Cache Pool

Mémoire Des processus d‘arrière plan


PGA PMON SMON DBWR LGWR Autres

Base de données

Fichiers de Fichiers de Fichiers de


données journalisation contrôle

11
Architecture d’oracle

o Un serveur Oracle est constitué d'une base de données Oracle et d'une


instance Oracle.

12
Architecture d’oracle: Les processus

 Il existe trois types de processus:


• Le processus client ( processus utilisateur) : Il gère l’interaction au
niveau client.
• Le processus serveur: Il gère l’interaction au niveau oracle serveur.
• Les processus d‘arrière plan: Ils assurent le bon fonctionnement du
serveur oracle.
 Les processus peuvent être exécutés en n exemplaires.

13
Architecture d’oracle: Modes d’architectures

o Oracle propose deux modes d’architectures.


o Ces architectures défendissent la façon de comment
serveur oracle avec les clients.
o Un serveur oracle est :
 Soit en mode dédié.
 Soit en mode partagé.
o Le mode par défaut est mode dédié.

14
Architecture d’oracle : serveur oracle en mode dédié
o Le mode dédié est une relation un à un (one to one), un seul
processus serveur pour un seul processus client.
o Il est recommandé pour les nombres des connexions limités ou selon
la puissance de machine.

Client oracle Serveur oracle


Processus Processus
client serveur

…. ….

Processus Processus
client serveur

15
Architecture d’oracle : serveur oracle en mode partagé
o Le mode partagé est une relation un à plusieurs (one to many), un
seul processus serveur pour plusieurs processus clients.
o Il est recommandé pour le nombre des connexions nombreux ou
selon la puissance de machine.

Client oracle Serveur oracle


Processus Processus
client serveur

…. ….

Processus
client

Processus
client

16
Architecture d’oracle
o Base de donnée
 C’est un ensemble de fichiers (sur le disque) contenant les données,
les informations sur les données, le journal de modifications, etc.
o Une instance Oracle
 c’est un l’ensemble des processus d’arrière-plan et de zones
mémoires (SGA) qui sont alloués au démarrage de la basse de
données, pour permettre l’exploitation des données.
 Permet d'accéder à une base de données Oracle,
 N'ouvre qu'une seule base de données,

17
Structure physique de base de données
Les fichiers de données (data files)
 Stockent les données (les tables, les procédures /fonctions stockées,
les vues, index, etc).
 Un fichier de donnée est associé à une seule base de données.
 L'extension est .dbf

18
Structure physique de base de données
Les fichiers de reprise/les fichiers de journalisation (redo log files)
 Contiennent la trace des dernières modifications de données.
 Permettent en cas de panne (matérielle ou logicielle) de remettre la
BD dans un état cohérent.

19
Structure physique de base de données
Les fichiers de contrôle (control files)
 Contiennent les informations relatives à la structure physique de la
BD (nom de la base, noms et localisations des fichiers de données et
de reprise, etc.).
 Chaque fichier de contrôle est associée à une seule base de données
Oracle.
 Le fichier de contrôle est un petit fichier binaire nécessaire à une
base de données Oracle pour démarrer et fonctionner avec succès.

20
Les zones de mémoire : PGA

 Le PGA (Processus Global Area) est la mémoire contient des données et


des informations de contrôle pour un processus serveur ou pour un
processus en arrière plan.
 Exemples des données et des informations de contrôle : variables, session
ID, etc.
 Le PGA est non partagé, chaque processus serveur et processus en
arrière-plan dispose de sa propre mémoire PGA.
 La mémoire PGA est allouée lors du démarrage du processus et libérée
lors de l'arrêt du processus.

21
Les zones de mémoire : SGA

 Le SGA (System Global Area) est la mémoire où toutes les opérations de


la base de données ont se produire.
 Exemples des opérations : Vérifier le syntaxe, exécuter une requête, etc.
 Le SGA est partagé par tous les processus serveur et les processus en
arrière plan.
 La mémoire SGA est allouée lors du démarrage de la base des données et
libérée lors de l'arrêt de la base des données.

22
Les composantes de SGA
1. Shared Pool (Zone de mémoire partagée )
o Elle permet de stocker :
 les dernières instructions SQL et PL/SQL exécutées,
 Les dernières définitions de données utilisées.
 Les droits et privilèges accordés aux utilisateurs.
o Elle est constituée de deux structures mémoire
 Library Cache
 Dictionary Cache

23
Les composantes de SGA
1.1 Library Cache
o Le Library Cache conserve des informations sur les dernières instructions
SQL et PL/SQL utilisées.
o Il est géré par un algorithme LRU (Least Recently Used)
o Le Library Cache contient pour chaque requête récemment exécutées trois
informations:
 Son texte.
 Sa compilation.
 Son plan d‘exécution.
o Lorsque une requête existe encore dans le Library Cache, oracle ne perdre
pas son temps à la ré-exécuter.

24
Les composantes de SGA
1.2 Dictionary Cache
o Dictionary Cache contient:
 Les dernières définitions utilisées dans la base de données.
 Des informations sur les tables, les index, les colonnes, les utilisateurs,
les privilèges et d'autres objets de la base de données.
o Cette zone mémoire permettra au serveur Oracle de ne pas avoir à aller
chercher ces informations sur le disque à chaque exécution d'une requête
SQL.

25
Les composantes de SGA
2. Buffer Cache
o Ce Cache conserve des copies des blocs de données extraits.
o Il est géré par un algorithme LRU.
o Lors des exécutions suivantes les blocs de données seront récupérés à partir
de cette zone mémoire (sans aller au disque).

26
Les composantes de SGA
3. Redo Log Buffer (Tampon de journalisation )
o Il enregistre toutes les modifications apportées aux blocs de données de la
base.
o Les traces des transactions sont enregistrées avant de passer les données aux
utilisateurs.
o Sa principale fonction est la récupération de données.

27
Les composantes de SGA
4. Large Pool
o Large Pool est une zone où la sauvegarde et la restauration de la base de
données sont réalisées.

28
Les composantes de SGA

5. Java Pool
o La zone de mémoire Java Pool répond aux besoins d'analyse des commandes
Java.
o Elle est nécessaire si Java est installé et utilisé.

29
Les processus d‘arrière plan

Objective: Ils assurent le bon fonctionnement du serveur


oracle.

30
Les processus d‘arrière plan : PMON

o Le processus PMON (Process MONitor):


 C’est un processus de monitoring.
 Son rôle est le nettoyage des ressources utilisateurs en cas d’échec.
o Les opérations de PMON:
 Enlever les plans d ’exécutions qui ne sont pas choisis.
 Détecter le plantage des processus utilisateurs.
 Annuler des transactions.
 Il supprime les verrous posés sur les tables et les lignes.

31
Les processus d‘arrière plan : DBWn

o Le processus DBWn (ou DBWr) (ou Database Writer) va être dédié à


l'écriture du Buffer Cache dans les fichiers de données de la base de
données.

Buffer Cache Processus DBWn Fichiers de données


o DBWn écrit dans les cas suivants :
 Instruction COMMIT
 Aucune mémoire tampon disponible.
 Le temps imparti est dépassé.
 Dès que la liste des blocs modifiés dépasse un seuil prédéfini.

32
Les processus d‘arrière plan : SMON

o Le processus SMON (System MONitor)


o Responsabilités:
 Récupération de l'instance en cas d’un arrêt anormal :
• Ré-implémente des modifications dans les fichiers de
journalisation.
• Ouvre la base de données pour permettre l'accès aux utilisateurs,
• Annule les transactions non validées.
 Fusion de l'espace libre.

33
Les processus d‘arrière plan : LGWR

o Le processus LGWR (LoG WRiter):


o Le LGWR écrit le contenu du Redo Log Buffer sur les fichiers journaux pour
libérer de l’espace.
o LGWR écrit dans les cas suivants :
 L’utilisateur confirme une transaction par un COMMIT
 Toutes les trois secondes.
 Quand le buffer est plein.

34
Gestion des privilèges

o Les privilèges sont des droits pour exécuter des requêtes.


o Deux types de privilèges:
• SYSTÈME
 Permet aux utilisateurs d'effectuer des opérations touchant la
structure de la base (create table, create user, create database)
 Il existe a peu prés 127 privilèges système qui sont classés par
catégories.

35
Gestion des privilèges

• OBJET
 Un privilège objet permet d’exécuter une action particulière sur
une table, vue, fonction, procédure, package d’un schéma.
 Par exemple y accéder, la mettre a jour ou même y insérer des
information (select, update, insert ,…)

36
Création d’un utilisateur oracle

Creation un compte pour Alice

CREATE USER Alice IDENTIFIED BY hr;


GRANT CONNECT TO Alice;
COMMIT;

Creation un compte pour Mark


CREATE USER Mark IDENTIFIED BY hr;
GRANT CONNECT TO Mark ;
COMMIT;

37
Gestion des privilèges

GRANT
Ordre GRANT permet d'ajouter un privilège à un utilisateur.
Exemple :
Pour Alice:
GRANT SELECT ON Provider TO Mark;
GRANT CREATE TABLE TO Mark;
Pour Mark:
SELECT * FROM Alice.provider;
CREATE TABLE Alice.Client;

38
Gestion des privilèges

REVOKE
Ordre REVOKE pour le supprimer
Exemple :
REVOKE SELECT ON Provider FROM Mark;
REVOKE CREATE TABLE FROM Mark;

39

Vous aimerez peut-être aussi