Previous Topic: Restore Point-in-TimeNext Topic: Recuperación de base de datos


Restauración de una base de datos en un servidor alternativo mediante el Gestor de recuperación (RMAN)

Cuando se restaura una base de datos directamente en un servidor alternativo por medio del Gestor de recuperación, deben cumplirse los requisitos previos siguientes:

Por ejemplo, imagine el siguiente escenario:

Nota: El escenario utilizado en el siguiente procedimiento presupone que la base de datos de la que se realizó la copia de seguridad desde el servidor <Server-A> se restaurará en el servidor <Server-B>, y que se conservará el nombre de esta. También presupone que la estructura de directorio del host original y del de destino son la misma. Además, asume que se trabaja con Oracle 10gR2.

Para restaurar una base de datos en un servidor alternativo, realice los pasos siguientes:

  1. Edite /etc/oratab en el servidor alternativo Server-B y agregue la línea siguiente al origen de la instancia de la base de datos original como usuario de Oracle:
    src:/opt/oracle/10gR2:N
    
  2. Utilice la herramienta netca de Oracle para configurar un nombre TNS para la base de datos del catálogo catdb del Gestor de recuperación y garantizar que es visible en la base de datos instalada en el servidoralternativo Server-B como el usuario de Oracle.
  3. Cree la misma estructura de directorios del servidor original Server-A con el usuario de Oracle.

    Por ejemplo:

    $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. Ejecute orasetup para configurar el Agente para Oracle para la base de datos original en el servidor alternativo (Server-B).
    # /opt/CA/ABoraagt/orasetup
    
    

    Cuando orasetup le solicite que utilice un catálogo del Gestor de recuperación para gestionar las copias de seguridad de la base de datos, especifique ‘y’.

    Are you planning on using a Recovery Manager catalog to handle database backups (Recommended)? (Y/N) Y
    
    

    Cuando orasetup le solicite que especifique el nombre de la instancia de Oracle, introduzca el ID de la instancia original.

    Oracle instance id to be used by this agent [<Enter> to end]: src
    Valor del entorno ORACLE_HOME para esta instancia de Oracle: (default:/opt/oracle/10gR2):
    
    

    Cuando orasetup le solicite que especifique el nombre del servicio del Gestor de recuperación, especifique el nombre TNS configurado para la base de datos del catálogo del Gestor de recuperación.

    Since you have configured the Recovery Manager, please provide the Recovery Manager service name for database src.
    Recovery Manager service name : catdb
    
  5. Edite el archivo sbt.cfg en el servidor Server-B en la carpeta /opt/Arcserve/ABoraagt. Elimine el símbolo # siguiente e introduzca el nombre de host para el servidor Server-A.
    # Node where the original backup was made from
    SBT_ORIGINAL_CLIENT_HOST=Server-A.
    
  6. Asegúrese de que puede realizar un ping del nombre de host del servidor de Arcserve Backup al servidor Server-B y viceversa.
  7. Agregue un archivo .pfile al servidor alternativo (Server-B).
  8. Inicie la base de datos de origen con la opción "no mount" mediante el archivo creado.
    $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. Restaure el archivo .spfile mediante el catálogo del Gestor de recuperación.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<valor bd_id de la basededatos origen> 
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so';
    3>restore spfile;
    4>release channel  ch1;
    5>}
    

    Nota: Para una base de datos de Oracle de 32 bits, SBT_LIBRARY utiliza libobk32.so. Para una base de datos de Oracle de 64 bits, SBT_LIBRARY utiliza libobk64.so.

    La tarea de restauración se ejecuta en la cola de tareas del servidor de Arcserve Backup. Cuando la tarea se completa, la base de datos del archivo .spfile se restaura en la ruta $ORACLE_HOME/dbs.

    Cierre la base de datos.

    RMAN>shutdown immediate;
    RMAN>exit
    

    Inicie la base de datos con la opción "nomount" mediante el archivo .spfile que se acaba de restaurar.

    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount
    SQL>quit
    
  10. Restaure el archivo de control.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<valor bd_id de la basededatos origen> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 
    3> restore controlfile; 
    4> release channel dev1; 
    5> } 
    

    Alternativamente, puede restaurar el archivo de control desde una parte de la copia de seguridad específica para realizar una restauración a un momento dado. Para ello, lleve a cabo los pasos siguientes:

    $ rman catalog rman/rman@catdb
    RMAN> set dbid=<valor bd_id de la basededatos origen> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 
    3> restore controlfile from ‘Y’; 
    4> release channel dev1; 
    5> } 
    

    Para obtener Y, que indica la información de la parte de la copia de seguridad, realice los pasos siguientes:

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

    La tarea de restauración se ejecuta en la cola de tareas del servidor de Arcserve Backup. Cuando la tarea se completa, los archivos de control de la base de datos se restauran en la ruta $ORACLE_HOME/oradata/$ORACLE_SID.

  11. Cuando se haya restaurado el archivo de control, monte la base de datos.
    $sqlplus / as sysdba
    SQL>alter database mount;
    SQL>exit
    
  12. Restaure la base de datos y archive los registros.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<valor bd_id de la basededatos origen>
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so';
    3>restore database;
    4>restore archivelog all;
    5>release channel  ch1;
    6>}
    

    La tarea de restauración se ejecuta en la cola de tareas del servidor de Arcserve Backup. Cuando la tarea se completa, se restauran los archivos de la base de datos y los registros de archivado.

  13. Utilice el archivo de control de la copia de seguridad para recuperar y abrir la base de datos.
    $sqlplus / as sysdba
    SQL> recover database using backup controlfile until cancel
    
  14. Introduzca el siguiente comando para abrir la base de datos con la opción resetlogs:
    SQL> alter database open resetlogs;