Rubrique précédente: Restauration à un point dans le tempsRubrique suivante: Récupération d'une base de données


Gestionnaire de récupération (RMAN) et restauration d'une base de données vers un autre serveur

Lors de la restauration d'une base de données vers un autre serveur à l'aide du gestionnaire de restauration, les configurations suivantes sont requises :

Exemple de scénario :

Remarque : Le scénario utilisé dans la procédure suivante suppose que la base de données sauvegardée à partir du <Serveur-A> sera restaurée sur le <Serveur-B> et que le nom de la base de données sera conservé. Il suppose également que les structures des répertoires des hôtes d'origine et de destination sont identiques. Ce scénario implique également que vous utilisiez Oracle 10gR2.

Pour restaurer une base de données sur un deuxième serveur, procédez comme suit :

  1. Modifiez /etc/oratab à partir du deuxième serveur (Serveur-B) et ajoutez la ligne suivante à l'instance de base de données d'origine (src) comme utilisateur Oracle :
    src:/opt/oracle/10gR2:N
    
  2. Exécutez l'outil netca d'Oracle (assistant de configuration Oracle .NET) pour configurer un nom TNS pour le fichier catdb de la base de données du catalogue RMAN, afin d'en garantir la visibilité à partir de la base de données installée sur le Serveur-B comme utilisateur Oracle.
  3. Créez la même structure de répertoires que sur le Serveur-A d'origine avec l'utilisateur Oracle.

    Exemple :

    $cd $ORACLE_BASE/admin
    $mkdir src
    $mkdir adump  bdump  cdump  dpdump  pfile  udump
    $mkdir -p $ORACLE_BASE/oradata/src
    $mkdir -p $ORACLE_BASE/flash_recovery_area/SRC
    
  4. Exécutez orasetup pour configurer l'agent pour Oracle pour la base de données d'origine sur le deuxième serveur (Serveur-B).
    # /opt/CA/ABoraagt/orasetup
    
    

    Lorsque le programme orasetup vous invite à utiliser un catalogue du gestionnaire de récupération pour gérer les sauvegardes de base de données, indiquez 'y'.

    Are you planning on using a Recovery Manager catalog to handle database backups (Recommended)? (Comptez-vous utiliser un catalogue du gestionnaire de récupération pour traiter les sauvegardes de bases de données (option recommandée) ?) (Y/N) Y
    
    

    Lorsque le programme orasetup vous invite à spécifier le nom de l'instance Oracle, spécifiez l'ID de l'instance d'origine.

    Oracle instance id to be used by this agent [<Enter> to end]: src (ID de l'instance Oracle à utiliser par cet agent [<Entrée> pour valider] : src)
    ORACLE_HOME environment value for this Oracle instance: (default:/opt/oracle/10gR2) (Valeur de la variable d'environnement ORACLE_HOME pour cette instance Oracle : (default:/opt/oracle/10gR2))
    
    

    Lorsque le programme orasetup vous invite à spécifier le nom du service du gestionnaire de récupération, spécifiez le nom TNS configuré pour la base de données du catalogue RMAN.

    Since you have configured the Recovery Manager, please provide  the Recovery Manager service name for database src. (Après avoir configuré le gestionnaire de récupération, indiquez le nom du service du gestionnaire pour la base de données src.)
    Recovery Manager service name : catdb (Nom du service du gestionnaire de récupération : catdb)
    
  5. Sur le Serveur-B, modifiez le fichier sbt.cfg sous le dossier /opt/CA/ABoraagt. Supprimez le caractère # et entrez le nom d'hôte du Serveur-A.
    # Node where the original backup was made from
    SBT_ORIGINAL_CLIENT_HOST=Server-A.
    
  6. Vérifiez que vous pouvez émettre des commandes ping avec le nom d'hôte à partir du serveur CA ARCserve Backup vers le Serveur-B et inversement.
  7. Ajoutez un fichier pfile sur l'autre serveur (Serveur-B).
  8. Démarrez la base de données src après avoir activé l'option nomount à l'aide du fichier pfile créé.
    $export ORACLE_SID=src
    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.ora
    SQL>exit
    
  9. Restaurez le fichier spfile à l'aide du catalogue RMAN.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value> 
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so';
    3>restore spfile;
    4>release channel  ch1;
    5>}
    

    Remarque : Pour les bases de données Oracle 32 bits, le paramètre SBT_LIBRARY utilise libobk32.so. Pour les bases de données Oracle 64 bits, le paramètre SBT_LIBRARY utilise libobk64.so.

    Le job de restauration s'exécute dans la file d'attente des jobs du serveur CA ARCserve Backup. A l'issue du job, la base de données spfile est restaurée sous $ORACLE_HOME/dbs.

    Fermez la base de données.

    RMAN>shutdown immediate;
    RMAN>exit
    

    Redémarrez la base de données après avoir activé l'option nomount à l'aide du fichier spfile que vous venez de restaurer.

    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount
    SQL>quit
    
  10. Restaurez le fichier de contrôle.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so'; 
    3> restore controlfile; 
    4> release channel dev1; 
    5> } 
    

    Pour restaurer le fichier de contrôle à partir d'un sous-ensemble de sauvegarde spécifique et effectuer une restauration à un point dans le temps, procédez comme suit :

    $ rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so'; 
    3> restore controlfile from ‘Y’; 
    4> release channel dev1; 
    5> } 
    

    Pour obtenir Y (informations du sous-ensemble de sauvegarde), procédez comme suit :

    RMAN> set dbid=<dbid>; 
    RMAN> list backup of controlfile; 
    

    Le job de restauration s'exécute dans la file d'attente des jobs du serveur CA ARCserve Backup. A l'issue du job, les fichiers de contrôle de la base de données sont restaurés sous $ORACLE_HOME/oradata/$ORACLE_SID.

  11. Une fois le fichier de contrôle restauré, montez la base de données.
    $sqlplus / as sysdba
    SQL>alter database mount;
    SQL>exit
    
  12. Restaurez la base de données et archivez les journaux.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value>
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/CA/ABoraagt/libobk64.so';
    3>restore database;
    4>restore archivelog all;
    5>release channel  ch1;
    6>}
    

    Le job de restauration s'exécute dans la file d'attente des jobs du serveur CA ARCserve Backup. A l'issue du job, les fichiers de base de données et les journaux d'archive sont restaurés.

  13. Utilisez le fichier de contrôle de sauvegarde pour récupérer la base de données, puis ouvrez la base de données.
    $sqlplus / as sysdba
    SQL> 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 :
    SQL> alter database open resetlogs;