客户数据库中出现ORA-7445错误,导致错误的SQL在访问V$ACCESS视图。
错误信息如下:
Sun Sep 19 17:15:17 2010
Errors in file /home/oracle/admin/ARIC/udump/aric_ora_26489.trc:
ORA-07445: exception encountered: core dump [SIGSEGV] [Address not mapped to
object] [0] [] [] []
对应的详细TRACE:
/home/oracle/admin/ARIC/udump/aric_ora_26489.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /home/oracle/product/10.2.0
System name: SunOS
Node name: aric
Release: 5.10
Version: Generic_127128-11
Machine: i86pc
Instance name: ARIC
Redo thread mounted by this instance: 1
Oracle process number: 51
Unix process pid: 26489, image: oracleARIC@aric
*** 2010-09-19 17:15:17.370
*** ACTION NAME:() 2010-09-19 17:15:17.339
*** MODULE NAME:(TOAD 8.6.1.0) 2010-09-19 17:15:17.339
*** SERVICE NAME:(ARIC) 2010-09-19 17:15:17.339
*** SESSION ID:(202.3926) 2010-09-19 17:15:17.339
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr:
0x0
*** 2010-09-19 17:15:17.371
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [SIGSEGV] [Address not mapped to
object] [0] [] [] []
Current SQL statement for this session:
SELECT sid, owner, type, object FROM
v$access WHERE sid = '651'
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst()+23 ? 0000000000000001 0017B341C 000000000 0062E5A60
000000000
ksedmp()+636 ? 0000000000000001 0017B1EB1 000000000 00000000B
000000000
ssexhd()+729 ? 0000000000000001 000E90E7E 000000000 0062E5B90
000000000
sigsetjmp()+25 ? 0000000000000001 0FDDC00B6 0FFFFFD7F 0062E5B50
000000000
call_user_handler() ? 0000000000000001 0FDDB53A2 0FFFFFD7F 0062E5EF0
+589 000000000
sigacthandler()+163 ? 0000000000000001 0FDDB5588 0FFFFFD7F 0FF3FB2F0
0FFFFFD7F
_memcpy()+245 ? 0000000000000001 0FFFFFFFF 0FFFFFFFF 00000000B
000000000
kglLockIterator()+5 ? 0000000000000001 003E36CE1 000000000 0C582FDCC
96
000000000
kqlftl()+194 ? 0000000000000001 001F2A4B7 000000000 000000000
000000000
qerfxFetch()+4999 ? 0000000000000001 00340E894 000000000 000000000
000000000
qerjotFetch()+214 ? 0000000000000001 0033BEBA3 000000000 0060B9478
000000000
qerjotFetch()+280 ? 0000000000000001 0033BEBE5 000000000 0000001F4
000000000
qerghFetch()+293 ? 0000000000000001 0034C19B2 000000000 0000001F4
000000000
qervwFetch()+158 ? 0000000000000001 0033BCFBB 000000000 0000001F4
000000000
opifch2()+2608 ? 0000000000000001 002932E8D 000000000 000000000
000000000
kpoal8()+3638 ? 0000000000000001 0028CF6BB 000000000 000000000
000000000
opiodr()+1087 ? 0000000000000001 000E97C5C 000000000 000000000
000000000
ttcpip()+1165 ? 0000000000000001 003D9F6CA 000000000 005F663F8
000000000
opitsk()+1278 ? 0000000000000001 000E939C3 000000000 000E97840
000000000
opiino()+931 ? 0000000000000001 000E96F08 000000000 005F5D840
000000000
opiodr()+1087 ? 0000000000000001 000E97C5C 000000000 000000000
000000000
opidrv()+748 ? 0000000000000001 000E924C1 000000000 0FFDFF8C8
0FFFFFD7F
sou2o()+86 ? 0000000000000001 000E8F8FB 000000000 000000000
000000000
opimai_real()+127 ? 0000000000000001 000E552D4 000000000 000000000
000000000
main()+95 ? 0000000000000001 000E551A4 000000000 000000000
000000000
0000000000E54FE7 ? 0000000000000001 000E54FEC 000000000 000000000
000000000
--------------------- Binary Stack Dump ---------------------
导致错误产生的语句很简单,就是一个简单的单表查询,只不过访问的是Oracle的动态性能视图表。而这种情况下出现的错误,基本上可以确定是bug。
根据错误号sigsetjmp检查MOS信息,发现包括堆栈信息在内的各方面信息都与Bug 7149072: ORA-7445 OCCURS WHEN SELECTING FROM V$ACCESS描述的一致,只不过这个bug描述并不是一个基本BUG,而这个问题对应的基本bug是:Bug 4969005 Dump [kglLockIterator] querying V$ views,而这个bug描述中对应的kglLockIterator和memcpy错误函数在当前错误中同样存在,而且当前数据库版本的也是受影响的10.2.0.3,基本上可以确定bug了。
这个BUG在11.2.0.4和11.1.0.6中被fixed。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-710964/ ,如需转载,请注明出处,否则将追究法律责任。