ITPub博客

首页 > 数据库 > Oracle > RMAN新特性duplicate概述和使用

RMAN新特性duplicate概述和使用

原创 Oracle 作者:雪域孤鸿 时间:2017-06-06 16:10:22 0 删除 编辑

RMAN DUPLICATION复制概述


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

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

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

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

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

 

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

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

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

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

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

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

 

Active Database Duplication 原理

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

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

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

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

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

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

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

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

 

 

 

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

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

must create a password 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@bbkesale AUXILIARY sys/manager@bbkesalestd

         5.执行duplicate命令

         DUPLICATE TARGET DATABASE

  FOR STANDBY

  FROM ACTIVE DATABASE

  DORECOVER nofilenamecheck;

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

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

 

 

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

1.with target connection

2.without target connection,but with recovery catalog connection

3.without target connection and recovery catalog connection

 

RMAN连接实例:

RMAN> CONNECT TARGET SYS/sysdba@prod;    # source database

 

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

 

RMAN> CONNECT CATALOG rman/rman@catdb;    # recovery catalog database

 

 

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

二、duplicate时重命名数据文件

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

eg:Duplicating with 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 4M REUSE,

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

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

}

 

 

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

 

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

eg:排除readonly的表空间

DUPLICATE TARGET DATABASE TO dupdb

  FROM ACTIVE DATABASE

  SKIP READONLY

  NOFILENAMECHECK;

 

eg:排除tools表空间 

DUPLICATE TARGET DATABASE

  TO dupdb

  FROM ACTIVE DATABASE

  SKIP TABLESPACE tools

  NOFILENAMECHECK; 

 

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

 

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

DUPLICATE TARGET DATABASE

  TO dupdb

  FROM ACTIVE DATABASE

  TABLESPACE users

  NOFILENAMECHECK;

 

 

 

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

附:

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

%b

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

 

%f

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

 

%I

Specifies the DBID

 

%N

Specifies the tablespace name

 

%U

Specifies the following format: data-D-%d_id-%I_TS-%N_FNO-%f

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30025058/viewspace-2140355/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-11-16

  • 博文量
    6
  • 访问量
    50768