11g Rman新特性SET NEWNAME

曾经写过一篇关于如何将RAC的备份异地恢复到单点上的实验过程,连接如下:

http://blog.csdn.net/jyjxs/article/details/8727492

 

其中用到了RMANSET NEWNAME选项,在10g中针对每个数据文件都要set newname一下,如果数据文件多达上百个可能就要晕菜了!

 

前几天偶然翻看文档发现11g新特性,可以根据表空间set newname

 

RMAN支持下列命令列出的优先顺序:

 

1SET NEWNAME FOR DATAFILE and SET NEWNAME FOR TEMPFILE

2SET NEWNAME FOR TABLESPACE

3SET NEWNAME FOR DATABASE

 

也就是说不光支持表空间的重新制定,还包括数据文件及整个数据库的重新制定。

————————————————————————————————————————————

变量                           概述

—————————————————————————————————————————————

b                             指定的文件名 ​​的目录路径中剥离。例如,如果一个数据文件被命名为/ ORADATA /prod/ financial.dbf,%b可以代表financial.dbf结果。

f                              指定新的名称生成的数据文件的绝对文件号。例如,如果被复制的数据是文件2,然后%F产生的值为2

I                              指定DBID

N                             指定表空间名称

U                             指定的格式如下:data-D-%d_id-%I_TS-%N_FNO-%f

————————————————————————————————————————————

一、使用SET NEWNAME制定新的文件名:

RUN

{

  SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf';

  SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';

  SET NEWNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf';

  SET NEWNAME FOR DATAFILE 4 TO '/oradata4/users01.dbf';

  SET NEWNAME FOR DATAFILE 5 TO '/oradata5/users02.dbf';

  SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.dbf';

  DUPLICATE TARGET DATABASE TO dupdb

    SKIP TABLESPACE tools

    LOGFILE

      GROUP 1 ('/duplogs/redo01a.log',

               '/duplogs/redo01b.log') SIZE 4M REUSE,

      GROUP 2 ('/duplogs/redo02a.log',

               '/duplogs/redo02b.log') SIZE 4M REUSE;

}

 

二、使用SET NEWNAME制定新的表空间和新的文件名

 

RUN

{

  SET NEWNAME  FOR  TABLESPACE  USERS  TO '/ ORADATA%f /%b';

  SET NEWNAME  FOR DATAFILE 1 TO  '/ oradata1/system01.dbf ';

  SET NEWNAME  FOR DATAFILE 2 TO  '/ oradata2/sysaux01​​.dbf ' ;

  SET NEWNAME  FOR DATAFILE 3 TO  '/ oradata3/undotbs01.dbf ';

  SET NEWNAME  FOR TEMPFILE 1 TO  '/ oradatat/temp01.dbf  ';

DUPLICATE TARGET DATABASE TO dupdb
    SKIP TABLESPACE  tools

    LOGFILE

      GROUP  1('/ duplogs/redo01a.log ',

              '/ duplogs/redo01b.log')SIZE 4M REUSE,

      GROUP  2('/ duplogs/redo02a.log ',

             ' / duplogs/redo02b.log')SIZE 4M REUSE;

}

 

三、使用SET NEWNAME制定新的数据库

 

RUN

{

  SET NEWNAME FOR DATABASE '/ ORADATA /%U';

 DUPLICATE TARGET DATABASE TO dupdb
    SKIP TABLESPACE  tools

    LOGFILE

      GROUP  1('/ duplogs/redo01a.log',

              '/ duplogs/redo01b.log)SIZE 4M REUSE,

      GROUP  2('/ duplogs/redo02a.log',

             ' / duplogs/redo02b.log')SIZE 4M REUSE;

}

 

下表为SET NEWNAME FOR database转换后的结果:

 

变换前的文件名 表空间名 数据文件号                转换为'/oradata/%U'格式后的结果

.../system01.dbf

SYSTEM

1                      

      /oradata/data-D-PROD_id-87650928_TS-SYSTEM_FNO-1

.../sysaux01.dbf

SYSAUX

2

      /oradata/data-D-PROD_id-87650928_TS-SYSAUX_FNO-2

.../undotbs01.dbf

UNDOTS

3

      /oradata/data-D-PROD_id-87650928_TS-UNDOTS_FNO-3

.../users01.dbf

USERS

4

      /oradata/data-D-PROD_id-87650928_TS-USERS_FNO-4

.../users02.dbf

USERS

5

      /oradata/data-D-PROD_id-87650928_TS-USERS_FNO-5

.../temp01.dbf

TEMP

1

      /oradata/data-D-PROD_id-87650928_TS-TEMP_FNO-1


 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(11g Rman新特性SET NEWNAME)