Blog

Blog

Restaure d'une sauvegarde full avec Rman

Ça peut sembler le B.A.-BA mais c'est pas si simple...

Prérequis

Vous aurez besoin du DBID de votre base avant de pouvoir faire la sauvegarde... Vous pouvez le récupérer grâce à cette simple requête SQL (possible dès l'état MOUNT):
SELECT dbid FROM v$database;
Et si la base ne peut pas être montée (pb de controlfiles par exemple) ?
J'espère que vous avez gardé les logs de votre sauvegarde full... C'est ce qui devrait vous sauver!
connected to target database: YYY (DBID=xxx)

La procédure

Toutes les actions suivantes peuvent être effectuées sous rman. il n'est pas nécessaire de se connecter à sqlplus pour effectuer les startup ou open de la base de données. On suppose que la base de données est arrêtée et droppée.
  1. Settage du dbid
  2. SET dbid=xxx;
  3. démarrage en NOMOUNT de la base de données
  4. STARTUP NOMOUNT;
  5. Restaure des controlfiles
  6. RUN 
    {
    ALLOCATE CHANNEL t1 TYPE='your_type';
    RESTORE CONTROLFILE FROM TAG 'your_tag';
    RELEASE CHANNEL t1;  
    }
  7. Passage de la base en mode MOUNT
  8. ALTER DATABASE MOUNT;
  9. Restore de la base
  10. RUN 
    { 
    ALLOCATE CHANNEL t1 TYPE='your_type';  
    RESTORE DATABASE FROM TAG 'your_tag'; 
    RELEASE CHANNEL t1;  
    }
  11. Ouverture de la base
  12. ALTER DATABASE OPEN RESETLOGS;
Dans mon exemple, la sauvegarde full a a été faite à froid avec un tag.