RMAN新特性duplicate概述和使用

RMANDUPLICATION复制概述

 

DUPLICATE命令可以创建完整的运行良好的数据库副本(clone DB)或Physical standby数据库。

DUPLICATE命令自动为duplicate数据库分配不同的DBID,以便它可以注册在与源数据库相同的catalog中。

DUPLICATION可以是数据库级别,也可以指定表空间级别。

RMAN必须执行基于时间点的恢复,即使没有指定明确的时间点,因为源数据库中的联机重做日志文件未备份,不能应用于备份数据库。

备份数据库的最远的恢复点是源数据库归档的最近的重做日志文件。

 

一、  Active Database Duplication 和Backup-based duplication对比

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

Active databaseduplication功能是从11g开始引入的一个新功能

Active databaseduplication 直接复制源数据库,通过网络传输数据库到复制服务器,因此复制时对源库有一定的压力,而且数据传输时对网络条件要求较高。简单的概括为:

Backup-basedduplication :需要提前备份数据库,磁盘空间大小能够满足备份的需要。

Active DatabaseDuplication 不需要提前备份,但在复制的过程中,对源库有一定的压力,需要一定的网络带宽。源数据库一定是规定模式。

 

Active Database Duplication 原理

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

1. 手动创建一个临时的pfile文件,pfile文件至少包括一个参数DB_NAME,然后启动到nomount状态。

2. RMAN从源库拷贝spfile文件到复制数据库上,并且修改spfile的名字。

3. RMAN从源库拷贝最新的controlfile到复制数据库,并且mount 复制数据库。

4. RMAN从源库拷贝datafile和必要的归档日志到复制数据库。

5. RMAN执行不完全的恢复。

6. RMAN创建新的controlfile,并且设置新的DBID。

7. 以RESETLOGS方式打开复制的database。

 

 

 

1)   activedatabase duplication(在线数据库复制,不需要backup文件):

         1.必须创建密码文件和配置tns连通性。密码文件只是临时的,因为它会在duplicate过程中被覆盖。

must create apassword file for the auxiliary instance and establish Oracle Net connectivity

         2.创建备库的pfile,设置db_file_name_convert和log_file_name_convert

         3.确定target主库处于mounted或者open状态,并且启用归档。

         4.RMAN TARGET sys/manager@bbkesaleAUXILIARY sys/manager@bbkesalestd

         5.执行duplicate命令

         DUPLICATE TARGET DATABASE

  FOR STANDBY

  FROM ACTIVE DATABASE

  DORECOVERnofilenamecheck;

--nofilenamecheck告诉RMAN不用检查备库和主库是否使用相同的文件名。

--如果主备数据文件目录相同(或pfile中配置了db_file_name_convert),需使用nofilenamecheck   

 

 

2)   backup-basedduplication(需要数据库备份文件)

1.with targetconnection

2.without targetconnection,but with recovery catalog connection

3.without targetconnection and recovery catalog connection

 

RMAN连接实例:

RMAN> CONNECTTARGET SYS/sysdba@prod;    # sourcedatabase

 

RMAN> CONNECTAUXILIARY SYS/sysdba@dupdb; # duplicate database instance

 

RMAN> CONNECTCATALOG rman/rman@catdb;    # recoverycatalog database

 

 

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

二、duplicate时重命名数据文件

如果pfile中没有设置db_file_name_convert,也可以在duplicate之前通过setnewname来指定新的备份库数据文件目录和名字。

eg:Duplicatingwith SET NEWNAME FOR DATAFILE

 

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 4MREUSE,

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

               '/duplogs/redo02b.log') SIZE 4MREUSE;

}

 

 

三、duplicate数据库时指定表空间

 

1)   duplicate数据库时排除指定的表空间 Excluding Specified Tablespaces

eg:排除readonly的表空间

DUPLICATE TARGETDATABASE TO dupdb

  FROM ACTIVE DATABASE

  SKIP READONLY

  NOFILENAMECHECK;

 

eg:排除tools表空间 

DUPLICATE TARGETDATABASE

  TO dupdb

  FROM ACTIVE DATABASE

  SKIP TABLESPACE tools

  NOFILENAMECHECK; 

 

2)   duplicate数据库时也可以指定包含的表空间,其他表空间会被忽略(system、sysaux、undo和包含物化视图的表空间除外)

 

eg:不要恢复users以外的表空间

DUPLICATE TARGETDATABASE

  TO dupdb

  FROM ACTIVE DATABASE

  TABLESPACE users

  NOFILENAMECHECK;

 

 

 

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

附:

SET NEWNAME替换变量(Substitution Variables forSET NEWNAME)

%b

Specifies the filename stripped of directory paths. For example, if a data file is named/oradata/prod/financial.dbf, then %b results in financial.dbf.

 

%f

Specifies theabsolute file number of the data file for which the new name is generated. Forexample, if data file 2 is duplicated, then %f generates the value 2.

 

%I

Specifies the DBID

 

%N

Specifies thetablespace name

 

%U

Specifies thefollowing format: data-D-%d_id-%I_TS-%N_FNO-%f

你可能感兴趣的:(oracle,rman,duplicate,physical,standby,dataguard,nofilenamecheck)