Oracle 12c 新特性 --- RMAN Duplicate CDBs

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/leo__1990/article/details/89919759

概念

Active DUPLICATE uses a network-enabled restore method that is run on the auxiliary database to clone the source database. This is in contrast to the image copy-based approach that was run on the source database in previous releases. Active DUPLICATE supports the SECTION SIZE option to divide data files into subsections that are restored in parallel across multiple channels on the auxiliary database. Active DUPLICATE supports compression during the restore phase.
Active DUPLICATE使用在辅助数据库上运行的支持网络的恢复方法来克隆源数据库。这与之前版本中在源数据库上运行的基于图像的基于映像的方法形成了对比。Active DUPLICATE支持SECTION SIZE选项,将数据文件划分为在辅助数据库的多个通道上并行恢复的子部分。在恢复阶段,主动复制支持压缩

The benefits of this new feature include:
新特性的优点:

•	Reduce active duplicate time for databases with large data files by more evenly spreading out the restore workload across multiple channels on the auxiliary database.
通过在auxiliary database.的多个通道上更均匀地分布恢复工作负载,减少数据库与大数据文件的重复时间

•	Reduce active duplicate time by more efficiently using network bandwidth using compression during data transfer operations.
利用网络带宽减少复制的时间

In active database duplication, RMAN connects as TARGET to the source database instance and as AUXILIARY to the auxiliary instance. RMAN then manages the copying of the database to the auxiliary instance over the network. No backups of the source database are required.

RMAN can transfer the files required for active database duplication as image copies or backup sets. 

在active database复制中,RMAN将目标连接到源数据库实例,并作为auxiliary instance的辅助对象。然后RMAN将数据库的复制管理到网络上的auxiliary instance。不需要对源数据库进行备份。
RMAN可以将active databas复制所需的文件作为映像副本或备份集传输。

When duplicating a whole CDB or one more PDBs:
•	You must create the auxiliary instance as a CDB. To do so, start the instance with the following declaration in the initialization parameter file:
•	•必须创建auxiliary instance作为CDB。为此,在初始化参数文件中使用以下声明启动实例:
•	enable_pluggable_database=TRUE
•	When instructed to connect to the necessary instances, connect to the root as a user with SYSDBA or SYSBACKUP privilege. On both instances, the password for the user performing the duplication must be the same.
•当指示连接到必要的实例时,以SYSDBA或SYSBACKUP特权连接到root用户。在这两个实例中,执行复制的用户的密码必须相同。

•	When instructed to create an initialization parameter file for the auxiliary instance, you must copy the file from the source database. This ensures that the auxiliary instance is also a CDB. After copying, you modify DB_NAME and the various destination/location parameters

•当指示为auxiliary instance创建初始化参数文件时,必须从源数据库复制文件。这确保了辅助实例也是CDB。在复制之后,您可以修改DB_NAME和各种目的地/位置参数

实验

 1 Duplicate Active Database 数据库准备

本文中的示例基于以下假设。
源数据库是一个容器数据库(cndba)(cdb1),有两个可插入的数据库(pdbcndba、pdbcndba2)。
目标数据库名为cndba(cdb2)。
源数据库和目标数据库都使用文件系统存储,不使用Oracle管理的文件(OMF),因此需要进行文件名转换。

