天天看点

Oracle 11g RMAN 异机duplicate数据库

Oracle 11g RMAN 异机duplicate数据库

实验平台: IBM AIX 5L + Oracle 11g 

目标库信息:

ORACLE_BASE: /u01/app/oracle

ORACLE_HOME: /u01/app/oracle/product/11.2.0/db_1

ORACLE_SID:orcl

IP: 172.30.2.40

辅助库信息:

ORACLE_BASE: /u01/app/oracle

ORACLE_HOME: /u01/app/oracle/product/11.2.0/db_1

ORACLE_SID:orcl

IP: 172.30.2.56

在这里,我们以实例名相同的为例,实例名不同也一样,在pfile里修改对应参数就可以了。

步骤如下:

(1)构建辅助数据库目录结构

(2)创建pfile,并复制到辅助数据库,修改相关内容

(3)创建辅助实例口令文件

(4)RMAN 备份源库

(5)添加配置监听

(6)将源库备份文件拷贝到辅助库相同位置

(7)用pfile文件,将辅助数据库启动到nomount 状态

(8)执行RMAN duplicate命令复制数据库

(9)创建spfile文件

一.构建辅助数据库目录结构

1.1  Oracle data 目录

$ mkdir -p /u01/app/oracle/oradata/orcl

1.2  其他目录

$ mkdir -p /u01/app/oracle/admin/orcl/adump

$ mkdir -p /u01/app/oracle/admin/orcl/dpdump

$ mkdir -p /u01/app/oracle/admin/orcl/pfile

$ mkdir -p /u01/app/oracle/admin/orcl/scripts

$ mkdir -p /u01/app/oracle/diag

$ mkdir -p /u01/app/oracle/flash_recovery_area/orcl

二.创建pfile,复制到辅助数据库,并修改相关参数

2.1 在源库上创建pfile 文件

$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Mon Apr 11 08:26:48 2011

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

idle> conn /as sysdba

Connected.

[email protected]> create pfile='/u01/initorcl.ora' from spfile;

File created.

2.2 用scp 命令将pfile 文件传到辅助库,要放在$ORACLE_HOME/dbs目录下,不然ORACLE 不识别。

$ scp initorcl.ora 172.30.2.56:/$ORACLE_HOME/dbs

Enter passphrase for key '/home/oracle/.ssh/id_rsa': 

initorcl.ora                                                         100%  921     0.9KB/s   00:00 

2.3 在辅助库上确认文件是否传送过来

$ cd $ORACLE_HOME/dbs

$ ls

init.ora      initorcl.ora  orapworcl

2.4 在辅助库上修改pfile参数

orcl.__db_cache_size=3288334336

orcl.__java_pool_size=16777216

orcl.__large_pool_size=16777216

orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=2751463424

orcl.__sga_target=4127195136

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=754974720

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'

*.audit_trail='db'

*.compatible='11.2.0.0.0'

*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/flash_recovery_area/orcl/

control02.ctl'

*.db_block_size=8192

*.db_domain='saci.com.cn'

*.db_name='orcl'

*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=4039114752

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.memory_target=6867124224

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

说明,在这里我没有做修改,因为我异机duplicate实例名相同,存储位置也相同。如果说你复制的不同的话,就需要修改相关的实例名。如果存储位置不同的话,还需要添加以下参数,对数据文件位置进行转换。

db_file_name_convert = ('/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/mahee')

三.创建辅助实例ORCL的口令文件(需要和目标数据库相同,最好从目标数据库拷贝过来)

$ cd $ORACLE_HOME/bin

$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=8

$ cd $ORACLE_HOME/dbs                                             

$ ls

init.ora      initorcl.ora  orapworcl

Windows下oracle默认的位置是$ORACLE_HOME/database目录,文件名格式是pwdSID.ora。 

Linux下oracle默认的位置是$ORACLE_HOME/dbs目录,文件名格式是orapwSID。创建完后,数据库需要重启动,新的口令文件才能生效。

