春节刚过,还没有上班,一个客户电话说数据库因主机掉电,不能启动。
发过来报错,如下:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
oracle意外掉电,从来没有见到过这个错误。
经过反复分析,发现控制文件没有问题。system表空间系统重要数据字典损坏。
但是判断是因为断电导致。反正自己是没有办法进行数据恢复。建议用户接受数据损坏的结果。
后来在网上找到了两个一样问题的帖子,才知道问题的严重性
http://www.itpub.net/thread-2091896-1-1.html
http://www.killdb.com/2017/10/05/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A2%AB%E6%B3%A8%E5%85%A5%E6%81%B6%E6%84%8F%E6%94%BB%E5%87%BB%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%A1%88%E4%BE%8B%E6%81%A2%E5%A4%8Dora-16703.html
原来我们手头的11.2.0.4的介质是被篡改的。
在linux平台,使用md5sum命令查看p13390677_112040_Linux-x86-64_1of7.zip这个文件,如果得出的值后面四位是124173就是被篡改的,正确的版本后面四位应该是F58F28。
被篡改的版本会创建一个触发器。这个触发器在数据库每次启动的时候触发。触发时检测数据库创建时间,如果创建时间超过300天,就会删除核心数据字典表。使得数据库马上宕掉,再启动将无法open,报ORA-00704和ORA-00600,以本人的技术水平,基本无法进行数据恢复。
select * from v$version
查看如果是11.2.0.4,就马上查看有没有篡改的trigger。
select text from all_source where type='TRIGGER' AND NAME='DBMS_SUPPORT_DBMONITOR';
使用下面的语句删掉触发器,存储过程,和包
drop TRIGGER DBMS_SUPPORT_DBMONITOR;
drop PROCEDURE DBMS_SUPPORT_DBMONITORP;
drop PACKAGE DBMS_SUPPORT;
网上的介质太坑了
发过来报错,如下:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [16703], [1403], [20], [], [], [], [], [], [], [], [], []
oracle意外掉电,从来没有见到过这个错误。
经过反复分析,发现控制文件没有问题。system表空间系统重要数据字典损坏。
但是判断是因为断电导致。反正自己是没有办法进行数据恢复。建议用户接受数据损坏的结果。
后来在网上找到了两个一样问题的帖子,才知道问题的严重性
http://www.itpub.net/thread-2091896-1-1.html
http://www.killdb.com/2017/10/05/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%A2%AB%E6%B3%A8%E5%85%A5%E6%81%B6%E6%84%8F%E6%94%BB%E5%87%BB%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%A1%88%E4%BE%8B%E6%81%A2%E5%A4%8Dora-16703.html
原来我们手头的11.2.0.4的介质是被篡改的。
在linux平台,使用md5sum命令查看p13390677_112040_Linux-x86-64_1of7.zip这个文件,如果得出的值后面四位是124173就是被篡改的,正确的版本后面四位应该是F58F28。
被篡改的版本会创建一个触发器。这个触发器在数据库每次启动的时候触发。触发时检测数据库创建时间,如果创建时间超过300天,就会删除核心数据字典表。使得数据库马上宕掉,再启动将无法open,报ORA-00704和ORA-00600,以本人的技术水平,基本无法进行数据恢复。
select * from v$version
查看如果是11.2.0.4,就马上查看有没有篡改的trigger。
select text from all_source where type='TRIGGER' AND NAME='DBMS_SUPPORT_DBMONITOR';
使用下面的语句删掉触发器,存储过程,和包
drop TRIGGER DBMS_SUPPORT_DBMONITOR;
drop PROCEDURE DBMS_SUPPORT_DBMONITORP;
drop PACKAGE DBMS_SUPPORT;
网上的介质太坑了
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13337857/viewspace-2151235/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13337857/viewspace-2151235/