新手问个until cancel恢复出错问题
为了测试恢复数据库(归档模式)
SQL> shutdown abort
SQL> startup --可以起来
SQL> shutdown abort
SQL> startup mount
SQL> recover database using backup controlfile until cancel;ORA-00279: change 503362 generated at 02/07/2012 17:54:35 needed for thread 1
ORA-00289: suggestion :
/home/oracle/oracle/product/10.2.0/flash_recovery_area/ORCL/archivelog/2012_02_0
7/o1_mf_1_6_%u_.arc
ORA-00280: change 503362 for thread 1 is in sequence #6
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancelORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1:
'/home/oracle/oracle/product/10.2.0/oradata/orcl/system01.dbf'
ORA-01112: media recovery not started
SQL>
alter database open resetlogs;alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1:
'/home/oracle/oracle/product/10.2.0/oradata/orcl/system01.dbf'
试过数据库直接startup可以起来,或者用recover database也可以完全恢复
为什么用cancel不完全恢复就不行呢,选auto还是cancel都起不来。
之后启动就提示要resetlog开启,resetlog开启又提示要恢复system01.dbf,一直循环。
最后设置"_allow_resetlogs_corruption"=true 可以起来
只有10分才在这里问,大家多多包涵。
------解决方案--------------------你直接abort,数据库可能需要实例恢复,也可能需要介质恢复(概率不大)
然后你直接输入了cancel,数据库就没有进行实例恢复了,当然不能启动了
startup自动做实例恢复
recover database 做介质恢复,然后你在open的时候做实例恢复
_allow_resetlogs_corruption 屏蔽掉了应用redo,所以相当实例恢复被屏蔽(不太准确,但是确实有这个效果)
------解决方案--------------------你abort之后,启动的时候看看alert日志里是否有实例恢复或者介质恢复的信息,如果有实例或者介质恢复,必须等恢复之后进行recover
顺便说下你要进行Until cancel移除部分归档,recover database的时候就会报错的,然后再进行recover cancel