ORA-600 [kgmgchd1] and ORA-4031 While Running Select Statement [ID 1224393.1]

In this Document
  
Symptoms
  Cause
  Solution
  References


Applies to:

Oracle Server - Enterprise Edition - Version: 10.1.0.5 and later   [Release: 10.1 and later ]
Information in this document applies to any platform.

Symptoms

If we see the errors below in alert.log:


Sat Sep 18 03:02:44 2010
Errors in file /oracle/product/ora_5457.trc:
ORA-00600: internal error code, arguments: [kgmgchd1], [], [], [], [], [], [], []
Sat Sep 18 03:03:10 2010
Errors in file /oracle/product/admin/cjq0_1909.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4096 bytes of shared memory ("shared pool","select job, nvl2(last_date, ...","Typecheck heap","kgghteInit")

In the trace file generated, in Call Stack Trace section, we can see one or more of the following functions:


kgmgchd

The call stack can vary depending on the affected object. In this specific case, it was demonstrated that ORA-4031 were a side effect of ORA-600 and implicit what caused ORA-600.


Cause


This issue is caused by a mismatch in the timestamp information with the dependent objects and invalid objects. It may not be a dictionary corruption problem.

This can also cause problems during upgrades and PLSQL validations.

1. Timestamp mismatch between dependent objects can be checked using the following script.:
select do.obj# d_obj,do.name d_name, do.type# d_type,
po.obj# p_obj,po.name p_name,
to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp",
to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME",
decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X
from sys.obj$ do, sys.dependency$ d, sys.obj$ po
where P_OBJ#=po.obj#(+)
and D_OBJ#=do.obj#
and do.status=1 /*dependent is valid*/
and po.status=1 /*parent is valid*/
and po.stime!=p_timestamp /*parent timestamp not match*/
order by 2,1;

2. Invalid objects can be checked using the following script.:
SELECT status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"
FROM dba_objects
WHERE status != 'VALID'
ORDER BY 4,2;



Solution


1. If the query for timestamp mismatch reports any objects, then you can recompile or recreate these objects.

2. If the query for invalid objects reports any rows, validate all invalid objects using:

Note 300056.1 Debug and Validate Invalid Objects

References

NOTE:300056.1 - Debug and Validate Invalid Objects

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/38267/viewspace-715743/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/38267/viewspace-715743/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值