Sauvegarder une base de données Oracle avec RMAN
Restaurer une base de données Oracle avec RMAN
Astuces supplémentaires
RMAN est l’outil fourni par Oracle pour gérer les sauvegardes des bases de données.
RMAN est un outil en ligne de commande tel que SQL*Plus, son rôle étant différent.
RMAN vise toujours une base cible ou TARGET à sauvegarder. RMAN peut gérer un catalogue (schéma Oracle) permettant de centraliser les sauvegardes/restauration de plusieurs bases de données. Ce catalogue permet aussi de sauvegarder toutes les configurations de sauvegarde, mais aussi de gérer certaines subtilités supplémentaires comme la gestion de scripts. Dans le cas d’un fonctionnement avec un catalogue, on se connecte au catalogue, puis à la cible, enfin on réalise ce que l’on veut sur la base cible en centralisant les informations dans le catalogue.
Utiliser un catalogue permet :
d’augmenter la fléxibilité et l’accès aux fonctionnalités avancées de RMAN,
de conserver des métadonnées de sauvegarde/restauration passées,
de centraliser les opérations de sauvegardes,
Mais utiliser un catalogue, c’est aussi quelques petits soucis comme :
les upgrades de catalogue qui peuvent devenir problématiques,
la gestion d’un catalogue augmente quelque-peu la compléxité de l’architecture,
la gestion d’un catalogue peut engendrer des problèmes de stockage. Mais tout est relatif car Oracle préconise quelques 10Mo pour la gestion du catalogue.
Le lancement de RMAN se fait avec la commande "rman". Sans paramètres on obtient le prompt RMAN> .On peut, à partir de là, se connecter à une base cible, à un catalogue et réaliser toutes les opérations. On peut également passer les paramètres "target" ou "catalog" suivis des identifiants de connexions.
Considérons que nous allons créer un catalogue sur une base nommée ORCL.
Ces opérations se font avec SQL*Plus connecté en profil de DBA sur la base ORCL.
$ export ORACLE_SID=ORCL
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> create tablespace rman_ts datafile
2 '/u01/app/oracle/oradata/orcl/rman_01.dbf'
3 size 25M extent management local
4 /
SQL> create user rman_db identified by rman_db
2 default tablespace rman_ts
3 quota unlimited on rman_ts
4 account unlock
5 /
SQL> grant recovery_catalog_owner to rman_mydb
2 /
SQL> grant connect,resource to rman_mydb
2 /
Pour cela, il faut nous connecter au catalogue (vierge pour l’instant), en utilisant une des chaînes suivantes :
1°) En local
$ export ORACLE_SID=orcl
$ rman catalog rman_db/rman_db log=catalog.log
2°) En distant
$ rman catalog rman_db/rman_db@orcl log=catalog
Ensuite, on créé le catalogue.
RMAN> create catalog tablespace rman_ts;
le fichier de log doit, en toute logique, contenir les informations suivantes :
connected to recovery catalog database
recovery catalog is not installed
RMAN>
recovery catalog created
RMAN>
Recovery Manager complete.
La connexion à un catalogue se fait comme suit :
$ rman catalog rman_user/xxxx[@DB]
OU
RMAN> connect catalog rman_user/xxxx[DB];
La connexion à une base cible se fait comme suit :
$ rman target sys/mdp@baseCible
ou
RMAN> connect target sys/mdp@baseCible
Dans notre exemple, nous considérons les données suivantes :
Base du catalogue | Base Cible |
---|---|
ORCL | MGMT |
Une fois connecté à un catalogue. Il faut enregistrer la base cible à insérer au catalogue. Pour cela, suivre les instructions suivantes
1°) Connexion
$ rman catalog rman_db/rman_db@orcl
RMAN> connect target sys/orcl@mgmt
connected to target database: MGMT (DBID=2459824796)
2°) Enregistrement de la base par la commande REGISTER DATABASE
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
Une fois connecté, il faut configurer certains paramètres pour effectuer la sauvegarde. Ci dessous, on trouvera les principaux paramètres :
La commande permettant de lister tous les paramètres de sauvegardes de la base cible est la commande SHOW ALL ;
RMAN> show all;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
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 SNAPSHOT CONTROLFILE NAME TO '/u01/product/ora9204/dbs/snapcf_mgmt.f'; # default
Le périphérique de sauvegarde peut-être de type DISK ou SBT (pour lecteur de bande).
RMAN> CONFIGURE [DEFAULT] DEVICE TYPE TO DISK;
OU
RMAN> CONFIGURE [DEFAULT] DEVICE TYPE TO SBT;
RMAN offre la possibilité de paralléliser les opérations de sauvegarde. On peut donc allouer plusieurs canaux de sauvegarde par type de device. Si on considère que le device DISK ait été configuré en parallèle sur 2 canaux comme suit :
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
Alors, on peut créer deux canaux de sauvegardes en leur spécifiant le chemin des jeux de sauvegardes :
RMAN> configure channel 1 DEVICE TYPE DISK FORMAT '/u04/save/mgmt_rman/ora_df%t_s%s_s%p';
RMAN> configure channel 2 DEVICE TYPE DISK FORMAT '/u05/save/mgmt_rman/ora_df%t_s%s_s%p';
%t représente la date de sauvegarde (sous forme de timestamp sur 4 octets) %s représente le numéro du jeu de sauvegarde (backup set). %p représente la numéro de la partie de la sauvegarde (backup piece).
Cette option permet de régler le délai d’expiration des sauvegardes.
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
Ainsi, les sauvegardes expireront lorsqu’elles auront 7 jours.
On peut aussi spécifier le nombre de jeux de sauvegarde. Ainsi la commande suivante invalidera les 3eme, 4eme, 5eme , et au delà, jeux de sauvegardes.
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY = 2;
La commande suivante permet de sauvegarder le fichier de contrôle après chaque opération de sauvegarde :
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
Afin de changer la localisation de ce fichier, il faut changer la configuration avec la commande suivante :
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/save/mgmt_rman/cf%F';
Pour remettre la configuration à zéro d’un paramètre, il suffit de lui apposer la mention CLEAR en fin de commande : Ex :
RMAN> CONFIGURE RETENTION POLICY CLEAR;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
une chose à dire : PARFAIT !!
Je ne connais pas le spectre de vos connaissances en terme de bases de données... mais un tutoriel SQLServer je serais preneur !
En tout les cas encore bravo et bonne continuation !
Désolé, je n’ai pas de papiers détaillés sur les opérations de sauvegarde restauration sous SQL Server. En tout cas, merci pour le commentaire !
Laurent