ORA-7445(qerixGetKey)錯誤

yangtingkun發表於2011-12-06

執行並行查詢時碰到的問題。

 

 

錯誤資訊如下:

Wed Sep 28 18:03:47 2011
Errors in file /home/oracle/admin/ARIC/bdump/aric_p001_8093.trc:
ORA-07445: exception encountered: core dump [SIGSEGV] [Address not mapped to object] [21] [] [] []
Wed Sep 28 18:03:47 2011
Errors in file /home/oracle/admin/ARIC/bdump/aric_p000_8091.trc:
ORA-07445: exception encountered: core dump [SIGSEGV] [Address not mapped to object] [21] [] [] []

對應的TRACE檔案資訊如下:

*** 2011-09-28 18:03:47.537
*** SERVICE NAME:(SYS$USERS) 2011-09-28 18:03:47.530
*** SESSION ID:(82.818) 2011-09-28 18:03:47.530
Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0x15
*** 2011-09-28 18:03:47.537
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [SIGSEGV] [Address not mapped to object] [21] [] [] []
Current SQL statement for this session:
SELECT /*+parallel (D_ITEMS_SCD,2)*/
  ( D_STR.ID_STR )||' / '||( D_STR.DS_STR_CN ),
.
.
.
  D_STR_ITEMS_CUR.LAST_RECPT_DATE
FROM
  D_STR,
  D_DIV_SCD,
  D_SEC_SCD,
  D_GRP_SCD,
  D_SGR_SCD,
  D_ITEMS_SCD,
  D_STR_ITEMS_CUR
WHERE
  ( D_DIV_SCD.SID_DIV_H=D_SEC_SCD.SID_DIV_H  )
.
.
.
  )
----- 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     0FC7C00B6 0FFFFFD7F 0062E5B50
                                                   000000000
call_user_handler()  ?        0000000000000001     0FC7B53A2 0FFFFFD7F 0062E5EF0
+589                                               000000000
sigacthandler()+163  ?        0000000000000001     0FC7B5588 0FFFFFD7F 0FDDFB2F0
                                                   0FFFFFD7F
qerixGetKey()+922    ?        0000000000000001     0FFFFFFFF 0FFFFFFFF 00000000B
                                                   000000000
qerbxStart()+1858    ?        0000000000000001     0033E49D7 000000000 0FC5A2930
                                                   0FFFFFD7F
qerbtStart()+800     ?        0000000000000001     0033DE2BD 000000000 005414760
                                                   000000000
qergiStart()+833     ?        0000000000000001     00347718E 000000000 0060B9478
                                                   000000000
qerjoFetch()+668     ?        0000000000000001     0033BE169 000000000 000007FFF
                                                   000000000
qerpfFetch()+484     ?        0000000000000001     00347F491 000000000 088439128
                                                   000000003
qertbFetchByRowID()  ?        0000000000000001     0033C4451 000000000 088439128
+660                                               000000003
.
.
.
============
Plan Table
============
---------------------------------------------------------------------------+----------------
| Id  | Operation                                | Name                     | Rows  | Cost  |
---------------------------------------------------------------------------+----------------
| 0   | SELECT STATEMENT                         |                          |       |   68K |
| 1   |  PX COORDINATOR                          |                          |       |       |
| 2   |   PX SEND QC (RANDOM)                    | :TQ10003                 |  2497 |   68K |
| 3   |    HASH JOIN                             |                          |  2497 |   68K |
| 4   |     BUFFER SORT                          |                          |       |       |
| 5   |      PX RECEIVE                          |                          |     1 |     4 |
| 6   |       PX SEND BROADCAST                  | :TQ10000                 |     1 |     4 |
| 7   |        TABLE ACCESS FULL                 | D_STR                    |     1 |     4 |
| 8   |     HASH JOIN                            |                          |  236K |   68K |
| 9   |      TABLE ACCESS BY INDEX ROWID         | D_ITEMS_SCD              |  1377 |   10K |
| 10  |       NESTED LOOPS                       |                          |   42K |   10K |
| 11  |        BUFFER SORT                       |                          |       |       |
| 12  |         PX RECEIVE                       |                          |       |       |
| 13  |          PX SEND BROADCAST               | :TQ10001                 |       |       |
| 14  |           HASH JOIN                      |                          |    32 |    20 |
| 15  |            HASH JOIN                     |                          |     4 |    10 |
| 16  |             MERGE JOIN                   |                          |     1 |     6 |
| 17  |              TABLE ACCESS BY INDEX ROWID | D_DIV_SCD                |     1 |     2 |
| 18  |               INDEX FULL SCAN            | PK_D_DIV_SCD             |     8 |     1 |
| 19  |              SORT JOIN                   |                          |    52 |     4 |
| 20  |               TABLE ACCESS FULL          | D_SEC_SCD                |    52 |     3 |
| 21  |             TABLE ACCESS FULL            | D_GRP_SCD                |   489 |     3 |
| 22  |            TABLE ACCESS FULL             | D_SGR_SCD                |  3752 |    10 |
| 23  |        PX BLOCK ITERATOR                 |                          |       |       |
| 24  |         BITMAP CONVERSION TO ROWIDS      |                          |       |       |
| 25  |          BITMAP INDEX SINGLE VALUE       | BIX_D_ITEMS_SCD_SID_SGR_H|       |       |
| 26  |      BUFFER SORT                         |                          |       |       |
| 27  |       PX RECEIVE                         |                          | 9548K |   58K |
| 28  |        PX SEND BROADCAST                 | :TQ10002                 | 9548K |   58K |
| 29  |         TABLE ACCESS FULL                | D_STR_ITEMS_CUR          | 9548K |   58K |
---------------------------------------------------------------------------+----------------

這裡去掉了一些不必要的內容。從SQL語句中的HINT以及執行計劃都可以看到,這是一個平行SQL,當然報錯程式p000p001也說明了這一點。

查詢MOS發現是Bug 5113934 - PQ slave dump in qerixGetKey() when using bitmap index access [ID 5113934.8],而當前的執行計劃中確實出現了BITMAP索引。

這個bug確認影響10.2.0.3,而這正是當前的版本。這個bug10.2.0.411.1.0.6中被fixed。除了打補丁外,禁止並行或星形查詢同樣可以避免這個錯誤,不過無論禁止並行還是星形查詢,都會犧牲一定的效能。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-712841/,如需轉載,請註明出處,否則將追究法律責任。

相關文章