ORA-00600: [7005], [192]内部错误一例

文章记录了一次AIX系统中出现的ORA-00600:[7005]错误排查过程,通过分析发现与Oracle 9.2.0.6版本中的Bug3390566有关。该错误与使用TIMESTAMP列的函数索引有关,提出了临时解决方案及长期升级建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一套AIX上的9.2.0.6系统,应用的某条查询语句执行时频繁报ORA-00600:[7005]错误,alert告警日志内容如下:
Errors in file /oracle/admin/BIDW/udump/bidw2_ora_3252288.trc:
ORA-00600: internal error code, arguments: [7005], [192], [], [], [], [], [], []
Mon Dec  7 15:20:27 2009
Errors in file /oracle/admin/BIDW/udump/bidw2_ora_3252288.trc:
ORA-00600: internal error code, arguments: [7005], [192], [], [], [], [], [], []
Mon Dec  7 15:20:27 2009
Trace dumping is performing id=[cdmp_20091207152027]
Mon Dec  7 15:20:28 2009
Thread 2 advanced to log sequence 909143
 Current log# 7 seq# 909143 mem# 0: /oradata2/bidw/BIDW/redo2_3
...............
Mon Dec  7 15:21:10 2009
Errors in file /oracle/admin/BIDW/udump/bidw2_ora_3600486.trc:
ORA-00600: internal error code, arguments: [7005], [192], [], [], [], [], [], []
Mon Dec  7 15:21:11 2009
Errors in file /oracle/admin/BIDW/udump/bidw2_ora_3600486.trc:
ORA-00600: internal error code, arguments: [7005], [192], [], [], [], [], [], []
相关的trace文件列出了问题SQL语句:

   Dump file /oracle/admin/BIDW/udump/bidw2_ora_3252288.trc
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production

*** SESSION ID:(436.20428) 2009-12-07 15:20:26.734
*** 2009-12-07 15:20:26.734
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [7005], [192], [], [], [], [], [], []
Current SQL statement for this session:
select /*t.consume_month,
*/
 nvl(t.cust_count, 0),
 nvl(t.net_count, 0),
 nvl(t.item_1, 0),
 nvl(t.item_2, 0),
 nvl(t.item_3, 0),
 nvl(t.item_4, 0),
 nvl(t.item_5, 0),
 nvl(t.item_6, 0),
 nvl(t.item_7, 0),
 nvl(t.item_8, 0),
 nvl(t.item_9, 0),
 nvl(t.item_10, 0),
 nvl(t.item_11, 0),
 nvl(t.item_12, 0)
  from (with t as (select t.consume_month consume_month,
                          t.cust_count cust_count,
                          min(t.net_count) net_count,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 01 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_1,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 02 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_2,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 03 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_3,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 04 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_4,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 05 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_5,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 06 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_6,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 07 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_7,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 08 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_8,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 09 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_9,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 10 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_10,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 11 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_11,
                          round(sum(case
                                      when substr(t.statis_month, 5, 2) = 12 then
                                       t.call_duration / t.net_count
                                      else
                                       0
                                    end),
                                0) item_12
                     from hwkr.tr_sc_138_consume_analyse_m t
                    where t.op_code = '1145'
                      and t.new_join_flag = '0'
                      and t.statis_month >=
                          to_number(substr(to_char(:1, 'yyyymm'), 1, 4) || '01')
                      and t.statis_month <= to_number(to_char(:2, 'yyyymm'))
                    group by t.consume_month, t.cust_count)
         select to_number(substr(t.consume_month, 5, 2)) consume_month,
                t.cust_count,
                t.net_count,
                t.item_1,
                t.item_2,
                t.item_3,
                t.item_4,
                t.item_5,
                t.item_6,
                t.item_7,
                t.item_8,
                t.item_9,
                t.item_10,
                t.item_11,
                t.item_12
           from t
         union all
         select 99,
                sum(t.cust_count),
                sum(t.net_count),
                sum(t.item_1),
                sum(t.item_2),
                sum(t.item_3),
                sum(t.item_4),
                sum(t.item_5),
                sum(t.item_6),
                sum(t.item_7),
                sum(t.item_8),
                sum(t.item_9),
                sum(t.item_10),
                sum(t.item_11),
                sum(t.item_12)
           from t) t, hwkr.tr_sc_138_m s
          where s.months = t.consume_month(+)
          order by s.months
----- Call Stack Trace -----
ksedmp 
经过研究发现可能是9.2.0.6版本上的Bug 3390566 "OERI / dump from functional indexes on TIMESTAMP columns",当使用存在TIMESTAMP列的函数索引时可能引发该Bug。这个Case同时提交了SR,Oracle GCS建议通过避免使用该索引的Workaround方式,因为原执行计划利用到了星型变化,故可以通过设置STAR_TRANSFORAMTION_ENABLED=FALSE来避免使用索引。当然长久之计还是升级到9.2.0.7以上版本(MOS宣称此Bug在该版本修复了)。
Setting STAR_TRANSFORAMTION_ENABLED=FALSE has been successfully used. As a permanent solution, it is recommended to start planning for an upgrade to a supported Database Server version. Currently supported Server versions are ver. 10.2, 11.1 and 11.2 with their latest patchsets. Bug 3390566 is solved since 9.2.0.7. Advantages for being on the latest patchset of a supported release: + new bugs can only be logged against latest patchset release of supported versions + backports can only be requested against latest patchset release of supported versions + most stable release since a lot of bugs are already fixed in the successive patchsets
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值