[ORACLE] DUPLICATE sin conexión a la TARGET ni CATÁLOGO DE RECUPERACION

RMAN 11GR2: DUPLICATE sin TARGET ni CATÁLOGO DE RECUPERACION

Aplica a Oracle Database – EE – Version 11.2.0.1 y posteriors
Objetivo: Duplicar base de datos sin conectar a la base de datos target (la base de datos origen, la que queremos duplicar), y sin catálogo de recuperación. Este tipo de duplicate sólo se puede realizar para backups en disco, no en cinta. Si fuera con catálogo de recuperación se podría hacer también para backups en cinta.
Lo único que RMAN necesita es la localización de las backup pieces.

Ejemplo:
RMAN> DUPLICATE DATABASE TO dup11r2
UNTIL TIME "TO_DATE('29-MAY-2010 14:16:42','DD-MON-YYYYHH24:MI:SS')"
SPFILE
set control_files='D:\dup11r2\c1.ctl'
set db_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
set log_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
BACKUP LOCATION 'D:\dup11r2';

El proceso involucrado en este tipo de duplicado:
-Rman restaura el spfile desde el backup indicado.
-una vez que el spfile es restaurado, rman establece los valores apropiados a los parámetros mencionados en el comando de duplicate. Por ejemplo:
Db_name
Control_files
Db_file_name_convert
Log_file_name_convert
Etc

Hecho esto, rman reinicia la instancia en nomount para que los cambios tengan efecto.
-Rman cambia el valor del parámetro db_name al database name de la target para llevar a cabo el restore del fichero de control. El fc restaurado tendrá el db_name de la target database y como no podemos un db_name diferente en el spfile y en el fc, rman establecerá el db_name al db_name de la target database y realizará el restore de los datafiles y controlfiles.
Si el duplicate está haciéndose en la misma máquina, dado que 2 controlfiles con el mismo db_name no pueden montarse, rman configura la instancia auxiliar con el parámetro db_unique_name establecido a un valor único (el database name especificado para la base de datos auxiliary en el comando duplicate, en el ejemplo dup11r2).
-se restauran los controlfile donde indiquen los parámetros control_files
-rman restuara los datafiles a las rutas especificadas por log_file_name_convert
-hace recovery de los datafiles
-rman para la bbdd para resetear el valor de db_name al valor proporcionado por la auxiliary
-se monta la bbdd y el controlfile se recrea para cambiar el database name y el id. Y se abre la bbdd con resetlog.

PASOS

1º hacer backup de spfile, controlfile,database y archivelogs:
Backup spfile;
Backup database include current controlfile plus archivelog;

2º hacer las backup pieces disponibles para la operacion de duplicado
-si el duplicado va a hacerse en un servidor diferente, mover las pieces al servidor (ftp, scp, etc)
3º crear un fichero de password para la instancia auxiliar
4º crear un fichero de inicialización para la instancia auxiliar con un único parámetro DB_NAME
DB_NAME=dup11r2
5ºArrancar la instancia auxiliar en nomount
Export ORACLE_SID=dup11r2
Export ORACLE_HOME
Export PATH=$ORACLE_HOME/bin:$PATH
Sqlplus / as sysdba
Startup nomount

6º conectar a la instancia auxiliary desde rman y realizer el duplicado:

% rman auxiliary /

RMAN > DUPLICATE DATABASE TO dup11r2
UNTIL TIME "TO_DATE('29-MAY-2010 14:16:42','DD-MON-YYYY HH24:MI:SS')"
SPFILE
set control_files='D:\dup11r2\c1.ctl'
set db_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
set log_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
BACKUP LOCATION 'D:\dup11r2'
;




Referencias:
My Oracle Support Doc ID 874352 y 1375864.1


Comentarios

Entradas populares de este blog

[ORACLE] Script Espacio ocupado y libre de tablespaces (incluyendo los temporary)

Oracle - Apuntes sobre LOBs para DBAs

Oracle - Traza 10046 (SQL_TRACE)