四.RMAN 备份源库(目标数据库orcl)

172.30.2.40(目标数据库orcl)

$ rman target sys/[email protected]

Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 11 08:40:43 2011

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

connected to target database: ORCL (DBID=1275959622)

RMAN> RUN {

2> allocate channel c1 type disk;

3> allocate channel c2 type disk;

4> BACKUP FORMAT '/u02/backup/orcl_%U_%T' skip inaccessible filesperset 5 DATABASE TAG orcl_hot_db_bk;

5> sql 'alter system archive log current';                                        

6> BACKUP FORMAT '/u02/backup/arch_%U_%T' skip inaccessible filesperset 5 ARCHIVELOG ALL DELETE INPUT;

7> backup current controlfile tag='bak_ctlfile' format='/u02/backup/ctl_file_%U_%T';

8> backup spfile tag='spfile' format='/u02/backup/ORCL_spfile_%U_%T';

9> release channel c2;

10> release channel c1;

11> }

using target database control file instead of recovery catalog

allocated channel: c1

channel c1: SID=195 device type=DISK

allocated channel: c2

channel c2: SID=10 device type=DISK

Starting backup at 11-APR-11

channel c1: starting full datafile backup set

channel c1: specifying datafile(s) in backup set

input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf

input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf

channel c1: starting piece 1 at 11-APR-11

channel c2: starting full datafile backup set

channel c2: specifying datafile(s) in backup set

input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf

input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf

input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf

channel c2: starting piece 1 at 11-APR-11

channel c1: finished piece 1 at 11-APR-11

piece handle=/u02/backup/orcl_0cm9ga44_1_1_20110411 tag=ORCL_HOT_DB_BK comment=NONE

channel c1: backup set complete, elapsed time: 00:00:03

channel c2: finished piece 1 at 11-APR-11

piece handle=/u02/backup/orcl_0dm9ga44_1_1_20110411 tag=ORCL_HOT_DB_BK comment=NONE

channel c2: backup set complete, elapsed time: 00:00:03

Finished backup at 11-APR-11

Starting Control File and SPFILE Autobackup at 11-APR-11

piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169351_6t61pqbg_.bkp comment=NONE

Finished Control File and SPFILE Autobackup at 11-APR-11

sql statement: alter system archive log current

Starting backup at 11-APR-11

current log archived

channel c1: starting archived log backup set

channel c1: specifying archived log(s) in backup set

input archived log thread=1 sequence=8 RECID=3 STAMP=748149036

input archived log thread=1 sequence=9 RECID=4 STAMP=748169352

channel c1: starting piece 1 at 11-APR-11

channel c2: starting archived log backup set

channel c2: specifying archived log(s) in backup set

input archived log thread=1 sequence=10 RECID=5 STAMP=748169352

channel c2: starting piece 1 at 11-APR-11

channel c1: finished piece 1 at 11-APR-11

piece handle=/u02/backup/arch_0fm9ga48_1_1_20110411 tag=TAG20110411T084912 comment=NONE

channel c1: backup set complete, elapsed time: 00:00:01

channel c1: deleting archived log(s)

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_8_6t5fvwtm_.arc RECID=3 STAMP=748149036

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_9_6t61prft_.arc RECID=4 STAMP=748169352

channel c2: finished piece 1 at 11-APR-11

piece handle=/u02/backup/arch_0gm9ga48_1_1_20110411 tag=TAG20110411T084912 comment=NONE

channel c2: backup set complete, elapsed time: 00:00:01

channel c2: deleting archived log(s)

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_10_6t61prlf_.arc RECID=5 STAMP=748169352

Finished backup at 11-APR-11

Starting backup at 11-APR-11

channel c1: starting full datafile backup set

channel c1: specifying datafile(s) in backup set

including current control file in backup set

channel c1: starting piece 1 at 11-APR-11

channel c1: finished piece 1 at 11-APR-11

