一、问题:在做数据库恢复演练的时候recover database时报如下错误:
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
ORA-00283: 恢复会话因错误而取消
ORA-01610:使用 BACKUP CONTROLFILE 选项的恢复必须已完成
二、检查:
查看控制文件scn
SQL> select CHECKPOINT_CHANGE# from v$datafile;
CHECKPOINT_CHANGE#
------------------
1717921
1717921
1717921
1717921
1717921
1717921
6 rows selected.
查看数据文件头部scn
SQL> select CHECKPOINT_CHANGE# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
1718516
1718516
1718516
1718516
1718516
1718516
6 rows selected.
三、分析:从上面可以看到他恢复出来的控制文件的scn是大于各个数据文件的scn号的,有两个原因会导致恢复的时候出现该错误:
第一个是你的恢复出来的控制文件比恢复出来的数据文件旧,
第二个是你的控制文件使用resetlogs选项重建过。(比如这个库是从其他的地方迁过来的,做过resetlogs)
四、解决方案:
SQL> recover database using