利用Rman的duplicate命令,可以很方便的将原库复制出一个新库,这在诸如data guard等应用中非常有用。但是在Oracle11g之前,执行duplicate要求首先对原库用rman进行备份,然后将备份复制到复制库,同时连接原库(做为target)和复制库(做为auxiliary),执行duplicate命令进行复制。在Oracle11g中推出的active database duplicate特性,则省略了进行rman备份的步骤,能够直接从原库复制出新库,对于一些大型的数据库来说,这个特性可以节省很多操作时间。本文将简单的演示一下操作过程(在同一个主机上执行duplicate):
[@more@]原库:ora11g(归档模式)
新库:oradup
操作系统:windows
一、首先手工创建新的instance
包括windows服务,dump路径,初始化参数文件,password文件,监听配置等等,这些步骤就不赘述了。理论上,初始化参数最少只需要指定db_name一个参数就可以了。当然,简单起见,最好还是设置如下参数:
DB_NAME=ORADUP
CONTROL_FILES=(’F:ORACLEORADATAORADUPCONTROL01.CTL’,
‘F:ORACLEORADATAORADUPCONTROL02.CTL’)
DB_FILE_NAME_CONVERT=(’F:ORACLEORADATAORA11G’,'F:ORACLEORADATAORADUP’)
LOG_FILE_NAME_CONVERT=(’F:ORACLEORADATAORA11G’,'F:ORACLEORADATAORADUP’)
log_archive_dest_1=F:ORACLEARCHORADUP
compatible=11.1.0
经过试验,必须加入compatible=11.1.0的参数,如果不加,默认是compatible=11.0.0,那么rman duplicate最后在创建控制文件的时候会报错:
RMAN-03002: Duplicate Db 命令 (在 10/23/2007 22:43:40 上) 失败
RMAN-06136: 来自辅助数据库的 ORACLE 错误: ORA-01503: CREATE CONTROLFILE 失败
ORA-01130: 数据库文件版本 11.1.0.0.0 与 ORACLE 版本 11.0.0.0.0 不兼容
ORA-01110: 数据文件 1: ‘F:ORACLEORADATAORADUPSYSTEM01.DBF’
这个应该算是一个bug吧,11.0.0应该是beta版的版本号
加入log_archive_dest_1参数,则是因为最后需要复制原库的归档日志到备库,如果两个库都没有设置归档路径,那么都会放在默认的$ORACLE_HOMErdbms目录下,就会发生冲突。当然,如果原库和新库在不同的主机上,则只需要db_name和compatible就足够了。
二、将oradup启动到nomount状态
C:>set oracle_sid=oradup
C:>sqlplus /nolog
SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 10月 23 21:43:18 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup nomount
ORACLE 例程已经启动。
三、启动rman,同时连接原库和新库
C:>rman target sys/pass@ora11g auxiliary sys/pass@oradup
恢复管理器: Release 11.1.0.6.0 - Production on 星期二 10月 23 23:01:04 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: ORA11G (DBID=4032954551)
已连接到辅助数据库: ORADUP (未装载)
这里连接auxiliary库必须提供用户名和密码,采用os认证的话可以连接进去但是duplicate会出错,估计这个应该也是bug
四、执行duplicate
RMAN> duplicate target database to oradup
2> from active database;
Ref: http://www.ningoo.net/html/2007/oracle11g_new_feature_active_database_duplicate.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12402/viewspace-1015761/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12402/viewspace-1015761/
本文介绍如何使用Oracle 11g的Active Database Duplicate特性直接从源库复制出新库,避免了传统的RMAN备份步骤。通过实例演示了在Windows环境下完成复制所需的准备工作及具体步骤。
1301

被折叠的 条评论
为什么被折叠?



