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.
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