Vous êtes sur la page 1sur 85

AU : 2020/2021

Université Mohammed V – Rabat


Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes

SECURITE DES BASES DE DONNEES


Création Manuelle d’une base de données
Atelier 1 : Création d’une base de données
Sous DOS affichez la valeur courante de la variable d’environnement ORACLE_SID.  set ORACLE_SID
1. Modifier la valeur de la variable d’environnement en spécifiant le nom de la base de données à créer.  set
ORACLE_SID=maBase
2. Créez le sous répertoire maBase au niveau de ORACLE_BASE/oradata
3. Créez le répertoire pfile au niveau du répertoire ORACLE_BASE/admin/mabase
4. Créez le fichier init.ora à partir de du fichier d’initialisation de ORCL en faisant un simple copier/coller et
recherchez et remplacez toute occurrence du terme ORCL par Mabase (utilisez Ctl+H)
5. Créez les sous répertoires cdump, bdump et udump au niveau du répertoire ORACLE_BASE/admin/mabase
6. Sous dos créez le service windows permettant de gérer l’instance de la base maBase :
oradim -NEW -SID maBase -INTPWD maBase -STARTMODE manual -PFILE
'C:\app\bouzidi\admin\maBase\pfile\init.ora' -SHUTMODE immediate
7. Vérifiez la création du service.  services.msc
8. Créez le script permettant la création de la base de données et sauvegardez le script sous le nom
createmaBase.txt dans le répertoire oracle_base\admin\maBase\script:
Set Echo Off
Spool 'C:\app\bouzidi\oradata\maBase\echo_create_database.txt'
CREATE DATABASE maBase CHARACTER SET WE8MSWIN1252
LogFile
group 1 'C:\app\bouzidi\oradata\maBase\redo1.log' size 10M reuse,
group 2 'C:\app\bouzidi\oradata\maBase\redo2.log' Size 10M reuse
DataFile 'C:\app\bouzidi\oradata\maBase\system.dbf' Size 50M
autoextend on
next 10M maxsize unlimited
extent management local
sysaux datafile 'C:\app\bouzidi\oradata\maBase\sysaux.dbf' Size 10M
autoextend on
next 10M maxsize unlimited
undo tablespace UNDOTBS1 datafile 'C:\app\bouzidi\oradata\maBase\the_undo.dbf' Size 10M
default temporary tablespace the_temp tempfile 'C:\app\bouzidi\oradata\maBase\the_temp.dbf' Size 10M ;
Shutdown
Spool Off

9. Lancez le script sous SQLPLUS


a. sqlplus / as sysdba
b. Démarrer l’instance maBase en spécifiant le fichier pfile
 startup nomount pfile=ORACLE_BASE\admin\maBase\pfile\init.ora
c. @ORACLE_BASE\admin\maBase\script\createmaBase.txt
10. Lancez la base de données (avec la commande startup en spécifiant le pfile)
11. Créez le spfile à partir du pfile.
12. La base créée est vide, et il faut exécuter des scripts qui installent des tables et programmes systèmes dans
la base :
a. Exécutez catalog.sql qui crée le dictionnaire de données (@? \rdbms\admin\catalog.sql) remarque
le ? représente le ORACLE_HOME
b. Exécutez catproc.sql qui crée les structures pour PL/SQL (@? \rdbms\admin\catproc.sql)
c. Créez un tablespace TS_Data pour les données utilisateurs, et vérifiez sa création.

SECURITE DES BASES DE DONNEES D.BOUZIDI


Méthodes de sauvegarde et
de restauration
Stratégies de sauvegarde
 L'élaboration d'une bonne stratégie de sauvegarde
nécessite une planification prudente :
 Sélection des matériels
 Détermination du schéma de sauvegarde
 Chaque étape nécessite une analyse soignée prenant
en compte les facteurs suivants:
 Le personnel
 L'expertise technique
 et le budget

D.BOUZIDI 5
Choix du système de sauvegarde
 Détermination de la plate-fome matérielle de
sauvegarde à utiliser pour la protection des
données :
 Systèmes traditionnels utilisant des bandes
 Moins chers
 Moins complexes
 Répondent à la plupart des besoins pour les audits et
rapports des entreprises
 Systèmes complets de duplication de données qui
créent des copies hors site

D.BOUZIDI 6
Les préalables pour une stratégie de
sauvegarde
 Déterminer le volume de données à protéger pour
décider du type de système de sauvegarde :
 des unités à une bande
 chargeurs automatiques
 systèmes de stockage gérant des centaines de bandes à la fois
 Catégoriser les données à protéger selon leurs
importance:
 Facilement restaurés (les applications, les fichiers personnels
des utilisateurs)
 Difficilement restaurés (les bases de données, les systèmes)

D.BOUZIDI 7
Les méthodes de sauvegarde
 Complète : méthode transférant une copie de toutes les données
concernées par la sauvegarde, indépendamment de la
modification des données depuis l'exécution de la précédente
sauvegarde ;

 Différentielle : sauvegarde tous les fichiers modifiés depuis la


précédente sauvegarde complète, indépendamment de leur
modification depuis la dernière opération de sauvegarde(quelque
soit son type complète, différentielle ou incrémentale)

 Incrémentale : sauvegarder les seuls fichiers modifiés depuis la


dernière opération de sauvegarde (complète, différentielle ou
incrémentale).

D.BOUZIDI 8
Les méthodes de sauvegarde
 La méthode choisie dépend :
 La capacité des bandes : une sauvegarde complète
quotidienne nécessite une capacité très élevée sur bande et
seule la dernière bande de sauvegarde sera nécessaire pour
restaurer toutes vos données
 Des besoins en restauration (rapidité)
 Exemples :
 Une sauvegarde complète une fois par semaine avec une
sauvegarde incrémentale quotidienne nécessite beaucoup
moins d'espace sur bande,
 Mais les opérations de récupération nécessiteront de réaliser
sur les serveurs la restauration de la dernière sauvegarde
complète et de chaque sauvegarde incrémentale
 La règle généralement utilisée est d'effectuer des sauvegardes
hebdomadaires complètes et des sauvegardes journalières
incrémentales

D.BOUZIDI 9
Les méthodes de sauvegarde

incre z
diff
y
z z

incre
y
diff
y
y
comp

x1 x2 x3
x1 x2 x3

D.BOUZIDI 10
Les méthodes de sauvegarde
incre
diff

incre

incre

diff

comp
comp
comp

D.BOUZIDI 11
Les méthodes de sauvegarde
 Sauvegarde incrémentale

Dim Lun Mar Mer Jeu Ven Sam Dim Lun Mar Mer Jeu Ven Sam Dim

 Sauvegarde différentielle

Dim Lun Mar Mer Jeu Ven Sam Dim Lun Mar Mer Jeu Ven Sam Dim
D.BOUZIDI 12
Plan de permutation des bandes
 Un plan permutation de bandes est essentiel pour
 réduire les coûts du support en réutilisant les bandes après une
période déterminée
 et les coûts du stockage hors site en ne stockant qu’un nombre
minimal de bandes
 Le schéma de permutation à base du cycle GrandPère-Père-Fils
 On effectue les sauvegardes complètes à deux intervalles différents.
 Le premier est mensuel et on entrepose immédiatement le support
hors site (grand-père).
 On effectue également des sauvegardes hebdomadaires
complètes (père) et on les conserve généralement sur site
pendant la semaine de leur utilisation, puis on les place hors site
pendant un nombre prédéterminé de cycles hebdomadaires (deux
ou trois cycles suffisent généralement).
 Les sauvegardes incrémentales journalières (fils) s'effectuent et se
conservent également sur site pendant la semaine de leur usage, puis
on les place hors site avec la sauvegarde hebdomadaire
correspondante selon le même calendrier cyclique.
 À la fin d'un cycle pour un jeu de bandes, celles-ci peuvent être
réutilisées.
 On conserve chaque bande mensuelle pendant 12 mois avant de la
réutiliser.
 Les supports doivent être entreposés hors site, dans un endroit sûr où l'on
peut les récupérer rapidement en cas de besoin.
D.BOUZIDI 13
Stratégie de
Sauvegarde et de Restauration
 Les exigences professionnelles, opérationnelles et techniques
dictent la nature de la stratégie.
 Toute stratégie de sauvegarde et restauration doit être testée.
 Haute disponibilité, immobilisation minimale et restauration
complète des données sont les éléments clés d'une stratégie
efficace.

 Objectif
 Protéger la base de données de divers types de pannes
 Augmenter le temps moyen entre pannes (MTBF)
 Diminuer le temps moyen de réparation (MTTR : Mean Time
To Recover)
 Minimiser la perte de données

D.BOUZIDI 14
Sauvegarde et restauration de la base
de données : Tâches Typiques
Pour être capable de récupérer les problèmes de
perte de données avec un temps d'arrêt minimal,
vous devriez être prêt à faire ce qui suit:
 Configurez la base de données pour recoverability.
 Définir un plan de sauvegarde.
 Planifier et tester les différents types de scénarios de
défaillance..
 Surveiller et dépanner l'environnement de sauvegarde et
de récupération.
 Restaurer les données à partir de sauvegardes.
 Récupérer les transactions à un point time

D.BOUZIDI 15
A.U : 2020/2021
+

ADMINISTRATION DES BASES DE DONNEES


Sauvegarde à froid d’une base de données

