修改主机名导致ORA-00600[keltnfy-ldmInit]错误
Jun232015
今天从移动硬盘克隆一台虚拟机到新电脑上,修改主机名后,启动数据库时遇到ORA-00600[keltnfy-ldmInit]错误,数据库无法启动。数据库版本10.2.0.1.0 32 bit for Linux。以下是案例描述:
修改主机名:
[root@secdb1 ~]# vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=dbdream --由secdb1修改为dbdream
删除系统缓存文件,防止重启后主机名再次变回。
[root@secdb1 ~]# cd /etc/sysconfig/networking/profiles/ [root@secdb1 profiles]# ls default [root@secdb1 profiles]# rm -rf default/
重启操作系统。
[root@secdb1 ~]# reboot
启动数据库遇到ORA-00600错误。
[oracle@dbdream ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jun 23 10:25:17 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to an idle instance. SYS@EMREP> startup ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
告警日志同样能观察到这个错误。
Tue Jun 23 10:26:04 2015 Errors in file /u01/app/oracle/admin/EMREP/udump/emrep_ora_4805.trc: ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
以下是trace文件相关信息。
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst()+27 call ksedst1() 0 ? 1 ?
ksedmp()+557 call ksedst() 0 ? BF000000 ? 0 ? 10 ?
B6D351F8 ? 1 ?
ksfdmp()+19 call ksedmp() 3 ? BFCA6658 ? AC153D9 ?
CBD2DC0 ? 3 ? CB84448 ?
kgerinv()+177 call 00000000 CBD2DC0 ? 3 ?
kgeasnmierr()+40 call kgerinv() CBD2DC0 ? E4DF818 ? C332E00 ?
2 ? BFCA6690 ?
keltnfy()+441 call kgeasnmierr() CBD2DC0 ? E4DF818 ? C332E00 ?
2 ? 0 ? 2E ? 0 ? 0 ? 1 ? 0 ?
kscnfy()+457 call 00000000 F ? 42E4AE8C ?
ksucrp()+1392 call kscnfy() F ? 42E4AE8C ?
opistr_real()+2150 call ksucrp() 0 ? BFCA6F6C ? 68632064 ?
CBD2DC0 ? CBD2DC0 ? 4 ?
opistr()+684 call opistr_real() 30 ? 2 ? BFCA8FB4 ?
opiodr()+2347 call 00000000 30 ? 2 ? BFCA8FB4 ?
ttcpip()+4227 call 00000000 30 ? 2 ? BFCA8FB4 ? 0 ?
E4C298E ? 1B ?
opitsk()+1991 call ttcpip() CBDA5C0 ? 30 ? BFCA8FB4 ? 0 ?
BFCA8494 ? BFCA90D8 ?
opiino()+1387 call opitsk() 0 ? 0 ?
opiodr()+2347 call 00000000 3C ? 4 ? BFCA9BA0 ?
opidrv()+915 call opiodr() 3C ? 4 ? BFCA9BA0 ? 0 ?
sou2o()+113 call opidrv() 3C ? 4 ? BFCA9BA0 ?
opimai_real()+212 call sou2o() BFCA9B84 ? 3C ? 4 ?
BFCA9BA0 ?
main()+111 call opimai_real() 2 ? BFCA9BD0 ?
__libc_start_main() call 00000000 2 ? BFCA9C94 ? BFCA9CA0 ?
+220 46625828 ? 0 ? 1 ?
查看老杨的博客,发现这是10g的一个BUG,详见http://blog.itpub.net/4227/viewspace-231094/。
既然知道是由无法定位主机名导致的问题就好解决了,在hosts文件中加入相应的解析即可解决。
[root@dbdream ~]# vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.194.100 dbdream
修改hosts文件加入解析后,问题解决(我在试验时,不小心把IP地址写错,写成了192.168.194.11,数据库也能正常打开)。