piece handle=/u02/backup/ctl_file_0hm9ga4a_1_1_20110411 tag=BAK_CTLFILE comment=NONE

channel c1: backup set complete, elapsed time: 00:00:01

Finished backup at 11-APR-11

Starting backup at 11-APR-11

channel c1: starting full datafile backup set

channel c1: specifying datafile(s) in backup set

including current SPFILE in backup set

channel c1: starting piece 1 at 11-APR-11

channel c1: finished piece 1 at 11-APR-11

piece handle=/u02/backup/ORCL_spfile_0im9ga4c_1_1_20110411 tag=SPFILE comment=NONE

channel c1: backup set complete, elapsed time: 00:00:01

Finished backup at 11-APR-11

Starting Control File and SPFILE Autobackup at 11-APR-11

piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169357_6t61px9v_.bkp comment=NONE

Finished Control File and SPFILE Autobackup at 11-APR-11

released channel: c2

released channel: c1

RMAN> list backup;

List of Backup Sets

===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

5       Full    436.09M    DISK        00:00:02     11-APR-11      

        BP Key: 5   Status: AVAILABLE  Compressed: NO  Tag: ORCL_HOT_DB_BK

        Piece Name: /u02/backup/orcl_0dm9ga44_1_1_20110411

  List of Datafiles in backup set 5

  File LV Type Ckp SCN    Ckp Time  Name

  ---- -- ---- ---------- --------- ----

  2       Full 1081802    11-APR-11 /u01/app/oracle/oradata/orcl/sysaux01.dbf

  3       Full 1081802    11-APR-11 /u01/app/oracle/oradata/orcl/undotbs01.dbf

  5       Full 1081802    11-APR-11 /u01/app/oracle/oradata/orcl/example01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

6       Full    593.82M    DISK        00:00:02     11-APR-11      

        BP Key: 6   Status: AVAILABLE  Compressed: NO  Tag: ORCL_HOT_DB_BK

        Piece Name: /u02/backup/orcl_0cm9ga44_1_1_20110411

  List of Datafiles in backup set 6

  File LV Type Ckp SCN    Ckp Time  Name

  ---- -- ---- ---------- --------- ----

  1       Full 1081801    11-APR-11 /u01/app/oracle/oradata/orcl/system01.dbf

  4       Full 1081801    11-APR-11 /u01/app/oracle/oradata/orcl/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

7       Full    7.42M      DISK        00:00:00     11-APR-11      

        BP Key: 7   Status: AVAILABLE  Compressed: NO  Tag: TAG20110411T084911

        Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169351_6t61pqbg_.bkp

  SPFILE Included: Modification time: 10-APR-11

  SPFILE db_unique_name: ORCL

  Control File Included: Ckp SCN: 1081809      Ckp time: 11-APR-11

BS Key  Size       Device Type Elapsed Time Completion Time

------- ---------- ----------- ------------ ---------------

8       2.00K      DISK        00:00:00     11-APR-11      

        BP Key: 8   Status: AVAILABLE  Compressed: NO  Tag: TAG20110411T084912

        Piece Name: /u02/backup/arch_0gm9ga48_1_1_20110411

  List of Archived Logs in backup set 8

  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time

  ---- ------- ---------- --------- ---------- ---------

  1    10      1081825    11-APR-11 1081833    11-APR-11

BS Key  Size       Device Type Elapsed Time Completion Time

------- ---------- ----------- ------------ ---------------

9       15.56M     DISK        00:00:00     11-APR-11      

        BP Key: 9   Status: AVAILABLE  Compressed: NO  Tag: TAG20110411T084912

        Piece Name: /u02/backup/arch_0fm9ga48_1_1_20110411

  List of Archived Logs in backup set 9

  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time

  ---- ------- ---------- --------- ---------- ---------

  1    8       1066859    11-APR-11 1071335    11-APR-11

  1    9       1071335    11-APR-11 1081825    11-APR-11

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

