lunes, 25 de enero de 2010

Como clonar una BD 10g utilizando RMAN

La “clonación” hablando en términos de BD se refiere a la copia idéntica de una BD ya sea en el mismo host u en otro. Por lo general cada cierto tiempo al usuario se le ocurre generar o refrescar su BD de pruebas con información reciente de acuerdo a lo que se tiene en el ambiente de producción, y es cuando nos llega la clásica petición los viernes a las 5:30 pm en la cual nos solicitan una copia de la BD. Para esto se tienen varios métodos; y aquí les comparto uno que es sencillo y rápido….y bueno aquí va el procedimiento:

En el sig ejemplo el host origen tendrá el nombre: MLP y el destino CLON. Y asumimos que ambos se encuentran en modo archive y que en el host destino (CLON) ya existe una BD con el nombre de instancia CLON.

Cabe mencionar que para poder realizar una copia de BD utilizando el método de clonación, es necesario que ambos host tengan el mismo SO y versión de Oracle.

El primer paso es generar un respaldo, utilizando obviamente la herramienta RMAN. Esto se puede hacer de la siguiente forma:

rman target /

crosscheck backupset;

delete noprompt backupset;

run {

allocate channel C1 type disk;

allocate channel C2 type disk;

backup as compressed backupset database format '/backup/%d_%U.dbf';

sql "alter system archive log current";

backup archivelog all format '/backup/%d_%U.arc' delete input;

}

NOTA: Es mandatorio que la estructura de directorio donde generamos el respaldo sea la misma en el host destino (en este caso es /backup/).

Una vez terminado el respaldo se procede a pasarlo al host destino.

Como segundo paso se prepara el ambiente en el host destino para proceder con la clonación:

En caso de que la BD CLON esté ejecutándose se procede a dar de baja la BD y el listener. Una vez la BD y el listener estén abajo se procede a borrar todos los datafiles, redologs, archivelogs y controlfiles; así como también el $ORACLE_HOME/dbs/spfileCLON.ora y se limpian los directorios $ORACLE_BASE/admin/adump, $ORACLE_BASE/admin/bdump, $ORACLE_BASE/admin/cdump, $ORACLE_BASE/admin/udump,,ya que se van a recrear. Se conserva el $ORACLE_HOME/dbs/initCLON.ora y el archivo de passwords $ORACLE_HOME/dbs/orapwCLON.

Posteriormente se procede a editar el archivo $ORACLE_HOME/dbs/initCLON.ora y se agregan los siguientes parámetros:

DB_FILE_NAME_CONVERT=/u00/oradata/, /u01/oradata

LOG_FILE_NAME_CONVERT=/u00/oradata/, /u01/oradata

…en donde en ambos parámetros se indica la ruta origen y destino de los datafiles y logfiles entre los host origen y destino respectivamente (esto en caso de que las estructuras de directorios para dichos archivos, sea distinta en ambos hosts).

Por último es necesario agregar el string de conexión del host origen en el $ORACLE_HOME/network/admin/tnsnames.ora del host destino. Ya que se va requerir para conectarse desde el RMAN a la BD MLP.

Finalmente procedemos a entrar al RMAN desde el host destino (CLON), y ejecutamos el comando para iniciar con la clonación de la siguiente manera:

$ORACLE_HOME/bin/rman target system/pass@MLP auxiliary /

RMAN> duplicate target database to CLON;

Y listo!! Hemos duplicado una BD utilizando la herramiente RMAN.

No hay comentarios.: