什么情况可能使用该参数
有些时侯可能你的库处于非归档的模式下,而你的联机重做日志又currupted,你的数据文件不能完成完全的恢复。而这时当你试图打开数据库时,Oracle提示你用resetlogs选项,当你使用该选项时oracle又不答应你使用该选项,总之你想打开数据库,可就是打不开。 1、最好做一个物理的库的全备 2、使用sqlplus 启动库至mount sqlplus /nolog sql>connect internal sql>startup mount 3、确保所有的数据文件都处于"END BACKUP"状态 sql>set pages 0 feedback off lines 132 sql>spool alter_df.sql sql>SELECT 'alter database datafile 'file_name' END BACKUP;' from v$datafile; sql>spool off sql>@alter_df.sql 4、试着打开数据库 sql>alter database open; 如数据库成功打开,余下的都不需要做了,到此为止 5、假如你在打开时被要求进行恢复,使用"UNTIL CANCEL"这种进行恢复,然后再发出ALTER DATABASE OPEN RESETLOGS这个命令 sql>recover database until cancel; sql>alter database open resetlogs; 6、假如数据库仍不能打开,把库down掉 sql>shutdown immediate 7、在init.ora中加入如下参数 _allow_resetlogs_corruption=TRUE 8、执行如下语句 sql>connect internal sql>startup mount sql>@alter_df.sql sql>alter database open 9、如在alter database open时仍然报错,使用until cancel恢复 sql>recover database until cancel; sql>alter database open resetlogs; 10、经过"9",数据库一定被打开了,数据库被打开后,马上执行一个full eXPort 11、down掉库,去掉_all_resetlogs_corrupt参数 12、重建库 13、import并完成恢复 14、建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;
|