之所以将两个错误合在一起发出,主要是因为造成这两个错误的SQL是同一个。
第一次出现错误的时候报错ORA-600(kcblasm_1),第二次出现改成了ORA-7445错误,错误的第一个参数为kxhfNewBuffer。
Mon Aug 10 15:47:36 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20414.trc:
ORA-00600: internal error code, arguments: [kcblasm_1], [102], [], [], [], [], [], []
Mon Aug 10 15:47:37 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20414.trc:
ORA-07445: exception encountered: core dump [0000000101D51BB4] [SIGSEGV] [Address not mapped to object] [0x3032313300043148] [] []
ORA-00600: internal error code, arguments: [kcblasm_1], [102], [], [], [], [], [], []
Mon Aug 10 15:47:38 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20414.trc:
ORA-07445: exception encountered: core dump [0000000101D51BB4] [SIGSEGV] [Address not mapped to object] [0x3032313300043148] [] []
ORA-07445: exception encountered: core dump [0000000101D51BB4] [SIGSEGV] [Address not mapped to object] [0x3032313300043148] [] []
ORA-00600: internal error code, arguments: [kcblasm_1], [102], [], [], [], [], [], []
Mon Aug 10 15:47:40 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20414.trc:
ORA-07445: exception encountered: core dump [0000000101D51BB4] [SIGSEGV] [Address not mapped to object] [0x3032313300043148] [] []
ORA-07445: exception encountered: core dump [0000000101D51BB4] [SIGSEGV] [Address not mapped to object] [0x3032313300043148] [] []
ORA-07445: exception encountered: core dump [0000000101D51BB4] [SIGSEGV] [Address not mapped to object] [0x3032313300043148] [] []
ORA-00600: internal error code, arguments: [kcblasm_1], [102], [], [], [], [], [], []
Mon Aug 10 16:19:28 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:28 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:29 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:31 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:32 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:34 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:36 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:39 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
Mon Aug 10 16:19:41 2009
Errors in file /data/oracle/ora92/admin/data01/udump/data01_ora_20756.trc:
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kghasp1], [0xFFFFFFFF799800E8], [], [], [], [], [], []
ORA-07445: exception encountered: core dump [0000000101919BD0] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
两个错误的间隔时间很短,而且都是同一个SQL语句所引起。
由于以前并没有出现过这个错误,而最近程序又修改了SQL语句,基本上可以确定问题就是SQL语句导致的。
由于SQL语句比较长,而且和业务有关,这里就不贴出来了。检查SQL语句,发现可能导致问题的部分是SQL的WHERE条件中,包含了下列的写法:
and (b.ready_flag is null
or b.ready_flag in
(
select r.ready_type from cat_zone_product_ready r
where r.plat_id ='FR20T0000020000000000061'
and r.enable_flag='1'
)
)
这种用OR关联起来的子查询,本身就容易引发错误。
由于cat_zone_product_ready表中plat_id和ready_type是唯一的,因此将上面的查询改成了外连接的方式。
将SQL简化后一点,来说明问题,原始的写法为:
SQL> select count(*)
2 from (
3 select a.id, a.trade_name, a.remark
4 from cat_product a, cat_drug b
5 where a.medical_id = b.id
6 and a.enable_flag = '1'
7 and (b.ready_flag is null
8 or b.ready_flag=''
9 or b.ready_flag in
10 (
11 select r.ready_type from cat_zone_product_ready r
12 where r.plat_id ='FR20T0000020000000000061'
13 and r.enable_flag='1'
14 )
15 )
16 );
COUNT(*)
----------
105476
修改为:
SQL> select count(*)
2 from (
3 select a.id, a.trade_name, a.remark
4 from cat_product a, cat_drug b, cat_zone_product_ready r
5 where a.medical_id = b.id
6 and a.enable_flag = '1'
7 and b.ready_flag = r.ready_type (+)
8 and r.plat_id (+)='FR20T0000020000000000061'
9 and r.enable_flag (+) ='1'
10 and ((r.id is not null) or (r.id is null and b.ready_flag is null))
11 );
COUNT(*)
----------
105476
根据上面的方法修改了程序中的SQL语句,观察了半个月左右,这个错误没有再次出现,看来通过修改SQL的方式避开了这个错误。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-613523/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-613523/