Tema anterior: Restauración de los espacios de tablasTema siguiente: Solución de problemas


Restauración de archivos de control

Si los archivos de control de la base de datos se pierden o se corrompen, estos podrán restaurarse a través de una recuperación de nivel de archivos. Si la recuperación de nivel de archivos es correcta, se deberán recuperar los archivos de control de la base de datos manualmente.

Siga estos pasos:

  1. Inicie sesión en el servidor de destino como usuario raíz.
  2. Cierre la instancia de Oracle.
    SQL>shutdown abort
    
  3. Inicie la base de datos en el estado nomount.
    SQL>startup nomount
    
  4. Muestre la ruta para todos los archivos de control.
    SQL> show parameter control_files;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_files                        string      /opt/oracle/oradata/lynx/control01.ctl, /opt/oracle/flash_recovery_area/lynx/control02.ctl
    
  5. Restaure los archivos de control mediante el Asistente de restauración. Para obtener más información sobre el proceso de restauración, consulte Cómo realizar una recuperación a nivel de archivo en nodos de Linux.
  6. Especifique la información siguiente acerca del Asistente de restauración y envíe la tarea:
    1. Cuando se seleccionan los archivos y carpetas, introduzca el nombre obligatorio del archivo de control y realice la búsqueda. Repita este paso hasta que todos los archivos de control estén seleccionados.

      Por ejemplo: introduzca control01.ctl y realice la búsqueda.

    2. En la página Equipo de destino, introduzca la información siguiente:
      • Seleccione Restaurar en la ubicación original.
      • Introduzca el nombre de host o la dirección IP del servidor de Oracle de destino.
      • Introduzca el nombre de usuario raíz y la contraseña del servidor de Oracle de destino.
      • Seleccione Sobrescribir archivos existentes para la opción Resolución de conflictos.
  7. Después de restaurar todos los archivos de control, monte la base de datos y ábrala.
    $sqlplus / as sysdba
    SQL>alter database mount;
    
  8. Recupere la base de datos con el comando RECOVER y agregue la cláusula USING BACKUP CONTROLFILE.
    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
    
  9. Aplique los registros archivados solicitados.

    Nota: Si falta el registro archivado obligatorio, esto implica que un registro de rehacer necesario se encuentra en los registros de rehacer en línea. Esto ocurre porque se encuentran cambios no archivados en los registros en línea cuando se produce un error en la instancia. Se puede especificar la ruta completa de un archivo de registro de rehacer en línea. A continuación, pulse Intro (es posible que tenga que intentar realizar este proceso unas cuantas veces hasta localizar el registro correcto).

    Ejemplo:

    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
    ORA-00279: change 1035184 generated at 27/05/14 18:12:49 needed for thread 1
    ORA-00289: suggestion :
    /opt/oracle/flash_recovery_area/LYNX/archivelog/2014_05_27/o1_mf_1_6_%u_.arc
    ORA-00280: change 1035184 for thread 1 is in sequence #6
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /opt/oracle/oradata/lynx/redo03.log
    Log applied.
    La recuperación de medios se ha completado.
    
  10. Abra la base de datos con la cláusula RESETLOGS después de finalizar el proceso de recuperación.
    SQL>alter database open resetlogs;
    

Los archivos de control se han recuperado correctamente.