jueves, 11 de abril de 2013

How to "Oracle Backup"




PREGUNTA: ¿Cómo montamos un backup de una base de datos Oracle?


RESPUESTA: Depende del backup que quieras montar.





Esta contestación tan ambigua se puede llegar a entender cuando conocemos la tipología de los posibles respaldos, esto es:

Backup lógico: Yo no lo llamaría backup como tal, pero la realidad es que mucha gente lo usa para tal efecto. Es el archiconocido Export/Import.

Desde la versión 10GR1 tenemos disponible una evolución de esta herramienta, Data  Pump, pero hoy en día se pueden seguir usando ambas a gusto del consumidor. Recomiendo este artículo para conocer las bondades del expdp:

Backup físico en frío: Consiste en parar la BBDD manualmente (servicio OracleServiceSID) y copiar todos ficheros que la componen: datafiles, controlfiles, initfile o spfile. Esta copia puede ser con cualquier software de terceros (aconsejo Robocopy) o con el clásico CTL+C y CTL+V.
La pega evidente es que necesitamos una parada del sistema durante el tiempo que dure la operación y luego rezar para que la copia haya sido buena.

Backup físico en caliente: Opción recomendada, más que nada porque es RMAN (propio de Oracle) quien gestiona toda la operación.
Lo realmente bueno es que se puede hacer en cualquier momento del día, las veces que se quieran y sin parar la producción (backup en caliente).

La única consideración es que necesitamos que nuestra base de datos esté en modo ARCHIVELOG, configurar la Flash_recovery_area y disponer de un almacenamiento donde guardar esta información. Evidentemente la duración del backup o de una recuperación del mismo es inversamente proporcional a las prestaciones del hardware.

Un ejemplo sencillo es el siguiente:

Nos construimos un .bat con la siguiente instrucción:

rman target sys/password cmdfile=D:\Backup\BACKUP.rman log=D:\BACKUP\ RMAN.log

El fichero *.rman debería incluir estos comandos:

delete noprompt backup;
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt expired archivelog all;
backup database;
backup archivelog all not backed up delete all input;
exit

Finalmente encolamos nuestro archivo por lotes en una tarea programada con la frecuencia que estimemos oportuna y tendremos nuestro backup listo y disponible.

Prueba, experimenta, comparte y recuerda: “Si quieres obtener resultados diferentes, no sigas haciendo las mismas pruebas”, Albert Einstein.

Saludos.

No hay comentarios:

Publicar un comentario