Atelier 1:
1. Créez un sous répertoire saveDB au niveau de d:\oracle\
2. Créez deux sous répertoires scripts (fichiers de script de sauvegarde) et saveORCLFroid (fichiers de
sauvegarde à froid de la base de données ORCL ) au niveau de d:\oracle\saveDB
3. On aura l’arborescence suivante :

4. Créer un nouveau fichier permettant d’exécuter la sauvegarde à froid d’une base de données en particulier la
base de données ORCL, dans le contenu est le suivant :
-- Variables d'environnement de SQL*Plus de formatage de l'affichage
-- Masque la ligne affichant le nombre d'enregistrement ramenés par une requête
Set feedback off
--fixe le nombre de caractère par ligne
Set Linesize 200
-- Masque les entêtes correspondants aux noms des colonnes
Set Heading off
--nombre de ligne par page
Set Pagesize 0
--laisse les espaces en in de lignes
Set Trimspool off
--la commande n'est pas affichée avant son exécution
Set Verify off
define repertoire ='d:\oracle\saveDB\saveORCLFroid' -- répertoire de destination des fichiers sauvegardés
define scriptSave=d:\oracle\saveDB\scripts\saveORCLFroid.bat -- définition du script de sauvegarde
spool &scriptSave
select 'host copy ' || name || ' &repertoire ' from v$datafile;
select 'host copy ' || member || ' &repertoire ' from v$logfile;
select 'host copy ' || name || ' &repertoire ' from v$controlfile;
select 'host copy ' || name || ' &repertoire ' from v$tempfile;
spool off
-- Fermeture de la base de données pour avoir des fichiers synchronisés
shutdown immediate
@&scriptSave
startup
5. Sauvegardez le script sous le nom saveDBFroid.sql dans le répertoire d:\oracle\saveDB\scripts\
6. Lancez le script sous SQLPLUS pour cela :
a. Lancez l’application SQLPLUS en se connectant autant que sysdba : sqlplus sys/secret as sysdba
b. @d:\oracle\saveDB\scripts\saveDBFroid.sql
7. Vérifiez la sauvegarde de la base de données ORCL

ORACLE11G : DBA2 D.BOUZIDI


Atelier 2 : Restauration à froid d’un tablespace

1. Vérifiez si la base de données est en mode ARCHIVELOG, sinon modifiez en mode


ARCHIVELOG
 select archiver from v$instance ; (select log_mode from v$databese)
 Créez deux répertoires pour sauvegarder les fichiers archive
 alter system set log_archive_dest='rep1' scope=spfile;
 alter system set log_archive_duplex_dest='rep2' scope=spfile;
 alter system set log_archive_format='orcl%r%t%s.arc' scope=spfile;
 alter database archivelog; //en mode mont (alter database close ;)
 shutdown immediate
 startup
 alter system switch logfile;

2. Sur une nouvelle fenêtre DOS et à l’aide d’une connexion avec le compte scott, modifiez le salaire
des employés à 5555  et faites un commit
3. Sauvegardez la base de données en lançant le script créé dans l’atelier 1
4. En utilisant le compte scott modifiez la table emp en mettant le salaire des employés à 7777 et faites
un commit
5. Arrêtez la base de données
6. Supprimez le fichier associé tablespace users (pour simuler un incident. Ex. un virus a touché le
fichier users.df)
7. Démarrez la base de données
8. Interprétez l’erreur
9. Arrêtez la base de données
10. Restaurez (copie OS) le fichier datafile de users que vous avez sauvegardé
11. Redémarrez la base de données 
12. Faites une recouvrement en utilisant la commande SQL (recover tablespace users)
13. Ouvrez la base de données
14. Vérifiez est ce que les modifications sur le salaire ont été récupérées

ORACLE11G : DBA2 D.BOUZIDI


Année universitaire : 2020/2021

ADMINISTRATION DES BASES DE DONNEES


Sauvegarde à chaud d’une base de données
Atelier :
1. Créez un sous répertoire saveDB au niveau de d:\oracle\
2. Créez deux sous répertoires scripts (fichiers de script de sauvegarde) et saveORCLChaud (fichiers de
sauvegarde à chaud de la base de données ORCL ) au niveau de d:\oracle\saveDB
3. On aura l’arborescence suivante :

4. Créer un nouveau fichier permettant d’exécuter la sauvegarde à chaud d’une base de données en particulier la
base de données ORCL, dans le contenu est le suivant :
-- Variables d'environnement de SQL*Plus de formatage de l'affichage
SET feedback off pagesize 0 heading off verify off linesize 100 trimspool on
define repertoire ='d:\oracle\saveDB\saveORCLChaud' -- répertoire de destination des fichiers sauvegardés
define scriptSave=d:\oracle\saveDB\scripts\saveORCLChaud.sql -- définition du script de sauvegarde de ORCL
define LogSauvegarde=d:\oracle\saveDB\scripts\LogSauvegarde.txt -- fichier de sortie sur le rendu de l'opération de
sauvegarde à chaud
SPOOL &scriptSave
PROMPT spool &LogSauvegarde ;;
PROMPT archive log list ;;
PROMPT alter system switch logfile ;;
SELECT ' alter tablespace ' || tablespace_name || ' begin backup ; '
FROM dba_tablespaces
WHERE status NOT IN ('READ ONLY', 'INVALID', 'OFFLINE');
SELECT ' host copy ' || file_name || ' &repertoire '
FROM dba_data_files
WHERE tablespace_name NOT IN (
SELECT tablespace_name
FROM dba_tablespaces
WHERE status IN
('READ ONLY', 'INVALID', 'OFFLINE'));
SELECT ' alter tablespace ' || tablespace_name || ' end backup ; '
FROM dba_tablespaces
WHERE status NOT IN ('READ ONLY', 'INVALID', 'OFFLINE');
PROMPT alter database backup controlfile to '&repertoire\control.ctl' REUSE ;;
PROMPT alter system switch logfile ;;
PROMPT archive log list ;;
PROMPT spool off ;;
SPOOL off;
@&scriptSave

5. Sauvegarder le script sous le nom saveDBChaud.sql dans le répertoire d:\oracle\saveDB\scripts\


6. Mettre la base de données en mode archivelog
7. Lancer le script sous SQLPLUS pour cela :
a. Lancer l’application SQLPLUS en se connectant autant que sysdba : sqlplus sys/secret as sysdba
b. @d:\oracle\saveDB\scripts\saveDBChaud.sql
8. Vérifier la sauvegarde de la base de données ORCL

ORACLE11G : DBA2 D.BOUZIDI


Atelier 2 : Restauration à chaud d’un tablespace

1. Modifiez le salaire des employés en le mettant à 2000


