选择用RMAN的duplicate命令搭建test数据库,。(注:1,开发数据库是在归档模式下;2,开发数据库服务器使用的是Windows2003server版)
(一)用RMAN备份开发库文件含控制文件和归档日志。
RMAN>run {
allocate channel c1 type disk
format '..../devdb_%U.bk';
backup database include current controlfile plus archivelog delete input;
release channel c1;
}
(二)为测试库创建密码文件和创建test的实例
cmd
C:\...>orapwd file='..../database/pwdtest.ora' password=test entries=20; (建在ORACLE_HOME下的database目录里)
Windows下需要oradim命令来创建实例
C:...>oradim -sid -new test
(三)为测试库创建初始化参数文件
1, 获取原开发库的初始化参数文件
连接的devdb实例
SQL>create pfile from spfile;
2, 拷贝开发库的参数文件到ORACLE_HOME/database目录下,更名为inittest.ora
3, 修改测试库的初始化参数文件inittest.ora
修改的项目有:
因为实例名变化 devdb. 改成 test.
audit_file_dest, backgroud_dump_dest, core_dump_dest,user_dump_dest这四个目录要换到测试库的相应目录
如backgroupd_dump_dest='E:\oracle\product\10.2.0\admin\bdump
control_files的值要改,改到测试库对应的控制文件的路径 如'E:\oradata\test\control01.ctl',....
db_name改成测试库名test
添加的项目(这里很像dataguard)
*.db_file_name_convert=('C:\ORACLE_DATA\devdb', 'E:\oradata\test') --前一个是数据文件的源目录,后一个是目标目录
*.log_file_name_convert=('C:\ORACLE_DATA\devdb', 'E:\oradata\test') --前一个是日志文件的源目录,后一个是目标目录
(四)创建相应的目录
为测试库创建dump目录
(五)启动测试实例到nomout状态
cmd
C:...>set ORACLE_SID=test
C:...>sqlplus "sys/test as sysdba" 注:这里的密码是创建密码文件时的password值
SQL>startup nomount;
实例启动后,可以把该窗口关闭。原因在下面有描述
(六)进入到RMAN 目标数据库(target) 是开发库, 辅助数据库(auxiliary)是测试库
cmd
C:...>set ORACLE_SID=test
C:...>RMAN target sys/sys@devdb auxiliary sys/test
进去后 显示目标数据库devdb
辅助数据库test 未加载状态
RMAN>list backup;
RMAN>duplicate target database to "test";
注意,执行过程可能到运行到 {
shutdown clone;
startup clone nomount;
}时,挂在那里不动
原因是:之前启动test库实例到nomount状态的会话窗口没关。shutdown clone动作在等待那个会话推出,关闭那个窗口即可
命令执行完毕后,数据库自动打开。
利用rman的复制功能将测试数据库test建成。