使用rman复制数据库


实验环境:windows + oracle 10.1.0.2.0



原数据库:ning[归档模式] 复制数据库:test



Author:NinGoo 2005-3-27



-------------------------------------------







在同一台server上使用rman的Duplicate Database创建复制数据库。







1. 创建新的instance







准备好相应的目录结构



E:oracleproduct10.1.0admin estdump



E:oracleproduct10.1.0admin estcdump



E:oracleproduct10.1.0admin estcreate



E:oracleproduct10.1.0admin estpfile



E:oracleproduct10.1.0admin est cripts



E:oracleproduct10.1.0admin estudmp







创建参数文件inittest.ini(可使用原库的pfile进行修改),主要参数如下:



db_name=test



background_dump_dest=E:oracleproduct10.1.0admin estdump



core_dump_dest=E:oracleproduct10.1.0admin estcdump



user_dump_dest=E:oracleproduct10.1.0admin estudump



control_files='E:oracleoradata estcontrol01.ctl','E:oracleoradata est control02.ctl','E:oracleoradata est control03.ctl'



DB_FILE_NAME_CONVERT=('E:oracleoradata ing','E:oracleoradata est')



LOG_FILE_NAME_CONVERT=('E:oracleoradata ing','E:oracleoradata est')



置于E:oracleproduct10.1.0admin estpfile或者E:oracleproduct10.1.0db_1database即可。







使用oradim创建新的instance



c:>oradim -new -sid test



例程已创建。







使用orapwd创建password文件



c:>orapwd file=E:oracleproduct10.1.0db_1databasePWDtest.ora password=test entries=10







配置好监听和tnsnames,然后使用sqlplus测试连接







c:>sqlplus /nolog







SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 3月 27 21:01:13 2005







Copyright (c) 1982, 2004, Oracle. All rights reserved.







SQL> conn sys@test as sysdba



请输入口令:



已连接到空闲例程。











2.使用rman备份原库







RMAN> connect target sys/ning@ning







连接到目标数据库: NING (DBID=1141544503)



正在使用目标数据库控制文件替代恢复目录







RMAN> backup full database tag 'fullbk' format 'e:oracleorabackfull%u_%s_%p';







启动 backup 于 27-3月 -05



使用通道 ORA_DISK_1



通道 ORA_DISK_1: 启动全部数据文件备份集



通道 ORA_DISK_1: 正在指定备份集中的数据文件



输入数据文件 fno=00001 name=E:ORACLEORADATANING YSTEM01.DBF



输入数据文件 fno=00002 name=E:ORACLEORADATANINGUNDOTBS01.DBF



输入数据文件 fno=00004 name=E:ORACLEORADATANINGUSERS01.DBF



输入数据文件 fno=00003 name=E:ORACLEORADATANING YSAUX01.DBF



输入数据文件 fno=00005 name=E:ORACLEORADATANINGTEST01.DBF



通道 ORA_DISK_1: 正在启动段 1 于 27-3月 -05



通道 ORA_DISK_1: 已完成段 1 于 27-3月 -05



段 handle=E:ORACLEORABACKFULL03GGCQA4_3_1 comment=NONE



通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45



通道 ORA_DISK_1: 启动全部数据文件备份集



通道 ORA_DISK_1: 正在指定备份集中的数据文件



备份集中包括当前控制文件



在备份集中包含当前的 SPFILE



通道 ORA_DISK_1: 正在启动段 1 于 27-3月 -05



通道 ORA_DISK_1: 已完成段 1 于 27-3月 -05



段 handle=E:ORACLEORABACKFULL04GGCQBH_4_1 comment=NONE



通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:09



完成 backup 于 27-3月 -05











3.使用rman复制数据库







c:>rman target sys/ning@ning AUXILIARY sys/test@test







恢复管理器: 版本10.1.0.2.0 - Production







opyright (c) 1995, 2004, Oracle. All rights reserved.







连接到目标数据库: NING (DBID=1141544503)



已连接到备用数据库: test (未装载)







RMAN> DUPLICATE TARGET DATABASE TO 'test';



启动 Duplicate Db 于 27-3月 -05



使用通道 ORA_AUX_DISK_1







内存脚本的内容:



{



set until scn 169960;



set newname for datafile 1 to



"E:ORACLEORADATATEST YSTEM01.DBF";



set newname for datafile 2 to



"E:ORACLEORADATATESTUNDOTBS01.DBF";



set newname for datafile 3 to



"E:ORACLEORADATATEST YSAUX01.DBF";



set newname for datafile 4 to



"E:ORACLEORADATATESTUSERS01.DBF";



set newname for datafile 5 to



"E:ORACLEORADATATESTTEST01.DBF";



restore



check readonly



clone database



;



}



正在执行内存脚本







正在执行命令: SET until clause







正在执行命令: SET NEWNAME







正在执行命令: SET NEWNAME







正在执行命令: SET NEWNAME







正在执行命令: SET NEWNAME







正在执行命令: SET NEWNAME







启动 restore 于 27-3月 -05



使用通道 ORA_AUX_DISK_1







通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集



通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件



正将数据文件00001恢复到E:ORACLEORADATATEST YSTEM01.DBF



正将数据文件00002恢复到E:ORACLEORADATATESTUNDOTBS01.DBF



正将数据文件00003恢复到E:ORACLEORADATATEST YSAUX01.DBF



正将数据文件00004恢复到E:ORACLEORADATATESTUSERS01.DBF



正将数据文件00005恢复到E:ORACLEORADATATESTTEST01.DBF



通道 ORA_AUX_DISK_1: 已恢复备份段 1



段句柄 = E:ORACLEORABACKFULL03GGCQA4_3_1 标记 = FULLBK



通道 ORA_AUX_DISK_1: 恢复完成



完成 restore 于 27-3月 -05



sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "test" RESETLOGS ARCHIVELOG



MAXLOGFILES 16



MAXLOGMEMBERS 3



MAXDATAFILES 100



MAXINSTANCES 8



MAXLOGHISTORY 454



LOGFILE



GROUP 1 'E:oracleoradata est edo01.log' SIZE 10 M ,



GROUP 2 'E:oracleoradata est edo02.log' SIZE 10 M ,



GROUP 3 'E:oracleoradata est edo03.log' SIZE 10 M



DATAFILE



'E:ORACLEORADATATEST YSTEM01.DBF'



CHARACTER SET ZHS16GBK











内存脚本的内容:



{



switch clone datafile all;



}



正在执行内存脚本







数据文件 2 已转换成数据文件副本



输入数据文件副本 recid=1 stamp=554071105 文件名=E:ORACLEORADATATESTUNDOTBS01



.DBF



数据文件 3 已转换成数据文件副本



输入数据文件副本 recid=2 stamp=554071105 文件名=E:ORACLEORADATATEST YSAUX01.



DBF



数据文件 4 已转换成数据文件副本



输入数据文件副本 recid=3 stamp=554071105 文件名=E:ORACLEORADATATESTUSERS01.D



BF



数据文件 5 已转换成数据文件副本



输入数据文件副本 recid=4 stamp=554071105 文件名=E:ORACLEORADATATESTTEST01.DB



F







内存脚本的内容:



{



set until scn 169960;



recover



clone database



delete archivelog



;



}



正在执行内存脚本







正在执行命令: SET until clause







启动 recover 于 27-3月 -05



使用通道 ORA_AUX_DISK_1







正在开始介质的恢复







存档日志线程 1 序列 16 已作为文件 E:ORACLEARCHARC00016_0553949015.001 存在于



磁盘上



存档日志文件名 =E:ORACLEARCHARC00016_0553949015.001 线程 =1 序列 =16



完成介质的恢复



完成 recover 于 27-3月 -05







内存脚本的内容:



{



shutdown clone;



startup clone nomount ;



}



正在执行内存脚本







数据库已卸载



Oracle 例程已关闭







已连接到备用数据库 (未启动)



Oracle 例程已启动







系统全局区域总计 142606336 字节







Fixed Size 787848 字节



Variable Size 116390520 字节



Database Buffers 25165824 字节



Redo Buffers 262144 字节



sql 语句: CREATE CONTROLFILE REUSE SET DATABASE "test" RESETL

(1)


OGS ARCHIVELOG



MAXLOGFILES 16



MAXLOGMEMBERS 3



MAXDATAFILES 100



MAXINSTANCES 8



MAXLOGHISTORY 454



LOGFILE



GROUP 1 'E:oracleoradata est edo01.log' SIZE 10 M ,



GROUP 2 'E:oracleoradata est edo02.log' SIZE 10 M ,



GROUP 3 'E:oracleoradata est edo03.log' SIZE 10 M



DATAFILE



'E:ORACLEORADATATEST YSTEM01.DBF'



CHARACTER SET ZHS16GBK











内存脚本的内容:



{



catalog clone datafilecopy "E:ORACLEORADATATESTUNDOTBS01.DBF";



catalog clone datafilecopy "E:ORACLEORADATATEST YSAUX01.DBF";



catalog clone datafilecopy "E:ORACLEORADATATESTUSERS01.DBF";



catalog clone datafilecopy "E:ORACLEORADATATESTTEST01.DBF";



switch clone datafile all;



}



正在执行内存脚本







已将数据文件副本列入目录



数据文件副本 filename=E:ORACLEORADATATESTUNDOTBS01.DBF recid=1 stamp=5540716



73







已将数据文件副本列入目录



数据文件副本 filename=E:ORACLEORADATATEST YSAUX01.DBF recid=2 stamp=55407167



3







已将数据文件副本列入目录



数据文件副本 filename=E:ORACLEORADATATESTUSERS01.DBF recid=3 stamp=554071673











已将数据文件副本列入目录



数据文件副本 filename=E:ORACLEORADATATESTTEST01.DBF recid=4 stamp=554071673







数据文件 2 已转换成数据文件副本



输入数据文件副本 recid=1 stamp=554071673 文件名=E:ORACLEORADATATESTUNDOTBS01



.DBF



数据文件 3 已转换成数据文件副本



输入数据文件副本 recid=2 stamp=554071673 文件名=E:ORACLEORADATATEST YSAUX01.



DBF



数据文件 4 已转换成数据文件副本



输入数据文件副本 recid=3 stamp=554071673 文件名=E:ORACLEORADATATESTUSERS01.D



BF



数据文件 5 已转换成数据文件副本



输入数据文件副本 recid=4 stamp=554071673 文件名=E:ORACLEORADATATESTTEST01.DB



F







内存脚本的内容:



{



Alter clone database open resetlogs;



}



正在执行内存脚本







数据库已打开



完成 Duplicate Db 于 27-3月 -05











4.检查复制库的状态







C:>sqlplus /nolog







SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 3月 27 21:05:52 2005







Copyright (c) 1982, 2004, Oracle. All rights reserved.







SQL> conn sys@test as sysdba



请输入口令:



已连接。







SQL> select instance_name,status from v$instance;







INSTANCE_NAME STATUS



---------------- ------------



test OPEN











然后去掉inittest.ora的DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数,再使用该文件生成spfile







SQL> create spfile from pfile='E:oracleproduct10.1.0db_1databaseinittest.ora';







文件已创建。











===============================================================



参考文章:



Oracle® Database Backup and Recovery Advanced User's Guide 10g Release 1 (10.1) Part Number B10734-01

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/92530/viewspace-128021/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/92530/viewspace-128021/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值