用户做异机RMAN恢复,recover时因归档不够,报ORA-01547,如下:
ORA-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: '/oradata/coredb/data/system.257.926944765'</span>
数据库恢复报错后 ,使用了隐含参数_ALLOW_RESETLOGS_CORRUPTION启动后; resetlogs方式成功OPEN了数据库; 然后在业务用户使用TOAD连接数据库时,报错:ORA-00600:[2662],[0],[2678436968],[0],[2678442920]。
对于ORA-00600[2662]的参数MOS上如下解释:
If the SCN is less than the dependent SCN then we signal the ORA-600 [2662] internal error. ARGUMENTS: Arg [a] Current SCN WRAP Arg [b] Current SCN BASE Arg [c] dependent SCN WRAP Arg [d] dependent SCN BASE Arg [e] Where present this is the DBA where the dependent SCN came from
从报错截图结合对2662错误的解释,这里可以发现这里是Current SCN比dependent SCN小了6000左右,由于数据库能OPEN,OPEN后的数据库Current SCN是会自然增长的;
因此建议用户反复做了几次检查点alter system checkpoint;切换日志:SQL> alter system switch logfile;反复重启了几次数据库,通过检查select current_scn from v$database; ,查出的current_scn大于报错住处中的dependent SCN后,业务用户使用TOAD正常连接,不再报错。
注:select current_scn from v$database; 方式查询SCN会导致SCN增加,可以参考我以前的 BLOG:http://blog.csdn.net/haibusuanyun/article/details/11590983 而使用dbms_flashback.get_system_change_number方式查询SCN不因查询而变化 [email protected]>select dbms_flashback.get_system_change_number current_scn from dual; 这里也变相引出一个本文案例中增加SCN的方法:写循环反复执行select current_scn from v$database;