Rubrique précédente: Gestionnaire de récupération (RMAN) et restauration d'une base de données vers un autre serveurRubrique suivante: Restauration à partir de ligne de commande


Restauration d'une base de données vers un autre hôte à l'aide de RMAN

Vous pouvez restaurer une base de données vers un autre hôte en utilisant RMAN.

Pour restaurer une base de données vers un autre hôte à l'aide de RMAN

  1. Entrez les commandes suivantes pour obtenir la valeur db_id (ID de base de données) de la base de données à restaurer à partir du catalogue RMAN :
    sqlplus <utilisateur rman>/<mot de passe rman>@<service rman>
    SQL> select db_key, db_id, bs_key, recid, stamp, backup_type, start_time, status from rc_backup_set;
    
  2. Identifiez la valeur db_id qui correspond à la base de données que vous souhaitez restaurer.
  3. Entrez la commande suivante pour déterminer le numéro de fichier et l'emplacement de chaque fichier de données dans la base de données source :
    SVRMGR> select file#, name from v$data file;
    
  4. Copiez le fichier init<$ORACLE_SID>.ora à partir du répertoire $ORACLE_HOME/dbs situé sur <host1> vers <host2>.
  5. Modifiez $ORACLE_HOME/dbs/init<$ORACLE_SID>.ora et ajustez tous les chemins d'accès pour refléter la nouvelle structure de répertoire sur <host2>.
  6. Configurez SQL*Net pour vous assurer que le catalogue RMAN est visible à partir des deux bases de données installées sur les éléments <host1> et <host2>.
  7. Configurez le fichier de mots de passe Oracle sur <host2> en entrant la commande suivante :
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=kernel.
    
  8. Entrez la commande suivante pour démarrer la base de données de destination avec l'option nomount :
    SVRMGR> startup nomount pfile=$ORACLE_HOME/dbs/init<$ORACLE_SID>.ora
    
  9. Entrez les commandes suivantes pour restaurer le fichier de contrôle :

    Remarque :  Vous aurez besoin de la valeur db_id obtenue à l'étape 2.

    rman rcvcat <utilisateur rman>/<mot de passe rman>@<service rman>
    
    RMAN> set dbid=<source database db_id value>
    
    RMAN> connect target <username>/<password>;
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> restore controlfile;
    
    RMAN> release channel dev1;
    
    RMAN> }
    
  10. Entrez la commande suivante pour monter la base de données de destination :
    SVRMGR> alter database mount;
    
  11. Définissez le nouvel emplacement de chaque fichier de données dans le script RMAN à l'aide des emplacements déterminés dans l'étape 3.
  12. Entrez les commandes suivantes pour restaurer la base de données à l'aide des nouveaux emplacements déterminés dans l'étape 11 :
    rman target <utilisateur>/<mot de passe> rcvcat <utilisateur rman>/<mot de passe rman>@<service rman>
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> set newname for data file 1 to '<new path>'
    
    RMAN> set newname for data file 2 to '<new path>'
    
    ...
    
    RMAN> restore database;
    
    RMAN> switch data file all;
    
    RMAN> release channel dev1;
    
  13. Entrez la commande suivante pour récupérer la base de données à l'aide des fichiers de contrôle restaurés :
    SVRMGR> recover database using backup controlfile until cancel;
    
  14. Entrez la commande suivante pour ouvrir la base de données à l'aide de l'option resetlogs :
    SVRMGR> alter database open resetlogs;
    
  15. Si l'erreur ORA-00344 : unable to re-create online log %s se produit :
    1. Entrez les commandes suivantes pour renommer chaque fichier de journalisation en ligne :
      SVRMGR> alter database rename file <chemin_journal_en ligne_nº1> 
      to <nouveau_chemin_journal_en ligne_nº1>;
      ...
      SVRMGR> alter database rename file <chemin_journal_en ligne_nº n>
      to <nouveau_chemin_journal_en ligne_nº n>;
      
    2. Entrez la commande suivante pour ouvrir la base de données :
      SVRMGR> alter database open resetlogs;