[ 2015-08-02 ]

“Pull-Based active Database Duplication” de dos “Pluggable Databases”

En el siguiente ejemplo estamos trabajando inicialmente como base de datos origen con la CDB llamada “prmcdb”  que será duplicada en la CDB llamada “dupcdb” como ocurre también en otras partes de esta serie de artículos. Antes de la duplicación, vamos a sumar una nueva PDB: prmpdb03 a la CDB prmcdb clonando la PDB prmpdb02.
[oracle@oel62-ora12c-prm ~]$ export ORACLE_SID=prmcdb
[oracle@oel62-ora12c-prm ~]$ sqlplus / as  sysdba
 
SQL*Plus: Release 12.1.0.1.0 Production on Mon Apr 14 09:51:44 2014
 
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
 
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
 
SQL> alter pluggable database prmpdb02 close immediate;
 
Pluggable database altered.
 
SQL> alter pluggable database prmpdb02 open read only;
 
Pluggable database altered.
SQL> create pluggable database prmpdb03 from prmpdb02
  2  file_name_convert=('prmpdb02','prmpdb03');
 
Pluggable database created.
 
SQL> alter pluggable database all close;
 
Pluggable database altered.
 
SQL> alter pluggable database all open;
 
Pluggable database altered.
 
SQL> select name, open_mode from v$pdbs;
 
NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PRMPDB01                       READ WRITE
PRMPDB02                       READ WRITE
PRMPDB03                       READ WRITE

En el host destino oel62-ora12c-dup creamos manualmente  el directorio para la nueva PDB duplicada (prmpdb03). Esto es necesario porque RMAN no puede crear el directorio de manera automática al duplicar la “Pluggable Database”.  
[oracle@oel62-ora12c-dup ~]$ cd $ORACLE_BASE/oradata/dupcdb
[oracle@oel62-ora12c-dup dupcdb]$ mkdir prmpdb03
[oracle@oel62-ora12c-dup dupcdb]$ ls -l
total 16
drwxr-xr-x 2 oracle oinstall 4096 Apr 14 09:10 pdbseed
drwxr-xr-x 2 oracle oinstall 4096 Apr 14 09:10 prmpdb01
drwxr-xr-x 2 oracle oinstall 4096 Apr 14 09:10 prmpdb02
drwxr-xr-x 2 oracle oinstall 4096 Apr 14 09:46 prmpdb03
[oracle@oel62-ora12c-dup dupcdb]$
Para este caso usamos el comando duplicate de RMAN con las siguientes opciones:

Opción de duplicación
Pluggable Databases – prmpdb01, prmpdb03
Tipo de duplicación
Active Database Duplication
Método de duplicación
Pull-Based
Tipo de backup utilizado
BACKUPSETS   (default)
Número de “Target Channels”
1   (default)
Número de “Auxiliary Channels”
1  (default)

El comando duplicate de RMAN en este caso quedará de la siguiente manera:
duplicate database to dupcdb pluggable database prmpdb01,prmpdb03 
  from active database 
   spfile 
     parameter_value_convert='prmcdb','dupcdb' 
     set db_file_name_convert='prmcdb','dupcdb'
     set log_file_name_convert='prmcdb','dupcdb';
Descripción del código:
Como puede verse en el código, RMAN duplicará las “pluggable databases” prmpdb01, prmpdb03. RMAN duplica la lista especificada de PDBs delimitada con comas y pasa por alto las otras PDBs no especificadas (prmpdb02).  Los canales  “target” y “auxiliary” no son asignados de manera explícita en este código. RMAN asigna solamente un channel  default  para target  y  otro para auxiliary   (ORA_ DISK_1 and ORA_AUX_DISK_1). La cantidad de target y auxiliary channels  es la misma, esto significa que en este caso RMAN utilizara el método “Pull-Based” para la duplicación. También utilizamos para este caso los parámetros  parameter_value_convert  y  db{log}_file_name_convert en el comando duplicate. El uso de estos parámetros está explicado en la primera parte (parte 1) de esta serie de artículos.
En la salida podemos observar un procedimiento normal de duplicación  como siempre  fue  en versiones anteriores.
Veamos este código en acción:

No hay comentarios:

Publicar un comentario