Oracle10g由于修改主机名数据库实例崩溃,且出现ORA-600(keltnfy-ldmInit)错误。
同事在升级一个测试库的过程中碰到了这个问题,由于通过hostname命令修改了主机名称,导致Oracle 10201 for Linux X86-64环境出现实例崩溃,在alert文件中出现了ORA-600(keltnfy-ldmInit)错误。
在alert文件中出现下面的错误信息:
Errors in file /opt/ora10g/admin/testzj/udump/testzj_ora_4109.trc:
$rf
w [FD0ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []ITPUB个人空间$V_t$WZ#K r
USER: terminating instance due to error 600ITPUB个人空间
G(Z&P8P5M4DM
Instance terminated by USER, pid = 4109
对应的trace文件中,详细信息如下:
ksedmp: internal or fatal error
d+X5ez0Um0ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
/Z;I3g#C(L:C3E-l#^0Current SQL information unavailable - no session.ITPUB个人空间!y.b2kv(a0v'p5@
----- Call Stack Trace -----
IzdRl(_%yv$l0calling call entry argument values in hex
7Hy,o1ngpz'A0location type point (? means dubious value)
{yG6A8S U
g
q4s0-------------------- -------- -------------------- ----------------------------
M8I"}C0`0ksedst()+31 call ksedst1() 000000000 ? 000000001 ?ITPUB个人空间\D:L2Oq"q-n
000000000 ? 000000000 ?ITPUB个人空间UHcJ1T"~
000000000 ? 000000001 ?
C/@VOj2nx0ksedmp()+610 call ksedst() 000000000 ? 000000001 ?ITPUB个人空间c6~6d#`D s]
000000000 ? 000000000 ?
:f3ONX#q0 000000000 ? 000000001 ?ITPUB个人空间a,xur"\,{ n
ksfdmp()+21 call ksedmp() 000000003 ? 000000001 ?
-{6~S%W,[$@(bL0 000000000 ? 000000000 ?
7Qt\3A
A3[%b0 000000000 ? 000000001 ?ITPUB个人空间}^D5]0U
kgerinv()+161 call ksfdmp() 000000003 ? 000000001 ?ITPUB个人空间4^wb f:n9|3N#e
000000000 ? 000000000 ?ITPUB个人空间%AK z ep0ho^"E
000000000 ? 000000001 ?
y5Ju(G9iGQ0kgeasnmierr()+163 call kgerinv() 006579D40 ? 2AAAACA10118 ?
4?/S'^1@b!A`0 000000000 ? 000000000 ?
)Hd#v8XO1D0 000000001 ? 000000001 ?
0\v_gq0keltnfy()+286 call kgeasnmierr() 006579D40 ? 2AAAACA10118 ?ITPUB个人空间)C?4E!Sp3A[$y
000000000 ? 000000000 ?
Oracle的meatlink上文档Doc ID: Note:5486074.8的描述:当Oracle无法确定主机名或者网络地址的时候,会出现这个错误信息。
Oracle在10.2.0.4和11.1.0.6中解决了这个bug。Oracle的metalink上指出在10.2.0.4以前的都可能导致这个错误的产生。
不过测试发现Oracle9i并不会由于修改hostname而导致错误的产生。