Académique Documents
Professionnel Documents
Culture Documents
SMI6-II6
L. KOUTTI
2017
1
Sommaire
Chapitre 1 : Introduction
Rôle d’un administrateur bases de données
2
Sommaire
• SGA – Zone mémoire Large Pool
• SGA – Zone mémoire Java Pool
Mémoire PGA
o Structure de processus
Processus Utilisateur
Processus Serveur
Les processus taches du fond
• PMON
• SMON
• ARCn et CKPT
3
Sommaire
Structure logique
o TABLESPACE
o SEGMENT
o EXTENT
o BLOC
Gestion des tablespaces et des fichiers de données
Gestion des fichers Redo Log et des fichiers de conrole
Archivage des fichiers Redo Log
Chapitre 4 : Gestion d’une instance
Démarrage et arret d’une base de données
Fichier de paramètres d’initialisation
Mode restreint
Mode lecture seule
Chapitre 5 : Gestion des utilisateurs, PROFILES et PRIVILEGES
4
Sommaire
Gestion des utilisateurs ORACLE
Gestion des profiles utilisateurs
Gestion des privilèges
o Privilège système
o Privilège objet
Privilège SYSDBA et SYSOPER
Gestion des ROLES
Vues privilèges et roles
5
Objectifs
6
Tâches de l'administrateur de Base de données
8
Serveur Oracle
Un serveur Oracle :
est un système de
gestion de base de
données qui offre une
méthode de gestion des
informations ouverte,
complète et intégrée,
est constitué d'une
instance et d'une base
de données Oracle.
9
Présentation générale de l’architecture Oracle
Un serveur Oracle est constitué d'une instance Oracle et d'une base de données Oracle
Elle va servir à stocker les données issues des fichiers de données sur le
disque dur. Afin de pouvoir les partager entre les différents processus.
Des processus d'arrière plan :
Ils vont servir à gérer les transferts de données entre la mémoire et le disque
dur, plus d'autres actions nécessaires au bon fonctionnement de la base de
données.
L'instance est indispensable au bon fonctionnement d'une base de données
Oracle. Sans instance il ne vous sera pas possible d'accéder à la base de
données. 11
Structure Mémoire
processus serveur.
12
Mémoire SGA
La mémoire SGA est constituée de plusieurs structures mémoire :
la zone de mémoire partagée,
le cache de tampons de la base de données,
le tampon de journalisation,
Deux structures mémoire supplémentaires peuvent également
être configurées dans la mémoire SGA :
la zone de mémoire LARGE POOL,
la zone de mémoire Java.
Taille définie à l'aide du paramètre SGA_MAX_SIZE
La Library Cache
Le Dictionnary Cache
Paramètre : SHARED_POOL_SIZE
14
SGA– Zone mémoire Library Cache
15
Algorithme LRU
16
SGA– Zone mémoire Dictionnary Cache
17
SGA– Zone mémoire Database Buffer Cache
Paramètre : LOG_BUFFER
Si PARALLEL_AUTOMATIC_TUNING = TRUE
Dans le cas des transactions sur plusieurs bases de données
Pour les opérations de sauvegarde et restauration d’Oracle.
Sa taille est définie par le paramètre LARGE_POOL_SIZE
20
SGA– Zone mémoire Java Pool
21
Mémoire PGA
Processus
serveur
Processus
utilisateur
Connexion
établie
24
Processus Serveur
25
Etablir une connexion et créer une session
Connexion :
Une connexion est un chemin de communication entre un
processus utilisateur et un serveur Oracle
26
Les processus tâches du fond
Les processus d’arrière plan gère les relations entre les buffers et
les fichiers ainsi que les processus eux-mêmes.
Les 4 principaux processus systèmes sont :
DBWR (DataBase Writer ou Dirty Buffer Writer),
LGWR (Log Writer),
PMON (Process Monitor),
SMON (System Monitor).
Il existe également d'autres processus d'importance secondaire :
CKPT (CheckPoint),
RECO (Recoverer),
ARCH (Archiver).
27
DBWR (Database Writer process)
Le processus LGWR (ou Log Writer) est le processus qui va écrire les
informations contenues dans le REDO LOG Buffer dans les fichiers
REDOLOGFILE lors des événements suivant :
Quand une transaction est terminée avec un COMMIT
Quand le REDO LOG Buffer est au 1/3 plein (peut dépendre
de vos propres paramètres),
Quand il y a plus de 1Mo d'informations de log contenues dans le
buffer,
Avant que DBWn n'écrive le contenu du Database Buffer Cache
dans les fichiers du disque dur.
29
PMON (Process Monitor)
Fichiers ARCn
Fichiers de
de Fichier journalisation
données de Fichiers de
journalisation archivés
contrôle
CKPT(Checkpoint) inscrit
Instance
les informations de point de
Mémoire SGA
reprise dans les fichiers de
Contrôles et dans l'entête
de chaque fichier de
données. C'est ce point de
DBWn LGWR CKPT
reprise (SCN) qui permet de
rendre cohérent les fichiers
de contrôles et les fichiers
Fichiers de Fichiers de Fichiers
données contrôle de
journa-
de données,
lisation
indispensable pour un
Base de données processus de récupération.
33
BASE DE DONNES
ORACLE
34
Base de données Oracle
35
Structure Physique d’une base de données Oracle
36
Structure Logique
Extent Blocs
37
Structure Physique
En-tête
Fichiers
Fichiers de de
Données contrôle
(incluent le
Fichiers de
dictionnaire
journalisatio
n de données)
en ligne
38
Fichiers de données
42
Structure logique – EXTENTS et BLOCS
Extent
Ensemble contiguë de blocs de données alloués
simultanément à un segment
Tout segment est créé avec au moins un extent
(Initialextent)
Lorsqu’un segment est plein, attribution d’un nouveau extent
Mode de gestion :
43
Structure logique – EXTENTS et BLOCS
44
Structure logique – EXTENTS et BLOCS
Blocs de données
Plus petite unité logique
La taille d’un bloc peut être choisie au moment de
l’initialisation d’une base. Elle correspond obligatoirement à
un multiple de la taille des blocs du système d’exploitation.
45
Gestion des Tablespaces et des fichiers de données - Création
46
Gestion des Tablespaces et des fichiers de données - Modification
47
Gestion des Tablespaces et des fichiers de données - Modification
La taille d'un fichier de données existant peut être modifiée d'une de ces deux
façons:
automatiquement avec l'option AUTOEXTEND ou
manuellement avec la commande ALTER DATABASE.
L'option AUTOEXTEND active ou désactive l'extension automatique des
fichiers de données.
La commande SQL permettant de spécifier l'option AUTOEXTEND pour un
fichier de données existant est la suivante :
ALTER DATABASE
DATAFILE ‘nom_complet’ [,…]
AUTOEXTEND [ON|OFF];
50
Gestion des Tablespaces et des fichiers de données - Modification
51
Gestion des Tablespaces et des fichiers de données - Modification
54
Gestion des fichiers de Redo Log et des fichiers de Contrôle
56
Fichiers journaux
developpez.com/redologs
58
Fichiers journaux
Le numéro initial et la taille des fichiers redo log en ligne et des groupes
sont déterminés pas des paramètres d'initialisation :
MAXLOGFILES spécifie le nombre maximal de groupes de fichiers redo
log online. La limite de MAXLOGFILES est de 255.
MAXLOGMEMBERS détermine le nombre maximal de membres redo log
online pour chaque groupe de redo log online. Le nombre total de membres
redo log online est un multiple du nombre de fichiers redo log.
LOG_FILES spécifie le nombre maximal actuel de groupes de fichiers
redo log online pour la durée de vie de l'instance courante. Par défaut, la
valeur de LOG_FILES est plus petite ou égale au nombre total de membres
redo log en ligne (MAXLOGMEMBERS * MAXLOGFILES).
Les fichiers redo log en ligne sont créés durant la création de la base de
données.
59
Fichiers journaux
60
Ajout de groupes de fichiers redo log online
Des groupes de fichiers redo log en ligne peuvent être créés à l'aide de la
commande ALTER DATABASE :
ALTER DATABASE [database]
ADD LOGFILE [GROUP integer] 'filename' [SIZE n[K|M]] [REUSE]
[,[GROUP integer] 'filename' [SIZE n[K|M]] [REUSE] ]...;
La valeur du paramètre GROUP peut être choisie pour chaque groupe de
fichier redo log. Si ce paramètre est omis, Oracle lui génère automatiquement
une valeur.
SQL> ALTER DATABASE
ADD LOGFILE GROUP 3 ('c:\orant\database\logorcl3.ora')
SIZE 1000K;
Cette commande crée un nouveau groupe de fichiers redo log portant le
numéro 3. Ce groupe est constitué d'un membre redo log nommé logorcl3.ora
d'une taille de 1000 Ko. 61
Ajout des membres redo log online
Des membres redo log peuvent être ajoutés grâce à la commande SQL
suivante :
ALTER DATABASE [database]
ADD LOGFILE MEMBER 'filename' [REUSE]
TO GROUP n;
Si le fichier existe déjà, il doit avoir la même taille que le nouveau fichier
redo log online et l'option de la commande REUSE doit être utilisé.
Exemple :
SQL> ALTER DATABASE
ADD LOGFILE MEMBER 'e:\orant\database\log7borcl.ora'
TO GROUP 7;
Cette commande ajoute un nouveau membre redo log nommé log7borcl.ora
au groupe redo log 7. Ce nouveau membre sera stocké dans le répertoire
e:\orant\database.
62
Relocalisation des fichiers redo log online
En raison de contraintes système, telles que l'insuffisance d'espace disque,
les fichiers redo log online peuvent avoir besoin d'être relocalisés.
Etapes à suivre pour relocaliser un fichier redo log online :
Arrêter la base de données,
Copier le fichier redo log online vers la nouvelle destination,
Monter la base de données,
Changer le nom du fichier redo log online à l'aide d'une commande SQL :
ALTER DATABASE [database]
RENAME FILE 'old filename' TO 'new filename';
Avant de changer le nom du fichier, il faut s'assurer que le nouveau fichier
existe bien à l'emplacement prévu. Le serveur Oracle change seulement le
pointeur dans le fichier de contrôle, mais il ne renomme pas physiquement
ni ne crée de fichier.
Ouvrir la base de données.
63
Supprimer un groupe de fichiers redo log
La base doit avoir au moins 3 groupes de fichiers de redo log pour
pouvoir en supprimer un (il doit en rester au moins 2).
Le groupe courant (celui dans lequel LGWR est en train d’écrire) ne
peut pas être supprimé.
En mode ARCHIVELOG, un groupe pas encore archivé ne peut pas
être supprimé.
Les fichiers concernés ne sont pas physiquement supprimés par
Oracle, il faudra le faire après en utilisant une commande du système
d’exploitation.
Utiliser l’ordre SQL ALTER DATABASE :
ALTER DATABASE
DROP LOGFILE GROUP numéro ;
Exemple
ALTER DATABASE
DROP LOGFILE GROUP 4; 64
Supprimer un membre d’un groupe de redo log
Le groupe concerné doit avoir au moins 2 membres pour pouvoir en
supprimer un (il doit en rester au moins un).
Un membre du groupe courant (celui dans lequel LGWR est en train d’écrire)
ne peut pas être supprimé.
En mode ARCHIVELOG, un membre d’un groupe pas encore archivé ne peut
pas être supprimé.
Les fichiers concernés ne sont pas physiquement supprimés par Oracle.
Pour supprimer tous les membres d’un groupe il faut supprimer le groupe.
Si un membre est corrompu, Oracle lui donne un statut « invalide » dans le
dictionnaire de données mais ne le signale pas par un message affiché à
l’écran.
Pour détecter qu’un membre est invalide, il faut consulter le fichier des
Alertes.
Si un membre d’un groupe est perdu, il faut le supprimer pour mettre à jour
le dictionnaire de données.
65
Supprimer un groupe de fichiers redo log
Exemple
ALTER DATABASE
DROP LOGFILE MEMBER ‘e:\oracle\oradata\HERMES\redo01.log’;
66
Réinitialisation des fichiers redo log online
Lors de l'utilisation de la base de données, il est possible que tous les
membres d'un groupe de fichiers redo log online soient corrompus. Pour faire
face à ce problème, il faut réinitialiser les fichiers redo log online.
Les commandes SQL pour réinitialiser les fichiers redo log en ligne sont les
suivantes:
ALTER DATABASE [database]
CLEAR [UNARCHIVED] LOGFILE GROUP n;
ou
ALTER DATABASE [database]
CLEAR [UNARCHIVED] LOGFILE 'filename';
L'utilisation de ces commandes revient à ajouter et supprimer un fichier redo
log online. Cependant ces commandes peuvent être effectuées même si il y
seulement deux groupes de fichiers redo log online avec un membre chacun.
Ces commandes peuvent également être effectuées même si un groupe de
fichiers redo log online réinitialisé est disponible mais pas archivé.
67
Archivage de fichiers de redo log
.
Destination d’archive
22 21 ARCH
Groupe 1
Groupe 2
20
22 21
68
Archivage de fichiers de redo log
Pour des raisons de sécurité les fichiers journaux online sont archivés.
L'archivage des fichiers de journalisation (Mode ARCHIVELOG) présentent deux
avantages :
Récupération : La sauvegarde de la base de données et des fichiers de
journalisation en ligne et archivés peuvent garantir la récupération de toutes les
transactions validées.
Sauvegarde : Peut s'effectuer lorsque la base de données est ouverte.
70
Démarrer & Arrêter une base de données
Démarrage d'une base
Procédure Générale
o Positionner les variables d'environnement
ORACLE_SID et ORACLE_HOME
o démarrage de la base possible par paliers (startup nomount, startup
mount, et startup open)
o posséder les privilèges appropriés (SYSDBA, SYSOPER, OSDBA ou
OSOPER, ...)
o indiquer si nécessaire le fichier des paramètres
o démarrer la base sous sqlplus (Unix et NT) ou via les services(NT) ou
Oradim (NT), à travers Entreprise Manager: database administration
assistant (NT ou Unix)
Syntaxe de la commande
o STARTUP [FORCE] [RESTRICT] [PFILE=fich_param] [OPEN |
MOUNT | NOMOUNT]
o ALTER DATABASE [nom_base] MOUNT | OPEN 71
Démarrer & Arrêter une base de données
75
Fichiers de paramètres d'initialisation
77
Modifier des paramètres de l’instance ou du SPFILE
L’ordre SQL ALTER SYSTEM permet de modifier dynamiquement la valeur des
paramètres d’initialisation.
ALTER SYSTEM SET paramètre = valeur […] [COMMENT = ‘texte’]
[ DEFERRED ] [ SCOPE = MEMORY | SPFILE | BOTH ];
Paramètre : nom du paramètre
Valeur : valeur attribuée au paramètre
« COMMENT = ‘texte’ » : commentaire associé à la modification du paramètre.
DEFERRED : si présent, indique que la modification ne concerne que les futures
sessions, pas celles actuellement connectées. N’a de sens que si la mémoire est la
cible de la modification .Peut être obligatoire pour certains paramètres.
SCOPE : définit la cible de la modification.
MEMORY : la mémoire seulement
SPFILE : le fichier de paramètres serveur seulement
BOTH : les deux
78
Arrêter la base de données
Dans SQL*Plus, la commande SHUTDOWN permet d’arrêter l’instance et la
base de données.
SHUTDOWN [NORMAL | IMMEDIATE | TRANSACTIONNAL | ABORT]
NORMAL : Oracle attend que tous les utilisateurs soient déconnectés (pas de
nouvelle connexion autorisée) puis ferme proprement la base.
IMMEDIATE : Oracle déconnecte tous les utilisateurs (en effectuant un
ROLLBACK des éventuelles transactions en cours) puis ferme proprement la
base.
TRANSACTIONNAL : Oracle attend que toutes les transactions en cours se
terminent avant de déconnecter les utilisateurs (pas de nouvelle transaction
autorisée) puis ferme et démonte proprement la base.
ABORT : Oracle déconnecte tous les utilisateurs (sans effectuer de ROLLBACK
des éventuelles transactions en cours) puis ferme brutalement la base ; une
restauration de l’instance sera nécessaire lors du prochain démarrage.
79
Mode restricted session
80
Mode lecture seule
82
GESTION DES UTILISATEURS ORACLE
83
GESTION DES UTILISATEURS ORACLE
PRIVILEGES
(Systèmes
et Objets) PROFILES
et ROLES
Utilisateur
Droits d’accès
aux tab espaces
VUES (quotas, TBS
temporaire, TBS
par défaut)
84
CREATION D’UN UTILISATEUR
85
CREATION D’UN UTILISATEUR- EXEMPLES
89
INFORMATIONS SUR UN UTILISATEUR
Interrogez les vues suivantes pour obtenir des informations sur les
utilisateurs :
DBA_USERS
DBA_TS_QUOTAS
90
GESTION DES PROFILES UTILISATEURS
91
GESTION DES PROFILES UTILISATEURS
92
CREATION DU PROFILE
94
GESTION DES PROFILES UTILISATEURS -EXEMPLES
96
ADMINISTRATION DES PROFILES
100
ATTRIBUTION DES PRIVILEGES SYSTEME
101
REVOCATION DES PRIVILEGES SYSTEME
103
PRIVILEGES SYSDBA ET SYSOPER
-f Catégorie Exemples
STARTUP
SHUTDOWN
ALTER DATABASE OPEN | MOUNT
ALTER DATABASE BACKUP
CONTROLFILE
SYSOPER ALTER DATABSE BEGIN | END
BACKUP
RECOVER DATABASE
ALTER DATABASE ARCHIVELOG
RESTRICTED SESSION
PRIVILEGE SYSOPER avec l'option
WITH ADMIN OPTION
SYSDBA CREATE DATABASE
RECOVER DATABASE UNTIL
104
PRIVILEGES SYSTEME
Privilèges
Libellé Objets concernés
objets
106
ATTRIBUTION DES PRIVILEGES OBJETS
107
ATTRIBUTION DES PRIVILEGES OBJETS
Exemple :
attribution de privilège par le propriétaire de l’objet
o GRANT SELECT,INSERT,UPDATE (sal,comm)
ON emp TO smith
attribution de privilège par un utilisateur, non propriétaire de
l’objet ayant reçu le privilège avec l’option WITH GRANT OPTION
o GRANT SELECT
ON scott.emp TO allen WITH GRANT OPTION;
108
REVOCATION DES PRIVILEGES OBJETS
110
GESTION DES ROLES
Modifier un rôle
ALTER ROLE <nom du rôle>
{NOT IDENTIFIED|IDENTIFIED {BY <motdepasse>
EXTERNALLY}};
112
VUES PRIVILEGES ET ROLES
USER view lists object grants for which the current user
USER_TAB_PRIVS_RECD
is the grantee.
DBA_ROLES This view lists all roles that exist in the database.
116