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 <- 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.
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博客 ” ,链接:https://blog.itpub.net/38267/viewspace-715743/
,如需转载,请注明出处,否则将追究法律责任。