10      Full    7.39M      DISK        00:00:01     11-APR-11      

        BP Key: 10   Status: AVAILABLE  Compressed: NO  Tag: BAK_CTLFILE

        Piece Name: /u02/backup/ctl_file_0hm9ga4a_1_1_20110411

  Control File Included: Ckp SCN: 1081853      Ckp time: 11-APR-11

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

11      Full    80.00K     DISK        00:00:00     11-APR-11      

        BP Key: 11   Status: AVAILABLE  Compressed: NO  Tag: SPFILE

        Piece Name: /u02/backup/ORCL_spfile_0im9ga4c_1_1_20110411

  SPFILE Included: Modification time: 10-APR-11

  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

12      Full    7.42M      DISK        00:00:00     11-APR-11      

        BP Key: 12   Status: AVAILABLE  Compressed: NO  Tag: TAG20110411T084917

        Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169357_6t61px9v_.bkp

  SPFILE Included: Modification time: 10-APR-11

  SPFILE db_unique_name: ORCL

  Control File Included: Ckp SCN: 1081866      Ckp time: 11-APR-11

RMAN>  

五.添加,配置监听

5.1 在辅助库的listener.ora 文件中,添加如下内容

$ cd $ORACLE_HOME/network/admin

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.56)(PORT = 1521))

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

SID_LIST_LISTENER =

  (SID_LIST =

     (SID_DESC =

        (GLOBAL_DBNAME = orcl.saci.com.cn)

        (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

        (SID_NAME = orcl)

      )

  )

ADR_BASE_LISTENER = /u01/app/oracle

5.2 修改辅助库的tnsnames.ora 文件,添加如下内容

TARGETORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.40)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl.saci.com.cn)

    )

  )

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.56)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl.saci.com.cn)

    )

  )

AUXORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.56)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl.saci.com.cn)

    )

  )

5.3 修改源库的tnsnames.ora 文件,添加如下内容:

TARGETORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.40)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl.saci.com.cn)

    )

  )

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.40)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl.saci.com.cn)

    )

  )

AUXORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.30.2.56)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl.saci.com.cn)

    )

  )

建议使用net manager 工具从界面来修改,这样不容易出错.

六. 将源库的备份拷贝到辅助数据库的相同位置

这里有两种方法,一种直接在辅助库上建相同的目录结构,在用SCP 命令把这些备份文件copy过去,但是这样会占用大量的网络资源。还有一种就是建好目录结构后用NFS直接mount上去,我这里的实验是在局域网环境中,在这里我采用前一种方法。

6.1 在辅助库上建相同的备份目录结构

因为我们在源库上备份是备份到/u02/backup目录中的,所以我们在辅助库上也建这个目录

# mkdir -p /u02/backup

# chown oracle:oinstall /u02/backup

# chmod 775 /u02/backup

6.2 利用scp拷贝目标数据库备份集到辅助数据库

$ cd /u02/backup

