oracle 11g duplicate database基於備份複製資料庫(一)

eric0435發表於2015-06-05

使用目標資料庫的基於備份的複製,下面測試將原資料庫使用備份複製到遠端主機相同目錄。
1.對原資料庫生成備份

RMAN> backup as compressed backupset database plus archivelog;


Starting backup at 2015-06-05 16:44:19
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=31 device type=DISK
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=5 RECID=1 STAMP=880996327
input archived log thread=1 sequence=6 RECID=2 STAMP=880996438
input archived log thread=1 sequence=7 RECID=3 STAMP=881014383
input archived log thread=1 sequence=8 RECID=4 STAMP=881014612
input archived log thread=1 sequence=9 RECID=5 STAMP=881015165
input archived log thread=1 sequence=10 RECID=13 STAMP=881233508
input archived log thread=1 sequence=11 RECID=14 STAMP=881233508
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:22
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:29
piece handle=/u02/backup/29q8o8v6_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=1 RECID=12 STAMP=881233507
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:29
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:30
piece handle=/u02/backup/2aq8o8vd_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=12 RECID=15 STAMP=881233508
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:30
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:31
piece handle=/u02/backup/2bq8o8ve_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=21 STAMP=881233663
input archived log thread=1 sequence=3 RECID=22 STAMP=881233941
input archived log thread=1 sequence=4 RECID=23 STAMP=881234587
input archived log thread=1 sequence=5 RECID=24 STAMP=881235045
input archived log thread=1 sequence=6 RECID=25 STAMP=881235180
input archived log thread=1 sequence=7 RECID=26 STAMP=881272559
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:31
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:34
piece handle=/u02/backup/2cq8o8vf_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=13 RECID=16 STAMP=881233508
input archived log thread=1 sequence=14 RECID=17 STAMP=881233508
input archived log thread=1 sequence=15 RECID=18 STAMP=881233508
input archived log thread=1 sequence=16 RECID=19 STAMP=881233508
input archived log thread=1 sequence=17 RECID=20 STAMP=881233508
input archived log thread=1 sequence=18 RECID=11 STAMP=881232587
input archived log thread=1 sequence=19 RECID=9 STAMP=881232587
input archived log thread=1 sequence=20 RECID=10 STAMP=881232587
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:34
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:35
piece handle=/u02/backup/2dq8o8vi_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=8 RECID=27 STAMP=881273112
input archived log thread=1 sequence=9 RECID=28 STAMP=881273363
input archived log thread=1 sequence=10 RECID=29 STAMP=881274168
input archived log thread=1 sequence=11 RECID=30 STAMP=881309835
input archived log thread=1 sequence=12 RECID=31 STAMP=881310058
input archived log thread=1 sequence=13 RECID=32 STAMP=881310212
input archived log thread=1 sequence=14 RECID=33 STAMP=881396520
input archived log thread=1 sequence=15 RECID=34 STAMP=881534563
input archived log thread=1 sequence=16 RECID=35 STAMP=881570186
input archived log thread=1 sequence=17 RECID=36 STAMP=881577860
input archived log thread=1 sequence=18 RECID=37 STAMP=881578662
input archived log thread=1 sequence=19 RECID=38 STAMP=881579588
input archived log thread=1 sequence=20 RECID=39 STAMP=881582326
input archived log thread=1 sequence=21 RECID=40 STAMP=881594537
input archived log thread=1 sequence=22 RECID=41 STAMP=881599459
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:36
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:51
piece handle=/u02/backup/2eq8o8vk_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 2015-06-05 16:44:51

Starting backup at 2015-06-05 16:44:51
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u03/app/oracle/oradata/db/system01.dbf
input datafile file number=00002 name=/u03/app/oracle/oradata/db/sysaux01.dbf
input datafile file number=00003 name=/u03/app/oracle/oradata/db/undotbs01.dbf
input datafile file number=00005 name=/u03/app/oracle/oradata/db/test01.dbf
input datafile file number=00004 name=/u03/app/oracle/oradata/db/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:52
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:46:37
piece handle=/u02/backup/2fq8o904_1_1 tag=TAG20150605T164451 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:45
Finished backup at 2015-06-05 16:46:37

Starting backup at 2015-06-05 16:46:37
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=23 RECID=42 STAMP=881599598
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:46:39
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:46:40
piece handle=/u02/backup/2gq8o93f_1_1 tag=TAG20150605T164639 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015-06-05 16:46:40

Starting Control File and SPFILE Autobackup at 2015-06-05 16:46:40
piece handle=/u02/backup/c-1644809111-20150605-00 comment=NONE
Finished Control File and SPFILE Autobackup at 2015-06-05 16:46:44

RMAN> list backup;


List of Backup Sets
===================


BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16127   946.50K    DISK        00:00:00     2015-06-05 16:44:29
        BP Key: 16133   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164421
        Piece Name: /u02/backup/2aq8o8vd_1_1

  List of Archived Logs in backup set 16127
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    1       703711     2015-06-01 10:49:47 704659     2015-06-01 11:05:07

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16129   5.37M      DISK        00:00:01     2015-06-05 16:44:32
        BP Key: 16135   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164421
        Piece Name: /u02/backup/2cq8o8vf_1_1

  List of Archived Logs in backup set 16129
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    2       704659     2015-06-01 11:05:07 705159     2015-06-01 11:07:43
  1    3       705159     2015-06-01 11:07:43 705443     2015-06-01 11:12:21
  1    4       705443     2015-06-01 11:12:21 707134     2015-06-01 11:23:07
  1    5       707134     2015-06-01 11:23:07 707879     2015-06-01 11:30:45
  1    6       707879     2015-06-01 11:30:45 707956     2015-06-01 11:33:00
  1    7       707956     2015-06-01 11:33:00 739261     2015-06-01 21:55:54

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16131   25.64M     DISK        00:00:08     2015-06-05 16:44:44
        BP Key: 16137   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164421
        Piece Name: /u02/backup/2eq8o8vk_1_1

  List of Archived Logs in backup set 16131
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    8       739261     2015-06-01 21:55:54 746801     2015-06-01 22:05:12
  1    9       746801     2015-06-01 22:05:12 750015     2015-06-01 22:09:21
  1    10      750015     2015-06-01 22:09:21 751675     2015-06-01 22:22:48
  1    11      751675     2015-06-01 22:22:48 773357     2015-06-02 08:17:13
  1    12      773357     2015-06-02 08:17:13 773904     2015-06-02 08:20:58
  1    13      773904     2015-06-02 08:20:58 773991     2015-06-02 08:23:32
  1    14      773991     2015-06-02 08:23:32 811036     2015-06-03 08:21:54
  1    15      811036     2015-06-03 08:21:54 848751     2015-06-04 22:42:38
  1    16      848751     2015-06-04 22:42:38 878559     2015-06-05 08:36:20
  1    17      878559     2015-06-05 08:36:20 882947     2015-06-05 10:44:20
  1    18      882947     2015-06-05 10:44:20 883808     2015-06-05 10:57:41
  1    19      883808     2015-06-05 10:57:41 884702     2015-06-05 11:13:08
  1    20      884702     2015-06-05 11:13:08 886070     2015-06-05 11:58:46
  1    21      886070     2015-06-05 11:58:46 892378     2015-06-05 15:22:17
  1    22      892378     2015-06-05 15:22:17 894752     2015-06-05 16:44:19

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
16184   Full    271.73M    DISK        00:01:43     2015-06-05 16:46:35
        BP Key: 16200   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164451
        Piece Name: /u02/backup/2fq8o904_1_1
  List of Datafiles in backup set 16184
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/system01.dbf
  2       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/sysaux01.dbf
  3       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/undotbs01.dbf
  4       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/users01.dbf
  5       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/test01.dbf

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16213   7.50K      DISK        00:00:00     2015-06-05 16:46:39
        BP Key: 16219   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164639
        Piece Name: /u02/backup/2gq8o93f_1_1

  List of Archived Logs in backup set 16213
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    23      894752     2015-06-05 16:44:19 894834     2015-06-05 16:46:37

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
16228   Full    9.48M      DISK        00:00:02     2015-06-05 16:46:43
        BP Key: 16230   Status: AVAILABLE  Compressed: NO  Tag: TAG20150605T164641
        Piece Name: /u02/backup/c-1644809111-20150605-00
  SPFILE Included: Modification time: 2015-06-05 16:01:17
  SPFILE db_unique_name: DB
  Control File Included: Ckp SCN: 894861       Ckp time: 2015-06-05 16:46:41

2.將備份檔案傳輸到目的主機上

