1. OS 和DB 版本

DB Version: 9.2.0.6

OS Version:HP-UXiasd5_pb B.11.23 U ia64 0515426764 unlimited-user license

 

2.alert log

 

Thu Oct11 18:14:17 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_17366.trc:

ORA-07445: exception encountered: core dump [0000000000000000][SIGSEGV] [Invalid permissions for mapped object] [0x000000000] [] []

Thu Oct11 18:15:10 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_17665.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Thu Oct11 18:15:33 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_18405.trc:

ORA-07445:exception encountered: core dump [9fffffff7f79e8b0] [SIGILL] [Illegal opcode][0x9FFFFFFF7F79E8B0] [] []

Fri Oct12 10:08:25 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_6934.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Fri Oct12 10:08:53 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_7134.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Fri Oct12 10:10:42 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_8290.trc:

ORA-07445:exception encountered: core dump [9fffffff7f79e8b0] [SIGILL] [Illegal opcode][0x9FFFFFFF7F79E8B0] [] []

Fri Oct12 10:11:46 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_9434.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Fri Oct12 10:45:00 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_23859.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Fri Oct12 10:45:26 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_25087.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Fri Oct12 10:47:14 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_25149.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

Fri Oct12 11:04:11 2012

Errors infile /oracle/product/9.2.0/rdbms/log/ingwdb_ora_4122.trc:

ORA-07445:exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalidpermissions for mapped object] [0x000000000] [] []

 

 

3.Trace file

 

 

*** 2012-10-12 11:04:11.922

*** SESSION ID:(14.6203) 2012-10-1211:04:11.922

Exception signal: 11 (SIGSEGV), code: 2(Invalid permissions for mapped object), addr: 0x0, PC: [0x0, Cannot findsymbol in ?锜?

0000000000000000]

  r1:9fffffff7f79f668       r20:40000000008d5170       br5:                0

  r2:c0000000cb643000       r21:9fffffff7f5082a0       br6:                0

 r3:             851b       r22:                8       br7: e0000000015917e0

  r4:9fffffff7f508d68       r23:656e71756575655f        ip:                0

  r5:9fffffffffff1dd8       r24:                8     iipa:                0

  r6:9fffffffffff1dd4       r25:                8       cfm:                3

  r7:9fffffffffff1de4       r26:40000000008d5178        um:               3a

 r8:                0       r27: 9fffffff7f5082a8       rsc:               1f

  r9:9fffffff7f740600       r28:40000000008d5170       bsp:9fffffff7f801938

 r10:                0       r29: 9fffffff7f5082a0  bspstore: 9fffffff7f801938

 r11:60000000003fdc30       r30:                0      rnat:                0

 r12:9fffffffffff1150       r31:                0       ccv:                1

 r13:9fffffff7f7cd420      NaTs:                0      unat:                0

 r14:7265736f75726365       PRs:             cc5b      fpsr:   9804c8a74433f

 r15:656e71756575655f       br0:4000000002835ec0       pfs:c00000000000060f

 r16:                2       br1:                0        lc:                0

 r17:c0000000919d2800       br2:                0        ec:                0

 r18:60000000003ec990       br3:                0       isr: 9fffffff7f801938

 r19:               73       br4:                0       ifa:                0

Reason code: 0052

*** 2012-10-12 11:04:11.923

ksedmp: internal or fatal error

ORA-07445: exception encountered: core dump[0000000000000000] [SIGSEGV] [Invalid permissions for mapped object][0x000000000] [] []

Current SQL statement for this session:

INSERT INTOSTATS$RESOURCE_LIMIT ( SNAP_ID , DBID , INSTANCE_NUMBER , RESOURCE_NAME ,CURRENT_UTILIZATION , MAX_UTILIZATION , INITIAL_ALLOCATION , LIMIT_VALUE )SELECT :B3 , :B2 , :B1 , RESOURCE_NAME , CURRENT_UTILIZATION , MAX_UTILIZATION, INITIAL_ALLOCATION , LIMIT_VALUE FROM V$RESOURCE_LIMIT WHERE LIMIT_VALUE != 'UNLIMITED' AND MAX_UTILIZATION > 0

----- PL/SQL Call Stack -----

 object      line  object

 handle    number  name

c00000009284ced8      2235 package body PERFSTAT.STATSPACK

c00000009284ced8        91 package body PERFSTAT.STATSPACK

c000000093a2f120         1 anonymous block

 

 

4.定位问题与解决方案

在Oracle 9.2.0.6 下的bug 3628622 引起。 当对V$RESOURCE_LIMIT 进行select 和 insert时有2个相关的bug:

Bug 4171822 : SELECT * FROM V$RESOURCE_LIMIT FAILS WITH ORA-07445:

ORA-7445[Qerfxfetch] On Insert Into STATS$RESOURCE_LIMIT [ID 742723.1](bug 3628622)

 

根据trace 文件中的信息,我们这里的是insert时触发的ORA-7445。所以对应bug:3628622。

 

该bug不会对数据库产生影响,Oracle 对该bug 并没有提供one-off的patch,所以要解决该bug就必须将数据库升级到更高的版本。 建议升级到11.2.0.3.4.

 

5.导致该问题的本质原因

触发该bug的本质原因在MOS的另一篇文章里有说明:

ORA-7445 Errors on Itanium Platforms due toItanium Symbol Preemption [ID 302172.1]

Cause

Due to Intel's ELF ABI Architecture onItanium Platforms code constructs like:

(*function_pointer)(<list ofparameters>)

i.e. dereferencing a function pointervariable allows for symbol preemption.

On Itanium global variables are adressedindirectly through a global offset process table. The offsets are relative tothe global pointer address (gp).

At runtime due to symbol preemption thefunction pointer address may end up at a location where it cannot be directlyaddressed from the gp value.

This was seen to happen with Oraclefunction pointer variables which were stored in and later reread from the SGA.

As a result the process could not find theexecutable code address and terminated with SIGSEGV.