ORA-07445 [kslgetl()+120] [SIGSEGV] / ORA-00108 问题
错误信息
Tue Nov 20 11:44:15 2012
found dead dispatcher 'D000', pid = (55, 7)
Tue Nov 20 11:44:15 2012
dispatcher 'D000' encountered error getting listening address
Tue Nov 20 11:44:15 2012
Errors in file /u01/admin/standby/bdump/standby_ora_4768.trc:
ORA-07445: exception encountered: core dump [kslgetl()+120] [SIGSEGV] [Address not mapped to object] [0x000000208] [] []
ORA-00108: failed to set up dispatcher to accept connection asynchronously
发现大量的以上错误在 alert 日志中。
Trace文件内容
[root@standby ~]# less /u01/admin/standby/bdump/standby_ora_4768.trc
/u01/admin/standby/bdump/standby_ora_4768.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/oracle/product/10.2.0/db_1
System name: Linux
Node name: standby
Release: 2.6.18-194.el5
Version: #1 SMP Tue Mar 16 21:52:39 EDT 2010
Machine: x86_64
Instance name: standby
Redo thread mounted by this instance: 1
Oracle process number: 55
Unix process pid: 4768, image: oracle@standby (D000)
Warning: keltnfy call to ldmInit failed with error 46
*** 2012-11-20 11:44:15.423
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: 0x208, PC: [0x7a06b8, kslgetl()+120]
*** 2012-11-20 11:44:15.837
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [kslgetl()+120] [SIGSEGV] [Address not mapped to object] [0x000000208] [] []
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 ?
2AB392831D50 ? 2AB392831DB0 ?
2AB392831CF0 ? 000000000 ?
ksedmp()+610 call ksedst() 000000000 ? 000000001 ?
2AB392831D50 ? 2AB392831DB0 ?
2AB392831CF0 ? 000000000 ?
ssexhd()+629 call ksedmp() 000000003 ? 000000001 ?
2AB392831D50 ? 2AB392831DB0 ?
2AB392831CF0 ? 000000000 ?
__restore_rt()+0 call ssexhd() 00000000B ? 2AB392832D70 ?
2AB392832C40 ? 2AB392831DB0 ?
2AB392831CF0 ? 000000000 ?
kslgetl()+120 signal __restore_rt() 0600E7AA8 ? 0000000E8 ?
07C5B4740 ? 0000009A9 ?
000003980 ? 07C5B4758 ?
ksfglt()+108 call kslgetl() 0600E7AA8 ? 000000001 ?
07C5B4740 ? 0000009A9 ?
000003980 ? 07C5B4758 ?
kghfre()+2238 call ksfglt() 0600E7AA8 ? 0600E7AA8 ?
000000000 ? 07C5B4740 ?
0000009A9 ? 07C5B4758 ?
kmnsbf()+96 call kghfre() 0068966E0 ? 0600367F0 ?
7FFF7C7C3920 ? 000012000 ?
005609118 ? 07C5B4758 ?
nsbfr()+311 call kmnsbf() 0068966E0 ? 0600367F0 ?
7FFF7C7C3920 ? 000012000 ?
005609118 ? 07C5B4758 ?
nsiofrrg()+478 call nsbfr() 0068966E0 ? 01AC06220 ?
7FFF7C7C3920 ? 000012000 ?
005609118 ? 07C5B4758 ?
nsiocancel()+198 call nsiofrrg() 01AC05440 ? 01AC058F0 ?
000000000 ? 000012000 ?
005609118 ? 07C5B4758 ?
nsopen_shutitdown() call nsiocancel() 01AC05440 ? 01AC058F0 ?
+544 000000000 ? 000012000 ?
005609118 ? 07C5B4758 ?
nsclose()+412 call nsopen_shutitdown() 01ABE1D90 ? 7FFF7C7C3B80 ?
01AC05440 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
nsgblclose()+272 call nsclose() 7FFF7C7C3B80 ? 000000000 ?
0000000C0 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
nsgblTRMHelper()+61 call nsgblclose() 0000000C0 ? 000000000 ?
0000000C0 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
nsgblRealTerm()+174 call nsgblTRMHelper() 01AC05440 ? 000000000 ?
0000000C0 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
nlstdstp()+300 call nsgblRealTerm() 0068BBA80 ? 000000000 ?
0000000C0 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
npinlt()+53 call nlstdstp() 0068BBA80 ? 000000000 ?
0000000C0 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
ksuabt()+620 call npinlt() 0068BBA80 ? 000000000 ?
0000000C0 ? 01AC058F0 ?
7FFF00000000 ? 0000000C0 ?
opidrv()+1820 call ksuabt() 0068BBA80 ? 006896F74 ?
7FFF7C7C3FB8 ? 000000001 ?
6896F7400000000 ? 000000000 ?
sou2o()+114 call opidrv() 000000032 ? 000000004 ?
7FFF7C7C4298 ? 000000001 ?
6896F7400000000 ? 000000000 ?
opimai_real()+317 call sou2o() 7FFF7C7C4270 ? 000000032 ?
000000004 ? 7FFF7C7C4298 ?
6896F7400000000 ? 000000000 ?
main()+116 call opimai_real() 000000003 ? 7FFF7C7C4300 ?
000000004 ? 7FFF7C7C4298 ?
6896F7400000000 ? 000000000 ?
__libc_start_main() call main() 000000003 ? 7FFF7C7C4300 ?
+244 000000004 ? 7FFF7C7C4298 ?
6896F7400000000 ? 000000000 ?
_start()+41 call __libc_start_main() 000723088 ? 000000001 ?
7FFF7C7C4458 ? 000000000 ?
6896F7400000000 ? 000000003 ?
--------------------- Binary Stack Dump ---------------------
。。。。。。。。。。。。。。
MOS文档:ID 1298804.1
Applies to:
Oracle Server - Enterprise Edition - Version: 11.1.0.6 to 11.1.0.7 - Release: 11.1 to 11.1
Informationinthis document applies to any platform.
Symptoms
The following errors are seeninthe tracefilewritten 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 tosetup dispatcher to accept connection asynchronously
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x130, PC: [0x82f09dc, kslgetl()+80]
The tracefileindicates that there is no session:
Current SQL information unavailable - no session.
The Call Stack Traceinthe ORA-7445 tracefilecontains afunctionlist similar to:
kslgetl <- PGOSF57_ksfglt
<- kghfre <- kmnsbf <- nsbfr <- nsiofrrg <- nsiocancel
<- nsopen_shutitdown <- nsclose <- nsgblclose <- nsgblTRMHelper <- nsgblRealTerm
<- nlstdstp <- npinlt <- ksuabt <- opidrv <- sou2o
<- opimai_real <- main <- libc_start_main
Cause
The tracefilefirst 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 causeforthe ORA-180 is related to the inital message at the beginning of the tracefile:"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 keyforsolving the issue.
This warning says that ldmInit() returned error 46whichis LDMERR_HOST_NOT_FOUND (host not found).
This error is returnedifthe 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
Checkif/etc/hostsfileis correctly configured
<ip address> <fully qualifiedhostname> <simple or shorthostname> <alias,ifapplicable> ( all of this on one line ).
2) Check thehostname:
$hostname
$ping`hostname`
Make sure you are able topingthehostname
3) Checkif/etc/nodenameis correctly configured
If you have DNS setup,pingis not a tool to diagnose DNS problem. A better tool to use isnslookup, dnsquery, ordig.
$nslookup<shortname> $nslookup<long name> $nslookup<ip address>
The forward and reverse lookup should succeed andreturnconsistent address/info.
4) Check nsswitch.conf
$morensswitch.confhosts: files dnsMake sure host lookup is alsodonethrough the/etc/hostsfileand 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.
解决办法
修改 hostname 未修改 /etc/hosts文件造成,修改 /etc/hosts文件解决该问题。
--转自