Lately I'd just installed Oracle 10.2.0.1 in Red Hat Enterprice Linux 5.3. It run well until I changed the hostname of RHEL 5.3. I tried to change my hostname from localhost to r083rt. It changed successfully until that error appeared when I tried to connect to sqlplus.
As usual I used sqlplus "/ as sysdba" snytax to get in there and just did 'startup'. Soon after that that error code appeared : ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []. I thought this was a serious mode ON because ORA-00600 & ORA-07445 were internal errors and usually they need to be patched on better version.
I thought the problem began when I'd changed my hostname & the RHEL didn't recognize this new hostname. I searched fro more information & found this information :
In the error ldmInit indicates that the problem is related while getting host information of oracle during startup. The first argument 46 indicates the exception LDMERR_HOST_NOT_FOUND which is "gethostbyname system call fails". Oracle was unable to get host information from OS and bug fires.
To get out from this error, I just did these following steps :
Step 01: Check permission on /etc/hosts
$ ls -l /etc/hosts
-rw-r--r-- 1 root root 153 Nov 24 2007 /etc/hosts
Note that you need read permission of all users.
Step 02: Check the contents of /etc/hosts
Open the contents of /etc/hosts and check the contents inside it.
$ less /etc/hosts
Note that the contents of this files follow following format.
IP Address fully qualified hostname simple or short hostname Alias
A simple example,
$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 database localhost.localdomain localhost
Step 03: Check the hostname and make sure you can ping your hostname.
$ hostname
database
$ ping database
PING database (127.0.0.1) 56(84) bytes of data.
64 bytes from database (127.0.0.1): icmp_seq=0 ttl=64 time=0.057 ms
64 bytes from database (127.0.0.1): icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from database (127.0.0.1): icmp_seq=2 ttl=64 time=0.041 ms
If you get the following message,
$ ping database
ping: unknown host database
then possibly you will hit above bug.
And you need to modify /etc/hosts files. In the alias section you can give the name of your machine name. If your machine name is "database" you can give /etc/hosts entry as,
127.0.0.1 database localhost.localdomain localhost
And then ping database again. Make sure you are able to ping your host.
Step 04: Diagnosis DNS problem if you have DNS setup
If you have DNS setup, ping is not a tool to diagnose DNS problem. A better tool to use is nslookup, dnsquery, or dig.
$nslookup www.google.com
The forward and reverse lookup should succeed.
Step 05: Check nsswitch.conf
$ cat /etc/nsswitch.conf
hosts: files dns
Make sure host lookup is also done through the /etc/hosts file and not just dns. The keyword files should come before dns.
Step 06: Check resolv.conf
$ cat /etc/resolv.conf
nameserver 4.2.2.2
Make sure nameserver with DNS name is added there.
After these steps were completed, I tried again to do startup database & guess : It's UP again..
No comments:
Post a Comment