ORA-07445: 出現異常錯誤: 核心轉儲 [kcbs_simulate()+5112]
今天是7月28號,週一。早上剛坐下不久,就收到同事的郵件,說一個伺服器的生產資料庫在26號當機了!
這是alert日誌資訊:
Sat Jul 26 03:39:48 2014
Thread 1 advanced to log sequence 46071
Current log# 3 seq# 46071 mem# 0: /u02/oracle/oradata/XXEDW/redo31.log
Current log# 3 seq# 46071 mem# 1: /u03/oracle/oradata/XXEDW/redo32.log
Sat Jul 26 03:54:48 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x8] [PC:0x755AEDC, kcbs_simulate()+5112]
Errors in file /home/oracle/diag/rdbms/xxedw/XXEDW/trace/XXEDW_ora_17158.trc (incident=464348):
ORA-07445: 出現異常錯誤: 核心轉儲 [kcbs_simulate()+5112] [SIGSEGV] [ADDR:0x8] [PC:0x755AEDC] [Address not mapped to object] []
Incident details in: /home/oracle/diag/rdbms/xxedw/XXEDW/incident/incdir_464348/XXEDW_ora_17158_i464348.trc
Sat Jul 26 03:54:51 2014
Trace dumping is performing id=[cdmp_20140726035451]
Sat Jul 26 03:54:53 2014
Sweep Incident[464348]: completed
Sat Jul 26 03:54:54 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x10] [PC:0x39A707C, kcbsslc()+368]
Errors in file /home/oracle/diag/rdbms/xxedw/XXEDW/trace/XXEDW_pmon_9091.trc (incident=464180):
ORA-07445: exception encountered: core dump [kcbsslc()+368] [SIGSEGV] [ADDR:0x10] [PC:0x39A707C] [Address not mapped to object] []
Incident details in: /home/oracle/diag/rdbms/xxedw/XXEDW/incident/incdir_464180/XXEDW_pmon_9091_i464180.trc
Trace dumping is performing id=[cdmp_20140726035455]
Sat Jul 26 03:55:07 2014
DBW5 (ospid: 9119): terminating the instance due to error 472
Instance terminated by DBW5, pid = 9119
Sat Jul 26 21:55:38 2014
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
檢視了trace檔案後dump檔案,裡面顯示了導致觸發的SQL語句,跟開發溝通,瞭解了這條語句。開發說這條語句每天都會執行,而且已經執行了很長時間。
去百度和Google上面檢視發現有類似的案例,讓朋友去metalink上檢視,上面也有相應的解釋。可以搜到id號為1069487.1的一篇文章,文中說明,在10.2.0.4版本至11.1.0.6版本,存在一個bug,如果資料庫的OPTIMIZER_MODE引數值為ALL_ROWS的時候,從檢視中查詢資料時會觸發此bug,從而導致出現ORA-07445的報錯。
我的Oracle版本是11.1.0.6。
檢視隱含引數的方法:
SELECT ksppinm, ksppstvl, ksppdesc
FROM x$ksppi x, x$ksppcv y
WHERE x.indx = y.indx AND ksppinm = '引數名';
這是alert日誌資訊:
Sat Jul 26 03:39:48 2014
Thread 1 advanced to log sequence 46071
Current log# 3 seq# 46071 mem# 0: /u02/oracle/oradata/XXEDW/redo31.log
Current log# 3 seq# 46071 mem# 1: /u03/oracle/oradata/XXEDW/redo32.log
Sat Jul 26 03:54:48 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x8] [PC:0x755AEDC, kcbs_simulate()+5112]
Errors in file /home/oracle/diag/rdbms/xxedw/XXEDW/trace/XXEDW_ora_17158.trc (incident=464348):
ORA-07445: 出現異常錯誤: 核心轉儲 [kcbs_simulate()+5112] [SIGSEGV] [ADDR:0x8] [PC:0x755AEDC] [Address not mapped to object] []
Incident details in: /home/oracle/diag/rdbms/xxedw/XXEDW/incident/incdir_464348/XXEDW_ora_17158_i464348.trc
Sat Jul 26 03:54:51 2014
Trace dumping is performing id=[cdmp_20140726035451]
Sat Jul 26 03:54:53 2014
Sweep Incident[464348]: completed
Sat Jul 26 03:54:54 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x10] [PC:0x39A707C, kcbsslc()+368]
Errors in file /home/oracle/diag/rdbms/xxedw/XXEDW/trace/XXEDW_pmon_9091.trc (incident=464180):
ORA-07445: exception encountered: core dump [kcbsslc()+368] [SIGSEGV] [ADDR:0x10] [PC:0x39A707C] [Address not mapped to object] []
Incident details in: /home/oracle/diag/rdbms/xxedw/XXEDW/incident/incdir_464180/XXEDW_pmon_9091_i464180.trc
Trace dumping is performing id=[cdmp_20140726035455]
Sat Jul 26 03:55:07 2014
DBW5 (ospid: 9119): terminating the instance due to error 472
Instance terminated by DBW5, pid = 9119
Sat Jul 26 21:55:38 2014
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
檢視了trace檔案後dump檔案,裡面顯示了導致觸發的SQL語句,跟開發溝通,瞭解了這條語句。開發說這條語句每天都會執行,而且已經執行了很長時間。
去百度和Google上面檢視發現有類似的案例,讓朋友去metalink上檢視,上面也有相應的解釋。可以搜到id號為1069487.1的一篇文章,文中說明,在10.2.0.4版本至11.1.0.6版本,存在一個bug,如果資料庫的OPTIMIZER_MODE引數值為ALL_ROWS的時候,從檢視中查詢資料時會觸發此bug,從而導致出現ORA-07445的報錯。
我的Oracle版本是11.1.0.6。
檢視隱含引數的方法:
SELECT ksppinm, ksppstvl, ksppdesc
FROM x$ksppi x, x$ksppcv y
WHERE x.indx = y.indx AND ksppinm = '引數名';
解決方案
根據oracle metalink上提供的solution,在資料庫級別執行以下sql,以設定隱含引數,即可避免出現此問題。
alter system set "_optimizer_connect_by_cost_based" = false scope=both ;
或者在session級別執行下列sql:
alter session set "_optimizer_connect_by_cost_based" = false scope=both ;
或者直接在語句級別加hint:
當然,考慮到程式的使用情況,在資料庫級別執行隱含引數的設定是最為合適的。
此時執行了,操作,後期還會繼續關注!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30936525/viewspace-2016732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-07445 : 出現異常錯誤: 核心轉儲
- ORA-07445 : 出現異常錯誤: 核心轉儲(一)
- ORA-07445: 出現異常錯誤: 核心轉儲 [kkqstcrf()+1355]CRF
- ORA-07445: 出現異常錯誤: 核心轉儲 [plcurClose()+40] [SIGSEGV]Gse
- ORA-07445: 出現異常錯誤: 核心轉儲 [ldxsnf()+625] [SIGSEGVGse
- ORA-07445:出現異常錯誤:核心轉儲[kkqfppDrv1()+101]Address not mapped to objectAPPObject
- ORA-07445異常報錯opixguid()+13GUI
- Ubuntu20.04出現段錯誤核心已轉儲問題解決方案Ubuntu
- ORACLE 異常錯誤 錯誤號大全Oracle
- PHP錯誤和異常PHP
- PHP 核心知識點(一)異常和錯誤處理PHP
- 10.2.0.1資料庫exp出現Ora-07445錯誤資料庫
- 異常錯誤資訊處理
- python錯誤與異常Python
- Flutter之異常和錯誤Flutter
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- php錯誤及異常捕捉PHP
- 經常出現 HTTP Status 500 -錯誤HTTP
- 錯誤和異常 (一):錯誤基礎知識
- Struts+Hibernate+Spring出現異常錯誤,高手指點,謝謝!Spring
- Swift 中的錯誤與異常Swift
- ORA-07445錯誤分析
- web前端之異常/錯誤監控Web前端
- php錯誤與異常處理方法PHP
- goang 錯誤&異常處理機制Go
- C++錯誤和異常處理C++
- Laravel Exceptions——異常與錯誤處理LaravelException
- PHP基礎之錯誤與異常PHP
- web前端小白經常出現“四”個錯誤Web前端
- postfix時常提示出現關於set-uid的錯誤(轉)UI
- 利用異常表處理Linux核心態缺頁異常(轉)Linux
- 利用script的異常處理避免網頁出錯 (轉)網頁
- 淺析php中的異常與錯誤PHP
- Golang 學習筆記八 錯誤異常Golang筆記
- [python官方文件]8錯誤和異常Python
- 總結:整理 oracle異常錯誤處理 .Oracle
- 【PHP Whoops】錯誤&異常 診斷元件PHPOOP元件