2. Validez la modification par un commit ;
3. Sauvegardez à chaud les tablespaces et le fichier de contrôle (lancez le script de l’atelier1)
4. Notez la valeur du numéro de séquence du fichier log courant (v$log)
5. Exécutez deux ou trois commutations système (alter system switch logfile) ; (simuler plusieurs
modification)
6. Affichez le numéro SCN (le champ first_change#) correspondant à numéro de séquence noté dans la
Question 4 (la table v$log_history) (le SCN représente instant avant le DROP)
7. Supprimez le tablespace users (Drop tablespace users including contents and datafiles;) (simuler un
incident : erreur de suppression de la part de DBA)
8. Exécutez deux ou trois commutations système (alter system switch logfile) ;
9. Arrêtez la base de données
10. Supprimez tous les fichiers dbf
11. Restaurez tous les fichiers dbf sauvegardés dans la manipulation 3
12. Démarrez la base de données
13. Appliquez un recouvrement de la base de données jusqu’au le numéro change correspondant au
numéro trouvé dans la question 6
RECOVER AUTOMATIC database UNTIL CHANGE numéroQuestion6 using backup controlfile;

14. Ouvrez la base de données en spécifiant l’option RESETLOG


ALTER DATABASE OPEN RESETLOGS;

SCN : System Change Number (Horlogique logique utilisée par Oracle)

ORACLE11G : DBA2 D.BOUZIDI


Sauvegarde utilisateur
Sauvegarde à Froid

 Permet de faire une sauvegarde d’une Base de


données en arrêt
 Les fichiers (datafiles, logfiles, controlfile, etc)
peuvent être sauvegardés sans corruption
 Fortement utilisée en mode noArchivelog
 Inconvénients : n’est valable pour des
environnements à haute disponibilité où l’activité
ne peut être interrompue

D.BOUZIDI 17
Sauvegarde à Froid d’une base de données
 Les étapes de sauvegarde
 Lister les noms des fichiers à sauvegarder
 Fichiers de données
Select * from dba_data_files;
 Fichiers de contrôles
Select name from v$parameter where name like 'control_files';
 Les fichiers log
Select member from v$logfile;

 Arrêter de la base de données en mode immediate


Shutdown immediate

 Effectuer une copie des fichiers à sauvegarder par


une commande OS
 Redémarrer la base de données
D.BOUZIDI 18
Sauvegarde à Froid d’un tablespace
 Sauvegarde d’un tablespace mis en offline
 Identifier les fichiers du tablesapce à
sauvegarder
Select file_name from dba_data_files where
tablespace_name= 'NOMTABLESPACE'

 Mettre le tablespace en mode offline


Alter tablespace NomTablespace offline normal;
 Effectuer une copie des fichiers à sauvegarder
par une commande OS
 Remettre le tablespace en mode on online
Alter tablespace NomTablespace online;

D.BOUZIDI 19
Sauvegarde à Chaud
 Permet de faire une sauvegarde d’une Base de
données sans la faire arrêter
 Utile dans un contexte à haute disponibilité où
l’état des fichiers change constamment
 Fonctionnement : Placer un tablespace dans le
mode de sauvegarde et de sauvegarder les
fichiers de données, puis de rétablir le
tablespace dans le mode normal
 La base de données doit être en mode Archivelog

D.BOUZIDI 20
Sauvegarde à Chaud

 Stratégie de sauvegarde:
 Sauvegarde complète de la base de données à
des intervalles réguliers
 Sauvegarde partielle de la base de données
 Archivage des fichiers de journalisation (log)
 Sauvegarde du fichier de contrôle en cas de
modification dans la base de données

D.BOUZIDI 21
Sauvegarde à Chaud

 Sauvegarde d’un tablespace


 Identifier les fichiers du tablesapce à
sauvegarder
Select file_name from dba_data_files where
tablespace_name= 'NOMTABLESPACE';

 Mettre le tablespace en mode backup


Alter tablespace NomTablespace begin backup;
 Effectuer une copie des fichiers à sauvegarder
par une commande OS
 Remettre le tablespace en mode normal
Alter tablespace NomTablespace end backup;

D.BOUZIDI 22
Procédures de récupération gérées par
l'utilisateur : commande RECOVER
 Restaurer tous les fichiers de base de données
à partir d'une sauvegarde et récupérer la base
de données :
SQL> RECOVER DATABASE

 Restaurer les fichiers de données endommagés


d’un tablespace à partir d'une sauvegarde et
récupérer les fichiers de données :
SQL> RECOVER TABLESPACE USERS

Ou un fichier de données d’un tablespace


SQL> RECOVER DATAFILE '/oradata/indx01.dbf'

D.BOUZIDI 23
Réinitialisation des fichiers de journalisation
 Possibilité de la réinitialisation des fichiers logs en
ligne après une restauration complète ou non :
SQL> ALTER DATABASE RESETLOGS;

 Cette commande réalise les actions suivantes


 Annule toutes les transactions des fichiers journaux qui
n'ont pas été appliquées durant la restauration.
 Réinitialise le numéro de séquence du fichier de contrôle
à 1.
 Vide le fichier journal courant.
 Crée le fichier journal courant s'il n'existe pas.
 Réinitialise le numéro de séquence des fichiers journaux
à 1 dans tous les en-têtes des fichiers.

D.BOUZIDI 24
L’outil de sauvegarde et restauration
RMAN (Recovery MANager)
Objectifs
 Permettre une gestion des opérations de sauvegarde et
restauration de manière souple et optimisée
 Gestion automatique des opérations de sauvegarde et
restauration : Pas besoin d’un suivi par l’administrateur de
sauvegarde de l'ensemble des fichiers de la base de données.
 Permet de réaliser des sauvegardes de :
 Bases de la base,
 Tablespace,
 Datafiles, Controlfiles, Archivelog
 Utilisé pour faire des sauvegardes
 Base fermée
 Base ouverte

D.BOUZIDI 26
Fonctionnalités
 Prend en charge les sauvegardes incrémentielles
 Eviter la sauvegarde des blocs Oracle vides
 Garder la trace des sauvegardes:
 Soit dans les fichiers de contrôle
 Soit dans un catalogue de récupération (recovery catalog)
 Effectuer des restaurations globales ou partielles.
 Récupérer un bloc de données endommagé individuel ou un
ensemble de blocs de données dans un fichier de données, plutôt
que de restaurer et de récupérer l'ensemble du fichier de données.
 Paralléliser les opérations de sauvegarde /restauration afin
d'accroître les performances.
 Placer les opérations de sauvegarde/restauration courantes dans le
catalogue sous forme de scripts
 Editer des rapports sur les opérations de sauvegarde.
 Détecter la corruption de bloc lors des opérations de sauvegarde

D.BOUZIDI 27
Types de sauvegardes

 RMAN permet d’effectuer les types de sauvegarde


suivants :
1. Copies d’images :
 copie d’image d’un fichier de données, de contrôle ou de
journalisation archivé.
 Elle se compose de tous les blocs du fichier, y compris les blocs
inutilisés
2. Jeux de sauvegarde
 Peut comprendre un ou +rs fichiers de données, de
contrôle ou de journalisation archivé
 Peut être fait de deux manières :
 Complète : sauvegarde tous les blocs contenant des
données associées aux fichiers précisés
 Incrémentielle de fichiers de données : comprend
uniquement les blocs qui ont été modifiés depuis la dernière
sauvegarde incrémentielle/complète.

D.BOUZIDI 28
Création d’une copie d’image
 Sauvegarde identique à celle du système d’exploitation
 Une validation des blocs des fichiers est réalisée et toute
information sur la sauvegarde est mise dans le fichier de
contrôle
 Pour éviter la verification des blocs (crrompu ou non) on peut
utiliser l’option NOCHECKSUM
 Une copie d’image ne peut être stockée que sur le Disque

Copy of data file 3


Data file 3 Data file 3

Copy of archived log


Archived Archived
log file log file

RMAN> BACKUP AS COPY DATAFILE '/ORADATA/users_01_db01.dbf';


RMAN> BACKUP AS COPY ARCHIVELOG LIKE '/arch%';
Types de sauvegarde
 Deux types de sauvegarde possibles :
 Complete : on sauvegarde tous les blocs sans
utilisation de niveau
 Incrémentielle : utile pour définir une stratégie
de sauvegarde. Deux sous types sont définis
 Différentielle : sauvegarde uniquement les blocs
modifiés depuis la précédente sauvegarde de niveau n
ou inférieur
 Cumulative : sauvegarde uniquement les blocs modifiés
depuis la précédente sauvegarde de niveau n-1. Les
sauvegardes cumulatives sont préférables aux
sauvegardes différentielles car elles nécessitent moins
d’opérations pour faire la restauration

D.BOUZIDI 30
Sauvegarde incrémentielle

 RMAN gère trois niveaux de sauvegarde incrémentielle


 Niveau 0 : ou de niveau de base. Sauvegarde tous des blocs
contenant des données associées aux fichiers indiqués;
nécessaire avant de faire de sauvegarde de niveau supérieur
 Niveau 1 : sauvegarde tous les blocs qui ont changé depuis la
plus récente sauvegarde incrémentielle de niveau 0
 Niveau 2 : sauvegarde tous les blocs qui ont changé depuis la
plus récente sauvegarde incrémentielle de niveau 0, 1 ou 2.
 Une sauvegarde de niveau 0 est bien une sauvegarde
complète (l’inverse ne l’est pas)
 La sauvegarde complète n'est pas inscrite dans la stratégie
 La sauvegarde complète pourra servir pour une copie dans
un autre environnement

D.BOUZIDI 31
Exemple de sauvegarde incrémentielle
 Une sauvegarde complète contient tous les Full, or "level 0
blocs de fichier de données utilisés. incremental backup"

 Une sauvegarde incrémentielle de


niveau 0 est une sauvegarde complète Cumulative
incremental backup
marquée en tant que niveau 0. Une
sauvegarde incrémentielle cumulative de
niveau 1 contient uniquement les blocs
modifiés depuis la dernière sauvegarde
incrémentielle de niveau 0.
Differential
incremental backup
 Une sauvegarde incrémentielle différentielle de
niveau 1 contient uniquement les blocs
modifiés depuis la dernière sauvegarde
incrémentielle.
Les niveaux de sauvegarde
 Exemple de sauvegarde : incrémentielle

Sauvegarde
différentielle

0 2 2 2 1 2 2 0 2 2 2 1 2 2 0

Sauvegarde
cumulative

D.BOUZIDI 0 2 2 2 1 2 2 0 2 2 2 1 2 2 0 33
Jeu de sauvegarde
 backupSet : Se compose d’un ou de plusieurs fichiers physiques
(backupPiece) stockés dans un format propre à RMAN sur disque ou
sur bande
 Un jeu de sauvegarde peut lui-même être sauvegardé
 Un élément de sauvegarde (backupPiece) :
 est un fichier appartenant à un jeu de sauvegarde
 Un élément de sauvegarde peut contenir des blocs provenant de
plusieurs fichiers de données

DBF ARC ARC


Fichiers de
données

DBF ARC CTL


Fichiers de
contrôle

ARC ARC

Fichiers de Elt1 de Jeu de Elt2 de Jeu de Elt3 de Jeu de


journalisation sauvegarde sauvegarde sauvegarde
archivés
D.BOUZIDI 34
Architecture
 Base de données cible : base à sauvegarder. Le fichier de
contrôle est utilisé par l’utilitaire RMAN afin de récupérer les
informations sur les objets à sauvegarder.
 BackupPiece (Elt de sauvegarde): Entité physique contenant
un ou plusieurs fichiers de données. On peut mettre un fichier
de données sur plusieurs backupPiece.
 BackupSet (jeu de sauvegarde): Entité logique contenant un
ou plusieurs backupPiece.
 On ne peut avoir un fichier sur plusieurs backupSets.
 Dans la cas d’une base de données de grande envergure, un jeu
de sauvegarde peut dépasser la taille maximale d’une bobine, d’un
disque physique ou d’un fichier de système d’exploitation
 La taille de chaque élément de sauvegarde peut par conséquent
être limitée à l’aide de MAXPIECESIZE
 Il est recommandé de ne pas mixer dans un même backupSet des
fichiers de données (DBF et CTL) et des fichiers d'archive

Base de
données cible
Backup
Piece

backupSet
D.BOUZIDI 35
Architecture

Base de
données cible
Session Session
serveur RMAN serveur
(Recovery
Manager)
catalogue de
Canal Canal restauration

Disque bande

D.BOUZIDI 36
Architecture : base de données cible
 RMAN
 est une application cliente de la base de données cible
 se lance par la commande binaire RMAN sous la ligne de
commande de l’OS
 interprète les commandes des scripts et appelle les processus
serveurs pour exécuter les tâches nécessaires.
 fonctionne avec des processus serveurs :
1. Le premier appelle le paquetage SYS.DBMS_RCVMAN pour la
sauvegarde et SYS.DBMS_BACKUP_RESTORE pour la
restauration.
2. Le deuxième pour la mise à jour des logs internes. Pour visualiser les
opérations de sauvegarde en cours (utiliser v$session_longops )
 Base de données cible : la base de données pour laquelle les
opérations de sauvegarde et de récupération sont effectuées via
RMAN. (les informations enregistrées dans le fichier de contrôle : la
taille et l'emplacement des fichiers DBF, LOG, ARC et des fichiers de
contrôle sont utilisées par les sessions serveur appelées par RMAN
lors des opérations de sauvegarde et de récupération.
 Sessions serveur : Les processus serveur appelés par RMAN se
connectent à la base de données cible afin d'exécuter les opérations
de sauvegarde, de restauration et de récupération (les sessions lisent
ou écrivent des fichiers sur disque ou sur bande)
D.BOUZIDI 37
Architecture : catalogue de restauration
 Référentiel (repository) RMAN : Métadonnées sur la base de données cible
et sur ses opérations de sauvegarde et de récupération, il enregistre :
 Configuration de RMAN
 Structure de la base de données cible
 Fichiers de journalisations
 Historiques des activités de sauvegarde réalisées
 Ce référentiel est stocké
 Par défaut dans le fichier de contrôle de la BD cible:
 Le fichiers de CTL devient extrêmement critique
 Sa taille doit être surveillée régulièrement
 Le paramètre CONTROL_FILE_RECORD_KEEP_TIME permet de déterminer la durée
de conservation des infos de sauvegarde
 Ou dans le Catalogue de récupération, une base de données distincte qui :
 préserve les informations de sauvegarde en cas de perte du fichier de
contrôle.
 Permet le stockage d'informations relatives à plusieurs bases de données
cible.
 Peut contenir des scripts RMAN stockés, qui sont des séquences de
commandes RMAN pour les tâches de sauvegarde courantes.
 A créer impérativement dans une base de données différente de la base de
données cible
 Remarque : L'utilisation d'une base de données distincte pour le catalogue de
restauration n'est pas recommandée pour les petites entreprises, en raison de
la lourdeur liée à l'installation et à l'administration d'une base distincte.
D.BOUZIDI 38
Architecture : canaux de communication
 Canaux de communication :
 Liens vers la base de données cible, ouverts pour effectuer
les opérations de sauvegarde/restauration
 Un canal est associé à une unité physique : disk/stb_tape.
 Le nombre de canaux correspond au degré de parallélisme
de l’opération à effectuer
 Rman ne peut gérer plus de quatre canaux en simultané
 Le canal de sauvegarde peut être :
 Automatique : On crée un jeu de canaux RMAN qui sera utilisé par
défaut si dans le script RMAN aucun canal spécifique n'est alloué.
 Spécifique : alloué spécialement pour la sauvegarde spécifique par
la commande allocate channel).
 Pour chaque canal un channel process est défini
 Pour une sauvegarde : ce processus coordonne la lecture des
fichiers de données et l'écriture à l'emplacement spécifié.
 Pour une restauration : ce processus coordonne la lecture depuis
l'emplacement spécifié lors de la sauvegarde et l'écriture des fichiers
de données.

D.BOUZIDI 39
Exemples de commande RMAN

D.BOUZIDI 40
Types de commandes RMAN
 Stand-alone commande:
 Est exécutée individuellement à l'invite RMAN
 RMAN attribue les canaux nécessaires en utilisant la fonction
d'allocation automatique de canal
 Elles ne peuvent pas apparaître comme sous-commandes dans RUN
 Exemples :
• CHANGE
• CONNECT
• CREATE CATALOG, RESYNC CATALOG
• CREATE SCRIPT, DELETE SCRIPT, REPLACE SCRIPT
 Job command:
 Doit être dans les accolades d'une commande RUN
 Est exécuté en groupe
 Exemples :
• ALLOCATE CHANNEL

 Certaines commandes peuvent être exécutées soit


comme stand-alone or a job command
 Exemples :

D.BOUZIDI BACKUP DATABASE 41
Exemple de JOB commande
 On peut limiter la taille des éléments de sauvegarde comme suit :

RMAN> RUN {
2> ALLOCATE CHANNEL t1 TYPE "Disk" MAXPIECESIZE = 4G;
3> BACKUP FORMAT "df_%t_%s_%p" FILESPERSET 3(tablespace users);
4> }

 Si la taille du fichier de sortie est inférieure à 4 Go, un seul élément


de sauvegarde sera écrit pour le jeu de sauvegarde.
 Si la taille est supérieure à 4 Go, plusieurs éléments seront écrits
pour le jeu de sauvegarde

D.BOUZIDI 42
La commande backup
 On peut contrôler
 Nombre de jeu de sauvegarde produits par Oracle
 Nombre de fichiers d’entrée placés dans un même jeu de
sauvegarde
 Seuil de tolérance d’erreur d’E/S lors de la lecture ou d’écriture
d’éléments de sauvegarde
 Lors de l’utilisation de la commande Backup, il faut effectuer
les opérations suivantes :
 Monter ou ouvrir la base de données cible. RMAN permet
d’effectuer une sauvegarde incohérente si la BD est en mode
ARCHIVELG, il faut appliquer les fichiers de journalisation pour
rendre les sauvegardes cohérentes
 Allouer manuellement un canal pour l’exécution de la commande
backup si on veut pas utiliser l’allocation automatique
 On peut spécifier l’ajout du fichier de contrôle au jeu de
sauvegarde à l’aide de l’option
INCLUDE CURRENT CONTROLFILE
 On peut configurer RMAN pour une sauvegarde automatique
du fichier de contrôle:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
D.BOUZIDI 43
La commande backup
 Les options de la commande backup
Option Description
full La session serveur copie tous les blocs dans le jeu de
sauvegarde, en sautant uniquement les blocs de fichier de
données qui n’ont jamais été utilisés (on saute pas de bloc
pour les fichiers archivé et de contrôle)
Incremental La session serveur copie les blocs de données qui ont été
level valeur modifiés depuis la dernière sauvegarde incrémentielle de
niveau n. il faut préciser l’un des paramètres suivants dans
les spécifications : DATA FILE, TABLESAPCE, DATABASE
skip Permet d’exclure certains fichiers de données ou fichiers de
journalisation archivés du jeu de sauvegarde :
Offline : exclut les fichiers de données offline
Readonly : exclut les fichiers appartenant à un tablespace
en lecture seule
Inaccessible : exclut les fichiers qui ne peuvent pas être lus
à cause d’erreurs E/S
Maxsetsize Indique la taille maximale pour le jeu de sauvegarde
valeur
D.BOUZIDI 44
La commande backup
 Les options de la commande backup

Option Description
Delete input Supprime les fichiers d’entrée dés lors que la création du
jeu de sauvegarde a abouti. Utile lors de la sauvegarde des
fichiers de journalisation archivés, de copies de fichier de
données ou de jeux de sauvegarde.
filesperset Multiplexer plusieurs fichiers de données dans un même jeu
valeur de sauvegarde pour la transmission en continu sur bande
Include Crée un snapshot du fichier de contrôle en cours et le place
current dans chaque jeu de sauvegarde produit par cette clause
controlfile
Format Indique le format d’appellation des fichiers de la sortie

D.BOUZIDI 45
Format des fichiers de sortie
 Préciser une convention de nommage des backupPieces
Option Description
%c Numéro de copie de l’élément de sauvegarde dans les éléments sont
duplexés
%p Numéro de l’élément dans le jeu de sauvegarde (commence avec la valeur 1
et s’incrémente d’un pas de 1)
%s Numéro de jeu de sauvegarde. Ce nombre est un compteur dans le fichier de
CTL qui augmente pour chaque jeu de sauvegarde
%d Nom de la base de données
%n Nom de la base de données complété par du caractères x afin d’atteindre une
longueur totale de 8 caractères
%u Nom de 8 caractères constitué de représentations comprimées du numéro du
jeu de sauvegarde et de l’heure de la création
%U Précise un raccourci pratique de %u_%p_%c garantissant l’unicité de fichier
de sauvegarde
%T Spécifie la date de la creation de la sauvegarde sous le format
YYYYMMDD

N.B : Le format %U est utilisé par défaut.

D.BOUZIDI 46
Jeu de sauvegarde multiplexés
 La technique de multiplexage consiste à lire simultanément les
fichiers sur le disque et à les écrire dans le même élément de
sauvegarde
 Lorsque plusieurs fichiers sont écrits dans le même élément de
sauvegarde RMAN alloue automatiquement les fichiers aux canaux,
multiplexe les fichiers et saute les blocs inutilisés

Base de
données cible

BackupPiece
1, 2, 3, 1, 2, 3, 1 …

backupSet

RMAN> CONFIGURE DEVICE TYPE sbt PARALLELISM 3;

D.BOUZIDI 47
Jeu de sauvegarde duplexés
 On peut créer jusqu’à quatre copies identiques de chaque élément de
sauvegarde en duplexant le jeu de sauvegarde
 L’option COPIES de la commande BACKUP permet de produire un
jeu de sauvegarde duplexé :
 BACKUP COPIES
 SET BACKUP COPIES
 CONFIGURE ….. BACKUP COPIES
Base de
données cible

Backup1 Backup2

Jeu de
sauvegarde
RMAN> BACKUP AS BACKUPSET DEVICE TYPE disk
2> COPIES 2
3> INCREMENTAL LEVEL 0
4> DATABASE;
RAMAN> BACKUP COPIES 2 DATAFILE 1, DATAFILE 2
2> FORMAT 'c:\BACKUP1\%U', 'C:\BACKUP2\%U';
D.BOUZIDI 48
Jeu de sauvegarde des fichiers de
journalisation archivés
 Constitué uniquement de fichiers de journalisation archivés
 Sauvegarde complète
RAMAN> BACKUP
2> FORMAT 'c:\backup\ar_%t_%s_%p'
3> ARCHIVELOG ALL DELETE INPUT ;

 On peut sauvegarder les fichiers de journalisation archivés


 A l’aide de la commande BACKUP ARCHIVELOG
 Ou les inclure dans la sauvegarde des fichiers de données et des fichiers
de contrôle à l’aide de la commande BACKUP …. PLUS ARCHIVELOG

D.BOUZIDI 49
Sauvegarde incrémentielle
différentielle
 Sauvegarde au niveau n de tous les blocs qui ont subi des
modifications de puis la dernière sauvegarde de niveau n ou
inférieur

0 2 2 1 2 2 2 0
Dim Lun Mar Mer Jeu Ven Sam Dim

 Une sauvegarde incrémentielles de niveau 0 sera effectuée


chaque semaine le jour de moindre activité
RAMAN> BACKUP INCREMENTAL level 0 database;
 des sauvegardes incrémentielles de niveau 2 seront effectuées un
jour sur deux sauf le mercredi
RAMAN> BACKUP INCREMENTAL level 2 database;
D.BOUZIDI 50
Sauvegarde incrémentielle
cumulative
 Sauvegarde au niveau n de tous les blocs qui ont subi des
modifications de puis la précédente sauvegarde de niveau n-1 ou
inférieur

0 2 2C 1 2 2C 2C 0
Dim Lun Mar Mer Jeu Ven Sam Dim

 Une sauvegarde incrémentielle cumulative de niveau 2 seront


effectuées avec la commande
RAMAN> BACKUP INCREMENTAL level 2 cumulative database;

D.BOUZIDI 51
Commandes RMAN
 Rman utilise une interface similaire à SQLplus
 Pour démarrer RMAN
C:> RMAN TARGET sys/PwdSys@nomBaseCible
[NOCATALOG | CATALOG rman/pwdRman]
[LOG c:\rman.log]
[CMDFILE='c:\scripts\monRmanScript.rcv']

 TARGET : indique une chaîne de connexion à la base de données cible.


 NOCATALOG : indique que vous utilisez RMAN avec le catalogue de
restauration par défaut(celui stocké dans le fichier de contrôle).
 CATALOG : indique une chaîne de connexion à la base de données
contenant le catalogue de restauration.
 LOG : désigne le fichier dans lequel la sortie RMAN sera enregistrée. S'il
n'est pas indiqué, RMAN écrit le fichier journal des messages vers la sortie
standard. APPEND indique que toute nouvelle sortie doit être ajoutée à la fin
du fichier journal des messages
 CMDFILE : permet d’exécuter un fichier contenant des commandes RMAN.

D.BOUZIDI 52
Commandes RMAN

 RMAN est préconfiguré avec des paramètres par défaut


RMAN>show all;

 La commande CONFIGURE permet de définir des paramètres de


configuration persistants pour chaque base de données cible :
 Configurer des canaux automatiques
 Définir la stratégie de conservation des sauvegardes
 Définir le nombre de copies de sauvegarde à créer
 Définir le type de sauvegarde BACKUPSET ou COPY par défaut
 Limiter la taille des éléments du jeu de sauvegarde
 Exempter un tablespace de la sauvegarde
 Activer et désactiver l'optimisation de la sauvegarde
 Configurer la sauvegarde automatique des fichiers de contrôle

D.BOUZIDI 53
Commandes RMAN
 La définition de stratégie de conservation des sauvegardes décrit les
sauvegardes qui seront conservées, et pendant combien de temps
 La valeur de la stratégie de sauvegarde est définie par commande
CONFIGURE.
 Il existe deux types de stratégie de conservation :
 Période de récupération (recovery window ) : établit une période
au cours de laquelle une récupération jusqu'à un point dans le
temps doit être possible.
RMAN> CONFIGURE RETENTION POLICY
TO RECOVERY WINDOW OF 7 DAYS;
 Redondance : établit un nombre fixe de sauvegardes qui doivent
être conservées (au-delà, les sauvegardes peuvent être
supprimées).
 La stratégie de conservation par défaut présente une redondance
de 1, ce qui signifie qu'une seule sauvegarde d'un fichier doit exister
à un instant donné.
 Une sauvegarde est considérée comme obsolète lorsqu'une version
D.BOUZIDI plus récente des mêmes fichiers a été sauvegardée. 54
Commandes RMAN
 Gestion des paramètres persistants
 La commande SHOW de RAMN affiche les paramètres actuels

RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT;


RMAN> SHOW EXCLUDE;
RMAN> SHOW ALL;

 La commande CLEAR de RAMN réinitialise un paramètre à sa valeur par


défaut

RMAN> CONFIGURE MAXSETSIZE CLEAR;


RMAN> CONFIGURE DEFAULT DEVICE TYPE CLEAR;

D.BOUZIDI 55
Commandes RMAN
 Un canal représente un flux de données vers un type de périphérique.
 Un canal doit être alloué pour exécuter des commandes de sauvegarde
et de récupération.
 Chaque canal alloué établit une connexion entre l'exécutable RMAN et
une instance de base de données cible.
 Un processus Oracle Database pour la base de données cible est créé
pour chaque canal alloué.
 Chaque commande BACKUP, COPY, RESTORE ou RECOVER exécutée
dans Recovery Manager nécessite au moins un canal.
 Le type de support souhaité détermine le type de canal alloué.
 Le nombre de canaux alloués est le degré maximal de parallélisme utilisé
au cours de la sauvegarde, de la restauration ou de la récupération.
 La commande CONFIGURE permet de préconfigurer les canaux pour
une utilisation dans toutes les sessions RMAN

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO disk;

 Allouer manuellement un canal


RMAN> RUN {
2> ALLOCATE CHANNEL c1 DEVICE TYPE disk;
3> BACKUP DATAFILE 'c:\oracle\oradata\user01.dbf';}
D.BOUZIDI 56
Commandes RMAN
 Les options de contrôle configurables pour les canaux alloués manuellement
et automatiquement
 Configuration du parallélisme
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK PARALLELISM 2 ;
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT 'c:\backup\%U';
RMAN> CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT 'c:\backup\%U';
 Définition de la taille maximale des éléments de sauvegarde
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2G;

 Formater le nom des fichiers de sauvegarde générés :


RMAN> RUN {
2> ALLOCATE CHANNEL d1 DEVICE TYPE DISK
3> FORMAT 'c:\backup\%U';
4> BACKUP DATABASE PLUS ARCHIVELOG; }

D.BOUZIDI 57
Restauration à l’aide de RMAN

 Exemple de restauration d’un tablespace


RMAN>Run {
sql "alter tablespace TBS_DATA offline";
allocate channel t1 type disk;
restore tablespace TBS_DATA;
recover tablespace TBS_DATA;
sql "alter tablespace TBS_DATA online;";
}

D.BOUZIDI 58
rman catalog rman/rman@catal
/
Commandes RMAN
--Connexion du catalogue à la BD cible "target database"
connect target;
--Pas d’optimisation de place
configure backup optimization off;
--Pas de sauvegarde automatique des fichiers de contrôle
configure controlfile autobackup off;
--Change le fichier archivelog courant pour pouvoir le sauvegarder au complet
sql 'alter system switch logfile';
--verifie le statut des fichiers d’archivelog pour synchroniser le catalogue
change archivelog all validate;
--Resynchronisation complète forcée du catalogue
resync catalog;
run
{--On alloue un canal de sauvegarde sur le jeu de bandes annuelles
allocate channel c1 type 'sbt_tape‘
parms="ENV=(TINA_HOME=/tina, TINA_SERVICE_NAME=tina,
TINA_RMAN_CATALOG=adelie, TINA_RMAN_FOLDER=ORA_TOTA,
TINA_RMAN_USER=oracle)";
Sauvegarde full de la base de données, y compris les ctl sauvegardés en double
(dans dbs)
backup full format 'Annu_%d_%D%M%Y_%u' database include current
controlfile;
--Sauve les archivelogs et les efface
backup archivelog all delete input skip inaccessible;
--Dé-alloue le canal de communication
release channel c1;
}

