技术开发 频道

RMAN高级应用之不同环境下的复制流程


二、远程站点不同路径结构的复制
    Duplicating a Database on a Remote Host with a Different Directory Structure

    如果副本数据库创建在远程站点,并且目录结构也不一致,那么你必须修改几个初始化参数值以便副本数据库的数据文件能够在新的目录结构存取。这种类型的复制又可以细分成几个小类:
1、在初始化参数中重命名复制文件和日志文件,复制步骤如下:
a) 首先还是创建辅助实例。注意初始化参数的配置,按下列的方式进行一些调整。
 浏览初始化参数中以_DEST结尾的参数以及包含路径的参数,确认这些路径对即将创建的副本数据库有效。
 设置DB_FILE_NAME_CONVERT参数,让其自动转换数据文件路径。
 设置LOG_FILE_NAME_CONVERT参数,让其自动转换日志文件路径。

    所谓道有千条我取其一,除了上述方式之外呢,还有很多其它方法来指定文件存放路径,比如CONFIGURE AUXNAME或SET NEWNAME命令等等。不过此处是在写初始化参数中重命名类型的复制,就不多占篇章了,后面有章节专门讲解。感兴趣的朋友不妨keep你的好奇心,往下看:)

b) RMAN连接并执行duplicate命令,结束。
在这里同样需要注意辅助通道的分配和pfile的加载(如果使用pfile的话)。

    例如,我们使用自动分配通道,并且辅助实例使用服务器端初始化参数文件,这下dulicate命令更简单了:
DUPLICATE TARGET DATABASE TO dupdb;
这种方式主要的工作都在创建辅助实例上。

2、在Duplicate命令中重命名数据、日志文件,复制步骤如下:
    a. 创建辅助实例。
    b. RMAN连接运行Duplicate命令,注意此处需要加些参数如下:
 通道,还是通道!如果没有自动分配通道,则至少要手工指定一条辅助通道。
 通过LOGFILE子句指定副本数据库redo logs文件地址大小等。
 通过DB_FILE_NAME_CONVERT转换原数据文件路径到新路径。
 pfile,又见pfile。如果使用了pfile的话,表忘记指定pfile参数。

    例如,我们使用自动分配通道,但辅助实例未使用服务器端初始化参数文件,手工指定日志文件数据文件路径,示例如下:   

DUPLICATE TARGET DATABASE TO dupdb PFILE = F:\oracle\product\10.2.0\admin\jssdup\pfile\init.ora DB_FILE_NAME_CONVERT=(F:\oracle\oradata\jssweb\,F:\oracle\oradata\jssdup\) LOGFILE 'F:\oracle\oradata\jssdup\redo01.log' SIZE 20M, 'F:\oracle\oradata\jssdup\redo02.log' SIZE 20M, 'F:\oracle\oradata\jssdup\redo03.log' SIZE 20M;

3、使用SET NEWNAME命令重命名数据文件,复制步骤如下:
a. 创建辅助实例。
b. RMAN连接并按下列步骤执行:
 配置通道;
 使用SET NEWNAME命令设置数据文件新路径;
 Duplicate命令设置logfile,如辅助实例采用pfile要加载pfile。

本节重点是SET NEWNAME命令格式,见例:

RUN { # set new filenames for the datafiles SET NEWNAME FOR DATAFILE 1 TO 'F:\oracle\oradata\jssdup\system01.dbf'; SET NEWNAME FOR DATAFILE 2 TO 'F:\oracle\oradata\jssdup\undotbs01.dbf'; . . . # issue the duplicate command DUPLICATE TARGET DATABASE TO dupdb # create at least two online redo log groups . . . }

4、使用CONFIGURE AUXNAME命令重命名数据文件,复制步骤如下:
    略与上同,不详述,唯一不同处即是CONFIGURE AUXNAME命令格式,如例,而且configure命令是在run块外执行的:

# configure the new desired filenames CONFIGURE AUXNAME FOR DATAFILE 1 TO 'F:\oracle\oradata\jssdup\system01.dbf'; CONFIGURE AUXNAME FOR DATAFILE 2 TO 'F:\oracle\oradata\jssdup\undotbs01.dbf'; # ... add more CONFIGURE AUXNAME commands as needed

    不过需要注意的是,duplicate执行完之后,推荐清除CONFIGURE AUXNAME。这样就不会对未来的类似操作造成影响。

# clear specified auxiliary names for the datafiles CONFIGURE AUXNAME FOR DATAFILE 1 CLEAR; CONFIGURE AUXNAME FOR DATAFILE 2 CLEAR;
0
相关文章