由于突然掉电,造成客户在windows平台上10.2.0.1数据库无法驱动,以下是具体解决步骤:
一、定位故障问题:
1、启动数据库,查看错误
SQL>startup
ora-01113: file 1 needs media recovery
ora-01110: data file 1: 'C:\xxx\xxx\xxx\system01.dbf'
2、使用dbv命令扫描数据文件,发现system出现2个坏块和sysaux表空间出现6个坏块
$dbv file=C:\xxxxx\xxxx\xxxx\system01 blocksize=8192
二、修复
1、修复所有的数据文件
SQL>recover datafile 'C:\xxx\xxx\xxx\xxxx.dbf'
2、试图打开数据库
SQL>alter database open;
出现oralce异常中断退出
3、查看alert.log日志,出现ora-600 [4193]错误,通过metalink查看为undo和redo 不一致造成错误。
4、将undo管理模式改成手动管理模式,打开数据库
SQL>alter system set undo_manage=manual scope=spfile;
5、重新启动数据库,能正常打开数据库,但无法正常关闭数据库,存在数据库坏块问题。
6、system表空间和sysaux表尝试用BBED修复失败,只能将应用的表备份出来,重新创建数据库,在将应用数据导入。
三、遗留问题发现及研究
1、在windows平台上使用BBED读取数据文件时候,发现头文件的信息偏移1block;
2、需要弄清楚在10g中,对于block corrupt,是哪些标识符被修改?查询中seg_kcbh=0x01。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/354732/viewspace-625344/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/354732/viewspace-625344/