D.BOUZIDI 59
Quelques commandes RMAN
Commande Description
rman target / catalog Pour se connecter au catalogue RMAN
userrman/pwdrman@rmancat depuis le serveur de base de données
identifié par l’alias rmancat
report schema; Liste les fichiers de données de notre base
report schema at Time Permet de consulter les informations sur les
'SYSDATE-7'; (ou SCN N°SCN) fichiers de données à un instant dans le
temps exprimé sous forme de Time ou SCN
list script names; Liste les scripts de sauvegarde existant
list backup summary; donne la liste de tous les backups réalisés
list backup of database Liste les backups de base
summary;
list backupset idBackup; Donne les détails du backup identifié par le
numéro idBackup
report need backup; Donne un rapport la sauvegarde réalisée
pour s’assurer qu’elle ‘est bien déroulée

report unrecoverable; liste les fichiers qu’il faut sauvegarder


report obsolete; liste les backups du catalogue qui sont
obsolètes
D.BOUZIDI 60
Les vues systèmes sur les opérations RMAN
Option Description
RC_ARCHIVED_LOG Voir les sauvegardes d’archivelog
RC_BACKUP_CONTROLFILE Voir les sauvegardes de controlfile
RC_BACKUP_DATAFILE Voir les sauvegardes de fichiers
RC_BACKUP_PIECE Voir un morceau d’un set de sauvegarde
RC_BACKUP_REDOLOG Voir les sauvegardes des redolog
RC_BACKUP_SET Voir un ensemble (« set ») de
sauvegardes
RC_CHECKPOINT Voir l’etat des CP lors de la sauvegarde
RC_DATABASE Voir les bases de données déclarées
RC_DATAFILE Voir les fichiers des BD sauvegardées
RC_REDO_LOG Voir les fichiers redologs des BD
sauvegardées
RC_RMAN_CONFIGURATION Voir la configuration d’RMAN
RC_TABLESPACE Voir les sauvegardes des tablespaces
DB Liste des bases de données
DBINC Liste des « incarnations » de bases de
D.BOUZIDI
données
61
Université Mohammed V – Rabat
Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes
AU : 2020/2021

