再论DUPLICATE到底做了什么!

什么是使用DUPLICATE的原因?

一直想知道ORACLE在DUPLICATE中到度隐藏了什么,既然在做DUPLICATE时ORACLE要将所有备份文件复制到目标机上那又为什么要同时连接两个库:target instance and auxiliary instance.
开始以为是使用了源机器上的控制文件,因为控制文件里面有备件文件的信息,但既然控制文件的备份已经被复制到目标机上,又为什么不能将控制文件恢复然后再做普通的恢复。因为普通的恢复不需要连接源数据库了。
毕竟源数据库是PRODUCTION,连接到源库上后操作总是小心翼翼。
之所以最近总被这个问题困扰,原因就是最近我的DR库在使用DUPLICATE恢复时总是报错。

分析DUPLICATE:
1:在使用恢复目录的情况下,必需使用DUPLICATE。因为DUPLICATE会修改DBID,这样不会在恢复目录中引起数据库注册问题,如果没有使用恢复目录,其实DUPLICATE和普通恢复区别不大。
2:控制文件还是要重新建立的。DUPLICATE之所以要连接到源数据库,是因为在恢复过程中要使用源数据库的控制文件里面的备件信息,先恢复数据文件,然后重新创建控制文件,恢复归档日志,更改DBID,最后建立日志文件,打开数据库。

同理在做表空间的及时恢复时同时连接两个实例也是因为要在恢复过程中要使用源数据库里面的控制文件。
参考:
duplicate到底做了什么?
2008年09月29日 作者 henrybai
有一个问题一直想不明白,为什么在做duplicate时要同时连接两个库呢。 在以前的版本中... 和恢复到底有什么区别。 现在是11g了duplicate的做法和以前有点不同了。但还是要...大师能给出答案。 恢复之rac数据库duplicate(一) ============
http://blog.csdn.net/henrybai/archive/2008/10/01/3005047.aspx

2008年11月03日 作者 henrybai
前几天对duplicate到底做了什么一直倍感迷惑。。。 其实oracle推出duplicate命令的...过程中记录的日志来观察rman在duplicate过程中到底做了什么: recovery manager... duplicate target database to arsprd until time "to_date(11/02/
http://blog.csdn.net/henrybai/archive/2008/11/05/3216980.aspx

你可能感兴趣的:(cat)