不同配置决定不同的复制的流程 一远程站点相同路径结构的复制 Duplicating a Database on a Remote Host with the Same Directory Structure 对于这种选择而言操作实在太过简单你甚至不需要修改初始化参数文件或者重命名复制的数据文件(可惜做测试的话这却不能做为我们的首选一般测试都只有一台机器难道让我再虚拟个操作系统?)如果是多台机器的话这种操作非常省事步骤也很少 创建辅助实例 Rman连接并运行duplicate命令结束 确实太简单的是吧好吧那我来给你找点麻烦注意第步其执行是有几个先决条件的或者说伟大的oracle大人又一次下放了它高贵的权力而给你来做出选择如下 如果没有配置自动分配通道的话表忘记至少手工指定条辅助通道 不要忘记指定NOFILENAMECHECK参数 就像前面说的如果辅助实例并非服务器端初始化参数文件启动表忘记指定PFILE参数更加表忘记该文件必须在运行RMAN的客户端上 例如假设你配置了自动分配通道并且决定使用pfile启动辅助实例那么在RMAN连接到目标库和辅助实例之后只需要执行下列 DUPLICATE TARGET DATABASE TO dupdb PFILE = F:\oracle\product\\admin\jssdup\pfile\initora NOFILENAMECHECK; 最后RMAN会自动以RESETLOGS方式打开数据库并重建REDO LOGS竣工 二远程站点不同路径结构的复制 Duplicating a Database on a Remote Host with a Different Directory Structure 如果副本数据库创建在远程站点并且目录结构也不一致那么你必须修改几个初始化参数值以便副本数据库的数据文件能够在新的目录结构存取这种类型的复制又可以细分成几个小类 在初始化参数中重命名复制文件和日志文件复制步骤如下 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 这种方式主要的工作都在创建辅助实例上 在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\\admin\jssdup\pfile\initora DB_FILE_NAME_CONVERT=(F:\oracle\oradata\jssweb\F:\oracle\oradata\jssdup\) LOGFILE F:\oracle\oradata\jssdup\redolog SIZE M F:\oracle\oradata\jssdup\redolog SIZE M F:\oracle\oradata\jssdup\redolog SIZE M; 使用SET NEWNAME命令重命名数据文件复制步骤如下 a 创建辅助实例 b RMAN连接并按下列步骤执行 ? 配置通道 ? 使用SET NEWNAME命令设置数据文件新路径 ? Duplicate命令设置logfile如辅助实例采用pfile要加载pfile 本节重点是SET NEWNAME命令格式见例 RUN { # set new filenames for the datafiles SET NEWNAME FOR DATAFILE TO F:\oracle\oradata\jssdup\systemdbf; SET NEWNAME FOR DATAFILE TO F:\oracle\oradata\jssdup\undotbsdbf; # issue the duplicate command DUPLICATE TARGET DATABASE TO dupdb # create at least two online redo log groups } 使用CONFIGURE AUXNAME命令重命名数据文件复制步骤如下 略与上同不详述唯一不同处即是CONFIGURE AUXNAME命令格式如例而且configure命令是在run块外执行的 # configure the new desired filenames CONFIGURE AUXNAME FOR DATAFILE TO F\oracle\oradata\jssdup\systemdbf CONFIGURE AUXNAME FOR DATAFILE TO F\oracle\oradata\jssdup\undotbsdbf # …… add more CONFIGURE AUXNAME commands as needed 不过需要注意的是duplicate执行完之后推荐清除CONFIGURE AUXNAME这样就不会对未来的类似操作造成影响 # clear specified auxiliary names for the datafiles CONFIGURE AUXNAME FOR DATAFILE CLEAR CONFIGURE AUXNAME FOR DATAFILE CLEAR 三本地创建 Creating a Duplicate Database on the Local Host 与第二种远程站点不同路径结构的复制有%以上的相似性唯一不同的是本地创建的话需要注意DB_NAME与目标数据库不可相同这点主要体现在辅助实例中初始化参数的配置里其它的操作步骤可以完全复制第二种中介绍的各种方法所以也就不详述了) 除此之外呢还有比如向ASM存储系统复制或向OMF存储复制等等复制流程与上基本大同小异不过就是初始化参数文件中设置不同的参数或者将参数设置成不同的值罢了 从上面那些我们能分析一下虽然oracle细分了这么多类型的操作但万变不离其宗有点是其核心第是保证辅助实例的初始化参数文件中文件路径的有效性第是执行duplicate时注意与辅助实例初始化参数设置的配合 |