使用未写入文档参数"_ALLOW_RESETLOGS_CORRUPTION"进行崩溃恢复经典

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

什么情况可能使用该参数

有些时侯可能你的库处于非归档的模式下,而你的联机重做日志又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<sid>.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;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航