miércoles, 17 de abril de 2013

How to "Restore Oracle Backup"





PREGUNTA: Ya tengo un backup, y ¿ahora que?, ¿se puede probar esto?

RESPUESTA: Pues claro que sí, vamos a ello.





Como ya hemos visto en otra entrada del blog, automatizar un backup de Oracle es relativamente sencillo, si sabemos lo que hacemos.
Ahora nos toca subir un escalón más, y es restaurarlo.

Tenemos dos escenarios, restore sobre el mismo servidor (catástrofe) o restaurar sobre otra máquina (para trastear, por ejemplo). Recomiendo esta última práctica para estar ágiles el día que tengamos un desastre.


En cualquier caso necesitamos los siguientes requisitos previos:


  • Software Oracle Database instalado en la misma versión que se hizo el backup.
  • Instancia creada con oradim.
  • Misma estructura de directorios: discos, letras, carpetas, etc. Si no queremos estar haciendo "renames".
  • Fichero de parámetros init o spfile.
NOTA: si estamos en el primer escenario, todo esto ya lo tenemos listo al haber tenido ya una BBDD produciendo. En otro caso, aplicar los 4 puntos.

  • Dejamos limpio el directorio donde va a restaurarse la BBDD (sin control_files, redologs ni datafiles).
  • Lanzamos un restore desde RMAN (*NOTA 2).
  • Salimos a fumar un cigarro.
  • Otro más.
  • Y a disfrutar de nuestra BBDD.

*NOTA 2: Estos pueden ser unos buenos comandos de restore:

Verificamos que nuestra instancia está arrancada (OracleServiceSID)

Comprobamos que está en estado nomount:


set oracle_sid=****

rman target sys/****

shutdown immediate

startup nomount

Restauramos los control_files desde el último backup válido:

restore controlfile from 'F:\BACKUP\Flash_recovery_area\BACKUPSET\2013_03_06\O1_MF_NCNDF_DATAFILES_8MFTFRPM_.BKP';

Montamos la BBDD y la restauramos:

alter database mount;
run {
allocate channel oem_backup_disk1 type disk;
restore database;
switch datafile all;
recover database;
release channel oem_backup_disk1;
}

Esto nos extraerá todos los datafiles con la fecha y hora en la que se hizo el respaldo. Si en el directo flash_recovery_area también están los archives, se irán aplicando hasta el último que tengamos y así tener unos datos más recientes.


CONSEJO: Las pruebas e inventos, mejor con gaseosa. Nos montamos un servidor piloto y vamos trasteando todas estas cositas.  

Saludos


2 comentarios: