1. 事先要修改目标库中初始参数中的db_name为源数据库名称,这里假设修改db_name为GERPB,其它参
数酌情修改(比如加快RMAN恢复)。
2. 恢复介质准备 。
将RMAN备份通过NAS挂载到目标数据库服务器上(或拷贝到本地),
3. 恢复控制文件。
在目标数据库上恢复控制文件。
rman target / nocatalog
RMAN> startup nomount;
RMAN> restore controlfile from '/gerpnas/rmanbak/fullbak_CF_c-3148051840-20130822-00';
RMAN> alter database mount;
4.登陆源数据库获得数据文件路径信息。
select name from v$datafile;
备注: RMAN备份在归档模式下一般是会alert system switch logfile,并备份归档日志,等同于
备份了online redo文件,非归档模式不能online rman backup,online redo对备份没有用。故RMAN
备份不备份online redo。也不备份tempfile。在下面的RMAN restore脚本中也不需要对这两类文件
做rename转换。
5. 编写restore datafile的脚本。
脚本restore.rman如下(一般在后台运行):
catalog start with '/gerpnas/rmanbak/';
(备份集所在路径一定要用“/”结尾,不然找不到真实的路径)
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
set newname for datafile '/data/d08/gerpb/datafile/system.323.717426563' to‘+DATA’;
… (为节省篇幅,省略大部分数据文件)
set newname for datafile '/data/d15/gerpb/datafile/appslx.265.743248917' to ‘+DATA’;
restore database force;
switch datafile all;
}
后台运行命令:
$nohup rman target / cmdfile=/home/dgerp/restore.rman log=/home/dgerp/rman.log &
Restore完成后还需要进行recover。
$rman target /
RMAN> recover database ; (recover最终都会以出错找不到归档日志结束)
本文转自ITPUB博客tolywang的博客,原文链接:EBS R12克隆 - Oracle11.2.0.3 EBS数据库克隆(RMAN恢复) 1,如需转载请自行联系原博主。