文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ORA-07445导致实例崩溃的解决【The solution of ..

ORA-07445导致实例崩溃的解决【The solution of ..

时间:2010-06-04  来源:gflei

   昨天(2007-12-27日)维护某省移动一个平台的工程师报告数据库实例不可用,只能重新启动!这还得了,业务无论如何不能停。
    赶快登录到那个服务器上去检查。
    通过日志分析,我看到导致实例不可用,其实质就是由于07445错误导致数据库实例崩溃。接着分析详细的日志信息:
ORA-07445: exception encountered: core dump [kkmmctbf()+89] [SIGSEGV] [Address not mapped to object] [0x30] [] []
Current SQL statement for this session:
delete from t_XXXX where XXXX_id='66666666666' and xx_id='EEE'     
    看看07445的错误解释:
07445, 00000, "exception encountered: core dump [%s] [%s] [%s] [%s] [%s] [%s]"
// *Cause: An OS exception occurred which should result in the creation of a
//         core file.  This is an internal error.
// *Action: Contact your customer support representative.
   牛,推到OS系统上了!
   难道真是操作系统出了什么问题,看看操作系统的相关日志,表面上看没有任何报错信息。
   会不会是ORACLE的BUG?
   了解应用情况,发现在删除某张表的时候会出现这种情况,并且通过错误日志也看的出来,但是奇怪一个简单的SQL怎么会造成实例崩溃呢?
    搜速相关信息,通过检查9.2.0.6 Bug Categories,在分类中发现一个可能的错误:
Process May Dump (ORA-7445) / Abend / Abort
3199908      Dump (in kkmmctbf) from a DELETE TRIGGER compiled in DEBUG mode     
    赶快检查被删除的表,COOL!果真在其上有一个基于DELETE的TRIGGER!
    检查这个TRIGGER的状态:
   
select owner,object_name,object_type,debuginfo 
rom all_probe_objects 
where object_name='TRI_XXX' and object_type like 'TRIGGER';

OWNER        OBJECT_NAME    OBJECT_TYPE     D
------------ -------------- ---------------     -
COPERATOR    TRI_XXX        TRIGGER              T


1 rows selected.     
    天哪,真是DEBUG状态!
    一个因为在DEBUG状态,且是基于DELETE的TRIGGER触发了这个ORACLE的BUG!
    ......
    现在要么改这个TRIGGER的状态,要么打补丁(9.2.0.6)。第一种选择是明智而快捷且安装的。重新编译,检查不是DEBUG状态。应用启动,正常运行。

    上线数据库中的数据库内部的程序开发对象,例如:PACKAGE、FUNCTION等是坚决不能存在DUBUG状态的。不但影响性能而且容易引起某些莫名的错误。
     当然ORACLE也常常需要怀疑一下,毕竟再好的程序也是人编的 -:)
   
-------------------系统说明
OS:REDHAT AS4
DATABASE:ORACLE 9.2.0.4
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载