Vous êtes sur la page 1sur 23

SOMMAIRE

SOMMAIRE

Table des matières


1.PRESENTATION DE RMAN 2
1.1 ORACLE ET SES SAUVEGARDES 2
1.1.1 Oracle Database 2
1.1.2 Importance des Sauvegardes sous Oracle 2
1.1.3 Pourquoi Choisir RMAN  ? 3
1.2 DEFINITION DE RMAN 4
1.3 LES FONCTIONS DE RMAN 4
1.4 TYPES DE SAUVEGARDE AVEC RMAN 5
1.4.1 Sauvegardes Incrémentielles 5
1.4.2 Sauvegarde Complète ou full 7
1.5 ARCHITECTURE 7
2.MISE EN ŒUVRE 11
2.1 FONCTIONNEMENT 11
2.1.1 Composants 11
2.1.2 Avec ou sans Catalogue  ? 12
2.2 SAUVEGARDE 13
2.2.1 Préparation de l’environnement OS 13
2.2.2 Sauvegarde avec catalogue 14
2.2.3 Sauvegarde sans catalogue (avec fichier de contol) 18
2.3 RESTAURATION 20
CONCLUSION 22
BIBLIOGRAPHIE 22

PAGE 1
1. PRESENTATION DE RMAN

1.1 ORACLE ET SES SAUVEGARDES

1.1.1 Oracle Database


Oracle Database est un système de gestion de base de
données relationnelle (SGBDR) qui depuis l'introduction du support
du modèle objet dans sa version 8 peut être aussi qualifié de système de
gestion de base de données relationnel-objet (SGBDRO). Fourni
par Oracle Corporation, il a été développé par Larry Ellison,
accompagné entre autres, de Bob Miner et Ed Oates.

1.1.2 Importance des Sauvegardes sous Oracle


La sauvegarde et la restauration, permettent de se prémunir plus ou
moins parfaitement de la perte accidentelle de données physiques,
fichier de données ou autres.
Les principaux cas de figure qui nécessitent une restauration sont: les
corruptions de fichier, les pertes de fichier ou les pertes de disque.
Elles obéissent à une stratégie :
- Quoi sauvegarder : totalité, tablespace, uniquement les données
sensibles, etc.
- Quand : fréquence pluri quotidienne, quotidienne, hebdomadaire, etc.
- Comment : à froid, à chaud, physiquement, logiquement
Répondent à des contraintes :
- disponibité des données : haute, moyenne, basse
- importance relative de certaines données
- temps de reprise
- volume maximum de perte supporté
- économie (par exemple la très haute disponibilité coute cher...)

PAGE 2
1.1.3 Pourquoi Choisir RMAN ?

La sauvegarde manuelle base fermée ne convient pas à un


environnement de production qui implique une disponibilité
maximum. L'utilisation de ce type de sauvegarde impliquerait donc des
types de sauvegarde différents entre les environnements de production
et les autres environnements.
-La sauvegarde "begin backup/end backup" nécessite de copier
manuellement les fichiers qui sont en mode backup. Les fichiers
controlfile ne peuvent être sauvegardés par cette méthode.
-L'export des données peut prendre beaucoup de temps et être
consommateur en ressource CPU. Cette méthode ne peut donc être
qu'une solution de secours.
-Oracle Recovery Manager permet de sauvegarder indifféremment à
chaud ou à froid les fichiers de données, les archive logs, le controlfile
et le fichier de démarrage spfile.

RMAN semble être la solution la plus appropriée pour les


environnements de production.

PAGE 3
1.2 DEFINITION DE RMAN

Oracle Recovery MANager (RMAN) est un outil utilisé par oracle, il


permet aux DBA (ou aux utilisateurs qui ont les privilèges admin) de
gérer les opérations de sauvegarde/restauration de manière souple et
optimisée.
RMAN est le successeur de EBU (Enterprise Backup Utility) et est codé
en Pro*C.
Il ne nécessite pas d'installation particulière.

1.3 LES FONCTIONS DE RMAN

RMAN offre ces différentes possibilités :


