ORA-00600 [kkxprpic8]
数据库出现:
Fri Nov 28 09:27:00 2008
Errors in file /home/oracle9i/admin/ora9i/udump/ora9i2_ora_6615.trc:
ORA-00600: internal error code, arguments: [kkxprpic8], [], [], [], [], [], [], []
这个ORA-600错误一般出现在9.2.0.8环境,查看日志信息:
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [kkxprpic8], [], [], [], [], [], [], []
Current SQL statement for this session:
INSERT INTO TB_RM_MIN_NBR (MIN_ID, MIN, MIN_GRP, INPUT_STAFF, INPUT_DATE, USE_STATE, USE_STAFF, USE_SITE, SERV_ID) SELECT SQ_RM_MIN_
NBR_ID.NEXTVAL, IB_MIN, PG_CDMA_RM_NEW.TRAN_MIN_TO_MINGRP(IB_MIN_GRP), 'C_GJ', C_OPER_DATE, IB_MIN_STATE, NULL, 0, IB_SERV_ID FROM M
ID_CARD_PHONE_MIN_INFO M WHERE M.C_OPER_DATE = (SELECT MAX(N.C_OPER_DATE) FROM MID_CARD_PHONE_MIN_INFO N WHERE M.IB_MIN = N.IB_MIN G
ROUP BY IB_MIN HAVING COUNT(*) >= 1)
----- PL/SQL Call Stack -----
object line object
handle number name
c00000102dd6d620 1687 package body ZQIB.PG_CDMA_RM_NEW
c00000102dd6d620 1518 package body ZQIB.PG_CDMA_RM_NEW
c00000102dd6d620 28 package body ZQIB.PG_CDMA_RM_NEW
c00000104f5a74f8 1 anonymous block
在存储过程ZQIB.PG_CDMA_RM_NEW的时候报错。通过日志查看这个存储过程的信息:
LIBRARY OBJECT LOCK: lock=c00000102c122418 handle=c00000102dd6d620 mode=N
call pin=c00000102c1241c8 session pin=0000000000000000
htl=c00000102c122488[c00000102c1222f0,c000001051799268] htb=c000001051799268
user=c000000fe86436f0 session=c000000fe86436f0 count=1 flags=PNC/[04] savepoint=25053
LIBRARY OBJECT HANDLE: handle=c00000102dd6d620
name=ZQIB.PG_CDMA_RM_NEW
hash=ccb300c5 timestamp=11-28-2008 09:16:45
namespace=BODY/TYBD flags=KGHP/TIM/SML/[02000000]
kkkk-dddd-llll=0000-0039-00bf lock=N pin=S latch#=61
lwt=c00000102dd6d650[c00000102dd6d650,c00000102dd6d650] ltm=c00000102dd6d660[c00000102dd6d660,c00000102dd6d660]
pwt=c00000102dd6d680[c00000102dd6d680,c00000102dd6d680] ptm=c00000102dd6d710[c00000102dd6d710,c00000102dd6d710]
ref=c00000102dd6d630[c00000102dd6d630, c00000102dd6d630] lnd=c00000102dd6d728[c00000102dd6d728,c00000102dd6d728]
LOCK INSTANCE LOCK: id=LC5e044cb94e42b0e4
PIN INSTANCE LOCK: id=NC5e044cb94e42b0e4 mode=S release=F flags=[00]
INVALIDATION INSTANCE LOCK: id=IV0008de6b1c0a112e
LIBRARY OBJECT: object=c00000102dd39de8
type=PKBD flags=EXS/LOC[0005] pflags=/DBG [02]status=INVL load=0
DEPENDENCIES: count=66 size=80
READ ONLY DEPENDENCIES: count=105 size=112
ACCESSES: count=75 size=80
TRANSLATIONS: count=41 size=48
从上面可以看到status-INVL,一个正在执行的存储过程怎么可能是INVL状态呢?经确认,在存储过程执行过程中,TB_RM_MIN_NBR 上面被人做了DDL操作,从而导致存储过程失效。事后检查该存储过程,发现该存储过程的状态是VALID,重新执行该存储过程,故障消失。