Rman: Sauvegarde complète de la base ORCL
Ici toutes les commandes sont faites par l’utilisateur « oracle » , notre base de données cible à pour SID
« ORCL ».
Nous allons dans un premier temps créer notre catalogue
• Créer notre tablespace et un utilisateur avec les droits
$ sqlplus /nolog
$ connect /as sysdba
SQL> create tablespace rman
2 datafile ‘/u01/app/oracle/oradata/ORCL/[Link]’
3 size 10m autoextend on next 5m ;
Tablespace created.
SQL> create user rman identified by rmanpwd default tablespace rman ;
User created
SQL> grant connect , resource , recovery_catalog_owner to rman ;
Grant succeded.
• Maintenant que le tablespace et l’utilisateur sont créés, nous allons créer le catalogue.
• On se connecte au catalogue « vierge »
$ rman catalog rman/rmanpwd@orcl
connected to recovery catalog database
recovery catalog is not installed
RMAN> create catalog ;
Recovery catalog created.
• Nous allons maintenant enregistrer notre base de données ORCL dans le référentiel (rman target /
catalog UtilisateurRman@SidBaseCible)
$ rman target / catalog rman@orcl
#(un mot de passe vous sera demandé , c’est le mot de passe de l’utilisateur rman dans notre cas
rmanpwd)
RMAN> register database ;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
Maintenant que tout cela est fait , il nous faut configurer certains paramètres RMAN (dont les fameux
window et redundancy vu à l’introduction)
• Dans un premier temps , allons lister tous les paramètres avec la commande show all:
RMAN> show all ;
======================================================================
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘%F';
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128′; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC’ AS OF RELEASE ‘DEFAULT’ OPTIMIZE FOR
LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
‘/u01/app/oracle/home/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default
======================================================================
• Configuration stratégie de conservation :
On a deux méthodes pour la conservation des sauvegardes, d’une part on a la méthode dit « fenêtre de
récupération » ou « window » cela permet de régler le délais d’expiration des sauvegardes en nombre de
jours .(methode utilisée dans notre cas)
RMAN> configure retention policy to recovery windows of 7 days ;
Dans notre cas , les sauvegardes datant de plus de 7 jours seront marquées comme obsolètes et
supprimer par RMAN si besoin d’espace est.
La deuxième méthode dit « redondance » ou « redundancy » se base pas sur le temps mais sur le
nombre de jeux de sauvegardes.
RMAN> configure retention policy to redundancy = 3 ;
Dans ce cas là , tous les jeux de sauvegardes (fichiers identiques…) seront obsolètes sauf les 3 jeux de
sauvegardes les plus récents.
• Sauvegarde du fichier de contrôle:
En raison de l’importance du fichier de contrôle , il serait judicieux de le sauvegarder lors de chaque
backup et de le mettre pourquoi pas dans un dossier spécifique. Pour ce faire dans un premier temps
nous allons créer le dossier qui recevra le fichier de contrôle avec l’utilisateur root et donner tous les
droits à l’utilisateur oracle puis nous allons configurer au niveau de RMAN.
#mkdir -p /save/rman
#chown –R oracle /save/rman
#chgrp –R dba /save/rman
$ rman target / catalog rman/rmanpwd@orcl
RMAN> configure controlfile autobackup on ;
RMAN> configure controlfile autobackup format for device type disk to ‘/save/rman/cf%F’ ;
• Allons faire en sorte de compresser nos sauvegardes.
Lors d’une opération de restauration ou de récupération les fichiers seront automatiquement
décompressés.
RMAN> configure device type disk backup type to compressed backupset ;
Les Sauvegardes <==
• Sauvegarde complète de notre base de données : ORCL
Dans notre sauvegarde nous allons copier tous les fichiers de la base y compris le SPFILE vers la zone
de récupération flash ( je vais vous montrer par la suite un moyen de savoir où se trouve la zone en
question)
RMAN> backup as backupset database spfile ;
après quelques temps vous aurez deux lignes du genre « Finished backup at … » et « Finished Control
File and SPFILE Autobackup at … »
Maintenant il faut qu’on assure la présence d’archives redo pour les transactions notamment ceux
survenus lors de l’opération de sauvegarde, cela nous garanti la récupération de média après la
restauration de cette sauvegarde.
RMAN> sql ‘alter system archive log current’ ;
Voir où se trouve la zone de récupération flash, lancez la commande avec l’utilisateur system :
SQL > show parameter db_recovery_file_dest
Ici on voit que le dossier est : /u01/app/oracle/flash_recovery_area
Regardons un peu dans le dossier
D’autres fonctionnalités avec RMAN
Il faut savoir qu’il existe plusieurs types de sauvegardes. Je vais vous parler de quelques-uns avec les
commandes adéquates sans pour autant rentrer dans le vif du sujet.
Sauvegarde de tablespace
voir tous les tablespaces disponibles
Sauvegarder:
RMAN> backup as backupset tablespace rman ;
Sauvegarde de fichiers de données :
voir les fichiers de données
Sauvegarder:
RMAN> backup as backupset datafile ‘/u01/app/oracle/oradata/orcl/[Link] ‘
• Sauvegarder tous les fichiers redo archivés
RMAN> backup archivelog all ;
• Sauvegarde incrémentale
Au lieu de faire des sauvegardes compléte , on peut faire des sauvegardes incrémentales. La première
sauvegarde incrémentale doit être de niveau zero , il faut la voir comme une sauvegarde complète puis
par la suite on aura des sauvegardes de niveau 1 qui seront soit différentielle par défaut ou cumulatives.
La différence c’est que la différentielle agit selon la dernière sauvegarde incrémentale alors que la
cumulative agit selon la sauvegarde incrémentale initiale (celle du niveau 0)
• Sauvegarde incrémentale de niveau 0 + compression :
RMAN> backup incremental level 0 as compressed backupset datanase ;
• Sauvegarde incrémentale de niveau 1+ compression (par défaut différentielle):
RMAN> backup as compressed backupset incremental level 1 datanase ;
• Sauvegarde incrémentale de niveau 1 cumulative + compression :
RMAN> backup as compressed backupset incremental level 1 cumulative datanase ;
• Valider nos sauvegardes
Il serait bien de vérifier que nos sauvegardes ne présentent pas d’altérations, pour se faire voici quelques
exemples de vérifications.
• Validation de la base entière et les fichier redo archivés
RMAN> backup validate database archivelog all ;
• Vérifier qu’une restauration sera fait sans problèmes
RMAN> restore validate database ;
• Erreurs rencontrées
Je ne vais pas vous cacher que j’ai appris seul l’utilisation de l’utilitaire RMAN, donc j’ai rencontré
quelques problèmes lorsque j’ai dû pratiquer. L’une des erreurs rencontrées est l’erreur :
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
Pour résoudre :
1. Se connecter à sqlPlus et faire un shutdown immediate
2. Monter la base de données
3. Mettre la base en mode archivelog
4. Ouvrir la base de données