Académique Documents
Professionnel Documents
Culture Documents
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 ;
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
+
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
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
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
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;
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
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
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;
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
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
D.BOUZIDI 30
Sauvegarde incrémentielle
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"
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
ARC ARC
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
RMAN> RUN {
2> ALLOCATE CHANNEL t1 TYPE "Disk" MAXPIECESIZE = 4G;
3> BACKUP FORMAT "df_%t_%s_%p" FILESPERSET 3(tablespace users);
4> }
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
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
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 ;
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
0 2 2C 1 2 2C 2C 0
Dim Lun Mar Mer Jeu Ven Sam Dim
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']
D.BOUZIDI 52
Commandes RMAN
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
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
D.BOUZIDI 57
Restauration à l’aide de RMAN
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
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;
}
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
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;
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
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)
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 ;
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);
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);