Bases
Bases
Bases
DBA 1
madani.a@ucd.ac.ma
madani.a@ucd.ac.ma 1
Plan
Introduction
Architecture interne d'Oracle
Gestion des instances
Privilèges et rôle
Profil
Gestion des utilisateurs
Sauvegarde et restauration
Quelques utilitaires
madani.a@ucd.ac.ma 2
Plan
Introduction
Architecture interne d'Oracle
Introduction
Organisation logique
Organisation physique
Dictionnaire de données
Notion d'instance
Gestion des instances
Privilèges et rôle
Profil
Gestion des utilisateurs
Sauvegarde et restauration
Quelques utilitaires
madani.a@ucd.ac.ma 3
Architecture interne d'Oracle
madani.a@ucd.ac.ma 4
Introduction
L'organisation interne d'Oracle 8 Server est
organisée de 3 niveaux :
Les données
La mémoire
Les processus
madani.a@ucd.ac.ma 5
Introduction (données)
Les données correspondent à :
La structure de la base de données
(structure physique)
La façon dont les données sont stockées
(structure logique)
madani.a@ucd.ac.ma 6
Introduction (données)
La structure physique est composée de
fichiers du système d'exploitation
Data files contenant les données de la BD
Redo log files contient les transactions
validées
Control files où sont stockés les
emplacements des fichiers de la BD
…
madani.a@ucd.ac.ma 7
Introduction (données)
La structure logique indique comment
sont organisés les données
Contient plusieurs éléments :
Schéma objet : objets d'un utilisateur
Tablespaces : regroupement logique de
fichiers
Segments : élément d'un tablespace
…
madani.a@ucd.ac.ma 8
Introduction (mémoires)
Correspond à l'organisation des données
en mémoire centrale
La mémoire est composée de 2 zones :
SGA (System/Shared Global Area) : buffers
alloués par Oracle pour contenir des données
partagées
PGA (Program/Process Global Area) : zones
allouées aux processus utilisateurs qui se
connectent à la base
madani.a@ucd.ac.ma 9
Introduction (processus)
Correspond aux différents processus
qu'Oracle met en œuvre
On distingue :
Processus utilisateur : permet d'établir une
connexion au serveur
Processus serveur : prend en charge les
processus utilisateurs
Processus d'arrière plan : chacun a une tâche
(écriture des données sur disque, gestion de
la mémoire, …)
madani.a@ucd.ac.ma 10
Introduction (remarques)
La mémoire SGA et les processus d'arrière
plan constitue une instance d'Oracle
Les caractéristiques de l'instance sont
contenues dans le fichier de paramètres
associé
madani.a@ucd.ac.ma 11
Organisation logique
La structure logique définit le mode d'utilisation
de l'espace physique d'une base de données
Constituée d'entités manipulables par des
commandes SQL
On peut regrouper ces entités en catégories :
Dictionnaire de données
Schéma objet
Tablespaces
Segments
Extents
Blocks
…
madani.a@ucd.ac.ma 12
Dictionnaire de Données
Ensemble de tables, vues et synonymes
contenant des informations sur la BD (tables,
vues, indexes, utilisateurs, droits, …).
Accessible à l’aide de l’instruction SELECT
Select * from user_tables;
Select * from all_tables;
Select * from dba_users;
Select * from user_constraints where
table_name=‘EMP’;
madani.a@ucd.ac.ma 13
Dictionnaire de Données
Attention : personne ne peut changer le
DD, même le DBA.
Accessible
explicitement par les utilisateurs (select …)
Implicitement par les système :
Si on crée une table, par exemple, le système
ajoute une nouvelle entrée dans la table des
tables (DD)
madani.a@ucd.ac.ma 14
Dictionnaire de données
Les vues du dictionnaire de données sont
de deux types :
Statiques, décrivent les objets statiques :
tablespaces, fichiers physiques, tables,
contraintes, clusters, vues, indexes,
synonymes, procédures, fonctions, packages,
triggers, utilisateurs, droits, rôles, profiles, …
Dynamiques, concernant les ressources
systèmes en cours d'utilisation, les sessions
connectées, les verrous, …
madani.a@ucd.ac.ma 15
Dictionnaire de données
Trois catégories de vues statiques
User_xxx : les objets de l'utilisateur connecté
All_xxx : tous les objets accessibles par l'utilisateur
connecté
DBA_xxx : tous les objets
Vues dynamiques : commencent par V_$ ou V$ (synonymes)
V$Session : informations sur les sessions actuellement
connectées
V$Version : numéro de la version du noyau Oracle
V$Database : informations sur la base de données
V$Lock : verrous actifs et en attentes
V$SGA : taille et composition de la mémoire partagée
V$SQL : ordre SQL en cache
madani.a@ucd.ac.ma 16
Organisation logique (schéma d'objets)
Ensemble d'objets de la base logique appartenant à un même
utilisateur, On distingue :
Table : espace de stockage des données
Index : colonne(s) permettant d'accélérer la recherche
Vue : table virtuelle (requête)
Synonyme : nom alternatif à une table/vue
Séquence : générateur de série de nombre
Cluster : regroupement physique de tables ayant des
colonnes en commun
Database link : lien avec une BD distante
Procédures/fonctions : ensemble d'instructions nommé
Déclencheurs : procédure associée à une table
Packages : collection d'objets stockés ensemble
…
madani.a@ucd.ac.ma 17
Organisation logique (tablespace)
Espace logique contenant les objets
stockés dans une BD.
Différents types
Tablespace de données Données
Tablespace temporaire Opérations de tris
Tablespace d’annulation Annulation
…
madani.a@ucd.ac.ma 18
Organisation logique (tablespace)
SYSTEM : Tablespace crée par défaut,
contient :
Le dictionnaire de données
Rollback segment
On peut également y stocker :
Données
Index
Etc..
madani.a@ucd.ac.ma 19
Organisation logique (tablespace)
madani.a@ucd.ac.ma 20
Organisation logique (tablespace)
On peut aussi répartir les données, les index,
etc. sur plusieurs disques
madani.a@ucd.ac.ma 21
Organisation physique
Un serveur Oracle est constituée de plusieurs types:
Un ou plusieurs Data Files
Deux ou plusieurs Redo Log Files
Un ou plusieurs Control Files
Un ou plusieurs Init File
Et optionnellement :
Des fichiers d’archivage de journaux
Des fichiers de trace et journal d’alerte
Un fichier de mot de passe
madani.a@ucd.ac.ma 22
Organisation physique
madani.a@ucd.ac.ma 23
Organisation physique
Fichiers installés lors de la création d’une base de données
par défaut d’Oracle 8.05 sur NT
madani.a@ucd.ac.ma 24
DataFile (fichier de données)
Contient l’ensemble des données de la BD
(tables, vues, index, …).
À la création de la BD, au moins un fichier
de données est créé
D'autres fichiers peuvent être créer pour
répondre aux besoins
Les fichiers sont regroupés logiquement
dans des tablespaces
madani.a@ucd.ac.ma 25
DataFile (fichier de données)
Chaque tablespace est constitué d’un ou
de plusieurs datafile
Create tablespace tbs1
Datafile ‘c:\ora\data1.dbf’ size 5M
‘d:\ora\data2.dbf’ size 5M
…
Pour connaître les fichiers de données
Select * from V$DBFILE;
Select * from dba_data_files;
madani.a@ucd.ac.ma 26
DataFile (fichier de données)
Dans les datafiles, seulement les tables sont
des données :
Vues, synonymes et database links sont des
pointeurs sur des données
Index et clusters sont des accélérateurs
Fonctions, procédures et packages des
programmes PL/SQL
Rollback segments zone mémoires stockant
des images de données
madani.a@ucd.ac.ma 27
Redo Log File (fichier de Journal)
Servent à stocker les données générées
par des commandes DML-SQL des
utilisateurs
Contiennent les changements effectués
sur la BD (ensemble des transactions).
Permettent de reconstruire la BD après
une panne d’instance
madani.a@ucd.ac.ma 28
Redo Log File (fichier de Journal)
Pour connaître les fichiers journaux :
Select * from V$Logfile;
Select * from V$log;
À la création de la base de données, ils
sont au moins 2, afin d'assurer une
sauvegarde cyclique
madani.a@ucd.ac.ma 29
Redo Log File (fichier de Journal)
Oracle écrit dans les
redo log files de
manière cyclique : 1er redo log
lorsqu’il rempli le
1er, il passe au
2ième et ainsi de 2ième redo log
suite. Lorsque le
dernier est
rempli, il écrase 3ième redo log
le 1er.
madani.a@ucd.ac.ma 30
Redo Log File (fichier de Journal)
Le log switch se produit quand LGWR
s'arrête d'écrire dans un groupe de
journaux et commence à écrire dans un
autre.
Pour forcer un log switch
ALTER SYSTEM SWITCH LOGFILE;
madani.a@ucd.ac.ma 31
Redo Log File (fichier de Journal)
madani.a@ucd.ac.ma 33
Control File (Fichier de Contrôle)
Permettent à une instance d’utiliser les
fichiers précédents.
Contiennent les emplacements physiques
des fichiers, leurs natures, …
Pour connaître les fichiers de contrôle
Select * from V$Controlfile;
madani.a@ucd.ac.ma 34
Control File (Fichier de Contrôle)
L'emplacement et le nom du fichier de
contrôle sont indiqués dans le fichier de
paramètres de l'instance
madani.a@ucd.ac.ma 35
Relation entre éléments logiques et
physiques
madani.a@ucd.ac.ma 36
Instance d’une base de données
Combinaison de :
Structures mémoires regroupées dans la
SGA (System Global Area)
Processus d’arrière plan (background
proccess)
madani.a@ucd.ac.ma 37
Instance d’une base de données
madani.a@ucd.ac.ma 38
SGA
Zone mémoire partagée entre tous les
utilisateurs de la base de données
Allouée à chaque démarrage de l'instance et est
libérée lorsque celle-ci est arrêtée.
Constituée de plusieurs mémoires (tampons ou
Buffers) :
tampon de blocs de données : database buffer
tampon du journal de reprise : redolog buffer
pool partagé : shared pool
…
Show SGA : affiche les caractéristiques de SGA
madani.a@ucd.ac.ma 39
Database buffer
Stocke les données demandées par les
commandes SQL des utilisateurs
Permet aux utilisateurs de lire le moins
souvent les mêmes données sur le disque
et de garder en mémoire les données
souvent utilisées
Oracle enregistre plus tard sur disque les
données de cette zone
madani.a@ucd.ac.ma 40
Database buffer
Permet des gains de performances
considérables lors de l'obtention et de la
mise à jour de données
Sa taille est déterminée par le paramètre
DB_BLOCK_SIZE
madani.a@ucd.ac.ma 41
Redo log buffer
Contient temporairement les données
modifiées et validées avant qu'elles ne
soient enregistrées dans le fichiers redo
log
Ces modifications sont générées par les
commandes insert, update et delete
Sa taille est définie par LOG_BUFFER
madani.a@ucd.ac.ma 42
Shared pool
Constituée de 2 zones de mémoires :
Library cache : stocke les commandes SQL à
exécuter
Dictionary cache : stocke les informations du
DD récemment demandées
Sa taille est définie par le paramètre
SHARED_POOL_SIZE
Pour la modifier :
Alter system set shared_pool_size=64M
madani.a@ucd.ac.ma 43
Structure de processus
Oracle utilise 3 types de processus :
Le processus utilisateur, qui est démarré au
moment où un utilisateur tente de se
connecter au serveur
Le processus serveur, qui établit la connexion
à l'instance Oracle
Les processus d'arrière plan, lancés au
démarrage d'une instance Oracle.
madani.a@ucd.ac.ma 44
Processus d'arrière plan
Gèrent et appliquent les relations entre les
structures physiques et les structures logiques
Processus obligatoires
DBWR PMON CKPT
LGWR SMON
Processus facultatifs
ARC : processus d'archivage
RECO : processus de récupération
…
madani.a@ucd.ac.ma 45
Processus Database Writer(DBWR)
Écrit les blocs de données
modifiés de la database buffer
vers le disque (data file)
S'exécute quand le processus
serveur ne trouve plus de
buffer libre pour stocker les
données
Peut s'exécuter aussi à une
fréquence déterminée par le
paramètre : checkpoint
(fichier d’initialisation)
madani.a@ucd.ac.ma 46
Processus Log Writer (LGWR)
Écrit les entrées du
redolog buffer dans les
fichier redolog
Il écrit dans les cas
suivants :
Une transaction est
validée
Un tiers du buffer est
rempli
De manière périodique
madani.a@ucd.ac.ma 47
Processus System Monitor (SMON)
Assure :
Le recouvrement d'instance
quand celle-ci démarre
Annule les transactions non
validées
Ré implémente les
modifications dans les
redolog files
Libération des segments
temporaires quand ils ne
sont plus utilisés
madani.a@ucd.ac.ma 48
Processus Process Monitor (PMON)
Suite à l'echec d'un
processus, PMON exécute
les opérations suivantes :
Annule les transactions
Libère les ressources
Nettoie le cache utilisé
par les processus serveur
madani.a@ucd.ac.ma 49
Processus CheckPoint (CKPT)
Ce processus est chargé
de :
Signaler DBWR aux points
de reprise,
Mettre à jour les fichiers
de contrôle avec les
informations sur le point
de reprise
madani.a@ucd.ac.ma 50
Processus d'archivage (ARC)
Processus d'arrière plan facultatif
En mode ARCHIVELOG, il archive
automatiquement les redolog files
Il enregistre toutes les modifications
apportées à la base de données
madani.a@ucd.ac.ma 51
Processus d'archivage (ARC)
madani.a@ucd.ac.ma 52