SECURITE DES BASES DE DONNEES


Sauvegarde à l’aide de RMAN (1/4)
Utilisation du fichier de contrôle

1. Avec SQL*Plus vérifiez que la base de données est en mode ARCHIVELOG. Si tel n'est pas le cas,
modifiez la base de données afin d'activer l'archivage des fichiers de journalisation en ligne.
2. Sauvegardez de la base de données avec RMAN en utilisant comme référentiel le fichier de
contrôle :
a. Créez un répertoire backup qui sera dédié au stockage des backups de RMAN
b. Lancez l’application RMAN en spécifiant avec l’option nocatalog :
 host rman nocatalog target sys/secret
c. Lancez le script de sauvegarde de la base de données

run {
allocate channel C1 type disk;
backup format 'd:\backup\dbf_%d_%t_%s_%p' database;
sql 'alter system switch logfile';
backup format 'd:\backup\arc_%d_%t_%s_%p' archivelog all delete input;
backup format 'd:\backup\ctl_%d_%t_%s_%p' current controlfile;
}

3. Pour simuler un fichier qui a été corrompu


a. Arrêtez la base de données
b. Supprimez via l’OS le fichier .dbf associé au tablespace USERS
4. Démarrez la base de données  (une erreur indiquant qu’on ne peut pas ouvrir la base de données
vu qu’on a supprimé le fichier associé au tablespace USERS)
5. Restauration de la base de données en utilisant RMAN
a. Lancez l’application RMAN avec l’option nocatalog :
 host rman nocatalog target sys/secret
