由于oracle database只能由一个节点进行恢复,所以如果采用本地磁盘来放归档

   第一步,是把所有归档都拷贝到对方节点上【目录与自己存放归档的目录相同,(而不是放在另外节点的归档目录中,只针对于归档目录不同的情况)】

   第二步,如果备份集合是放在同一共享磁盘上,那么在有所有归档的任意一节点上直接执行

           recover databae即可

       如果是各自本地放置,可以把所有备份集合都拷贝到和【存在所有归档目录】的节点中。RMAN如果在本地中找到所有备份集合就不需要也不会去对端进行查找。

           直接recover database即可。recover出来的归档会放在spfile中指定的归档目录内


   如果你是使用

run      

{

allocate channel c1 device type disk connect sys/sys@RMANDB1;

allocate channel c2 device type disk  connect sys/sys@RMANDB2;

recover database;

}(不需要指定format,所有位置都在controlfile中记录)


那么RMAN会先恢复节点1上所有的archive,然后开始尝试restore节点2的archive{如果本地restore则会放在本地,被恢复出来的归档会放在名字和节点二归档目录名字一样的目录中,所以有可能需要你手动创建个},但是由于没有备份集合,它会去连接到第二节点进行恢复(restore),但是悲剧的是它老人家restore出来是放在节点2上的,在它recover时是没办法读到的。所以会提示

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 01/21/2014 14:35:44

RMAN-11003: failure during parse/execution of SQL statement: alter database recover logfile '/oracle/archive1/2_1_837436892.dbf'

ORA-00308: cannot open archived log '/oracle/archive1/2_1_837436892.dbf'

ORA-27037: unable to obtain file status

Solaris-AMD64 Error: 2: No such file or directory

Additional information: 3

这时你需要去节点2的归档目录中拷贝restore出来的archive去节点一上。。。(而且它居然是restore一个recover一个。。。我的神啊。也就是说有多少个文件就会报多少次错,而且每报一次都会跳出恢复)