$ scp [email protected]:/u02/backup/* .

Enter passphrase for key '/home/oracle/.ssh/id_rsa': 

ORCL_spfile_0im9ga4c_1_1_20110411                                    100%   96KB  96.0KB/s   00:00    

arch_0fm9ga48_1_1_20110411                                           100%   16MB  15.6MB/s   00:00    

arch_0gm9ga48_1_1_20110411                                           100% 2560     2.5KB/s   00:00    

ctl_file_0hm9ga4a_1_1_20110411                                       100% 7584KB   7.4MB/s   00:00    

orcl_0cm9ga44_1_1_20110411                                           100%  594MB  59.4MB/s   00:10    

orcl_0dm9ga44_1_1_20110411                                           100%  436MB  62.3MB/s   00:07   

$ mkdir -p /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11

$ cd /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11                                  

$ scp [email protected]:/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169351_6t61pqbg_.bkp .

Enter passphrase for key '/home/oracle/.ssh/id_rsa': 

o1_mf_s_748169351_6t61pqbg_.bkp                                                                                                      100% 7616KB   7.4MB/s   00:00    

$ scp [email protected]:/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169357_6t61px9v_.bkp .

Enter passphrase for key '/home/oracle/.ssh/id_rsa': 

o1_mf_s_748169357_6t61px9v_.bkp                                                                                                      100% 7616KB   7.4MB/s   00:00    

$ ls

o1_mf_s_748169351_6t61pqbg_.bkp  o1_mf_s_748169357_6t61px9v_.bkp

七.启动辅助库至nomount 状态,注意使用pfile参数启动

$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Mon Apr 11 09:20:36 2011

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

SQL> conn /as sysdba

Connected to an idle instance.

SQL> startup nomount pfile=?/dbs/initorcl.ora

ORACLE instance started.

Total System Global Area 6847938560 bytes

Fixed Size                  2219808 bytes

Variable Size            3539992800 bytes

Database Buffers         3288334336 bytes

Redo Buffers               17391616 bytes

SQL> quit   -- 启动后就退出session,因为在duplicata的时候不能有session连接

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

八.RMAN 连接到目标实例和辅助实例,运行duplicate 命令复制数据库

$ rman target sys/[email protected] auxiliary sys/[email protected];

Recovery Manager: Release 11.2.0.1.0 - Production on Mon Apr 11 09:23:14 2011

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

connected to target database: ORCL (DBID=1275959622)

connected to auxiliary database: ORCL (not mounted)

RMAN> duplicate target database to orcl nofilenamecheck

2> logfile

3> '/u01/app/oracle/oradata/orcl/redo01.dbf' size 50m,

4> '/u01/app/oracle/oradata/orcl/redo02.dbf' size 50m,

5> '/u01/app/oracle/oradata/orcl/redo03.dbf' size 50m;

Starting Duplicate Db at 11-APR-11

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=63 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;

   -- 如果此时,辅助实例上有session连在上面,将一直等到session退出才能执行,如果等了很长时间还没有执行,不妨检查一下,有没有session连在数据库上。

}

executing Memory Script

Oracle instance shut down

connected to auxiliary database (not started)

Oracle instance started

Total System Global Area    6847938560 bytes

Fixed Size                     2219808 bytes

Variable Size               3556770016 bytes

Database Buffers            3271557120 bytes

Redo Buffers                  17391616 bytes

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 = 

 ''ORCL'' 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

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

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

Oracle instance shut down

Oracle instance started

Total System Global Area    6847938560 bytes

Fixed Size                     2219808 bytes

Variable Size               3556770016 bytes

Database Buffers            3271557120 bytes

Redo Buffers                  17391616 bytes

Starting restore at 11-APR-11

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=63 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore  

-- 开始restore 数据文件

channel ORA_AUX_DISK_1: restoring control file

channel ORA_AUX_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169357_6t61px9v_.bkp

channel ORA_AUX_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_04_11/o1_mf_s_748169357_6t61px9v_.bkp tag=TAG20110411T084917

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01

output file name=/u01/app/oracle/oradata/orcl/control01.ctl

output file name=/u01/app/oracle/flash_recovery_area/orcl/control02.ctl

Finished restore at 11-APR-11

database mounted

contents of Memory Script:

{

   set until scn  1081833;

   set newname for datafile  1 to 

 "/u01/app/oracle/oradata/orcl/system01.dbf";

   set newname for datafile  2 to 

 "/u01/app/oracle/oradata/orcl/sysaux01.dbf";

   set newname for datafile  3 to 

 "/u01/app/oracle/oradata/orcl/undotbs01.dbf";

   set newname for datafile  4 to 

 "/u01/app/oracle/oradata/orcl/users01.dbf";

   set newname for datafile  5 to 

 "/u01/app/oracle/oradata/orcl/example01.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 11-APR-11

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 /u01/app/oracle/oradata/orcl/system01.dbf

channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf

channel ORA_AUX_DISK_1: reading from backup piece /u02/backup/orcl_0cm9ga44_1_1_20110411

channel ORA_AUX_DISK_1: piece handle=/u02/backup/orcl_0cm9ga44_1_1_20110411 tag=ORCL_HOT_DB_BK

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03

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 00002 to /u01/app/oracle/oradata/orcl/sysaux01.dbf

channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/undotbs01.dbf

channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example01.dbf

channel ORA_AUX_DISK_1: reading from backup piece /u02/backup/orcl_0dm9ga44_1_1_20110411

channel ORA_AUX_DISK_1: piece handle=/u02/backup/orcl_0dm9ga44_1_1_20110411 tag=ORCL_HOT_DB_BK

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03

Finished restore at 11-APR-11

contents of Memory Script:

{

   switch clone datafile all;

}

executing Memory Script

datafile 1 switched to datafile copy

input datafile copy RECID=3 STAMP=748171541 file name=/u01/app/oracle/oradata/orcl/system01.dbf

datafile 2 switched to datafile copy

input datafile copy RECID=4 STAMP=748171541 file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=5 STAMP=748171541 file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=6 STAMP=748171541 file name=/u01/app/oracle/oradata/orcl/users01.dbf

datafile 5 switched to datafile copy

input datafile copy RECID=7 STAMP=748171541 file name=/u01/app/oracle/oradata/orcl/example01.dbf

contents of Memory Script:

{

   set until scn  1081833;

   recover

   clone database

    delete archivelog

   ;

}

executing Memory Script

executing command: SET until clause

Starting recover at 11-APR-11

using channel ORA_AUX_DISK_1

starting media recovery

channel ORA_AUX_DISK_1: starting archived log restore to default destination

channel ORA_AUX_DISK_1: restoring archived log

archived log thread=1 sequence=9

channel ORA_AUX_DISK_1: reading from backup piece /u02/backup/arch_0fm9ga48_1_1_20110411

channel ORA_AUX_DISK_1: piece handle=/u02/backup/arch_0fm9ga48_1_1_20110411 tag=TAG20110411T084912

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_9_6t63v6q8_.arc thread=1 sequence=9

channel clone_default: deleting archived log(s)

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_9_6t63v6q8_.arc RECID=6 STAMP=748171542

channel ORA_AUX_DISK_1: starting archived log restore to default destination

channel ORA_AUX_DISK_1: restoring archived log

archived log thread=1 sequence=10

channel ORA_AUX_DISK_1: reading from backup piece /u02/backup/arch_0gm9ga48_1_1_20110411

channel ORA_AUX_DISK_1: piece handle=/u02/backup/arch_0gm9ga48_1_1_20110411 tag=TAG20110411T084912

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_10_6t63v7ys_.arc thread=1 sequence=10

channel clone_default: deleting archived log(s)

archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_04_11/o1_mf_1_10_6t63v7ys_.arc RECID=7 STAMP=748171543

media recovery complete, elapsed time: 00:00:00

Finished recover at 11-APR-11

contents of Memory Script:

{

   shutdown clone immediate;

   startup clone nomount;

   sql clone "alter system set  db_name = 

 ''ORCL'' 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

database dismounted

Oracle instance shut down

connected to auxiliary database (not started)

Oracle instance started

Total System Global Area    6847938560 bytes

Fixed Size                     2219808 bytes

Variable Size               3556770016 bytes

Database Buffers            3271557120 bytes

Redo Buffers                  17391616 bytes

sql statement: alter system set  db_name =  ''ORCL'' 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    6847938560 bytes

Fixed Size                     2219808 bytes

Variable Size               3556770016 bytes

Database Buffers            3271557120 bytes

Redo Buffers                  17391616 bytes

sql statement: CREATE CONTROLFILE REUSE SET DATABASE "ORCL" RESETLOGS ARCHIVELOG -- 创建新的控制文件

  MAXLOGFILES     16

  MAXLOGMEMBERS      3

  MAXDATAFILES      100

  MAXINSTANCES     8

  MAXLOGHISTORY      292

 LOGFILE

  GROUP  1 '/u01/app/oracle/oradata/orcl/redo01.dbf' SIZE 50 M ,

  GROUP  2 '/u01/app/oracle/oradata/orcl/redo02.dbf' SIZE 50 M ,

  GROUP  3 '/u01/app/oracle/oradata/orcl/redo03.dbf' SIZE 50 M 

 DATAFILE

  '/u01/app/oracle/oradata/orcl/system01.dbf'

 CHARACTER SET AL32UTF8

contents of Memory Script:

{

   set newname for tempfile  1 to 

 "/u01/app/oracle/oradata/orcl/temp01.dbf";

   switch clone tempfile all;

   catalog clone datafilecopy  "/u01/app/oracle/oradata/orcl/sysaux01.dbf", 

 "/u01/app/oracle/oradata/orcl/undotbs01.dbf", 

 "/u01/app/oracle/oradata/orcl/users01.dbf", 

 "/u01/app/oracle/oradata/orcl/example01.dbf";

   switch clone datafile all;

}

executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/orcl/temp01.dbf in control file

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf RECID=1 STAMP=748171563

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf RECID=2 STAMP=748171563

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/orcl/users01.dbf RECID=3 STAMP=748171563

cataloged datafile copy

datafile copy file name=/u01/app/oracle/oradata/orcl/example01.dbf RECID=4 STAMP=748171563

datafile 2 switched to datafile copy

input datafile copy RECID=1 STAMP=748171563 file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf

datafile 3 switched to datafile copy

input datafile copy RECID=2 STAMP=748171563 file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf

datafile 4 switched to datafile copy

input datafile copy RECID=3 STAMP=748171563 file name=/u01/app/oracle/oradata/orcl/users01.dbf

datafile 5 switched to datafile copy

input datafile copy RECID=4 STAMP=748171563 file name=/u01/app/oracle/oradata/orcl/example01.dbf

contents of Memory Script:

{

   Alter clone database open resetlogs;

}

executing Memory Script

database opened

Finished Duplicate Db at 11-APR-11

RMAN> 

注明: 这里地方有2个地方需要说明:

(1) nofilenamecheck 参数: 

如果在复制时,位置不同时,我们会用参数db_file_name_convert 对文件位置进行转换。 但是在这个复制示例中我们用的是相同的位置。 所以这里必须加上nofilenamecheck参数。 该参数通知复制操作不必在执行还原操作前确认文件名是不同的。如果没有指定nofilenamecheck参数,rman会给出如下错误:

RMAN-05001: auxiliary filename /u01/app/oracle/oradata/orcl/example01.dbf conflicts with a file used by the target database

RMAN-05001: auxiliary filename /u01/app/oracle/oradata/orcl/users01.dbf conflicts with a file used by the target database

(2) logfile 参数:

在完成复制进程并执行最后一条open resetlogs命令时,RMAN 必须为辅助数据库构建全新的日志文件。 如上面命令所示,我们可以在duplicate 命令中指定logfile参数,并指定使用的日志文件的大小,数目和位置。 还可以在pfile里指定log_file_name_convert 参数来进行转换。 这种方法相对而言要简单一点。 

九.创建spfile,并验证数据库

通过上面8步的操作,复制操作已经完成,我们现在创建一个spfile。

SQL> create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora';

File created.

SQL> select name from v$database;

NAME

---------

ORCL

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME    FILE_NAME

------------------ --------------------------------------------------

SYSTEM             /u01/app/oracle/oradata/orcl/system01.dbf

SYSAUX             /u01/app/oracle/oradata/orcl/sysaux01.dbf

UNDOTBS1           /u01/app/oracle/oradata/orcl/undotbs01.dbf

USERS              /u01/app/oracle/oradata/orcl/users01.dbf

EXAMPLE            /u01/app/oracle/oradata/orcl/example01.dbf

到此,Oracle 11g 异机duplicate数据库实验完成。