b. Sous RMAN restaurez la base de données
run {
allocate channel C1 type disk;
restore database ;
recover database;
sql 'alter database open';
}
2. Vérifiez la mise en disponibilité du tablespace USERS ( select * from scott.emp ;)

SECURITE DES BASES DE DONNEES D.BOUZIDI


Université Mohammed V – Rabat
Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes
AU : 2020/2021
SECURITE DES BASES DE DONNEES
Sauvegarde à l’aide de RMAN (2/4)
Utilisation du catalogue sur la base de données cible

1. Avec SQL*Plus vérifiez que la base de données est en mode ARCHIVELOG. Si tel n'est pas le cas,
modifiez la base de données afin d'activer l'archivage des fichiers de journalisation en ligne.
2. Création du catalogue RMAN
a. Créez un tablespace rmanTS avec un fichier de données de taille 50M
create tablespace rmanTS datafile 'oracle_Home\oradata\orcl\rmanTS.dbf' size 50M;
b. Créez un compte de sauvegarde rman identifié par le mot de passe rmanPwd et ayant
RMANTS comme tablespace par défaut
create user rman identified by rmanpwd default tablespace rmants;
c. Octroyez les rôles connect, resource et recovery_catalog_owner à l’utilisateur rman
grant connect, resource, recovery_catalog_owner to rman ;
d. Lancez l’application rman avec la commande :
host rman catalog rman/rmanPwd
e. Sous RMAN créez le catalogue
create catalog tablespace rmanTS ;
f. Quittez l’application RMAN sous RMAN tapez la commande EXIT
3. Sauvegarde de la base de données avec RMAN
a. Créez un répertoire backup qui sera dédié au stockage des backups de RMAN
b. Déclarez (enregistrez) la base de données cible dans le catalogue sous RMAN :
i. Lancez l’application RMAN en spécifiant le catalogue :
host rman catalog rman/rmanPwd target system/motDePasseSystem

ii. Enregistrez la base de données  register database ;


c. Sous RMAN sauvegardez la base de données :
run {
allocate channel c1 type disk;
backup format 'd:\backup\dbf_%d_%t_%s_%p' database;
sql 'alter system switch logfile';
backup format 'd:\backup\arc_%d_%t_%s_%p' archivelog all delete input;
backup format 'd:\backup\ctl_%d_%t_%s_%p' current controlfile;
}

4. Pour simuler un fichier qui a été corrompu


a. Arrêtez la base de données
b. Supprimez via l’OS le fichier .dbf associé au tablespace USERS
5. Démarrez la base de données  (une erreur indiquant qu’on ne peut pas ouvrir la base de données
vu qu’on a supprimé le fichier associé au tablespace USERS) (affiche FILE_ID)

SECURITE DES BASES DE DONNEES D.BOUZIDI


6. Restauration de la base de données en utilisant RMAN
a. Lancez l’application RMAN en spécifiant le catalogue
host rman catalog rman/rmanPWD target system/motDePasseSystem
b. Interprétez l’erreur produite
7. Mettez le datafile associé au tablespace USERS en offline :
alter database datafile 4 offline drop; //4 est le File_ID affiché lors de l’erreur
8. Ouvrez la base de données
alter databse open ;
9. Restaurez le tablespace USERS pour cela :
a. Lancez l’application RMAN en spécifiant le catalogue :
host rman catalog rman/rmanPWD target system/motDePasseSystem
b. Exécutez le script suivant :
run {
allocate channel C1 type disk;
restore tablespace users ;
recover tablespace users;
}

10. Remettez le datafile associé au tablespace USERS en online :


alter database datafile 4 online;
11. Vérifiez la mise en disponibilité du tablespace users (ex. select * from scott.emp ;)

SECURITE DES BASES DE DONNEES D.BOUZIDI


Université Mohammed V – Rabat
Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes
 
AU : 2020/2021

SECURITE DES BASES DE DONNEES


Sauvegarde à l’aide de RMAN (3/4)

Objectif : Utilisation du catalogue sur une base de données autre que la cible

1. Créez une nouvelle base de données et nommez la « saveDB » 
2. Créez un tablespace rmanTS avec un fichier de données de taille 50M  
create tablespace rmanTS datafile 'oracle_Home\oradata\saveDB\rmanTS.dbf' size 50M; 
3. Créez  un  compte  de  sauvegarde  rman  identifié  par  le  mot  de  passe  rmanPwd  et  ayant 
RMANTS comme tablespace par défaut 
create user rman identified by pwd default tablespace rmants; 
4. Octroyez les rôles connect, resource et recovery_catalog_owner à l’utilisateur rman  
grant connect, resource, recovery_catalog_owner to rman ; 
5. Lancez l’application rman avec la commande : 
host rman catalog rman/rmanPwd 
6. Sous RMAN créez le catalogue  
create catalog tablespace rmanTS ; 
7. Quittez l’application RMAN sous RMAN tapez la commande EXIT 
8. Lancez oracle NetManager et ajoutez la résolution du nom local pour cela 
a. Choisissez l’option « Résolution de noms de service »
b. Choisissez l’option du menu « Fichier/Créer »
c. Donnez le nom du service réseau « ORCL »
d. Choisissez le protocole qui sera utilisé « TCP/IP »
e. Donnez Le nom du hote « localhost » et le port par défaut « 1521 »
f. Saisissez Le nom du service de la base de données « ORCL »
g. Fermez l’assistant en cliquant sur le bouton « terminer »
 

   

SECURITE DES BASES DE DONNEES    D.BOUZIDI 
 

9. Vérifiez la bonne marche de la résolution de nom local 
a. Sous DOS, changez la valeur de oracle_sid en l’initialisant à « ORCL » 
Set oracle_sid=ORCL
b. Lancez SQLPLUS en se connectant avec SYS et en spécifiant le nom du service 
Sqplus /@ORCL as sysdba
c. Mettez  la  base  de  données  en  mode  archivelog,  si  elle  ne  l’est  pas  (Shutdown 
immediate; startup mount; alter database archivelog; alter database open;) 
10. Sous une nouvelle fenêtre DOS, à l’aide de SQLPLUS connectez‐vous à la base de données où 
est stocké le catalog (sqlplus / as sysdba) 
11.  Déclarez (enregistrez) la base de données cible dans le catalogue sous RMAN : 
a. Lancez l’application RMAN en spécifiant le catalogue : 
host rman catalog rman/rmanPwd target /@ORCL
b. Enregistrez la base de données cible 
register database ;
12. Lancez  le  script  ci‐dessous  pour  sauvegarder  la  base  de  données  la  base  de  données cible
« ORCL »

