-目标库
-创建目录【切换到oracle用户--就不用更改目录所属用户的属性了】
su - oracle
$mkdir /u02/oradata/ora10g/db2
$mkdir /u01/app/admin/db2/adump -p
$mkdir /u01/app/admin/db2/bdump -p
$mkdir /u01/app/admin/db2/cdump -p
$mkdir /u01/app/admin/db2/udump -p
-更改数据库启动文件
#cd /u01/app/product/oracle/10.2.0/dbs/
c#p initprod.ora initdb2.ora
-更改db_name、dump所对应的新路径【这里为了方便直接批量替换】
#vi initdb2.ora
:% s/prod/db2/g【一回车,就好了,方便吧】
 
 差点忘了还有一步,很重要【更改RMAN传过来的文件所属用户属性,要不使用duplicate恢复的时候会出错】
cd /u01/app/flash_recovery_area/
chown -R oracle.oinstall PROD/
 
 
 创建密码文件
orapwd file='/u01/app/product/oracle/10.2.0/dbs/orapwdb2' password=password
启动到nomount状态
SQL> startup nomount pfile='/u01/app/product/oracle/10.2.0/dbs/initdb2.ora';
开始恢复数据库【在源数据库上操作,暂没有在目标库上试过】
rman target / auxiliary sys/lugeng@db2
RMAN>run
   {
   set until scn 504351;
   duplicate target database to db2
   DB_FILE_NAME_CONVERT=(prod,db2)
   LOGFILE
   '/u02/oradata/ora10g/db2/redo01.log' size 50m,
   '/u02/oradata/ora10g/db2/redo02.log' size 50m,
   '/u02/oradata/ora10g/db2/redo03.log' size 50m
   open restricted;
   }
【看到上面那个号了吗?是不是很熟悉?没错,就是前面备份完后生成的。后面还有用处,接着往下盾...】

--注意了--【光标一直停在这儿,是不是会很长时间?本人就在这儿吃了不少的苦,希望看到此文章的人,不要再和我一样。错,是目标库没有退出sqlplus了。到目标库一看,果然有一窗口正在使用sqlplus登录中.quit。再到这儿,哈哈,齐刷刷地往下走...】

contents of Memory Script:
{
   shutdown clone;
   startup clone nomount ;
}
executing Memory Script
删除源库带来的db link
sqlplus stradmin/stradmin
SQL> select * from global_name;
SQL> alter database rename global_name to test;
SQL> drop database link db2.net;
SQL> alter database rename global_name to db2.net;
创建连接到源库的db link
SQL> create database link prod.net connect to stradmin identified by stradmin using 'prod';
测试到源库的连通性
SQL> select instance_name from v$instance@prod;
能出来prod就ok
SQL> select instance_name from v$instance@db2;
能出来db2就Ok