首页 > Linux操作系统 > Linux操作系统 > ORA-600 [kgmgchd1] and ORA-4031 While Running Select Statement [ID 1224393.1]

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

原创 Linux操作系统 作者:spider0283 时间:2012-02-07 11:59:01 0 删除 编辑

In this Document

Applies to:

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


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 <- xtypls <- qctopls <- qctcopn <- qctcpqb <- qctcpqbl

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.


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, d_name, do.type# d_type,
po.obj# p_obj, 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'


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


NOTE:300056.1 - Debug and Validate Invalid Objects

来自 “ ITPUB博客 ” ,链接:,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录


  • 博文量
  • 访问量