我们经常需要根据生产库创建一个开发库或者测试库,以前一般都是通过热备或者冷备拷贝数据文件来实现,使用RMAN 的Duplicate 命令,可以很方便达到这个目的。
首先,源数据库必须处于归档模式,假设SID= ORCL。
其次,目标数据库与源数据库版本不一致,必须处于nomount状态,最好通过pfile 方式指定文件启动。 目标数据库有无控制文件和数据文件都不重要,因为反正都需从源数据库恢复过来。
第三,由于目标数据库处于未open 状态,因此需要设置静态监听。否则,在恢复的过程中会出现:
RMAN-04006: 来自辅助数据库的错误: ORA-12514: TNS: 监听程序当前无法识别连接描述符。
设置静态监听的方法是在listener.ora 中增加:
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
)
第四: 在源数据库机器上执行: rman target / auxiliary sys/oracle@dbserver , 其中dbserver 指向目标数据库。
RMAN 下执行:
duplicate target database to orcl from active database nofilenamecheck password file spfile;
经过一段时间后,即可完成。其中时间长短,主要是拷贝数据文件的时间。