Restore con RMAN
El restore depende de como se ha hecho el backup: es así.
Si recordamos los pasos a seguir en el restore, en caso de desastre total:
- initSID.ora
- spfile
- controlfile
- datafiles
- archivelogs
Una de las dificultades es recuperar hasta el controlfile: En efecto, el controlfile contiene el catálogo del backup, pero hasta que no lo hayamos recuperado, no nos podemos apoyar en ningún catálogo.
Alternativas:
- Utilizar un catálogo de RMAN en BBDD para recuperar el spfile y el controlfile.
- Personalmente no lo recomiendo
- Guardar el backup de estos ficheros en un fichero que sepamos su nombre:
- De esta forma, lo podemos recuperar sin problemas.
Restore del initSID.ora
Ya hemos dicho que se recomienda utilizar spfile y, entonces, este fichero solo contiene una linea constante:
spfile='/nombre/completo/del/fichero/spfile'
Por tanto, la restauración es manual editando el fichero.
Restore del spfile
Recordemos que en el paso de backup, aconsejamos parametrizar el backup según:
CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/directorio/completo/%F';
De esta forma, cada backup incluye, al final el backup del controlfile y el spfile y se deja en un directorio conocido.
El formato %F especificado, se substituye por la fecha (dia y hora del backup).
Debemos recordar que el fichero generado es un backup set y se debe recuperar con RMAN.
La restauración se realizará según:
A continuación, para restaurar de cinta, ejecutar:
rman TARGET /
RMAN> SET DBID 1447326980 # El DBID obtenido antes del backup
RMAN> STARTUP FORCE NOMOUNT; # Para arrancar con un spfile ficticio
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE sbt TO '%F';
RMAN> RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
RESTORE SPFILE TO '/nombre/completo/spfile' FROM AUTOBACKUP; # FROM AUTOBACKUP es necesario si se utiliza NOCATALOG
}
RMAN> STARTUP FORCE NOMOUNT; # ahora, se arranca con el spfilePara restaurar de disco, ejecutar:
rman TARGET /
RMAN> SET DBID 1447326980 # El DBID obtenido antes del backup
RMAN> STARTUP FORCE NOMOUNT; # Para arrancar con un spfile ficticio
RMAN> RUN
{
RESTORE SPFILE TO '/nombre/completo/spfile' FROM AUTOBACKUP RECOVERY AREA '/path/al/directorio/de/autobackup';
# FROM AUTOBACKUP es necesario si se utiliza NOCATALOG
}
RMAN> STARTUP FORCE NOMOUNT; # ahora, se arranca con el spfile
Restore del Controlfile
Una vez restaurado el spfile y arrancado la BBDD, se debe restaurar el controlfile, también a partir de un autobackup y de forma similar al spfile.
rman TARGET / RMAN> SET DBID 1447326980 # El DBID obtenido antes del backup RESTORE CONTROLFILE FROM /path/completo/del/fichero/de/autobackup'; RMAN> STARTUP FORCE MOUNT; # ahora, se arranca con el controlfile
Restore de los datafiles
Al haber restaurado el controlfile, ya tenemos el catalogo de los backups hechos con RMAN
Para restaurar desde cinta:
rman TARGET /
RMAN> RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
RESTORE DATABASE;
}
Para restaurar desde disco:
rman TARGET /
RMAN> RUN
{
RESTORE DATABASE;
}
Es asi de sencillo.
Por supuesto, podemos utilizar más opciones:
Antes del restore, podemos utilizar una cláusule
SET UNTIL ...
Para indicar hasta cuando queremos restaurar.
etc.