run {
allocate channel c1 type disk;
backup format 'd:\backupORCL\df_%d_%t_%s_%p' database;
sql 'alter system switch logfile';
backup format 'd:\backupORCL\ar_%d_%t_%s_%p' archivelog all delete input;
backup format 'd:\backupORCL\ctl_%d_%t_%s_%p' current controlfile;

13. Pour simuler un fichier qui a été corrompu  
a. Arrêtez la base de données  
b. Supprimez via l’OS le fichier .dbf associé au tablespace USERS  
14. Démarrez la base de données  (une erreur indiquant qu’on ne peut pas ouvrir la base de 
données vu qu’on a supprimé le fichier associé au tablespace USERS) 
15. Restauration de la base de données en utilisant RMAN  
a. Lancez l’application RMAN en spécifiant le catalogue  
host rman catalog rman/rmanPwd target /@ORCL 
a. Exécutez le script suivant : 
 
run {
  allocate channel C1 type disk;
restore tablespace users ;
  recover tablespace users;

 

16. Vérifiez  la  mise  en  disponibilité  du  tablespace  « users »  au  niveau  du  répertoire 
oradata/ORCL 
 

SECURITE DES BASES DE DONNEES    D.BOUZIDI 
Université Mohammed V – Rabat
Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes
AU : 2020/2021
SECURITE DES BASES DE DONNEES
PLANIFIER UNE SAUVEGARDE DE BD AVEC RMAN (4/4)
Atelier :
1. Créez un répertoire et nommez le « backup » au niveau de c:\
2. Ecrivez le script de sauvegarde suivant et nommez le backupOrcl.rman :

RUN {
ALLOCATE CHANNEL ch1 TYPE DISK
FORMAT 'C:\backup\%d_%u_%s_%p';
BACKUP DATABASE PLUS ARCHIVELOG;
RELEASE CHANNEL ch1;
}
EXIT;

3. Ecrivez le script suivant permettant de lancer le script de sauvegarde « backupOrcl.rman » et nommez


le backupOrcl.bat
rman target / @c:\backup\backupORCL.rman log=c:\backup\backupORCL.log

4. Automatisez le lancement du script backupOrcl.bat pour qu’il effectue la sauvegarde de la base de


données tous les jours à 9H du soir, pour cela effectuer les opérations suivantes :
a. Lancez l’outil Windows de planification des tâches « Planificateur de tâches »
b. Une fenêtre s’ouvre permettant de saisir les informations sur la tâche à planifier

c. Choisissez l’option « créer une tâche de base » du


menu Action
d. Donnez un nom à la tâche « sauveORCL »
e. Indiquez la période de déclenchement « Tous les jours »
f. Précisez l’heure du déclenchement de la tâche
g. Indiquez le type de l’action « Démarrer un programme »
h. Donnez l’emplacement du fichier bat à exécuter
i. Vérifier l’exécution de la tâche.

SECURITE DES BASES DE DONNEES D.BOUZIDI


Audit d’une base de
données
Objectif
 Contrôler les accès des utilisateurs à la base de données
 Sécurité : activité suspecte dans la base de données
 Suivi des actions : collecte d'informations historiques
 Définir les types d’audit à réaliser :
 Par utilisateur : pour auditer les activités d’un
utilisateur,
 Par session : on conserve que la première activité
pour plusieurs activations faites dans une session
 Par accès : on conserve toutes les activités d’une
session
 Définir le type de surveillance :
 Sur les ordres SQL et les privilèges
 Sur les objets
Audit des ordres SQL et privilèges
systèmes
 Privilège requis : AUDIT SYSTEM
 Syntaxe :
AUDIT { {optOrderSQL|ALL} | {privSystem|ALL PRIVILEGES}}
[ BY user [, user ] ...
[ BY { SESSION | ACCESS } ]
[ WHENEVER [ NOT ] SUCCESSFUL ]

Où :
 optOrderSQL : option des ordres sql à auditer
 privSystem : privilège système à auditer
 BY user : audit des ordres sql et/ou privilèges pour un user
 BY SESSION : audit des ordres sql et/ou privilèges par session
 BY ACCESS : audit des ordres sql et/ou privilèges par accès
 SUCCESSFUL : audit des ordres sql et/ou privilèges si succès
 ALL : audit de tous les ordres SQL
 ALL PRIVILEGES : audit de tous les privilèges
Audit des ordres SQL et privilèges
systèmes
 Les options de l’Ordre SQL
Option Ordres SQL audités
alter system alter system
cluster create cluster, alter cluster, drop cluster, truncate cluster
index create index, alter index, drop index
not exists tout ordre sql qui retourne l’erreur objet inexistant
procedure create[or replace] function,create[or replace] package,
create[or replace] package body, create[or replace]
procedure, drop package, drop procedure
public create public synonym
synonym drop public synonym
role create role, alter role, set role, drop role
Audit des ordres SQL et privilèges
systèmes
 Les options de l’Ordre SQL
Option Ordres SQL audités
rollback create rollback segment, alter rollback segment,
segment drop rollback segment
sequence create sequence, drop sequence
system audit audit, no audit
system grant GRANT system_privileges/roles TO user/role
REVOKE system_privileges/roles
FROM user/role
table create table, alter table, drop table
tablespace create tablespace, alter tablespace,
drop tablespace
trigger create trigger, alter trigger enable or disable
alter table with enable, disable and drop clauses
Audit des ordres SQL et privilèges
systèmes
 Les options de l’Ordre SQL
Option Ordres SQL audités
user create user, alter user, drop user
view create[or replace] view, drop view
alter sequence alter sequence nom_sequence
alter table alter table nom_table
delete table delete from nom_table, bnom_vue
execute procedure appel de procedure et de fonction

grant procedure Grant/revoke privilège on procedure,


grant table Grant/revoke privilège on table, vue, snapshot
insert table insert into table, vue
lock table Lock table table, vue
select table select * from table, vue, snapshot
update table update, vue
Audit des ordres SQL
 Exemples :
 Pour surveiller toutes les tentatives de connexions
infructueuses :
AUDIT CONNECT WHENEVER NOT SUCCESSFUL

 Pour surveiller les connexions et déconnexion de


l’utilisateur SCOTT :
AUDIT SESSION BY SCOTT

 Pour surveiller les select et les insert infructueuses sur


n’import quelle table une entrée seulement par session
AUDIT SELECT TABLE, DELETE TABLE BY SESSION
WHENEVER NOT SUCCESSFUL
Audit des objets
 Privilège requis : AUDIT ANY
 Syntaxe :
AUDIT optOobjet [, optObjet] ...
ON {[ schema.]nomObjet}
[ BY { SESSION | ACCESS } ]
[ WHENEVER [ NOT ] SUCCESSFUL ]

Où :
 optObjet : option objet à auditer
 nomObjet : nom de l’objet à auditer
 BY SESSION : audit des ordres sql et/ou privilèges par session
 BY ACCESS : audit des ordres sql et/ou privilèges par accès
 SUCCESSFUL : audit des ordres sql et/ou privilèges si succès
Audit des objets
 Les options des objets
Option Ordres SQL audités
alter alter table | sequence
audit audit (sur les objets)
delete delete from table | view
execute execute procedure
grant grant (objets)

index create index on

insert insert into table| view


lock lock table | view
rename rename ...
select select * from ...
update update table | vue
Audit des objets
 Exemples :
 Pour surveiller les insertions dans la table SCOTT.EMP par
accès :
AUDIT INSERT ON SCOTT.EMP BY ACCESS

 auditer l’ordre SQL select sur la table SCOTT.EMP en cas


d’échec d'exécution de cet ordre.
AUDIT select ON SCOTT.EMP
WHENEVER NOT SUCCESSFUL ;

 Pour surveiller les modifications sur la table SCOTT.DEPT


par session avec succès
AUDIT update on SCOTT.DEPT BY SESSION
WHENEVER SUCCESSFUL
Exploitation des audits
 Pour activer l’audit il faut initialiser les paramètres :
1. AUDIT_TRAIL de l’audit au niveau de fichier INIT.ORA
de la base (ou bien en utilisant la commande alter
system set AUDIT_TRAIL=valeur scope=spfile;).
 Cinq valeurs sont possibles :
 NONE : invalide l'audit (valeur par default)
 OS : valide l'audit et stocke les résultats dans un fichier
externe, un autre paramètre : AUDIT_FILE_DEST précise le
répertoire de destination
 DB : valide l'audit et stocke les résultats dans la table d'audit
 DB_EXTENDED : permet l'audit ainsi que l'enregistrement des
ordres SQL
2. AUDIT_SYS_OPERATIONS (true/false): active la
vérification des opérations émises par les utilisateurs
connectés avec les privilèges SYSDBA ou SYSOPER
N.B : il faut redémarrer la base de donnée pour prendre en
charge les modifications
Exploitation des audits
 Les tables de base permettant de stocker les options de
l’audit :
 ALL_DEF_AUDIT_OPTS , DBA_STMT_AUDIT_OPTS ,
DBA_PRIV_AUDIT_OPTS , DBA_OBJ_AUDIT_OPTS,
USER_OBJ_AUDIT_OPTS,…
SELECT * FROM sys.dba_obj_audit_opts
WHERE owner = 'SCOTT' AND object_name LIKE 'EMP%';

'-' : pas d'audit
'S' : par session
'A' : par accès
à gauche du '/' : Successful
à droite du '/' : Not successful
 Les tables de base permettant de stocker les résultats de
l’audit :
 DBA_AUDIT_OBJECT , DBA_AUDIT_SESSION ou
DBA_AUDIT_STATEMENT
Les tables de traces
 Les tables de base permettant de stocker les résultats de
l’audit :
 DBA_AUDIT_OBJECT : Affiche les entrées de la table de
suivi d'audit pour les instructions concernant les objets.
 DBA_AUDIT_SESSION : liste les entrées de la table de suivi
d'audit pour les connexions et déconnexions
 DBA_AUDIT_STATEMENT: liste les entrées relatives au
table de suivi d'audit pour les commandes : grant, revoke,
audit, noaudit et ALTER SYSTEM exécutées par un
utilisateur.
Université Mohammed V – Rabat
Ecole Nationale Supérieure d’Informatique et d’Analyse des Systèmes

AU : 2020/2021
SECURITE DES BASES DE DONNEES
Audit d’une base de données
Atelier
1- Mettez la valeur du paramètre AUDIT_TRAIL à DB (alter system set AUDIT_TRAIL=’DB’
scope=spfile ;)
2- Mettez la variable AUDIT_SYS_OPERATIONS à TRUE (alter system set
AUDIT_SYS_OPERATIONS=TRUE scope=spfile ;)
3- Redémarrez la base de données pour prendre en charge les modifications précédentes.
4- Créez un nouvel utilisateur user1/pwd1
5- Donnez le rôle CONNECT et les privilèges SELECT et UPDATE sur la table SCOTT.EMP à
l’utilisateur user01
6- Activez l’audit de type objet sur la table SCOTT.EMP en précisant l’audit des requêtes SELECT.
(audit select on scott.emp ;)
7- Vérifiez la prise en charge des options de l’audit en consultant la table dynamique
DBA_OBJ_AUDIT_OPTS
8- Faites des SELECT en utilisant le compte SCOTT ;
9- Faites des UPDATE en utilisant le compte USER01 ;
10- Vérifiez la prise en charge de l’audit, en affichant l’utilisateur ayant créé une activité (USERNAME),
la date d’enregistrement (TIMESTAMP) et la requête (SQL_TEXT)
N.B : la table à consulter est DBA_AUDIT_OBJECT
Remarquez que le champ correspondant à la requête est vide, pour sauvegarder même la requête, il faut
mettre le paramètre AUDIT_TARIL à DB_EXTENDED
Audit par SESSION de type OBJET
1- Mettez la valeur du paramètre AUDIT_TRAIL à DB_EXTEBDED (alter system set
AUDIT_TRAIL='DB_EXTENDED' scope=spfile ;) et redémarrez la base de données pour prendre
en charge la modification précédente.
2- Vérifiez l’enregistrement de des requêtes en relançant les manipulations 8,9 et 10 et en consultant la
table dynamique DBA_AUDIT_OBJECT
3- Ajoutez DELETE et GRANT comme opérations à auditer sur la table SCOTT.DEPT.
4- Vérifiez la prise en charge de ces options au niveau de la table DBA_OBJ_AUDIT_OPTS
5- Faites plusieurs modifications sur la table SCOTT.EMP en se connectant avec l’utilisateur user01
6- Affichez les résultats de l’audit (DBA_AUDIT_OBJECT)
7- Donner le droit SELECT sur SCOTT.DEPT à user01 en utilisant le compte SCOTT.
N.B formatez les colonnes username (10 position), TimStamp (10 position) et SQL_TEXT (50 position)
(sous SQLPLUS tapez COL nomColonne FORMAT ANbrePositions)
Audit par accès de type OBJET
8- Remarquez que pour l’audit fait par SESSION on ne sauvegarde qu’une seule requête par session.
9- Modifiez l’audit réalisé précédemment pour qu’il puisse pendre en charge l’audit BY ACCESS
10- Lancez plusieurs select avec le compte user1 sur la table EMP.
11- Vérifiez la prise en charge de l’audit de type ACCESS
Audit par accès de type Ordre SQL
12- Lancez l’audit sur toute requête avec l’option BY ACCESS
 Select sans succès
 Update avec succès
13- Vérifiez les options d’audit en consultant la table DBA_STMT_AUDIT_OPTS
14- lancez un select sur la table v$database en utilisant le compte SCOTT ;
15- Lancez un update sur la table SCOTT.DEPT en modifiant le nom du département N°30 ;
16- Vérifiez l’enregistrement de l’audit en consultant la table DBA_AUDIT_OBJECT ;

Sécurité des bases de données D.BOUZIDI


ISGA A.U : 2018/2019
Rabat

ADMINISTRATION DES BASES DE DONNEES


Analyse des fichiers logs : LogMiner

1. Installer l’outil LogMiner en exécutant les deux scripts SQL qui se trouve dans le répertoire
D:\oracle\....\Db_home1\RDBMS\ADMIN\
 dbmslm.sql : utile pour installer le package DBMS_LOGMNR permettant d’analyser les
fichiers de journalisation
 dbmslmd.sql : installant le package DBMS_LOGMNR_D utile pour construire le
dictionnaire de données

2. Préparez l’environnement pour la création du dictionnaire de données (les définitions des objets
présents dans la base de données) dans le fichier plat monDico.ora :
 Créez le répertoire D:\oracle\temp\
 Initialisez le paramètre utl_file_dir:
ALTER system SET utl_file_dir='D:\oracle\temp\' SCOPE=spfile;
 Redémarrez la base de données
3. Modifiez la base de données pour qu’il puisse enregistrer plus d’informations dans les fichiers log
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
4. Affichez le fichier log en cours d’utilisation
 select MEMBER from v$logfile a, v$log b where a.group#=b.group# and
b.STATUS='CURRENT';
5. Appliquez un log switch pour passer au fichier log suivant
 Alter system switch logfile ;
6. Réaffichez le fichier log en cours d’utilisation
7. Faire des mises à jour sur la base de données qu’on va analyser par la suite à partir du fichier log,
pour cela :
 Ouvrir une nouvelle fenêtre DOS
 Se connecter avec l’utilisateur scott/tiger
 Modifier le salaire de l’employé ADMAS en donnant un salaire égal à 3000
 Faire un commit
 Se déconnecter et fermer la fenêtre
8. Appliquez un log switch pour passer au fichier log suivant
9. Créez le dictionnaire de données en exécutant la procédure :
EXECUTE Dbms_Logmnr_D.Build(dictionary_filename
=>'Dico.ora',dictionary_location =>
'D:\oracle\temp\',options=>dbms_logmnr_d.store_in_flat_file);

10. Vérifiez la création du Snapshot du dictionnaire de données


11. Spécifiez le fichier de journalisation à analyser
 Ajouter le premier fichier log à analyser en utilisant la commande :
EXECUTE Dbms_Logmnr.Add_Logfile(options => Dbms_Logmnr.New,
logfilename =>'D:\oracle\.....\nomDuFichierLogAAnalyser.log');

//Le nomDuFichierLogAAnalyser.log est celui où sont stockées les modifications sur le


//salaire de « ADAMS »

Administration des bases de données 1/2 D.BOUZIDI


Remarques :

 Pour ajouter d’autres fichiers log à la liste des fichiers à analyser on exécute la commande
suivante :
EXECUTE Dbms_Logmnr.Add_Logfile( options => Dbms_Logmnr.AddFile,
logfilename =>'D:\cheminDuFichierLog\nomFichierAAnalyser.log');
 Pour supprimer un fichier log de la liste des fichiers à analyser on exécute la commande
suivante :
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(
LOGFILENAME => 'D:\cheminDuFichierLog\nomFichierASupprimer.log',
OPTIONS => DBMS_LOGMNR.REMOVEFILE);

12. Démarrer l’analyse du fichier log en exécutant la commande :


EXECUTE Dbms_Logmnr.Start_Logmnr(dictfilename=>'D:\oracle\temp\Dico.ora');
Remarques :

 On peut lancer logMiner sur une période donnée


EXECUTE Dbms_Logmnr.Start_Logmnr(dictfilename =>'D:\temp\dico.ora',
starttime => to_date('01-Jan-2008 00:00:00', 'DD-MON-YYYY HH:MI:SS'),
endtime => to_date('01-Jan-2008 10:00:00', 'DD-MON-YYYY HH:MI:SS'));

 On peut lancer logMiner en spécifiant un numéro de SCN


EXECUTE Dbms_Logmnr.Start_Logmnr(dictfilename =>'D:\temp\dico.ora',
startscn => 345, endscn => 400);

 On peut lancer logMiner que pour les données validées


EXECUTE Dbms_Logmnr.Start_Logmnr(dictfilename =>'D:\temp\dico.ora',
options=>DBMS_LOGMNR.COMMITTED_DATA_ONLY);

13. Affichez le nom de la base et l’emplacement de fichier du dictionnaire de données de la session


LogMiner (utilisez la vue V$LOGMNR_DICTIONARY)
14. Affichez la liste des fichiers log enregistrés dans la session de LogMiner (utilisez la vue
V$LOGMNR_LOGS)
15. Affichez toutes les informations qui ont été effectuées sur la table EMP du user SCOTT (utilisez la
vue V$LOGMNR_CONTENTS)
16. Pour fermer la session LogMiner sous SQLPLUS exécuter la commande suivante :
EXECUTE Dbms_Logmnr.end_logmnr;

Administration des bases de données 2/2 D.BOUZIDI

Vous aimerez peut-être aussi