ORA-7445 [kslgetl] ORA-108

客户的一个系统的alert日志报如下错误:

Tue Oct 09 03:43:33 CST 2012
found dead dispatcher 'D000', pid = (15, 56)
Tue Oct 09 03:43:33 CST 2012
dispatcher 'D000' encountered error getting listening address
Tue Oct 09 03:43:33 CST 2012
Errors in file /oracle/admin/abcdb/bdump/abcdb_ora_5369.trc:
ORA-07445: exception encountered: core dump [kslgetl()+120] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
ORA-00108: failed to set up dispatcher to accept connection asynchronously

trc文件内容:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/product/10.2.0/db_1
System name: Linux
Node name: abc.data
Release: 2.6.18-194.el5
Version: #1 SMP Tue Mar 16 21:52:39 EDT 2010
Machine: x86_64
Instance name: abcdb
Redo thread mounted by this instance: 1
Oracle process number: 15
Unix process pid: 5369, image: oracle@abc.data (D000)

Warning: keltnfy call to ldmInit failed with error 46
*** 2012-10-09 03:43:33.110
network error encountered getting listening address:
  NS Primary Error: TNS-12533: TNS:illegal ADDRESS parameters
  NS Secondary Error: TNS-12560: TNS:protocol adapter error
  NT Generic Error: TNS-00503: Illegal ADDRESS parameters
OPIRIP: Uncaught error 108. Error stack:
ORA-00108: failed to set up dispatcher to accept connection asynchronously
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0×210, PC: [0x7ac6d0, kslgetl()+120]
*** 2012-10-09 03:43:33.120
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [kslgetl()+120] [SIGSEGV] [Address not mapped to object] [0x000000210] [] []
ORA-00108: failed to set up dispatcher to accept connection asynchronously
Current SQL information unavailable – no session.
—– Call Stack Trace —–
calling              call     entry                argument values in hex     
location             type     point                (? means dubious value)    
——————– ——– ——————– —————————-
ksedst()+31          call     ksedst1()            000000000 ? 000000001 ?
                                                   2B10D25A1D50 ? 2B10D25A1DB0 ?
                                                   2B10D25A1CF0 ? 000000000 ?

搜索metalink找到一篇ORA-07445: [kslgetl()+80] Followed by ORA-108: failed to set up dispatcher to accept connection asynchronously [ID 1298804.1],问题现象及报错信息与该doc均较相似,但与文档中给出的版本号不一样,客户数据库为10205。

看下metalink文档给出的信息吧:

Applies to:

Oracle Server – Enterprise Edition – Version: 11.1.0.6 to 11.1.0.7 – Release: 11.1 to 11.1
Information in this document applies to any platform.

Symptoms

The following errors are seen in the trace file written by an ORA-7445 [kslgetl]:

network error encountered getting listening address:
NS Primary Error: TNS-12533: TNS:illegal ADDRESS parameters
NS Secondary Error: TNS-12560: TNS:protocol adapter error
NT Generic Error: TNS-00503: Illegal ADDRESS parameters
OPIRIP: Uncaught error 108. Error stack:
ORA-00108: failed to set up dispatcher to accept connection asynchronously
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0×130, PC: [0x82f09dc, kslgetl()+80]

The trace file indicates that there is no session:

Current SQL information unavailable – no session.

The Call Stack Trace in the ORA-7445 trace file contains a function list similar to:

 kslgetl

Cause

The trace file first reports: Warning: keltnfy call to ldmInit failed with error 46

The ORA-7445 is not the starting point here. This exception is just a spin-off from ORA-180 and it is possible that different internal errors may be seen, such as ORA-600 [504], depending on what is happening when the ORA-180 is encountered.

The cause for the ORA-180 is related to the inital message at the beginning of the trace file: "keltnfy call to ldmInit failed with error 46" and this is followed by: "network error encountered getting listening address:"

The error code (here: 46) is the key for solving the issue.
This warning says that ldmInit() returned error 46 which is LDMERR_HOST_NOT_FOUND (host not found).

This error is returned if the OS call gethostbyname() fails with an error. So these appears to be a network specific issue.

Solution

1) Check permission on /etc/hosts

$ ls -l /etc/hosts -rw-r–r– 2 root root 194 Oct 17 2006 /etc/hosts

Check if /etc/hosts file is correctly configured

( all of this on one line ).

2) Check the hostname:

$ hostname
$ ping `hostname`

Make sure you are able to ping the hostname

3) Check if /etc/nodename is correctly configured
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 $ nslookup $ nslookup

The forward and reverse lookup should succeed and return consistent address/info.

4) Check nsswitch.conf

$ more nsswitch.confhosts: files dnsMake sure host lookup is also done through the /etc/hosts file and not just dns. It is recommended that FILES come first before DNS.

Also, check the resolv.conf. This makes sure that the DNS is working properly.

 

最后通过检查/etc/hosts文件,发现在hosts文件中,主机名写错了,改正以后,该问题解决。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26040457/viewspace-750047/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26040457/viewspace-750047/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值