Rubriques Unix et Oracle
Accueil du siteOracleadministrationSauvegarde / restauration
Sauvegarder une base de données avec RMAN
mercredi 2 mars 2005
par Laurent
popularité : 38%

Liens en relations

- Fonctionnement et configuration de RMAN
- Restaurer une base de données Oracle avec RMAN
- Astuces supplémentaires

RMAN stocke ses sauvegardes en jeu de sauvegardes (ou Backup sets).

Un backup set est une structure logique contenant des parties de sauvegardes (ou backup pieces) qui sont des fichiers contenant la donnée. Généralement un backup set ne contient qu’une pièce.

Le logiciel RMAN étant le seul à pouvoir interpréter ces backup sets.

Sauvegarder la totalité d’une base


RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

Cette commande sauvegarde la base de données ainsi que les fichier d’archive (REDOLOG journalisés). Si le mode CONTROLFILE AUTOBACKUP est réglé sur ON, une copie du fichier de contrôle ainsi que du spfile sera effectuée après la sauvegarde.

Sauvegarder un tablespace


RMAN> BACKUP TABLESPACE system, users, tools, undotbs;

Cette commande va sauvegarder les tablespaces SYSTEM, USERS, TOOLS et UNDOTBS

Sauvegarder un fichier de données


RMAN> BACKUP DATAFILE '?/oradata/trgt/users01.dbf',  ?/oradata/trgt/tools01.dbf';

Cette commande va sauvegarder les fichiers de données $ORACLE_HOME/oradata/trgt/users01.dbf et $ORACLE_HOME/oradata/trgt/tools01.dbf.

On peut également stipulé le numéro d’id du datafile à sauvegarder. Cette info peut s’obtenir avec la requête suivante :


SQL> select file_id,file_name
2 > from dba_data_files
3 > /
FILE_ID FILE_NAME
-------- -------------------------------------------------
      3 /u02/oradata/mgmt/users01.dbf
      2 /u02/oradata/mgmt/undotbs01.dbf
      1 /u02/oradata/mgmt/system01.dbf
      4 /u02/oradata/mgmt/example01.dbf
      5 /u02/oradata/mgmt/undotbs02.dbf

La commande suivante sauvegardera donc le fichier "/u02/oradata/mgmt/example01.dbf" :


RMAN> BACKUP DATAFILE 4;

Sauvegarder le fichier de contrôle


RMAN> BACKUP CURRENT CONTROLFILE ;

Cette commande va sauvegarder le fichier de contrôle courant. Cependant, si on est en mode autobackup ON, une copie du fichier sera effectuée à chaque fin de sauvegarde.

Sauvegarder les journaux de transactions (redo-log)

Attention : on ne sauvegarde JAMAIS les REDO-LOG courant avec RMAN

Cependant, l’utilisation de RMAN nécessite que la base cible archive ses redo-log (mode ARCHIVELOG). On peut donc aisément sauvegardé tout ou partie des redo-log archivés.


RMAN> BACKUP ARCHIVELOG ALL;

Cette commande va sauvegarder l’ensemble des journaux de transactions archivés.


RMAN> BACKUP ARCHIVELOG TIME BETWEEN 'SYSDATE-31' AND 'SYSDATE';

Cette commande va sauvegarder les journaux de transactions archivés du dernier mois écoulé.

Autres paramètres de la sauvegarde

ParamètreExempleExplication du fonctionnement
FORMATFORMAT ‘/tmp/%U’Spécifie une localisation et un nom pour les pièces de sauvegardes.
FILESPERSETFILESPERSET 20Limite le nombre de fichiers de données ou de log archivés par jeu de sauvegarde
MAXSETSIZEMAXSETSIZE 5GSpécifie la taille maximum d’un jeu de sauvegarde
COPIESCOPIES 2Spécifie le nombre de copies de chaque jeu de sauvegarde
TAGTAG ‘backup_du_lundi’Spécifie une étiquette pour la sauvegarde. Par défaut RMAN, génère cette étiquette

Exemples :


RMAN> BACKUP TABLESPACE tools, indx, undotbs FORMAT '?/oradata/%U';
RMAN> BACKUP FILESPERSET 20 FORMAT='AL_%d/%t/%s/%p' ARCHIVELOG LIKE '%arc_dest%';
RMAN> BACKUP TAG 'weekly_full_db_bkup' DATABASE MAXSETSIZE 10M;
RMAN> BACKUP COPIES 2 DEVICE TYPE sbt BACKUPSET ALL;

Sauvegarde incrémentale

Lors d’un backup incrémental, on doit toujours spécifier le niveau 0 qui correspond à une sauvegarde complète de la base.


RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;

Ensuite, on peut créer des sauvegardes à un niveau plus élevé.


RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;

Dans notre exemple, seuls les blocs ayant été modifiés depuis la sauvegarde de niveau 0 seront sauvegardés.

Remarque : les sauvegardes incrementales sont bien plus complexes que cette simple commande. D’autres scénarii sont donc envisageables.

Valider ses sauvegardes

On peut tester le fonctionnement d’une sauvegarde sans générer de sortie avec l’option VALIDATE.

Par exemple :


RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;
RMAN> BACKUP VALIDATE TABLESPACE tools;

Cette approche va tester que la sauvegarde se fera sans problème.

Cependant, une fois une sauvegarde effectuée on peut tester que la restauration se fera sans encombre. La commande à exécuter est donc la suivante :


RMAN> RESTORE DATABASE VALIDATE;

Copie d’un fichier

L’outil RMAN permet également de réaliser des copies de fichiers. Ces copies sont équivalentes à des copies de fichiers OS. Cela peut s’avérer nécessaire lorsque l’on désire réaliser des restaurations « user-managed ».


RMAN> COPY CURRENT CONTROLFILE TO '/save/mgmt_rman/cf_testcopie.ctl';
RMAN> COPY DATAFILE 1 TO '/save/mgmt_rman/dbf1_bkp.dbf'

La suite...

 
Messages de forum :
Sauvegarder une base de données avec RMAN
jeudi 7 octobre 2010
par  daddy

Bonjour,

Avant tout je tiens a vous remercier pour cet article. je le trouve très claire et détaillé.

Mais je voudrai savoir est ce que avec rman on sauvegarde qu’une instance à la fois. et si on a plusieurs instance comment on fait ?



    commentaire de Alexandra
    lundi 28 octobre 2013
    par  Alexandra
    Fabuleux, surtout que voici plusieurs fois que vos billets m’apportent des réponses qui me faisaient défaut. Merci grandement. Alexandra du blog http://www.comparatifbanqueenligne2013.com
Sauvegarder une base de données avec RMAN
mardi 4 décembre 2007
merçi pour cette doc elle est très efficasse

    Sauvegarder une base de données avec RMAN
    mardi 28 octobre 2008
    Merci pour tout. Une documentation pertinente.