ORA-00704,ORA-00702 bootstrap错误导致库无法启动解决办法
Posted 久违的太阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-00704,ORA-00702 bootstrap错误导致库无法启动解决办法相关的知识,希望对你有一定的参考价值。
客户的一个ORACLE 11.2.0.4.生产环境,在数据库重启之后,报错ORA-00704 ORA-00702无法启动,如下:
这个错误是oracle的引导数据块被破坏了,这种一般就是人为的或者恶意软件破坏的,像以前的勒索病毒,用了非正版的plsql,非正版的oracle 安装包等,都可能会被安装上恶意的程序.
这个错误一般只要是修复一下bootstrap数据块就行了,找一个相同平台相同版本的数据库,将引导数据块dd出来,再dd回去就行了 ,可以参考我以前写的一篇文章:
模拟bootstrap$坏块故障_久违的太阳的博客-CSDN博客
这里需要注意的是,10g版本bootsrap是377数据块,而11g是520,521,522,523三个数据块,
现场实战如下:
注意:做之前先备份一下system数据文件,防止操作失败
1.首先这种恶意程序,一般都是通过触发器或者存储过程,包这些来破坏的,首先我们要禁用系统触发器,防止修复完成之后,再启动的时候,又被破坏了:
ALTER SYSTEM SET "_system_trig_enabled"=FALSE;
2.找一个相同平台相同版本的11.2.0.4数据块,dd出来520,521,522,523数据块
dd if=system01.dbf of=/home/oracle/1.ora skip=520 bs=8192 count=4
3.将刚刚的1.ora拷贝到故障数据块,再dd回去
dd if=1 of=system01.dbf seek=520 bs=8192 count=4 conv=notrunc
#使用notrunc不会删除之后的数据,否则第523块后面的数据就被清空了,seek定位到第520个块,做之前先备份文件
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 8.5765e-05 seconds, 95.5 MB/s
以上是关于ORA-00704,ORA-00702 bootstrap错误导致库无法启动解决办法的主要内容,如果未能解决你的问题,请参考以下文章
ORA-00604:error occurred at recursive SQL level 1
Oracle 数据库启动报ORA-00600 [kkdlcob-objn-exists]的故障处理