[oracle11@jingyong1 backup]$ scp oracle11@192.168.56.2:/u02/backup/* /u02/backup/
oracle11@192.168.56.2's password:
29q8o8v6_1_1                                                                                                                         100%   17MB  16.8MB/s   00:01
2aq8o8vd_1_1                                                                                                                         100%  947KB 947.0KB/s   00:00
2bq8o8ve_1_1                                                                                                                         100% 2916KB   2.9MB/s   00:00
2cq8o8vf_1_1                                                                                                                         100% 5504KB   5.4MB/s   00:01
2dq8o8vi_1_1                                                                                                                         100% 1992KB   1.9MB/s   00:00
2eq8o8vk_1_1                                                                                                                         100%   26MB  12.8MB/s   00:02
2fq8o904_1_1                                                                                                                         100%  272MB   8.5MB/s   00:32
2gq8o93f_1_1                                                                                                                         100% 8192     8.0KB/s   00:00
c-1644809111-20150605-00                                                                                                             100% 9728KB   9.5MB/s   00:00
[oracle11@jingyong1 backup]$ ls -lrt
total 343140
-rw-r----- 1 oracle11 oinstall   2985472 Jun  5 17:07 2bq8o8ve_1_1
-rw-r----- 1 oracle11 oinstall    969728 Jun  5 17:07 2aq8o8vd_1_1
-rw-r----- 1 oracle11 oinstall  17567232 Jun  5 17:07 29q8o8v6_1_1
-rw-r----- 1 oracle11 oinstall   2039296 Jun  5 17:07 2dq8o8vi_1_1
-rw-r----- 1 oracle11 oinstall   5636096 Jun  5 17:07 2cq8o8vf_1_1
-rw-r----- 1 oracle11 oinstall  26888192 Jun  5 17:07 2eq8o8vk_1_1
-rw-r----- 1 oracle11 oinstall   9961472 Jun  5 17:07 c-1644809111-20150605-00
-rw-r----- 1 oracle11 oinstall      8192 Jun  5 17:07 2gq8o93f_1_1
-rw-r----- 1 oracle11 oinstall 284934144 Jun  5 17:07 2fq8o904_1_1

3.建立輔助例項的密碼檔案(這裡輔助例項名為dup) ,在目的主機上為輔助例項建立密碼檔案可以有以下選項:
.手動建立密碼檔案,對於duplicate ... from active database有額外的要求。必須使用SYS使用者ID並且密碼必須與原資料庫的密碼相匹配。當想要使用單獨的密碼來建立密碼檔案時因此可以啟動輔助例項並使用它來連線原資料庫。

.在執行duplicate ... from active database命令時指定password file選項,在這種情況下,RMAN將原資料庫的密碼檔案複製到目的主機上並且覆蓋輔助例項已經存在的密碼檔案。如果原資料庫密碼檔案有多個密碼且你想讓它們在副本資料庫中使用時這種技術是非常有用的。

[oracle11@jingyong1 dbs]$ orapwd file=/u03/app/oracle/11.2.0/db/dbs/orapwdup password=system entries=10;

[oracle11@jingyong1 dbs]$ ls -lrt orapwdup
-rw-r----- 1 oracle11 oinstall 2560 Jun  5 09:40 orapwdup

4.建立輔助例項網路連線,修改監聽檔案,使用靜態監聽來監聽輔助例項

[oracle11@jingyong1 admin]$ vi listener.ora


# listener.ora Network Configuration File: /u03/app/oracle/11.2.0/db/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = jingyong1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =

    (SID_DESC =
     (SID_NAME = dup)
      (ORACLE_HOME =/u03/app/oracle/11.2.0/db)
    )
  )

[oracle11@jingyong1 admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JUN-2015 11:25:35

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

Starting /u03/app/oracle/11.2.0/db/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /u03/app/oracle/11.2.0/db/network/admin/listener.ora
Log messages written to /u03/app/oracle/diag/tnslsnr/jingyong1/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong1)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jingyong1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                05-JUN-2015 11:25:35
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u03/app/oracle/11.2.0/db/network/admin/listener.ora
Listener Log File         /u03/app/oracle/diag/tnslsnr/jingyong1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "cs" has 1 instance(s).
  Instance "cs", status UNKNOWN, has 1 handler(s) for this service...
Service "dup" has 1 instance(s).
  Instance "dup", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

給輔助例項增加網路服務名

[oracle11@jingyong1 admin]$ vi tnsnames.ora
# tnsnames.ora Network Configuration File: /u03/app/oracle/11.2.0/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

dup =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dup)
      (UR = A)
    )
  )

5.建立輔助例項的引數檔案,初始化引數檔案的目錄和內容依賴於給複製檔案命名選擇的策略。可以選擇建議的技術來對原主機和目的主機使用相同的命名策略。因此對於Oracle RAC環境,對於原主機和目的主機可以使用相同的ORACLE_SID。在引數檔案中將db_name設定為任意值,db_name是唯一必須設定的引數。建立引數檔案有以下選項:
.為輔助例項來建立文字引數檔案,初始化引數檔案的儲存目錄是在主機上作業系統特定的預設目錄。例如,在Linux和UNIX中預設引數檔名是ORACLE_HOME/dbs/initORACLE_SID.ora,在Windows平臺上引數檔名是ORACLE_HOME\database\initORACLE_SID.ora

.在執行duplicate命令時指定spfile子句。duplicate ... spfile技術最簡單,因為在執行復制時RMAN自動將原資料庫的spfile檔案複製到輔助例項或從備份中還原spfile檔案。如果在輔助例項上存在spfile檔案,那麼RMAN就會覆蓋它。

[oracle11@jingyong1 dbs]$ vi initdup.ora
db_name=dup
db_unique_name=dup
control_files= /u03/app/oracle/oradata/db/control01.ctl
remote_login_passwordfile=exclusive
compatible = 11.2.0.4.0
db_block_size=8192
sga_target=300M
sga_max_size=300M
pga_aggregate_target=32M

6.啟動輔助例項,啟動SQL*Plus並使用sysdba許可權連線到輔助例項。將輔助例項啟動到nomount狀態(如果引數檔案在預設目錄中startup命令不需要pfile引數)。注意:確保輔助例項使用文字引數檔案來啟動而不是SPFILE引數檔案。不要建立控制檔案或試圖mount或open輔助例項。

[oracle11@jingyong1 dbs]$ export ORACLE_SID=dup
[oracle11@jingyong1 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 5 09:58:16 2015

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

Connected to an idle instance.

SQL> startup nomount
ORACLE instance started.

Total System Global Area  313860096 bytes
Fixed Size                  1364340 bytes
Variable Size             104861324 bytes
Database Buffers          201326592 bytes
Redo Buffers                6307840 bytes

7.在目標主機(執行被複制資料庫的主機)配置輔助例項的網路服務名

[oracle11@oracle11g admin]$ vi tnsnames.ora
dup =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME =dup)
      (UR=A)
    )
  )

[oracle11@oracle11g admin]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 5 10:05:14 2015

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

SQL> conn sys/system@dup as sysdba
Connected.

8.載入或開啟目標資料庫,如果RMAN連線到原資料庫作為目標資料庫,那麼原資料庫為了執行復制必須設定為合適的狀態。如果原資料庫例項沒有mount或open,那麼將原資料庫mount或open。如果執行active database複製,那麼確保滿足下面額外的條件:
-如果原資料庫open,那麼必須啟用歸檔
-如果原資料庫沒有open,那麼資料庫不需要執行例項恢復
由於原資料庫啟用了歸檔所以可以將原資料庫啟動到open狀態

[oracle11@oracle11g ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 5 08:35:45 2015

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1365068 bytes
Variable Size             310381492 bytes
Database Buffers          104857600 bytes
Redo Buffers                6066176 bytes
Database mounted.
Database opened.

9.執行duplicate命令,如果沒有配置自動通道,那麼至少手動分配一個輔助例項。給duplicate命令指定nofilenamecheck引數。如果是使用PFILE引數檔案啟動輔助例項需要指定pfile引數檔案,且pfile引數檔案必須儲存在執行RMAN執行復制的主機上。這裡輔助例項使用SPFILE引數檔案來啟動,並使用自動通道和指定nofilenamecheck選項:

[oracle11@oracle11g ~]$ rman target sys/system@db catalog rman/rman@cs auxiliary sys/system@dup

Recovery Manager: Release 11.2.0.4.0 - Production on Fri Jun 5 17:50:46 2015

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

connected to target database: DB (DBID=1644809111)
connected to recovery catalog database
connected to auxiliary database: DUP (not mounted)

RMAN>

RMAN> duplicate target database  to dup   until time '2015-06-05 16:46:37'  nofilenamecheck;

Starting Duplicate Db at 2015-06-05 17:50:49
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=20 device type=DISK

contents of Memory Script:
{
   sql clone "create spfile from memory";
}
executing Memory Script

sql statement: create spfile from memory

contents of Memory Script:
{
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes

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

executing command: SET until clause

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

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

Oracle instance shut down

Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes

Starting restore at 2015-06-05 17:51:06
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=18 device type=DISK

channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: copied control file copy
input file name=/u03/app/oracle/11.2.0/db/dbs/snapcf_db.f
output file name=/u03/app/oracle/oradata/db/control01.ctl
Finished restore at 2015-06-05 17:51:08

database mounted

contents of Memory Script:
{
   set until scn  894791;
   set newname for datafile  1 to
 "/u03/app/oracle/oradata/db/system01.dbf";
   set newname for datafile  2 to
 "/u03/app/oracle/oradata/db/sysaux01.dbf";
   set newname for datafile  3 to
 "/u03/app/oracle/oradata/db/undotbs01.dbf";
   set newname for datafile  4 to
 "/u03/app/oracle/oradata/db/users01.dbf";
   set newname for datafile  5 to
 "/u03/app/oracle/oradata/db/test01.dbf";
   restore
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 2015-06-05 17:51:12
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u03/app/oracle/oradata/db/system01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00002 to /u03/app/oracle/oradata/db/sysaux01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u03/app/oracle/oradata/db/undotbs01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u03/app/oracle/oradata/db/users01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u03/app/oracle/oradata/db/test01.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u02/backup/2fq8o904_1_1
channel ORA_AUX_DISK_1: piece handle=/u02/backup/2fq8o904_1_1 tag=TAG20150605T164451
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:15
Finished restore at 2015-06-05 17:53:29

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=7 STAMP=881603617 file name=/u03/app/oracle/oradata/db/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=8 STAMP=881603617 file name=/u03/app/oracle/oradata/db/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=9 STAMP=881603617 file name=/u03/app/oracle/oradata/db/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=10 STAMP=881603617 file name=/u03/app/oracle/oradata/db/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=11 STAMP=881603617 file name=/u03/app/oracle/oradata/db/test01.dbf
Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes

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

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

sql statement: alter system reset  db_unique_name scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "DUP" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP   1 ( '/u03/app/oracle/oradata/db/redo01.log' ) SIZE 50 M  REUSE,
  GROUP   2 ( '/u03/app/oracle/oradata/db/redo02.log' ) SIZE 50 M  REUSE,
  GROUP   3 ( '/u03/app/oracle/oradata/db/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u03/app/oracle/oradata/db/system01.dbf'
 CHARACTER SET ZHS16GBK


contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u03/app/oracle/oradata/db/temp01.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u03/app/oracle/oradata/db/sysaux01.dbf",
 "/u03/app/oracle/oradata/db/undotbs01.dbf",
 "/u03/app/oracle/oradata/db/users01.dbf",
 "/u03/app/oracle/oradata/db/test01.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u03/app/oracle/oradata/db/temp01.dbf in control file

cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/sysaux01.dbf RECID=1 STAMP=881603636
cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/undotbs01.dbf RECID=2 STAMP=881603636
cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/users01.dbf RECID=3 STAMP=881603636
cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/test01.dbf RECID=4 STAMP=881603636

datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=881603636 file name=/u03/app/oracle/oradata/db/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=881603636 file name=/u03/app/oracle/oradata/db/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=881603636 file name=/u03/app/oracle/oradata/db/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=881603636 file name=/u03/app/oracle/oradata/db/test01.dbf

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

database opened
Finished Duplicate Db at 2015-06-05 17:54:11

使用目標資料庫的基於備份的複製,下面測試將原資料庫使用備份複製到遠端主機相同目錄。
1.對原資料庫生成備份

RMAN> backup as compressed backupset database plus archivelog;


Starting backup at 2015-06-05 16:44:19
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=31 device type=DISK
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=5 RECID=1 STAMP=880996327
input archived log thread=1 sequence=6 RECID=2 STAMP=880996438
input archived log thread=1 sequence=7 RECID=3 STAMP=881014383
input archived log thread=1 sequence=8 RECID=4 STAMP=881014612
input archived log thread=1 sequence=9 RECID=5 STAMP=881015165
input archived log thread=1 sequence=10 RECID=13 STAMP=881233508
input archived log thread=1 sequence=11 RECID=14 STAMP=881233508
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:22
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:29
piece handle=/u02/backup/29q8o8v6_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=1 RECID=12 STAMP=881233507
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:29
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:30
piece handle=/u02/backup/2aq8o8vd_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=12 RECID=15 STAMP=881233508
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:30
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:31
piece handle=/u02/backup/2bq8o8ve_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=21 STAMP=881233663
input archived log thread=1 sequence=3 RECID=22 STAMP=881233941
input archived log thread=1 sequence=4 RECID=23 STAMP=881234587
input archived log thread=1 sequence=5 RECID=24 STAMP=881235045
input archived log thread=1 sequence=6 RECID=25 STAMP=881235180
input archived log thread=1 sequence=7 RECID=26 STAMP=881272559
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:31
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:34
piece handle=/u02/backup/2cq8o8vf_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=13 RECID=16 STAMP=881233508
input archived log thread=1 sequence=14 RECID=17 STAMP=881233508
input archived log thread=1 sequence=15 RECID=18 STAMP=881233508
input archived log thread=1 sequence=16 RECID=19 STAMP=881233508
input archived log thread=1 sequence=17 RECID=20 STAMP=881233508
input archived log thread=1 sequence=18 RECID=11 STAMP=881232587
input archived log thread=1 sequence=19 RECID=9 STAMP=881232587
input archived log thread=1 sequence=20 RECID=10 STAMP=881232587
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:34
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:35
piece handle=/u02/backup/2dq8o8vi_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=8 RECID=27 STAMP=881273112
input archived log thread=1 sequence=9 RECID=28 STAMP=881273363
input archived log thread=1 sequence=10 RECID=29 STAMP=881274168
input archived log thread=1 sequence=11 RECID=30 STAMP=881309835
input archived log thread=1 sequence=12 RECID=31 STAMP=881310058
input archived log thread=1 sequence=13 RECID=32 STAMP=881310212
input archived log thread=1 sequence=14 RECID=33 STAMP=881396520
input archived log thread=1 sequence=15 RECID=34 STAMP=881534563
input archived log thread=1 sequence=16 RECID=35 STAMP=881570186
input archived log thread=1 sequence=17 RECID=36 STAMP=881577860
input archived log thread=1 sequence=18 RECID=37 STAMP=881578662
input archived log thread=1 sequence=19 RECID=38 STAMP=881579588
input archived log thread=1 sequence=20 RECID=39 STAMP=881582326
input archived log thread=1 sequence=21 RECID=40 STAMP=881594537
input archived log thread=1 sequence=22 RECID=41 STAMP=881599459
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:36
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:44:51
piece handle=/u02/backup/2eq8o8vk_1_1 tag=TAG20150605T164421 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 2015-06-05 16:44:51

Starting backup at 2015-06-05 16:44:51
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u03/app/oracle/oradata/db/system01.dbf
input datafile file number=00002 name=/u03/app/oracle/oradata/db/sysaux01.dbf
input datafile file number=00003 name=/u03/app/oracle/oradata/db/undotbs01.dbf
input datafile file number=00005 name=/u03/app/oracle/oradata/db/test01.dbf
input datafile file number=00004 name=/u03/app/oracle/oradata/db/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:44:52
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:46:37
piece handle=/u02/backup/2fq8o904_1_1 tag=TAG20150605T164451 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:45
Finished backup at 2015-06-05 16:46:37

Starting backup at 2015-06-05 16:46:37
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=23 RECID=42 STAMP=881599598
channel ORA_DISK_1: starting piece 1 at 2015-06-05 16:46:39
channel ORA_DISK_1: finished piece 1 at 2015-06-05 16:46:40
piece handle=/u02/backup/2gq8o93f_1_1 tag=TAG20150605T164639 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015-06-05 16:46:40

Starting Control File and SPFILE Autobackup at 2015-06-05 16:46:40
piece handle=/u02/backup/c-1644809111-20150605-00 comment=NONE
Finished Control File and SPFILE Autobackup at 2015-06-05 16:46:44

RMAN> list backup;


List of Backup Sets
===================


BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16127   946.50K    DISK        00:00:00     2015-06-05 16:44:29
        BP Key: 16133   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164421
        Piece Name: /u02/backup/2aq8o8vd_1_1

  List of Archived Logs in backup set 16127
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    1       703711     2015-06-01 10:49:47 704659     2015-06-01 11:05:07

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16129   5.37M      DISK        00:00:01     2015-06-05 16:44:32
        BP Key: 16135   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164421
        Piece Name: /u02/backup/2cq8o8vf_1_1

  List of Archived Logs in backup set 16129
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    2       704659     2015-06-01 11:05:07 705159     2015-06-01 11:07:43
  1    3       705159     2015-06-01 11:07:43 705443     2015-06-01 11:12:21
  1    4       705443     2015-06-01 11:12:21 707134     2015-06-01 11:23:07
  1    5       707134     2015-06-01 11:23:07 707879     2015-06-01 11:30:45
  1    6       707879     2015-06-01 11:30:45 707956     2015-06-01 11:33:00
  1    7       707956     2015-06-01 11:33:00 739261     2015-06-01 21:55:54

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16131   25.64M     DISK        00:00:08     2015-06-05 16:44:44
        BP Key: 16137   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164421
        Piece Name: /u02/backup/2eq8o8vk_1_1

  List of Archived Logs in backup set 16131
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    8       739261     2015-06-01 21:55:54 746801     2015-06-01 22:05:12
  1    9       746801     2015-06-01 22:05:12 750015     2015-06-01 22:09:21
  1    10      750015     2015-06-01 22:09:21 751675     2015-06-01 22:22:48
  1    11      751675     2015-06-01 22:22:48 773357     2015-06-02 08:17:13
  1    12      773357     2015-06-02 08:17:13 773904     2015-06-02 08:20:58
  1    13      773904     2015-06-02 08:20:58 773991     2015-06-02 08:23:32
  1    14      773991     2015-06-02 08:23:32 811036     2015-06-03 08:21:54
  1    15      811036     2015-06-03 08:21:54 848751     2015-06-04 22:42:38
  1    16      848751     2015-06-04 22:42:38 878559     2015-06-05 08:36:20
  1    17      878559     2015-06-05 08:36:20 882947     2015-06-05 10:44:20
  1    18      882947     2015-06-05 10:44:20 883808     2015-06-05 10:57:41
  1    19      883808     2015-06-05 10:57:41 884702     2015-06-05 11:13:08
  1    20      884702     2015-06-05 11:13:08 886070     2015-06-05 11:58:46
  1    21      886070     2015-06-05 11:58:46 892378     2015-06-05 15:22:17
  1    22      892378     2015-06-05 15:22:17 894752     2015-06-05 16:44:19

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
16184   Full    271.73M    DISK        00:01:43     2015-06-05 16:46:35
        BP Key: 16200   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164451
        Piece Name: /u02/backup/2fq8o904_1_1
  List of Datafiles in backup set 16184
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/system01.dbf
  2       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/sysaux01.dbf
  3       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/undotbs01.dbf
  4       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/users01.dbf
  5       Full 894791     2015-06-05 16:44:52 /u03/app/oracle/oradata/db/test01.dbf

BS Key  Size       Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
16213   7.50K      DISK        00:00:00     2015-06-05 16:46:39
        BP Key: 16219   Status: AVAILABLE  Compressed: YES  Tag: TAG20150605T164639
        Piece Name: /u02/backup/2gq8o93f_1_1

  List of Archived Logs in backup set 16213
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    23      894752     2015-06-05 16:44:19 894834     2015-06-05 16:46:37

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
16228   Full    9.48M      DISK        00:00:02     2015-06-05 16:46:43
        BP Key: 16230   Status: AVAILABLE  Compressed: NO  Tag: TAG20150605T164641
        Piece Name: /u02/backup/c-1644809111-20150605-00
  SPFILE Included: Modification time: 2015-06-05 16:01:17
  SPFILE db_unique_name: DB
  Control File Included: Ckp SCN: 894861       Ckp time: 2015-06-05 16:46:41

2.將備份檔案傳輸到目的主機上

[oracle11@jingyong1 backup]$ scp oracle11@192.168.56.2:/u02/backup/* /u02/backup/
oracle11@192.168.56.2's password:
29q8o8v6_1_1                                                                                                                         100%   17MB  16.8MB/s   00:01
2aq8o8vd_1_1                                                                                                                         100%  947KB 947.0KB/s   00:00
2bq8o8ve_1_1                                                                                                                         100% 2916KB   2.9MB/s   00:00
2cq8o8vf_1_1                                                                                                                         100% 5504KB   5.4MB/s   00:01
2dq8o8vi_1_1                                                                                                                         100% 1992KB   1.9MB/s   00:00
2eq8o8vk_1_1                                                                                                                         100%   26MB  12.8MB/s   00:02
2fq8o904_1_1                                                                                                                         100%  272MB   8.5MB/s   00:32
2gq8o93f_1_1                                                                                                                         100% 8192     8.0KB/s   00:00
c-1644809111-20150605-00                                                                                                             100% 9728KB   9.5MB/s   00:00
[oracle11@jingyong1 backup]$ ls -lrt
total 343140
-rw-r----- 1 oracle11 oinstall   2985472 Jun  5 17:07 2bq8o8ve_1_1
-rw-r----- 1 oracle11 oinstall    969728 Jun  5 17:07 2aq8o8vd_1_1
-rw-r----- 1 oracle11 oinstall  17567232 Jun  5 17:07 29q8o8v6_1_1
-rw-r----- 1 oracle11 oinstall   2039296 Jun  5 17:07 2dq8o8vi_1_1
-rw-r----- 1 oracle11 oinstall   5636096 Jun  5 17:07 2cq8o8vf_1_1
-rw-r----- 1 oracle11 oinstall  26888192 Jun  5 17:07 2eq8o8vk_1_1
-rw-r----- 1 oracle11 oinstall   9961472 Jun  5 17:07 c-1644809111-20150605-00
-rw-r----- 1 oracle11 oinstall      8192 Jun  5 17:07 2gq8o93f_1_1
-rw-r----- 1 oracle11 oinstall 284934144 Jun  5 17:07 2fq8o904_1_1

3.建立輔助例項的密碼檔案(這裡輔助例項名為dup) ,在目的主機上為輔助例項建立密碼檔案可以有以下選項:
.手動建立密碼檔案,對於duplicate ... from active database有額外的要求。必須使用SYS使用者ID並且密碼必須與原資料庫的密碼相匹配。當想要使用單獨的密碼來建立密碼檔案時因此可以啟動輔助例項並使用它來連線原資料庫。

.在執行duplicate ... from active database命令時指定password file選項,在這種情況下,RMAN將原資料庫的密碼檔案複製到目的主機上並且覆蓋輔助例項已經存在的密碼檔案。如果原資料庫密碼檔案有多個密碼且你想讓它們在副本資料庫中使用時這種技術是非常有用的。

[oracle11@jingyong1 dbs]$ orapwd file=/u03/app/oracle/11.2.0/db/dbs/orapwdup password=system entries=10;

[oracle11@jingyong1 dbs]$ ls -lrt orapwdup
-rw-r----- 1 oracle11 oinstall 2560 Jun  5 09:40 orapwdup

4.建立輔助例項網路連線,修改監聽檔案,使用靜態監聽來監聽輔助例項

[oracle11@jingyong1 admin]$ vi listener.ora


# listener.ora Network Configuration File: /u03/app/oracle/11.2.0/db/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = jingyong1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =

    (SID_DESC =
     (SID_NAME = dup)
      (ORACLE_HOME =/u03/app/oracle/11.2.0/db)
    )
  )

[oracle11@jingyong1 admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 05-JUN-2015 11:25:35

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

Starting /u03/app/oracle/11.2.0/db/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /u03/app/oracle/11.2.0/db/network/admin/listener.ora
Log messages written to /u03/app/oracle/diag/tnslsnr/jingyong1/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong1)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jingyong1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                05-JUN-2015 11:25:35
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u03/app/oracle/11.2.0/db/network/admin/listener.ora
Listener Log File         /u03/app/oracle/diag/tnslsnr/jingyong1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jingyong1)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "cs" has 1 instance(s).
  Instance "cs", status UNKNOWN, has 1 handler(s) for this service...
Service "dup" has 1 instance(s).
  Instance "dup", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

給輔助例項增加網路服務名

[oracle11@jingyong1 admin]$ vi tnsnames.ora
# tnsnames.ora Network Configuration File: /u03/app/oracle/11.2.0/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

dup =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = dup)
      (UR = A)
    )
  )

5.建立輔助例項的引數檔案,初始化引數檔案的目錄和內容依賴於給複製檔案命名選擇的策略。可以選擇建議的技術來對原主機和目的主機使用相同的命名策略。因此對於Oracle RAC環境,對於原主機和目的主機可以使用相同的ORACLE_SID。在引數檔案中將db_name設定為任意值,db_name是唯一必須設定的引數。建立引數檔案有以下選項:
.為輔助例項來建立文字引數檔案,初始化引數檔案的儲存目錄是在主機上作業系統特定的預設目錄。例如,在Linux和UNIX中預設引數檔名是ORACLE_HOME/dbs/initORACLE_SID.ora,在Windows平臺上引數檔名是ORACLE_HOME\database\initORACLE_SID.ora

.在執行duplicate命令時指定spfile子句。duplicate ... spfile技術最簡單,因為在執行復制時RMAN自動將原資料庫的spfile檔案複製到輔助例項或從備份中還原spfile檔案。如果在輔助例項上存在spfile檔案,那麼RMAN就會覆蓋它。

[oracle11@jingyong1 dbs]$ vi initdup.ora
db_name=dup
db_unique_name=dup
control_files= /u03/app/oracle/oradata/db/control01.ctl
remote_login_passwordfile=exclusive
compatible = 11.2.0.4.0
db_block_size=8192
sga_target=300M
sga_max_size=300M
pga_aggregate_target=32M

6.啟動輔助例項,啟動SQL*Plus並使用sysdba許可權連線到輔助例項。將輔助例項啟動到nomount狀態(如果引數檔案在預設目錄中startup命令不需要pfile引數)。注意:確保輔助例項使用文字引數檔案來啟動而不是SPFILE引數檔案。不要建立控制檔案或試圖mount或open輔助例項。

[oracle11@jingyong1 dbs]$ export ORACLE_SID=dup
[oracle11@jingyong1 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 5 09:58:16 2015

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

Connected to an idle instance.

SQL> startup nomount
ORACLE instance started.

Total System Global Area  313860096 bytes
Fixed Size                  1364340 bytes
Variable Size             104861324 bytes
Database Buffers          201326592 bytes
Redo Buffers                6307840 bytes

7.在目標主機(執行被複制資料庫的主機)配置輔助例項的網路服務名

[oracle11@oracle11g admin]$ vi tnsnames.ora
dup =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.11)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME =dup)
      (UR=A)
    )
  )

[oracle11@oracle11g admin]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 5 10:05:14 2015

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

SQL> conn sys/system@dup as sysdba
Connected.

8.載入或開啟目標資料庫,如果RMAN連線到原資料庫作為目標資料庫,那麼原資料庫為了執行復制必須設定為合適的狀態。如果原資料庫例項沒有mount或open,那麼將原資料庫mount或open。如果執行active database複製,那麼確保滿足下面額外的條件:
-如果原資料庫open,那麼必須啟用歸檔
-如果原資料庫沒有open,那麼資料庫不需要執行例項恢復
由於原資料庫啟用了歸檔所以可以將原資料庫啟動到open狀態

[oracle11@oracle11g ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 5 08:35:45 2015

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1365068 bytes
Variable Size             310381492 bytes
Database Buffers          104857600 bytes
Redo Buffers                6066176 bytes
Database mounted.
Database opened.

9.執行duplicate命令,如果沒有配置自動通道,那麼至少手動分配一個輔助例項。給duplicate命令指定nofilenamecheck引數。如果是使用PFILE引數檔案啟動輔助例項需要指定pfile引數檔案,且pfile引數檔案必須儲存在執行RMAN執行復制的主機上。這裡輔助例項使用SPFILE引數檔案來啟動,並使用自動通道和指定nofilenamecheck選項:

[oracle11@oracle11g ~]$ rman target sys/system@db catalog rman/rman@cs auxiliary sys/system@dup

Recovery Manager: Release 11.2.0.4.0 - Production on Fri Jun 5 17:50:46 2015

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

connected to target database: DB (DBID=1644809111)
connected to recovery catalog database
connected to auxiliary database: DUP (not mounted)

RMAN>

RMAN> duplicate target database  to dup   until time '2015-06-05 16:46:37'  nofilenamecheck;

Starting Duplicate Db at 2015-06-05 17:50:49
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=20 device type=DISK

contents of Memory Script:
{
   sql clone "create spfile from memory";
}
executing Memory Script

sql statement: create spfile from memory

contents of Memory Script:
{
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes

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

executing command: SET until clause

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

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

Oracle instance shut down

Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes

Starting restore at 2015-06-05 17:51:06
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=18 device type=DISK

channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: copied control file copy
input file name=/u03/app/oracle/11.2.0/db/dbs/snapcf_db.f
output file name=/u03/app/oracle/oradata/db/control01.ctl
Finished restore at 2015-06-05 17:51:08

database mounted

contents of Memory Script:
{
   set until scn  894791;
   set newname for datafile  1 to
 "/u03/app/oracle/oradata/db/system01.dbf";
   set newname for datafile  2 to
 "/u03/app/oracle/oradata/db/sysaux01.dbf";
   set newname for datafile  3 to
 "/u03/app/oracle/oradata/db/undotbs01.dbf";
   set newname for datafile  4 to
 "/u03/app/oracle/oradata/db/users01.dbf";
   set newname for datafile  5 to
 "/u03/app/oracle/oradata/db/test01.dbf";
   restore
   clone database
   ;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 2015-06-05 17:51:12
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u03/app/oracle/oradata/db/system01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00002 to /u03/app/oracle/oradata/db/sysaux01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u03/app/oracle/oradata/db/undotbs01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u03/app/oracle/oradata/db/users01.dbf
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u03/app/oracle/oradata/db/test01.dbf
channel ORA_AUX_DISK_1: reading from backup piece /u02/backup/2fq8o904_1_1
channel ORA_AUX_DISK_1: piece handle=/u02/backup/2fq8o904_1_1 tag=TAG20150605T164451
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:02:15
Finished restore at 2015-06-05 17:53:29

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=7 STAMP=881603617 file name=/u03/app/oracle/oradata/db/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=8 STAMP=881603617 file name=/u03/app/oracle/oradata/db/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=9 STAMP=881603617 file name=/u03/app/oracle/oradata/db/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=10 STAMP=881603617 file name=/u03/app/oracle/oradata/db/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=11 STAMP=881603617 file name=/u03/app/oracle/oradata/db/test01.dbf
Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes

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

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

sql statement: alter system reset  db_unique_name scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     313860096 bytes

Fixed Size                     1364340 bytes
Variable Size                109055628 bytes
Database Buffers             197132288 bytes
Redo Buffers                   6307840 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "DUP" RESETLOGS ARCHIVELOG
  MAXLOGFILES     16
  MAXLOGMEMBERS      3
  MAXDATAFILES      100
  MAXINSTANCES     8
  MAXLOGHISTORY      292
 LOGFILE
  GROUP   1 ( '/u03/app/oracle/oradata/db/redo01.log' ) SIZE 50 M  REUSE,
  GROUP   2 ( '/u03/app/oracle/oradata/db/redo02.log' ) SIZE 50 M  REUSE,
  GROUP   3 ( '/u03/app/oracle/oradata/db/redo03.log' ) SIZE 50 M  REUSE
 DATAFILE
  '/u03/app/oracle/oradata/db/system01.dbf'
 CHARACTER SET ZHS16GBK


contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u03/app/oracle/oradata/db/temp01.dbf";
   switch clone tempfile all;
   catalog clone datafilecopy  "/u03/app/oracle/oradata/db/sysaux01.dbf",
 "/u03/app/oracle/oradata/db/undotbs01.dbf",
 "/u03/app/oracle/oradata/db/users01.dbf",
 "/u03/app/oracle/oradata/db/test01.dbf";
   switch clone datafile all;
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u03/app/oracle/oradata/db/temp01.dbf in control file

cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/sysaux01.dbf RECID=1 STAMP=881603636
cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/undotbs01.dbf RECID=2 STAMP=881603636
cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/users01.dbf RECID=3 STAMP=881603636
cataloged datafile copy
datafile copy file name=/u03/app/oracle/oradata/db/test01.dbf RECID=4 STAMP=881603636

datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=881603636 file name=/u03/app/oracle/oradata/db/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=881603636 file name=/u03/app/oracle/oradata/db/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=881603636 file name=/u03/app/oracle/oradata/db/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=881603636 file name=/u03/app/oracle/oradata/db/test01.dbf

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

database opened
Finished Duplicate Db at 2015-06-05 17:54:11

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-1688711/,如需轉載,請註明出處,否則將追究法律責任。

相關文章