1.1 在每次测试之间执行以下清理工作。清除任何以前的克隆信息。
mkdir -p /u01/app/oracle/admin/cndba/adump
mkdir -p /u01/app/oracle/admin/cndba/cdump
mkdir -p /u01/app/oracle/oradata/cndba/
rm -rf /u01/app/oracle/oradata/cndba/*
mkdir -p /u01/app/oracle/oradata/cndba/pdbseed/
mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba/
mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba2/

1.2 将auxiliary 数据库启动到mount 状态
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/initcndba.ora';
ORACLE instance started.

Total System Global Area 1560281088 bytes
Fixed Size		    2924784 bytes
Variable Size		  939527952 bytes
Database Buffers	  603979776 bytes
Redo Buffers		   13848576 bytes

1.3 rman 根据tnsnames.ora 配置的服务名 连接target database 和 auxiliary database
rman target sys/oracle@pdbcndba_p auxiliary sys/oracle@pdbcndba_s;

2  使用备份集 DUPLICATE Active Database

2.1 清理 auxiliary database 数据
[www.cndba.cn@dg2 admin]$ mkdir -p /u01/app/oracle/admin/cndba/adump
[www.cndba.cn@dg2 admin]$ mkdir -p /u01/app/oracle/admin/cndba/cdump
[www.cndba.cn@dg2 admin]$ mkdir -p /u01/app/oracle/oradata/cndba/
[www.cndba.cn@dg2 admin]$ cd /u01/app/oracle/oradata/cndba
[www.cndba.cn@dg2 cndba]$ ls
control01.ctl  pdbseed     redo02.log  sysaux01.dbf  temp01.dbf     users01.dbf
pdbcndba       redo01.log  redo03.log  system01.dbf  undotbs01.dbf  users02.dbf
[www.cndba.cn@dg2 cndba]$ rm -rf /u01/app/oracle/oradata/cndba/*
[www.cndba.cn@dg2 cndba]$ ls
[www.cndba.cn@dg2 cndba]$ pwd
/u01/app/oracle/oradata/cndba
[www.cndba.cn@dg2 cndba]$ mkdir -p /u01/app/oracle/oradata/cndba/pdbseed/
[www.cndba.cn@dg2 cndba]$ mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba/
	 
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/initcndba.ora';
ORACLE instance started.

Total System Global Area 1560281088 bytes
Fixed Size		    2924784 bytes
Variable Size		  939527952 bytes
Database Buffers	  603979776 bytes
Redo Buffers		   13848576 bytes

2.2 执行 DUPLICATE 命令 
[www.cndba.cn@dg1 ~]$  rman target sys/oracle@pdbcndba_p auxiliary sys/oracle@pdbcndba_s;

Recovery Manager: Release 12.1.0.2.0 - Production on Fri Aug 11 09:39:17 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CNDBA (DBID=215559030)
connected to auxiliary database: CNDBA (not mounted)

RMAN> DUPLICATE DATABASE TO cndba
  FROM ACTIVE DATABASE
  USING BACKUPSET
  SPFILE
  NOFILENAMECHECK;

Starting Duplicate Db at 11-AUG-17
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=23 device type=DISK
current log archived

contents of Memory Script:
{
   restore clone from service  'pdbcndba_p' spfile to 
 '/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''";
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNDBA'' comment=
 ''duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNDBA'' comment= ''duplicate'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   restore clone from service  'pdbcndba_p' primary controlfile;
   alter clone database mount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle instance shut down

Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

Starting restore at 11-AUG-17
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=21 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:08
output file name=/u01/app/oracle/oradata/cndba/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/cndba/control02.ctl
Finished restore at 11-AUG-17

database mounted
RMAN-05538: WARNING: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/cndba/system01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/cndba/sysaux01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf";
   set newname for datafile  5 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf";
   set newname for datafile  6 to 
 "/u01/app/oracle/oradata/cndba/users01.dbf";
   set newname for datafile  7 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf";
   set newname for datafile  8 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf";
   set newname for datafile  9 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf";
   set newname for datafile  10 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf";
   set newname for datafile  11 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf";
   set newname for datafile  12 to 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   restore
   from service  'pdbcndba_p'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/cndba/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:35
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/cndba/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/cndba/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:35
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/cndba/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:26
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00009 to /u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:05
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/cndba/users02.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'pdbcndba_p' 
           archivelog from scn  3383121;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=99
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=100
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=951731383 file name=/u01/app/oracle/oradata/cndba/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=6 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=7 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=8 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=9 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=10 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=11 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=12 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=13 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=14 STAMP=951731384 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   set until scn  3385132;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 11-AUG-17
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 99 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_99_951096249.dbf
archived log for thread 1 with sequence 100 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_100_951096249.dbf
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_99_951096249.dbf thread=1 sequence=99
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_100_951096249.dbf thread=1 sequence=100
media recovery complete, elapsed time: 00:00:01
Finished recover at 11-AUG-17
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
   sql clone "alter system reset  db_unique_name scope=spfile";
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Reset to original value by RMAN'' scope=spfile

sql statement: alter system reset  db_unique_name scope=spfile
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CNDBA" RESETLOGS ARCHIVELOG 
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP   1 ( '/u01/app/oracle/oradata/cndba/redo01.log' ) SIZE 50 M  REUSE,
  GROUP   2 ( '/u01/app/oracle/oradata/cndba/redo02.log' ) SIZE 50 M  REUSE,
  GROUP   3 ( '/u01/app/oracle/oradata/cndba/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u01/app/oracle/oradata/cndba/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf'
 CHARACTER SET ZHS16GBK


contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/oradata/cndba/temp01.dbf";
   set newname for tempfile  2 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf";
   set newname for tempfile  3 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u01/app/oracle/oradata/cndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf", 
 "/u01/app/oracle/oradata/cndba/users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf", 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/cndba/temp01.dbf in control file
renamed tempfile 2 to /u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf in control file
renamed tempfile 3 to /u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf in control file

cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf RECID=1 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf RECID=2 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users01.dbf RECID=3 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf RECID=4 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf RECID=5 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf RECID=6 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf RECID=7 STAMP=951731409
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users02.dbf RECID=8 STAMP=951731409

datafile 3 switched to datafile copy
input datafile copy RECID=1 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=2 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=3 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=4 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=5 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=6 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=7 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=8 STAMP=951731409 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened

contents of Memory Script:
{
   sql clone "alter pluggable database all open";
}
executing Memory Script

sql statement: alter pluggable database all open
Finished Duplicate Db at 11-AUG-17

2.3 验证结果
--target database 查看表t1数据
SQL>  alter session set container=pdbcndba;

Session altered.

SQL> conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16

--auxiliary database 可以看到数据被复制过来
SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO


SQL>  alter session set container=pdbcndba;

Session altered.

SQL> conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16

3  使用压缩备份集 DUPLICATE Active Database 

3.1 清理 auxiliary database 数据
	 
[www.cndba.cn@dg2 admin]$ mkdir -p /u01/app/oracle/admin/cndba/adump
[www.cndba.cn@dg2 admin]$ mkdir -p /u01/app/oracle/admin/cndba/cdump
[www.cndba.cn@dg2 admin]$ mkdir -p /u01/app/oracle/oradata/cndba/
[www.cndba.cn@dg2 admin]$ cd /u01/app/oracle/oradata/cndba
[www.cndba.cn@dg2 cndba]$ ls
control01.ctl  pdbseed     redo02.log  sysaux01.dbf  temp01.dbf     users01.dbf
pdbcndba       redo01.log  redo03.log  system01.dbf  undotbs01.dbf  users02.dbf
[www.cndba.cn@dg2 cndba]$ rm -rf /u01/app/oracle/oradata/cndba/*
[www.cndba.cn@dg2 cndba]$ ls
[www.cndba.cn@dg2 cndba]$ pwd
/u01/app/oracle/oradata/cndba
[www.cndba.cn@dg2 cndba]$ mkdir -p /u01/app/oracle/oradata/cndba/pdbseed/
[www.cndba.cn@dg2 cndba]$ mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba/
	 
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/initcndba.ora';
ORACLE instance started.

Total System Global Area 1560281088 bytes
Fixed Size		    2924784 bytes
Variable Size		  939527952 bytes
Database Buffers	  603979776 bytes
Redo Buffers		   13848576 bytes

3.2 执行 DUPLICATE 命令
[www.cndba.cn@dg1 ~]$  rman target sys/oracle@pdbcndba_p auxiliary sys/oracle@pdbcndba_s;

Recovery Manager: Release 12.1.0.2.0 - Production on Fri Aug 11 10:19:31 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CNDBA (DBID=215559030)
connected to auxiliary database: CNDBA (not mounted)

RMAN> DUPLICATE DATABASE TO cndba
  FROM ACTIVE DATABASE
  USING COMPRESSED BACKUPSET
  SPFILE
  NOFILENAMECHECK;2> 3> 4> 5> 

Starting Duplicate Db at 11-AUG-17
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=23 device type=DISK
current log archived

contents of Memory Script:
{
   restore clone from service  'pdbcndba_p' using compressed backupset
   spfile to  '/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''";
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNDBA'' comment=
 ''duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNDBA'' comment= ''duplicate'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   restore clone from service  'pdbcndba_p' using compressed backupset
   primary controlfile;
   alter clone database mount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle instance shut down

Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

Starting restore at 11-AUG-17
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=21 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:05
output file name=/u01/app/oracle/oradata/cndba/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/cndba/control02.ctl
Finished restore at 11-AUG-17

database mounted
RMAN-05538: WARNING: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/cndba/system01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/cndba/sysaux01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf";
   set newname for datafile  5 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf";
   set newname for datafile  6 to 
 "/u01/app/oracle/oradata/cndba/users01.dbf";
   set newname for datafile  7 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf";
   set newname for datafile  8 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf";
   set newname for datafile  9 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf";
   set newname for datafile  10 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf";
   set newname for datafile  11 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf";
   set newname for datafile  12 to 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   restore
   from service  'pdbcndba_p'   using compressed backupset
   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/cndba/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/cndba/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/cndba/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:55
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/cndba/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00009 to /u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:55
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/cndba/users02.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'pdbcndba_p' using compressed backupset
   archivelog from scn  3389654;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=102
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using compressed network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=103
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=6 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=7 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=8 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=9 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=10 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=11 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=12 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=13 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=14 STAMP=951733738 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   set until scn  3390627;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 11-AUG-17
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 102 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_102_951096249.dbf
archived log for thread 1 with sequence 103 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_103_951096249.dbf
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_102_951096249.dbf thread=1 sequence=102
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_103_951096249.dbf thread=1 sequence=103
media recovery complete, elapsed time: 00:00:01
Finished recover at 11-AUG-17
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
   sql clone "alter system reset  db_unique_name scope=spfile";
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Reset to original value by RMAN'' scope=spfile

sql statement: alter system reset  db_unique_name scope=spfile
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CNDBA" RESETLOGS ARCHIVELOG 
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP   1 ( '/u01/app/oracle/oradata/cndba/redo01.log' ) SIZE 50 M  REUSE,
  GROUP   2 ( '/u01/app/oracle/oradata/cndba/redo02.log' ) SIZE 50 M  REUSE,
  GROUP   3 ( '/u01/app/oracle/oradata/cndba/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u01/app/oracle/oradata/cndba/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf'
 CHARACTER SET ZHS16GBK


contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/oradata/cndba/temp01.dbf";
   set newname for tempfile  2 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf";
   set newname for tempfile  3 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u01/app/oracle/oradata/cndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf", 
 "/u01/app/oracle/oradata/cndba/users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf", 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/cndba/temp01.dbf in control file
renamed tempfile 2 to /u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf in control file
renamed tempfile 3 to /u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf in control file

cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf RECID=1 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf RECID=2 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users01.dbf RECID=3 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf RECID=4 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf RECID=5 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf RECID=6 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf RECID=7 STAMP=951733759
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users02.dbf RECID=8 STAMP=951733759

datafile 3 switched to datafile copy
input datafile copy RECID=1 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=2 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=3 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=4 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=5 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=6 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=7 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=8 STAMP=951733759 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened

contents of Memory Script:
{
   sql clone "alter pluggable database all open";
}
executing Memory Script

sql statement: alter pluggable database all open
Finished Duplicate Db at 11-AUG-17

3.3 验证数据
--target database  查看源数据
SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO
 
SQL> alter session set container=pdbcndba;

Session altered.

SQL> conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16

--auxiliary database 查看数据被复制过来
SQL> conn /as sysdba
Connected.
SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO

SQL> alter session set container=pdbcndba;

Session altered.

SQL> conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16

4 使用密码加密加密备份集 DUPLICATE ACTIVE DATABASE

4.1 清理 auxiliary database 数据
mkdir -p /u01/app/oracle/admin/cndba/adump
mkdir -p /u01/app/oracle/admin/cndba/cdump
mkdir -p /u01/app/oracle/oradata/cndba/
rm -rf /u01/app/oracle/oradata/cndba/*
mkdir -p /u01/app/oracle/oradata/cndba/pdbseed/
mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba/
mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba2/

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/initcndba.ora';
ORACLE instance started.

Total System Global Area 1560281088 bytes
Fixed Size		    2924784 bytes
Variable Size		  939527952 bytes
Database Buffers	  603979776 bytes
Redo Buffers		   13848576 bytes

4.2 开始 auxiliary
[www.cndba.cn@dg1 ~]$  rman target sys/oracle@pdbcndba_p auxiliary sys/oracle@pdbcndba_s;

Recovery Manager: Release 12.1.0.2.0 - Production on Fri Aug 11 12:12:27 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CNDBA (DBID=215559030)
connected to auxiliary database: CNDBA (not mounted)

RMAN> SET ENCRYPTION ALGORITHM 'AES128';

executing command: SET encryption
using target database control file instead of recovery catalog

RMAN> DUPLICATE DATABASE TO cndba
  FROM ACTIVE DATABASE
  USING BACKUPSET
  SPFILE
  NOFILENAMECHECK;

Starting Duplicate Db at 11-AUG-17
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=24 device type=DISK
current log archived

contents of Memory Script:
{
   restore clone from service  'pdbcndba_p' spfile to 
 '/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''";
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNDBA'' comment=
 ''duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNDBA'' comment= ''duplicate'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   restore clone from service  'pdbcndba_p' primary controlfile;
   alter clone database mount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle instance shut down

Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

Starting restore at 11-AUG-17
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=21 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/u01/app/oracle/oradata/cndba/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/cndba/control02.ctl
Finished restore at 11-AUG-17

database mounted
RMAN-05538: WARNING: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/cndba/system01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/cndba/sysaux01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf";
   set newname for datafile  5 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf";
   set newname for datafile  6 to 
 "/u01/app/oracle/oradata/cndba/users01.dbf";
   set newname for datafile  7 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf";
   set newname for datafile  8 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf";
   set newname for datafile  9 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf";
   set newname for datafile  10 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf";
   set newname for datafile  11 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf";
   set newname for datafile  12 to 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   restore
   from service  'pdbcndba_p'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/cndba/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/cndba/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/cndba/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/cndba/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:05
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00009 to /u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:26
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/cndba/users02.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'pdbcndba_p' 
           archivelog from scn  3405479;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=105
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=106
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
Finished restore at 11-AUG-17

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=6 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=7 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=8 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=9 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=10 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=11 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=12 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=13 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=14 STAMP=951740458 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   set until scn  3406336;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 11-AUG-17
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 105 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_105_951096249.dbf
archived log for thread 1 with sequence 106 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_106_951096249.dbf
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_105_951096249.dbf thread=1 sequence=105
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_106_951096249.dbf thread=1 sequence=106
media recovery complete, elapsed time: 00:00:01
Finished recover at 11-AUG-17
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
   sql clone "alter system reset  db_unique_name scope=spfile";
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Reset to original value by RMAN'' scope=spfile

sql statement: alter system reset  db_unique_name scope=spfile
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CNDBA" RESETLOGS ARCHIVELOG 
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP   1 ( '/u01/app/oracle/oradata/cndba/redo01.log' ) SIZE 50 M  REUSE,
  GROUP   2 ( '/u01/app/oracle/oradata/cndba/redo02.log' ) SIZE 50 M  REUSE,
  GROUP   3 ( '/u01/app/oracle/oradata/cndba/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u01/app/oracle/oradata/cndba/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf'
 CHARACTER SET ZHS16GBK


contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/oradata/cndba/temp01.dbf";
   set newname for tempfile  2 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf";
   set newname for tempfile  3 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u01/app/oracle/oradata/cndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf", 
 "/u01/app/oracle/oradata/cndba/users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf", 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/cndba/temp01.dbf in control file
renamed tempfile 2 to /u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf in control file
renamed tempfile 3 to /u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf in control file

cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf RECID=1 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf RECID=2 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users01.dbf RECID=3 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf RECID=4 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf RECID=5 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf RECID=6 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf RECID=7 STAMP=951740480
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users02.dbf RECID=8 STAMP=951740480

datafile 3 switched to datafile copy
input datafile copy RECID=1 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=2 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=3 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=4 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=5 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=6 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=7 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=8 STAMP=951740480 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened

contents of Memory Script:
{
   sql clone "alter pluggable database all open";
}
executing Memory Script

sql statement: alter pluggable database all open
Finished Duplicate Db at 11-AUG-17

4.3 验证结果
--target database 查询表t1
SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO
SQL> conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16

	 
--auxiliary database 查询数据被复制
SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO
SQL> conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
 3 t1 THREE					      01-JUL-16

5 使用并行及分片方式 duplicate active database 

5.1 清理 auxiliary database 数据
mkdir -p /u01/app/oracle/admin/cndba/adump
mkdir -p /u01/app/oracle/admin/cndba/cdump
mkdir -p /u01/app/oracle/oradata/cndba/
rm -rf /u01/app/oracle/oradata/cndba/*
mkdir -p /u01/app/oracle/oradata/cndba/pdbseed/
mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba/
mkdir -p /u01/app/oracle/oradata/cndba/pdbcndba2/

SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup nomount pfile='/u01/app/oracle/product/12.1.0/db_1/dbs/initcndba.ora';
ORACLE instance started.

Total System Global Area 1560281088 bytes
Fixed Size		    2924784 bytes
Variable Size		  939527952 bytes
Database Buffers	  603979776 bytes
Redo Buffers		   13848576 bytes

5.2 开始 auxiliary
[www.cndba.cn@dg1 ~]$ rman target sys/oracle@pdbcndba_p auxiliary sys/oracle@pdbcndba_s;

Recovery Manager: Release 12.1.0.2.0 - Production on Fri Aug 11 12:57:14 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: CNDBA (DBID=215559030)
connected to auxiliary database: CNDBA (not mounted)

RMAN> CONFIGURE DEVICE TYPE disk PARALLELISM 4;

using target database control file instead of recovery catalog
old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

RMAN> DUPLICATE DATABASE TO cncba
  FROM ACTIVE DATABASE
  USING BACKUPSET
  SPFILE
  NOFILENAMECHECK
  SECTION SIZE 400M;

Starting Duplicate Db at 11-AUG-17
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=23 device type=DISK
allocated channel: ORA_AUX_DISK_2
channel ORA_AUX_DISK_2: SID=24 device type=DISK
allocated channel: ORA_AUX_DISK_3
channel ORA_AUX_DISK_3: SID=25 device type=DISK
allocated channel: ORA_AUX_DISK_4
channel ORA_AUX_DISK_4: SID=26 device type=DISK
current log archived

contents of Memory Script:
{
   restore clone from service  'pdbcndba_p' spfile to 
 '/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''";
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
using channel ORA_AUX_DISK_3
using channel ORA_AUX_DISK_4

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

sql statement: alter system set spfile= ''/u01/app/oracle/product/12.1.0/db_1/dbs/spfilecndba.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNCBA'' comment=
 ''duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNCBA'' comment=
 ''duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNCBA'' comment= ''duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNCBA'' comment= ''duplicate'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNDBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   sql clone "alter system set  db_unique_name = 
 ''CNCBA'' comment=
 ''Modified by RMAN duplicate'' scope=spfile";
   shutdown clone immediate;
   startup clone force nomount
   restore clone from service  'pdbcndba_p' primary controlfile;
   alter clone database mount;
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNDBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

sql statement: alter system set  db_unique_name =  ''CNCBA'' comment= ''Modified by RMAN duplicate'' scope=spfile

Oracle instance shut down

Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

Starting restore at 11-AUG-17
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=21 device type=DISK
allocated channel: ORA_AUX_DISK_2
channel ORA_AUX_DISK_2: SID=22 device type=DISK
allocated channel: ORA_AUX_DISK_3
channel ORA_AUX_DISK_3: SID=23 device type=DISK
allocated channel: ORA_AUX_DISK_4
channel ORA_AUX_DISK_4: SID=24 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
output file name=/u01/app/oracle/oradata/cndba/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/cndba/control02.ctl
Finished restore at 11-AUG-17

database mounted
RMAN-05538: WARNING: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for datafile  1 to 
 "/u01/app/oracle/oradata/cndba/system01.dbf";
   set newname for datafile  3 to 
 "/u01/app/oracle/oradata/cndba/sysaux01.dbf";
   set newname for datafile  4 to 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf";
   set newname for datafile  5 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf";
   set newname for datafile  6 to 
 "/u01/app/oracle/oradata/cndba/users01.dbf";
   set newname for datafile  7 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf";
   set newname for datafile  8 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf";
   set newname for datafile  9 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf";
   set newname for datafile  10 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf";
   set newname for datafile  11 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf";
   set newname for datafile  12 to 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   restore
   from service  'pdbcndba_p'   section size 
 400 m   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
using channel ORA_AUX_DISK_3
using channel ORA_AUX_DISK_4

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/cndba/system01.dbf
channel ORA_AUX_DISK_1: restoring section 1 of 2
channel ORA_AUX_DISK_2: starting datafile backup set restore
channel ORA_AUX_DISK_2: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_2: restoring datafile 00003 to /u01/app/oracle/oradata/cndba/sysaux01.dbf
channel ORA_AUX_DISK_2: restoring section 1 of 2
channel ORA_AUX_DISK_3: starting datafile backup set restore
channel ORA_AUX_DISK_3: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_3: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_3: restoring datafile 00004 to /u01/app/oracle/oradata/cndba/undotbs01.dbf
channel ORA_AUX_DISK_3: restoring section 1 of 1
channel ORA_AUX_DISK_4: starting datafile backup set restore
channel ORA_AUX_DISK_4: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_4: restoring datafile 00005 to /u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
channel ORA_AUX_DISK_4: restoring section 1 of 1
channel ORA_AUX_DISK_3: restore complete, elapsed time: 00:01:32
channel ORA_AUX_DISK_3: starting datafile backup set restore
channel ORA_AUX_DISK_3: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_3: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_3: restoring datafile 00001 to /u01/app/oracle/oradata/cndba/system01.dbf
channel ORA_AUX_DISK_3: restoring section 2 of 2
channel ORA_AUX_DISK_4: restore complete, elapsed time: 00:02:32
channel ORA_AUX_DISK_4: starting datafile backup set restore
channel ORA_AUX_DISK_4: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_4: restoring datafile 00003 to /u01/app/oracle/oradata/cndba/sysaux01.dbf
channel ORA_AUX_DISK_4: restoring section 2 of 2
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:03:35
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/cndba/users01.dbf
channel ORA_AUX_DISK_1: restoring section 1 of 1
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:03:39
channel ORA_AUX_DISK_2: starting datafile backup set restore
channel ORA_AUX_DISK_2: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_2: restoring datafile 00007 to /u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
channel ORA_AUX_DISK_2: restoring section 1 of 2
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:09
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
channel ORA_AUX_DISK_1: restoring section 2 of 2
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:36
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
channel ORA_AUX_DISK_1: restoring section 1 of 1
channel ORA_AUX_DISK_3: restore complete, elapsed time: 00:03:49
channel ORA_AUX_DISK_3: starting datafile backup set restore
channel ORA_AUX_DISK_3: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_3: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_3: restoring datafile 00009 to /u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
channel ORA_AUX_DISK_3: restoring section 1 of 2
channel ORA_AUX_DISK_4: restore complete, elapsed time: 00:03:22
channel ORA_AUX_DISK_4: starting datafile backup set restore
channel ORA_AUX_DISK_4: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_4: restoring datafile 00009 to /u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
channel ORA_AUX_DISK_4: restoring section 2 of 2
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:03:39
channel ORA_AUX_DISK_2: starting datafile backup set restore
channel ORA_AUX_DISK_2: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_2: restoring datafile 00010 to /u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
channel ORA_AUX_DISK_2: restoring section 1 of 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:25
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
channel ORA_AUX_DISK_1: restoring section 1 of 2
channel ORA_AUX_DISK_4: restore complete, elapsed time: 00:01:44
channel ORA_AUX_DISK_4: starting datafile backup set restore
channel ORA_AUX_DISK_4: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_4: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_4: restoring datafile 00011 to /u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
channel ORA_AUX_DISK_4: restoring section 2 of 2
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:28
channel ORA_AUX_DISK_2: starting datafile backup set restore
channel ORA_AUX_DISK_2: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_2: restoring datafile 00012 to /u01/app/oracle/oradata/cndba/users02.dbf
channel ORA_AUX_DISK_2: restoring section 1 of 1
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:04
channel ORA_AUX_DISK_4: restore complete, elapsed time: 00:00:12
channel ORA_AUX_DISK_3: restore complete, elapsed time: 00:02:53
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:51
Finished restore at 11-AUG-17

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'pdbcndba_p' 
           archivelog from scn  3509999;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 11-AUG-17
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
using channel ORA_AUX_DISK_3
using channel ORA_AUX_DISK_4

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=112
channel ORA_AUX_DISK_2: starting archived log restore to default destination
channel ORA_AUX_DISK_2: using network backup set from service pdbcndba_p
channel ORA_AUX_DISK_2: restoring archived log
archived log thread=1 sequence=113
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_2: restore complete, elapsed time: 00:00:01
Finished restore at 11-AUG-17

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=951743252 file name=/u01/app/oracle/oradata/cndba/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=6 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=7 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=8 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=9 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=10 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=11 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=12 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=13 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=14 STAMP=951743253 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   set until scn  3511348;
   recover
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 11-AUG-17
using channel ORA_AUX_DISK_1
using channel ORA_AUX_DISK_2
using channel ORA_AUX_DISK_3
using channel ORA_AUX_DISK_4

starting media recovery

archived log for thread 1 with sequence 112 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_112_951096249.dbf
archived log for thread 1 with sequence 113 is already on disk as file /u01/app/oracle/product/12.1.0/db_1/dbs/arch1_113_951096249.dbf
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_112_951096249.dbf thread=1 sequence=112
archived log file name=/u01/app/oracle/product/12.1.0/db_1/dbs/arch1_113_951096249.dbf thread=1 sequence=113
media recovery complete, elapsed time: 00:00:04
Finished recover at 11-AUG-17
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes

contents of Memory Script:
{
   sql clone "alter system set  db_name = 
 ''CNCBA'' comment=
 ''Reset to original value by RMAN'' scope=spfile";
   sql clone "alter system reset  db_unique_name scope=spfile";
}
executing Memory Script

sql statement: alter system set  db_name =  ''CNCBA'' comment= ''Reset to original value by RMAN'' scope=spfile

sql statement: alter system reset  db_unique_name scope=spfile
Oracle instance started

Total System Global Area    1560281088 bytes

Fixed Size                     2924784 bytes
Variable Size               1006636816 bytes
Database Buffers             536870912 bytes
Redo Buffers                  13848576 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "CNCBA" RESETLOGS ARCHIVELOG 
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP   1 ( '/u01/app/oracle/oradata/cndba/redo01.log' ) SIZE 50 M  REUSE,
  GROUP   2 ( '/u01/app/oracle/oradata/cndba/redo02.log' ) SIZE 50 M  REUSE,
  GROUP   3 ( '/u01/app/oracle/oradata/cndba/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u01/app/oracle/oradata/cndba/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbseed/system01.dbf',
  '/u01/app/oracle/oradata/cndba/pdbcndba/system01.dbf'
 CHARACTER SET ZHS16GBK


contents of Memory Script:
{
   set newname for tempfile  1 to 
 "/u01/app/oracle/oradata/cndba/temp01.dbf";
   set newname for tempfile  2 to 
 "/u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf";
   set newname for tempfile  3 to 
 "/u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u01/app/oracle/oradata/cndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/undotbs01.dbf", 
 "/u01/app/oracle/oradata/cndba/users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf", 
 "/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf", 
 "/u01/app/oracle/oradata/cndba/users02.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/cndba/temp01.dbf in control file
renamed tempfile 2 to /u01/app/oracle/oradata/cndba/pdbseed/pdbseed_temp012017-08-04_01-25-27-AM.dbf in control file
renamed tempfile 3 to /u01/app/oracle/oradata/cndba/pdbcndba/temp012017-08-04_01-25-27-AM.dbf in control file

cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf RECID=1 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf RECID=2 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users01.dbf RECID=3 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf RECID=4 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf RECID=5 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf RECID=6 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf RECID=7 STAMP=951743280
cataloged datafile copy
datafile copy file name=/u01/app/oracle/oradata/cndba/users02.dbf RECID=8 STAMP=951743280

datafile 3 switched to datafile copy
input datafile copy RECID=1 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=2 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/undotbs01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=3 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/users01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=4 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/pdbseed/sysaux01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=5 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/pdbcndba/sysaux01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=6 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/pdbcndba/pdbcndba_users01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=7 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/pdbcndba/test01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=8 STAMP=951743280 file name=/u01/app/oracle/oradata/cndba/users02.dbf

contents of Memory Script:
{
   Alter clone database open resetlogs;
}
executing Memory Script

database opened

contents of Memory Script:
{
   sql clone "alter pluggable database all open";
}
executing Memory Script

sql statement: alter pluggable database all open
Finished Duplicate Db at 11-AUG-17

5.3 验证数据
--target database
SQL> conn /as sysdba
Connected.
SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO
SQL>  conn test/test@pdbcndba
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16

--auxiliary database	 
SQL> conn /as sysdba
Connected.
SQL> show pdbs

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDBCNDBA			  READ WRITE NO
	 
SQL> conn test/test@pdbcndba 
Connected.
SQL> select * from t1;

	ID DESCRIPTION					      CREATED_DATE
---------- -------------------------------------------------- ------------
	 1 t1 ONE					      01-JUL-14
	 2 t1 TWO					      01-JUL-15
	 3 t1 THREE					      01-JUL-16
扫描二维码关注公众号,回复: 6161053 查看本文章

参考官方文档

http://docs.oracle.com/database/121/BRADV/rcmdupdb.htm#BRADV010

猜你喜欢

转载自blog.csdn.net/leo__1990/article/details/89919759