Recuperar un bakup de Oracle hecho con RMAN

Esto también lo tengo que buscar a menudo :( ... ¿qué sentido tendría si sabemos hacer un backup y luego no sabemos recuperarlo. En esta entrada anotaré el procedimiento que sigo para recuperar bases de datos Oracle con RMAN.
Se supone que tenemos un backup físico realizado con RMAN en el directorio /opt/backups_oracle/backupset, y que el catálogo local lo tenemos inicializado y configurado. También supondremos que tenemos una copia del pfile de la base de datos a recuperar en /opt/backups_oracle/backupset/bbdd_init.ora y que sabemos el DBID de la bbdd de la que hemos hecho la copia.

  1. Conectarnos al servidor donde queremos recuperar el backup como usuario Oracle, y desde RMAN detener la BBDD y establecer el nuevo DBID
    su - oracle
    $ORACLE_HOME/bin/rman target / nocatalog

    RMAN> shutdown abort;
    RMAN> set dbid 815531541;
  2. Montar la BBDD usando el pfile del backup...
    RMAN> startup nomount \     
    pfile='/opt/backups_oracle/backupset/bbdd_init.ora' ;
  3. Recuperar los controlfiles desde el Backup que tenemos, y volver a parar la instancia
    RMAN> restore controlfile from \
    '/opt/backups_oracle/backupset/controlfiles/BD_c-XXXXXXXXXx.ctl.bck';

    RMAN> shutdown immediate;
  4. Ahora montar desde los controlfiles recuperados...
    RMAN> startup nomount  \
    pfile='/opt/backups_oracle/backupset/bbdd_init.ora' ;

    RMAN> alter database mount;
  5. Mirar si tenemos backups para recuperar... es muy importante que nos fijemos en el SCN que tienen todos los tablespaces...
    RMAN> list backup; 
  6. Recuperar la BBDD y abrirla reseteando logs..
    RMAN> run {
    set until scn XXXXX--SCN--XXXXX ;
    restore database;
    recover database; }

    RMAN> alter database open resetlogs;
    RMAN> exit;

No hay comentarios: