トップ > DBA上級 バックアップリカバリ > 13章
13章 データベースの複製
本章ではデータベースの複製について確認していきます。

データベースの複製とは


本章ではRMANを使用したデータベースの複製について学んでいきます。
本番環境のデータベースを試験で使用したい場合に、複製を行うと簡単に同じデータベースを作成することが出来ます。

複製は現在稼動しているデータベースを停止せずに、別の環境にコピーすることが出来ます。

つまり既存のデータベースには一切影響なく同じデータベースを作成することができます。

データベースを複製する方法としては以下の方法があります。

・RMANでのDUPLICATEコマンド
・DataPump
・OS上のデータベースファイルのコピー

DataPumpを使用するデータベースの複製はOracleインストールとDB作成を行った後に実施する必要があり少し手間がかかります。

またOS上のファイルをコピーする場合は、DBを停止する必要がある為、影響が大きくなります。OracleインストールのみでDB作成は不要ですが、DBID(データベースのユニークな番号)が複製元のデータベースと同じになる為、DBIDを一意な値に変更する必要があります。 DBIDを変更するにはDBNEWIDコマンドを使用します。

RMANのDUPLICATEコマンドは複製データベースに対して異なるDBIDが自動的に割り当てられるため、DBIDの変更も不要になります。

今回はRMANを使用したDUPLICATEコマンドによるデータベースの複製について学んで生きたいと思います。

RMANを使用したデータベースの複製


データベースを複製するには、データベースを複製する元のデータベースが必要です。 このデータベースをソースデータベースといいます。

そして複製する新規データベースのインスタンスを補助インスタンスと呼びます。

RMANでは複製するデータは以下となります。

・ソースデータベース本体
・バックアップ

アクティブなソースデータベースと接続し、そのままデータベースの複製が可能です。 この場合はバックアップは不要です。

バックアップセット、イメージコピーの両方とも可能です。 ちなみに12c以降からバックアップセットが可能となりました。バックアップセットの場合、 未使用ブロックはスキップされる為、バックアップ取得の時間が短縮できます。

またバックアップを使用する場合、バックアップの場所を知る為にRMANリポジトリの情報が必要です。 RMANリポジトリはソースデータベースもしくは、リカバリカタログを使用します。

ソースデータベースもリカバリカタログも使用できない場合は、BACKUP LOCATION句を指定して、 バックアップおよびコピーが存在する場所を指定します。

では今回は2つの方法でデータベースの複製を試してみたいと思います。

・アクティブなソースデータベースからの複製
・RMANバックアップのバックアップセットを使用した複製


アクティブなソースデータベースからの複製


データベースのバックアップを使用せず、アクティブなソースデータベースから複製が可能です。

ソースデータベースからの複製の方法として、イメージコピーとバックアップセットが選択できます。

イメージコピーの場合は、ソースデータベースに接続し、サーバリソースを使用し、必要なデータベースファイルを取得します。 一方、バックアップセットは補助データベースに接続し、ソースデータベースから必要なデータベースファイルを取得します。

つまりイメージコピーの場合はソースデータベース側のリソースを使用するため、現在稼働中であれば、性能影響が出る可能性があるので注意してください。 イメージコピーの複製はプッシュベースの方法。バックアップセットの複製はプルベースの方法と呼ばれます。

今回はサーバは同一でソースはorcl、補助インスタンスをtest1で作成してみます。

まずは複製先の補助インスタンスを準備します。

1.パスワードファイルの作成


アクティブなデータベースからの複製の場合、パスワードファイルを作成する必要があります。 sysユーザのパスワードはソースデータベースと同じパスワードを使用してください。

ソースデータベースにない場合は、一旦作成しましょう。

  $ echo $ORACLE_SID
  orcl

  $ orapwd file=orapworcl
  Enter password for SYS: xxxx
  
  $ sqlplus sys/oracle@orcl as sysdba
  
  SQL*Plus: Release 12.1.0.2.0 Production on 
  
  Copyright (c) 1982, 2014, Oracle.  All rights reserved.

  Connected to:
  Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

  SQL> exit


ソースデータベースのパスワードファイルを作成したら、補助インスタンスtest1用のパスワードファイルを作成します。


  $ cd $ORACLE_HOME/dbs
  
  $ ls
  hc_orcl.dat  init.ora  lkORCL  orapworcl  orapwtest1  spfileorcl.ora
  
  $ cp -p orapworcl orapwtest1


今回はorclインスタンスのパスワードファイルをコピーします。その為、パスワードはorclインスタンスと同じパスワードとなります。


2.初期化パラメータファイルの作成


SPFILE,もしくはPFILEを作成します。
SPFILEの場合で必須なパラメータ
DB_NAME


PFILE使用時の必須パラメータ
DB_NAME
CONTROL_FILES
DB_BLOCK_SIZE
DB_FILE_NAME_CONVERT(オプション)
LOG_FILE_NAME_CONVERT (オプション)
DB_CREATE_FILE_DEST(オプション)
DB_CREATE_ONLINE_LOG_DEST_n (オプション)
DB_RECOVERY_FILE_DEST (オプション)

では今回はSPFILEで作成してみます。

  $ cd $ORACLE_HOME/dbs
  $ pwd
  /u01/app/oracle/product/12.1.0/dbhome_1/dbs

  $ vi inittest1.ora
  
  $ cat inittest1.ora
  
  control_files='/u01/app/oracle/oradata/test1/control01.ctl',
  '/u01/app/oracle/oradata/test1/control02.ctl'
  
  db_block_size=8192
  
  db_name='test1'
  
  DB_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/test1')
  
  LOG_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/test1')


複製コマンドは特に指定がないと、複製元と同じディレクトリ構造でコピーします。今回は同じサーバ内で、複製を行う為、

データファイルやREDOログファイルなどを同じ場所にコピーしようとし失敗しないよう、別のディレクトリを指定します。 DB_FILE_NAME_CONVERTはデータファイルの配置先で/u01/app/oracle/oradata/orclから/u01/app/oracle/oradata/test1に変更しています。LOG_FILE_NAME_CONVERTはREDOログファイルの配置先を決定するパラメータです。


  $ sqlplus / as sysdba
  SQL> create spfile=
    2  '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/spfiletest1.ora' 
    3  from pfile='/u01/app/oracle/product/12.1.0/dbhome_1/dbs/inittest1.ora';

  File created.



3.補助インスタンスのNOMOUNT


では補助インスタンスtest1を起動していきましょう。

  $ export ORACLE_SID=test1
  $ sqlplus / as sysdba

  SQL*Plus: Release 12.1.0.2.0 Production on XXXX

  Copyright (c) 1982, 2013, Oracle.  All rights reserved.

  Connected to an idle instance.

  SQL> startup nomount
  
  ORACLE instance started.

  Total System Global Area  238034944 bytes
  Fixed Size                  2252016 bytes
  Variable Size             180355856 bytes
  Database Buffers           50331648 bytes
  Redo Buffers                5095424 bytes

  SQL> exit



4.データベースの複製コマンド実行


それではRMANから複製のコマンド(DUPLICATE)を実施します。


  $ rman target sys@orcl auxiliary sys@test1

  Recovery Manager: Release 12.1.0.2.0 - Production on XX

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

  target database Password: xxxxxxxx
  connected to target database: ORCL (DBID=1452128597)
  auxiliary database Password: xxxxxx
  RMAN-00571: ===========================================================
  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  RMAN-00571: ===========================================================
  RMAN-00554: initialization of internal recovery manager package failed
  RMAN-04006: error from auxiliary database: ORA-12514: TNS:listener does not 
  currently know of service requested in connect descriptor


補助インスタンスに接続するところで、エラーとなってしまいました。原因はリスナーのデータベース登録にあります。


  $ lsnrctl status

  LSNRCTL for Linux: Version 12.1.0.2.0 - Production on XX:XX:XX

  Copyright (c) 1991, 2014, Oracle.  All rights reserved.

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux01)(PORT=1521)))
  STATUS of the LISTENER
  ------------------------
  Alias                     LISTENER
  Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
  Start Date                04-MAR-2017 XX:XX:XX
  Uptime                    0 days 0 hr. 2 min. 50 sec
  Trace Level               off
  Security                  ON: Local OS Authentication
  SNMP                      OFF
  Listener Parameter File   /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
  Listener Log File         /u01/app/oracle/diag/tnslsnr/linux01/listener/alert/log.xml
  Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux01)(PORT=1521)))
  Services Summary...
  Service "orcl" has 2 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    Instance "test1", status BLOCKED, has 1 handler(s) for this service...  
    ★ test1のインスタンスはBLOCKED
  
  Service "orclXDB" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
  The command completed successfully


test1はNOMOUNT状態であり、BLOCKEDは正しいステータスです。NOMOUNT状態で補助インスタンスに接続するには、 静的データベース登録を行っている必要があります。


  $ cat $ORACLE_HOME/network/admin/listener.ora
  以下項目をlistener.oraに追加

  SID_LIST_LISTENER=
    (SID_LIST=
      (SID_DESC=
        (ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
        (SID_NAME=orcl)
      )
      (SID_DESC=
        (ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
        (SID_NAME=test1)
      )
    )


listener.oraに静的データベース登録を行ったら、リスナーのreloadを行います。


  $ lsnrctl reload

  LSNRCTL for Linux: Version 12.1.0.2.0 - Production on XX:XX:XX

  Copyright (c) 1991, 2014, Oracle.  All rights reserved.

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux01)(PORT=1521)))
  The command completed successfully

  $ lsnrctl services

  LSNRCTL for Linux: Version 12.1.0.2.0 - Production on XX:XX:XX

  Copyright (c) 1991, 2014, Oracle.  All rights reserved.

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux01)(PORT=1521)))
  Services Summary...
  Service "orcl" has 3 instance(s).
    Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
      Handler(s):
        "DEDICATED" established:0 refused:0
           LOCAL SERVER
    Instance "orcl", status READY, has 1 handler(s) for this service...
      Handler(s):
        "DEDICATED" established:0 refused:0 state:ready
           LOCAL SERVER
    Instance "test1", status BLOCKED, has 1 handler(s) for this service...
      Handler(s):
        "DEDICATED" established:0 refused:0 state:ready
           LOCAL SERVER
  Service "orclXDB" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
      Handler(s):
        "D000" established:0 refused:0 current:0 max:1022 state:ready
           DISPATCHER 
           (ADDRESS=(PROTOCOL=tcp)(HOST=linux01)(PORT=56297))
  Service "test1" has 1 instance(s).
    Instance "test1", status UNKNOWN, has 1 handler(s) for this service...
      Handler(s):
        "DEDICATED" established:0 refused:0
           LOCAL SERVER
  The command completed successfully


orcl,test1にstatusが「UNKNOWN」が表示されたので、静的データベース登録が完了しました。 では再度実行してみます。


  $ /SPAN>rman target sys@orcl auxiliary sys@test1

  Recovery Manager: Release 12.1.0.2.0 - Production on XX:XX:XX

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

  target database Password:
  connected to target database: ORCL (DBID=1452128597)
  auxiliary database Password:
  connected to auxiliary database: ORCL (not mounted)


接続できました。ではDUPLICATEを実施します。

  RMAN> DUPLICATE TARGET DATABASE TO test1
     2  FROM ACTIVE DATABASE;

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

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

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

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

  Oracle instance shut down

  Oracle instance started

  Total System Global Area     272629760 bytes

  Fixed Size                     2923336 bytes
  Variable Size                213910712 bytes
  Database Buffers              50331648 bytes
  Redo Buffers                   5464064 bytes

  Starting restore at 27-MAR-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 orcl
  channel ORA_AUX_DISK_1: restoring control file
  channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
  output file name=/opt/oracle/oradata/test1/control01.ctl
  output file name=/opt/oracle/oradata/test1/control02.ctl
  Finished restore at 27-MAR-17

  database mounted

  contents of Memory Script:
  {
     set newname for datafile  1 to
   "/opt/oracle/oradata/test1/system01.dbf";
     set newname for datafile  3 to
   "/opt/oracle/oradata/test1/sysaux01.dbf";
     set newname for datafile  4 to
   "/opt/oracle/oradata/test1/undotbs01.dbf";
     set newname for datafile  5 to
   "/opt/oracle/oradata/test1/pdbseed/system01.dbf";
     set newname for datafile  6 to
   "/opt/oracle/oradata/test1/users01.dbf";
     set newname for datafile  7 to
   "/opt/oracle/oradata/test1/pdbseed/sysaux01.dbf";
     restore
     from service  'orcl'   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

  Starting restore at 27-MAR-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 orcl
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  channel ORA_AUX_DISK_1: restoring datafile 00001 to /opt/oracle/oradata/test1/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 orcl
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  channel ORA_AUX_DISK_1: restoring datafile 00003 to /opt/oracle/oradata/test1/sysaux01.dbf
  channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:36
  channel ORA_AUX_DISK_1: starting datafile backup set restore
  channel ORA_AUX_DISK_1: using network backup set from service orcl
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  channel ORA_AUX_DISK_1: restoring datafile 00004 to /opt/oracle/oradata/test1/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 orcl
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  channel ORA_AUX_DISK_1: restoring datafile 00005 to /opt/oracle/oradata/test1/
                          pdbseed/system01.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 orcl
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  channel ORA_AUX_DISK_1: restoring datafile 00006 to /opt/oracle/oradata/test1/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 orcl
  channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
  channel ORA_AUX_DISK_1: restoring datafile 00007 to /opt/oracle/oradata/test1/
                          pdbseed/sysaux01.dbf
  channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25
  Finished restore at 27-MAR-17

  sql statement: alter system archive log current
  current log archived

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

  Starting restore at 27-MAR-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 orcl
  channel ORA_AUX_DISK_1: restoring archived log
  archived log thread=1 sequence=26
  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 orcl
  channel ORA_AUX_DISK_1: restoring archived log
  archived log thread=1 sequence=27
  channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
  Finished restore at 27-MAR-17

  datafile 1 switched to datafile copy
  input datafile copy RECID=11 STAMP=931685798 file name=/opt/oracle/oradata/test1/
  system01.dbf
  datafile 3 switched to datafile copy
  input datafile copy RECID=12 STAMP=931685798 file name=/opt/oracle/oradata/test1/
  sysaux01.dbf
  datafile 4 switched to datafile copy
  input datafile copy RECID=13 STAMP=931685798 file name=/opt/oracle/oradata/test1/
  undotbs01.dbf
  datafile 5 switched to datafile copy
  input datafile copy RECID=14 STAMP=931685798 file name=/opt/oracle/oradata/test1/
  pdbseed/system01.dbf
  datafile 6 switched to datafile copy
  input datafile copy RECID=15 STAMP=931685798 file name=/opt/oracle/oradata/test1/
  users01.dbf
  datafile 7 switched to datafile copy
  input datafile copy RECID=16 STAMP=931685798 file name=/opt/oracle/oradata/test1/
  pdbseed/sysaux01.dbf

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

  executing command: SET until clause

  Starting recover at 27-MAR-17
  using channel ORA_AUX_DISK_1

  starting media recovery

  archived log for thread 1 with sequence 26 is already on disk as file /u01/app/oracle/
  product/12.1.0/dbhome_1/dbs/arch1_26_924347864.dbf
  archived log for thread 1 with sequence 27 is already on disk as file /u01/app/oracle/
  product/12.1.0/dbhome_1/dbs/arch1_27_924347864.dbf
  archived log file name=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/
  arch1_26_924347864.dbf thread=1 sequence=26
  archived log file name=/u01/app/oracle/product/12.1.0/dbhome_1/dbs/
  arch1_27_924347864.dbf thread=1 sequence=27
  media recovery complete, elapsed time: 00:00:01
  Finished recover at 27-MAR-17
  Oracle instance started

  Total System Global Area     272629760 bytes

  Fixed Size                     2923336 bytes
  Variable Size                213910712 bytes
  Database Buffers              50331648 bytes
  Redo Buffers                   5464064 bytes

  contents of Memory Script:
  {
     sql clone "alter system set  db_name =
   ''TEST1'' 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 =  ''TEST1'' 
  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     272629760 bytes

  Fixed Size                     2923336 bytes
  Variable Size                213910712 bytes
  Database Buffers              50331648 bytes
  Redo Buffers                   5464064 bytes
  sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TEST1" RESETLOGS ARCHIVELOG
    MAXLOGFILES     16
    MAXLOGMEMBERS      3
    MAXDATAFILES     1024
    MAXINSTANCES     8
    MAXLOGHISTORY      292
   LOGFILE
    GROUP   1 ( '/opt/oracle/oradata/test1/redo01.log' ) SIZE 50 M  REUSE,
    GROUP   2 ( '/opt/oracle/oradata/test1/redo02.log' ) SIZE 50 M  REUSE,
    GROUP   3 ( '/opt/oracle/oradata/test1/redo03.log' ) SIZE 50 M  REUSE
   DATAFILE
    '/opt/oracle/oradata/test1/system01.dbf',
    '/opt/oracle/oradata/test1/pdbseed/system01.dbf'
   CHARACTER SET AL32UTF8


  contents of Memory Script:
  {
     set newname for tempfile  1 to
   "/opt/oracle/oradata/test1/temp01.dbf";
     set newname for tempfile  2 to
   "/opt/oracle/oradata/test1/pdbseed/pdbseed_temp012016-10-04_11-18-54-AM.dbf";
     switch clone tempfile all;
     catalog clone datafilecopy  "/opt/oracle/oradata/test1/sysaux01.dbf",
   "/opt/oracle/oradata/test1/undotbs01.dbf",
   "/opt/oracle/oradata/test1/users01.dbf",
   "/opt/oracle/oradata/test1/pdbseed/sysaux01.dbf";
     switch clone datafile all;
  }
  executing Memory Script

  executing command: SET NEWNAME

  executing command: SET NEWNAME

  renamed tempfile 1 to /opt/oracle/oradata/test1/temp01.dbf in control file
  renamed tempfile 2 to /opt/oracle/oradata/test1/pdbseed/
  pdbseed_temp012016-10-04_11-18-54-AM.dbf in control file

  cataloged datafile copy
  datafile copy file name=/opt/oracle/oradata/test1/sysaux01.dbf RECID=1 STAMP=931685819
  cataloged datafile copy
  datafile copy file name=/opt/oracle/oradata/test1/undotbs01.dbf RECID=2 STAMP=931685819
  cataloged datafile copy
  datafile copy file name=/opt/oracle/oradata/test1/users01.dbf RECID=3 STAMP=931685819
  cataloged datafile copy
  datafile copy file name=/opt/oracle/oradata/test1/pdbseed/sysaux01.dbf STAMP=931685819

  datafile 3 switched to datafile copy
  input datafile copy RECID=1 STAMP=931685819 file name=/opt/oracle/oradata/test1/
  sysaux01.dbf
  datafile 4 switched to datafile copy
  input datafile copy RECID=2 STAMP=931685819 file name=/opt/oracle/oradata/test1/
  undotbs01.dbf
  datafile 6 switched to datafile copy
  input datafile copy RECID=3 STAMP=931685819 file name=/opt/oracle/oradata/test1/
  users01.dbf
  datafile 7 switched to datafile copy
  input datafile copy RECID=4 STAMP=931685819 file name=/opt/oracle/oradata/test1/
  pdbseed/sysaux01.dbf

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

  database opened
  Finished Duplicate Db at 27-MAR-17

  RMAN> exit


  $ sqlplus / as sysdba
  SQL> select instance_name,status from v$instance;

  INSTANCE_NAME    STATUS
  ---------------- ------------
  test1            OPEN

  

複製コマンドが失敗しない為の注意事項をまとめます。

・複製元とディレクトリ構造が変わる場合は、DB_FILE_NAME_CONVERT,LOG_FILE_NAME_CONVERTを設定
 指定しない場合は、同じディレクトリにデータファイル等がコピーされる。
・SPFILEも複製したい場合、DUPLICATEコマンドにSPFILEオプションを指定
・オンラインでの複製を行いたい場合はDUPLICATEコマンドにFROM ACTIVE DATABASEオプションを指定
・補助インスタンスはNOMOUNTからの実行である為、リスナー経由での接続は静的データベースの情報を登録する必要がある
・ターゲットデータベースはアーカイブログモード

その他にもいろいろと注意事項はありますが、まずは一度試してみることをお勧めいたします。