生产一系统alertlog有如下报错:
Sun Apr 10 14:38:17 2011
Errors in file /oracle/oracle/product/10.2.0/admin/MON/udump/mon_ora_17633.trc:
ORA-07445: exception encountered: core dump [SIGFPE] [Integer divide by zero] [42788866] [] [] []
Trace部分信息:
Dump file /oracle/oracle/product/10.2.0/admin/MON/udump/mon_ora_17633.trc
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /oracle/oracle/product/10.2.0
System name: SunOS
Node name: monitor-a
Release: 5.10
Version: Generic_139556-08
Machine: i86pc
Instance name: MON
Redo thread mounted by this instance: 1
Oracle process number: 13
Unix process pid: 17633, image: oracle@monitor-a (TNS V1-V3)
*** 2011-04-10 14:38:17.051
*** SERVICE NAME:(SYS$USERS) 2011-04-10 14:38:17.032
*** SESSION ID:(300.43002) 2011-04-10 14:38:17.032
Exception signal: 8 (SIGFPE), code: 1 (Integer divide by zero), addr: 0x28ce802
*** 2011-04-10 14:38:17.051
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [SIGFPE] [Integer divide by zero] [42788866] [] [] []
Current SQL statement for this session:
select req_time into :b0 from t_FIX_TranSerial where ((((tran_bank=:b1 and tran_type=:b2) and term_no=:b3) and trace_no=:b4) and local_time='0')
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst()+23 ? 0000000000000001 0017B341C 000000000 0062E5A50
000000000
ksedmp()+636 ? 0000000000000001 0017B1EB1 000000000 000000008
000000000
ssexhd()+729 ? 0000000000000001 000E90E7E 000000000 0062E5B90
000000000
sigsetjmp()+25 ? 0000000000000001 0FDD77176 0FFFFFD7F 0062E5B40
000000000
call_user_handler() ? 0000000000000001 0FDD6BA72 0FFFFFD7F 0062E5EF0
+589 000000000
sigacthandler()+217 ? 0000000000000001 0FDD6BC8E 0FFFFFD7F 00000F4DF
000000000
kpopfr()+325 ? 0000000000000001 0FFFFFFFF 0FFFFFFFF 000000008
000000000
kposdi()+501 ? 0000000000000001 0028D104A 000000000 0FFDFC6CC
0FFFFFD7F
kpopsdi()+143 ? 0000000000000001 0028D0B24 000000000 000000000
000000000
opiefn0()+854 ? 0000000000000001 00295CD0B 000000000 000000011
000000000
kpoal8()+7398 ? 0000000000000001 0028D056B 000000000 000000007
000000000
opiodr()+1087 ? 0000000000000001 000E97C5C 000000000 000000010
000000030
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 0FFDFF988
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
此次错误信息没有给出具体出错的函数,通过以下调用堆栈查询到是bug 5753629 QUERY FAILS BY ORA-7445 [KPOPFR] 。
kpopfr()+325 ? 0000000000000001 0FFFFFFFF 0FFFFFFFF 000000008
000000000
kposdi()+501 ? 0000000000000001 0028D104A 000000000 0FFDFC6CC
0FFFFFD7F
kpopsdi()+143 ? 0000000000000001 0028D0B24 000000000 000000000
000000000
opiefn0()+854 ? 0000000000000001 00295CD0B 000000000 000000011
000000000
kpoal8()+7398 ? 0000000000000001 0028D056B 000000000 000000007
000000000
opiodr()+1087 ? 0000000000000001 000E97C5C 000000000 000000010
000000030
ttcpip()+1165 ? 0000000000000001 003D9F6CA 000000000 005F663F8
000000000
该系统数据库版本为10.2.0.3,但由于在metalink上找不到相关one-off patch for solaris x86-64,且10gR2的标准服务支持已经结束。
同时该bug在10.2.0.4中修复,所以如果要解决该bug,只有升级数据库版本。
Oracle数据库服务支持使用期时限见下表:
版本 |
标准服务 |
扩展服务 |
10.1 |
至2009.1 |
至2012.1 |
10.2 |
至2010.7 |
至2013.7 |
11.1 |
至2012.8 |
至2015.8 |
11.2 |
至2015.1 |
至2018.1 |