oracle 用rman 做 recover 和 用 sqlplus 做 recover 有什么区别?

oracle 11.2.0.4

centos 6

我曾经遇到过这样一个问题, 生产的存储卡坏了(生产是 2个节点的RAC),需要在另一台服务器恢复数据库(非RAC),幸好我把归档日志保存了一份在本地磁盘。在还原旱,用 rman 做 restore 正常完成,但在做 recover 的时候,报错了(具体的错误号我忘了,但大概意思是找不到所需要的归档日志,但在新的服务器上的归档路径下有这归档日志文件),整了半天,就是不得行,后来,我用 sqlplus recover 成功了,命令如下:

sql> recover database using backup controlfile until cancel;

为什么为这样,我至今没有搞明白,请高手们分析一下。

参与4

1同行回答

Jerry MikuJerry Miku其它The Global 500
如果你的oracle rman恢复是没有catalog,且在rman中的恢复仅仅是“recover database”的话,会出现你说的这个问题。要想明白问题的原因,还得从这两句恢复命令出发:recover database using backup controlfile until cancel;在单一的recover database 或者 recover tablespace,...显示全部

如果你的oracle rman恢复是没有catalog,且在rman中的恢复仅仅是“recover database”的话,会出现你说的这个问题。

要想明白问题的原因,还得从这两句恢复命令出发:

recover database using backup controlfile until cancel;

在单一的recover database 或者 recover tablespace, recover datafile时, Oracle会以当前controlfile所记录的SCN为准,利用archive log和 redo log的redo entry, 把相关的datafile 的 block恢复到“当前controlfile所纪录的SCN”

而当前controlfile和current/active redo都丢失的情况下,你就需要使用你在SQLPLUS里输入的那句恢复命令,在很多情况下,由于datafile数据的不一致性,Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置,简单的说,就是需要更多的归档。



如果你还能复现这个恢复场景,你查询下你报错的所需的归档,利用原来的controlfile进rman里list backup看一下就能知道了。

收起
IT其它 · 2017-04-06
浏览3229

提问者

zyclove2008
数据库运维工程师xsw

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-04-05
  • 关注会员:2 人
  • 问题浏览:5779
  • 最近回答:2017-04-06
  • X社区推广