修改主机名导致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,数据库也能正常打开)。