-Réaliser des sauvegardes globales de la base, de tablespaces, de
fichiers de données, de fichiers de contrôle et de fichiers d'archive.
-Réaliser des sauvegardes incrémentielles au niveau bloc de données
Oracle.
-Eviter de sauvegarder les blocs Oracle vides
-S'interfacer avec un outil de sauvegarde externe (gestionnaire de
médias).
-Garder la trace des sauvegardes dans un catalogue de récupération ou
dans les fichiers de contrôle.
-Effectuer des restaurations globales ou partielles.
-Paralléliser les opérations de sauvegarde/restauration.
-Gérer les périodes de conservation des sauvegardes.
-Placer les opérations de sauvegarde/restauration courantes dans le
catalogue sous forme de scripts.
-Dupliquer une base de données de manière simple.
-Mutualiser les scripts de sauvegardes.
-Editer des rapports.

PAGE 4
-Sauvegarder ou dupliquer les bases de données.
-Vérifier les sauvegardes effectuées en termes de corruption et ne
corrompt pas les bases qu'il sauvegarde.

1.4 TYPES DE SAUVEGARDE AVEC RMAN


Nous avons deux grands types de sauvegarde avec RMAN :
1.4.1 Sauvegardes Incrémentielles
Nous avons trois niveaux de sauvegardes incrémentielles :
Niveau 0 : Base de tous les autres niveaux (Sauvegarde de
l'ensemble des blocs contenant des données)
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.

Pour deux types de sauvegarde


-différentielles : Dans une sauvegarde différentielle de niveau n,
RMAN réserve tous les blocs qui ont changé depuis la dernière
sauvegarde incrémentielle cumulative ou différentielle au niveau n ou
n-1. RMAN détermine quelle sauvegarde de niveau n était la dernière
fois et réserve tous les blocs modifiés après cette sauvegarde. Si aucune
sauvegarde de niveau n n'est disponible, RMAN copie tous les blocs qui
ont été modifiés depuis la sauvegarde de niveau n-1.

PAGE 5
-cumulatives : Dans une sauvegarde cumulative de niveau n,
RMAN réserve tous les blocs qui ont été utilisés depuis la dernière
sauvegarde incrémentielle de niveau n-1. Les sauvegardes
incrémentielles cumulatives réduisent le travail requis pour la
récupération, garantissant que vous n'avez besoin que d'une seule
sauvegarde incrémentielle à partir d'un niveau particulier. Cependant,
les sauvegardes cumulatives nécessitent plus d'espace et de temps que
les sauvegardes différentielles, car elles copient le travail effectué par les
sauvegardes précédentes au même niveau.

Dans tous les cas, une sauvegarde de niveau 0 est nécessaire avant les
sauvegardes de niveau supérieur.
Une sauvegarde de niveau 0 est bien différente d'une sauvegarde
complète dans le cadre de votre stratégie de sauvegarde. Si
physiquement, une sauvegarde de niveau 0 est bien une sauvegarde
complète, une sauvegarde complète ne peut être considérée comme
une sauvegarde de niveau 0 par RMAN. Par exemple, le dimanche vous
faites une sauvegarde complète et une sauvegarde de niveau 0, le lundi
vous faites une sauvegarde de niveau 2 (rendue possible grâce à la
sauvegarde de niveau 0 de la veille). Si la base doit être restaurée le
lundi soir, vous ne pourrez pas utiliser la sauvegarde complète comme

PAGE 6
parente de la sauvegarde de niveau 2 du lundi. Pour RMAN, la
sauvegarde complète n'est pas inscrite dans votre stratégie, c'est donc
bien les sauvegardes de niveau 0 et 2 qu'il faudra restaurer.
La sauvegarde complète pourra servir éventuellement pour une copie
dans un autre environnement.

Dans la plupart des cas, si vous avez besoin de faire des restaurations
rapides, les sauvegardes cumulatives sont préférables aux sauvegardes
différentielles car il faudra restaurer uniquement la sauvegarde de
niveau 0 + une seule cumulative. Prenons un exemple avec 2 stratégies
de sauvegarde : une en mode différentiel et une en mode cumulatif.
Supposons un plantage de la base le mercredi matin. Pour restaurer
votre base avec la première stratégie, il faut restaurer la sauvegarde de
niveau 0 + 3 sauvegardes incrémentielles de niveau 2 (lundi, mardi et
mercredi). Dans le cas de la seconde stratégie en mode cumulatif, on ne
restaure que la sauvegarde de niveau 0 + la sauvegarde de niveau 2 du
mercredi, ce qui est forcément plus rapide. En revanche, l'espace
nécessaire pour la sauvegarde est plus important.

1.4.2 Sauvegarde Complète ou Full

Une sauvegarde complète stocke toutes les données sélectionnées pour


la sauvegarde. Une sauvegarde complète est au cœur de toute archive et
constitue la base des sauvegardes incrémentielles et différentielles. Une
archive peut contenir plusieurs sauvegardes complètes ou être
constituée uniquement d’elles. Une sauvegarde complète est
autosuffisante : pour en restaurer les données, l'accès à toute autre
sauvegarde n'est pas nécessaire.

1.5 ARCHITECTURE

PAGE 7
Environnement RMAN

Composants Description

L'application cliente qui gère les opérations de


sauvegarde et de récupération pour une base de
Client RMAN données cible. Le client RMAN peut utiliser Oracle
Net pour se connecter à une base de données cible, il
peut donc être situé sur n'importe quel hôte connecté
à l'hôte cible via Oracle Net.
Une base de données contenant les fichiers de
Base de données cible
contrôle, les fichiers de données et les journaux de
rétablissement archivés facultatifs que RMAN
sauvegarde ou restaure. RMAN utilise le fichier de
contrôle de la base de données cible pour collecter
des métadonnées sur la base de données cible et pour
stocker des informations sur ses propres
opérations. Le travail de sauvegarde et de
restauration est effectué par des sessions serveur
s'exécutant sur la base de données cible.
Une base de données contenant un catalogue de
Base de données du catalogue de
récupération , qui contient des métadonnées que
récupération RMAN utilise pour effectuer la sauvegarde et la
récupération. Vous pouvez créer un catalogue de
récupération contenant les métadonnées RMAN pour
plusieurs bases de données cibles. À moins que vous
n'utilisiez RMAN avec une base de données de
secours physique , un catalogue de récupération est
facultatif lorsque vous utilisez RMAN car RMAN
stocke ses métadonnées dans le fichier de contrôle de
chaque base de données cible.
L'utilisateur dans la base de données du catalogue de
Schéma du catalogue de récupération qui possède les tables de métadonnées
récupération gérées par RMAN. RMAN propage périodiquement les
métadonnées du fichier de contrôle de la base de
données cible dans le catalogue de récupération

Base de données de secours Une copie de la base de données principale mise à


physique jour avec les journaux de rétablissement archivés
générés par la base de données principale. Une base

PAGE 8
de données de secours physique a les
mêmes valeurs DBID et DB_NAME valeurs que la
base de données principale, mais une valeur
différente DB_UNIQUE_NAME. Vous pouvez
basculer vers la base de données de secours si la base
de données principale devient inaccessible.

RMAN peut créer, sauvegarder ou récupérer une base


de données de secours. Les sauvegardes que vous
effectuez sur une base de données de secours sont
utilisables sur la base de données principale ou une
autre base de données de secours pour la même base
de données de production. Le catalogue de
récupération est requis lorsque vous utilisez RMAN
dans l'environnement Data Guard.

Remarque : Une base de données de secours logique


est traitée comme une base de données distincte par
RMAN car elle a un DBID différent de sa base de
données principale.

Une copie de la base de données principale que vous


Base de données en double pouvez utiliser à des fins de test. Le DBID est
différent de la base de données à partir de laquelle il a
été créé.

Emplacement de disque que vous pouvez utiliser


Zone de récupération rapide pour stocker des fichiers liés à la récupération, tels
que des fichiers de contrôle et des copies de journaux
de rétablissement en ligne, des journaux de
rétablissement archivés, des journaux de retour en
arrière et des sauvegardes RMAN. Oracle Database
et RMAN gèrent automatiquement les fichiers dans la
zone de récupération rapide

Une application spécifique au fournisseur qui permet


Gestionnaire de média
à RMAN de sauvegarder sur un système de stockage
tel qu'une bande

PAGE 9
Un référentiel de métadonnées spécifique au
Catalogue de gestion des médias fournisseur sur une application de gestion des médias
Une interface basée sur un navigateur vers la base de
Oracle Entreprise Manager
données, y compris la sauvegarde et la récupération
via RMAN
Source : https://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmarchi.htm#BRADV101

PAGE 10
2. MISE EN ŒUVRE

2.1 Fonctionnement
2.1.1 Composants

RMAN fonctionne avec des processus serveurs :


Le premier processus appelle les deux paquetages
SYS.DBMS_RCVMAN et SYS.DBMS_BACKUP_RESTORE :
ce sont des paquetages pour sauvegardes/restaurations et sont créer
lors de l’exécution du script catproc.sql.

Un autre pour la mise à jour des logs internes. On peut visualiser les
opérations de sauvegarde en cours à l'aide de la vue v$session_longops.

Ces processus serveurs se connectent à la base de données cible par le


protocole Net8 d'Oracle. RMAN est donc une application cliente de la
base de données cible. Après la connexion, un ou des canaux de
communication sont ouverts permettant d'effectuer les opérations de
sauvegarde / restauration. Avant la version 9i d'Oracle, il faut allouer
explicitement un canal avant d'exécuter les commandes RMAN. Le
nombre de canaux (correspond au degré de parallélisme de l'opération
à effectuer. Le channel est le canal d'écriture vers le media de
sauvegarde (disque ou bande). Il peut être :

 Automatique (défini par commande configure) 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é. Dans le script RMAN, il n'y
aura alors pas de commande "allocate channel". Il utilisera les
canaux par défaut. Par exemple, pour vos sauvegardes sur disque,
vous pouvez créer un jeu de canaux par défaut.
 Spécifique : alloué spécialement pour la sauvegarde (par la
commande allocate). Par exemple, vous faites vos sauvegardes sur
bande et vous disposez d'un jeu de canaux par défaut pour le

PAGE 11
robot de sauvegarde et cette fois vous avez besoin d'une
sauvegarde sur disque, alors vous devez explicitement déclarer un
canal via la commande "allocate channel" spécifique aux disques.

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.
 Deux types de channel : Disk ou Tape.

2.1.2 Avec ou sans Catalogue ?

. Avant d'utiliser RMAN, il faut décider du type d'architecture. le


choix d'utiliser le catalogue conditionne plusieurs prérequis.

Le catalogue est un registre contenant de informations sur :


.Les ensembles de sauvegardes de fichiers de données et archives
.Les copies de fichiers de données
.La structure physique des bases de données cibles.
.Les archives logs.
.Les scripts de travail(si utilisés)
Il s'agit en fait d'une base de données Oracle qu'il faut créer,
administrer, surveiller et bien sûr sauvegarder.
Le catalogue permet de disposer de quelques fonctionnalités
supplémentaires, telles que la sauvegarde des scripts RMAN, ou certains
rapports.

. L'utilisation du catalogue étant optionnelle, RMAN est capable


d'enregistrer les informations dans le controlfile de la base de données
cible. Le control file devient alors critique et doit être sauvegardé

PAGE 12
régulièrement. L'option de configuration "autobackup on" permet de
sauvegarder le control file à chaque sauvegarde (base de données ou
archivelog).

Afin de limiter la taille du controlfile, il faut veiller à positionner


correctement le paramètre de démarrage
"CONTROL_FILE_RECORD_KEEP_TIMA" qui détermine la période de
rétention des sauvegardes dans le control file.

2.2 Sauvegarde

Comme RMAN peut être utilisé avec ou sans catalogue nous vous
proposons les deux comme exemple de sauvegarde d’une base de
données avec l’outil RMAN

2.2.1 Préparation de l’environnement OS 

Avant de pouvoir envisager d'utiliser RMAN, il faut configurer


proprement son environnement, c'est pourquoi l'ensemble des variables
mentionnées ci-dessous doivent être positionnées :

ORACLE_SID : Nom de l'instance

ORACLE_HOME : Répertoire d'installation du produit Oracle

PATH : Doit contenir le répertoire des binaires Oracle


soit $ORACLE_HOME/bin

LD_LIBRARY_PATH (sur Solaris et Digital Unix) (SHLIB_PATH sur


HP-UX - LIBPATH sur AIX), il doit contenir le répertoire des librairies
Oracle soit $ORACLE_HOME/lib

NLS_LANG si le jeu de caractères (characterset) de la base n'est pas


celui par défaut de l'OS

PAGE 13
2.2.2 Sauvegarde avec catalogue

*Création d’un utilisateur propriétaire du catalogue

Nous pouvons utiliser le compte SYS pour faire des backups sans
aucune autre configuration. Cependant, pour des sauvegardes
d'applications de production, il est préférable de créer un compte de
sauvegarde.
Le rôle nécessaire à l'utilisation du catalogue
est RECOVERY_CATALOG_OWNER. Il est indispensable que
l'utilisateur créé ait ce rôle.

*Création du catalogue

PAGE 14
Il faut se connecter à la base Oracle (dans laquelle le schéma a été créé
précédemment) à l'aide de la commande RMAN.
Le catalogue est créé, RMAN peut fonctionner correctement.

*Enregistrement sous RMAN de la base de données cible

Dans le cas d'une nouvelle mise en œuvre de sauvegarde de base de


données, il faut d'abord enregistrer la base de données sous RMAN.
Bien entendu, pour les sauvegardes ultérieures, il est inutile de
réenregistrer la base de données ; d'ailleurs RMAN refusera de la
réenregistrer parce qu'il ne peut y avoir qu'un seul "register" par base de
données afin de garantir l'unicité.

* resynchronisation entre les fichiers de contrôle de la base de données


cible et son catalogue

Lors de l'enregistrement, RMAN affecte un DBid unique à la base de


données cible afin de garantir la cohérence du catalogue et des

PAGE 15
sauvegardes à venir.
RMAN enregistre également lors du "register" les informations relatives
à la bonne sauvegarde de cette base (fichiers à sauvegarder,
emplacements, etc...), informations récupérées des fichiers de contrôle.
En outre, RMAN effectue aussi une resynchronisation entre les fichiers
de contrôle de la base de données cible et son catalogue.

* démarrage de la sauvegarde

On alloue un canal de type Disk pour effectuer la sauvegarde. Ensuite


on sauvegarde l'ensemble de la base de données dans des librairies
(backupsets) avec le format donné par les paramètres en %x dans le
répertoire de la base.

PAGE 16
* provoquer l’archivage du log courant

On change de redo log afin de provoquer un archivage du log courant.

* sauvegarde de l’ensemble des archives logs utiles

PAGE 17
On sauvegarde l'ensemble des archives logs utiles dans le répertoire de
la base afin de pouvoir les différencier des librairies des fichiers de
données (dfxxx).

* sauvegarde d’un fichier de control, fin sauvegarde

Enfin on sauvegarde un fichier de contrôle. La base est sauvegardée.

2.2.3 Sauvegarde sans catalogue (avec fichier de control)

PAGE 18
*La sauvegarde se fait quand la base est fermée

*RMAN est lancé

*Démarrage en mode MOUNT et Sauvegarde

PAGE 19
*La base est sauvegardée

2.3 Restauration

*La restauration se fait en lançant RMAN et en démarrant en


mode Mount

PAGE 20
*Puis avec la commande RESTORE DATABASE

*La restauration est terminée

PAGE 21
CONCLUSION
Recovery Manager est un outil très puissant qui aide de nombreuses
entreprises utilisatrices d’Oracle.
Il possède un potentiel intéressant tant en terme de fiabilisation de
systèmes que de souplesse, pour créer ou migrer des environnements.

BIBLIOGRAPHIE
https://oracle.developpez.com/guide/sauvegarde/rman/#L2.1
https://cspsid-gelios.ru/fr/acronis-inkrementnoe-rezervnoe-
kopirovanie-raznica-mezhdu-differencialnym.html
http://lao-dba.over-blog.com/article-23483900.html
https://docs.oracle.com/cd/E11882_01/backup.112/e10642/rcmarchi.htm
#BRADV1002
http://didier.deleglise.free.fr/dba/sauvegardes/sauve_main.htm

PAGE 22