由于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出来是放在节点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一个。。。我的神啊。也就是说有多少个文件就会报多少次错,而且每报一次都会跳出恢复
阅读(2151) | 评论(1) | 转发(0) |