第一次遇到Oracle Bug 留念
原文發表在 http://www.itpub.net/showthread.php?s=&threadid=666743
上週五在RAC環境下做資料遷移前的imp測試
6程式並行做imp
imp log中報錯:
IMP-00003: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","TAB$","KGLS
heap","KGLS ME
M BLOCK")
IMP-00058: ORACLE error 604 encountered
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","SEG$","KGLS
heap","KGLS ME
M BLOCK")
資料庫版本:Oracle 9.2.0.7
作業系統: AIX
主機: 6C12G
資料庫引數:
Sga_max 7G
db_cache_size 4G
shared_pool_size 2G
sort_area_size 8388608
Large_pool 256M
log_buffer 20480000
Processes 600
open_cursors 3000
dml_locks 10000
pga_aggregate_target 3G
當時第一反應: imp過程難道發生大量硬解析sql 使得share pool空間沾滿無法分配連續記憶體解析sql
但從imp程式中可以得到答案 我只是按分割槽並行倒入CFG_ATTR_MODIFY_HISTORY一張表
另外shared_pool_reserve池才被請求4次 空餘102083200byts
所以說明shared_pool還有連續空間可以用來hard parse sql.
SQL> show parameter share
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_reserved_size big integer 107374182
shared_pool_size big integer 2147483648
SQL> select free_space,requests,request_misses from v$shared_pool_reserved;
FREE_SPACE REQUESTS REQUEST_MISSES
---------- ---------- --------------
102083200 4 0
第二反應 imp倒入內部是大量相同的 INSERT /*+NESTED_TABLE_SET_REFS+*/ INTO TABLE ... ...
操作,所以需要解析此sql的連續記憶體空間大小應該差別不大,難道share pool中相同size的Bucket
被擠暴,如果真是這樣的解釋,那就只能說明 INSERT /*+NESTED_TABLE_SET_REFS+*/ INTO TABLE
操作沒有bind var 這是說不通的
於是第三反應是Oracle Bug
上Metalink搜尋 "ORA-04031"
其中一個answer是:
bug3046725
ORA-4031 due to shared_pool fragmented with high ges resources & enqueues
which has not fixed in 9.2, the problem depend on the work load and the application
work style.
Please disable cluster_database when you do the import and enable it again after the
import.
如釋重負due to shared_pool fragmented with high ges resources & enqueues 在9.2版本中還
沒有fixed.看來是由於我並行imp導致work load過高所致.
於是停掉一個節點 imp恢復正常.
第一次遇到Oracle Bug,來源於我對RAC環境的不熟悉,但也正因如此,也使我準備努力去理解RAC.
整個過程還要感謝Biti大師的電話指導.受益良多
附:
alert_xxx.log
Sat Nov 11 18:00:03 2006
Errors in file /home/db/oracle/admin/ecidb/bdump/ecidb1_smon_35178.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","SEG$","KGLS
heap","KGLS ME
M BLOCK")
Sat Nov 11 18:00:13 2006
Errors in file /home/db/oracle/admin/ecidb/bdump/ecidb1_smon_35178.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","SEG$","KGLS
heap","KGLS ME
M BLOCK")
Sat Nov 11 18:00:23 2006
Errors in file /home/db/oracle/admin/ecidb/bdump/ecidb1_smon_35178.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","SEG$","KGLS
heap","KGLS ME
M BLOCK")
Sat Nov 11 18:00:33 2006
Errors in file /home/db/oracle/admin/ecidb/bdump/ecidb1_smon_35178.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","SEG$","KGLS
heap","KGLS ME
M BLOCK")
Sat Nov 11 18:00:43 2006
Errors in file /home/db/oracle/admin/ecidb/bdump/ecidb1_smon_35178.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2216 bytes of shared memory ("shared pool","SEG$","KGLS
heap","KGLS ME
M BLOCK")
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/76065/viewspace-877186/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ituring bug?未登入狀態下第一次遇到網頁報錯,“拍照留念”網頁
- 分析表時遇到BUG
- 「前端 BUG 錄」遇到BUG應該如何排查前端
- 遇到ASM的兩個BUGASM
- 專案中遇到的bug
- oracle bugOracle
- 今天遇到一個VERITAS NBU的BUG
- Oracle Debug ---- oradebugOracle
- Solaris10上啟動Oracle11g例項遇到的一個bugOracle
- .net打獨立執行環境遇到無法trim遇到的bug
- 在專案中遇到的一些bug
- 上手 WebRTC DTLS 遇到很多 BUG?淺談 DTLS FragmentWebTLSFragment
- 常見軟體所遇到的Bug(一)-UIIssueUI
- 進擊的Bug 那些年我遇到的大坑
- android Studio遇到transformClassesWithDexForDebug錯誤AndroidORM
- hive-3.0.0 版本中遇到的bug 彙總Hive
- Oracle 12.1.0.2 expdp匯出分割槽表資料遇到BUG慢的原因和解決方法Oracle
- oracle之BUG 7497640Oracle
- Oracle groupby的bugOracle
- 第一次做oracle培訓Oracle
- workman分散式部署遇到的bug以及修復方式分散式
- 進擊的Bug 那些年我遇到的大坑2
- 遇到 ORACLE 錯誤 6550Oracle
- 【OCM】收到OCM證書、成員卡片及精美外套,留念
- 【沙龍】2014新疆(天山論劍)首屆Oracle技術分享交流沙龍-現場留念Oracle
- oracle10.1.0.4.0bugOracle
- oracle的一個bugOracle
- ORACLE EVENT && ORADEBUGOracle
- Oracle oradebug命令Oracle
- Oracle srvctl的小bugOracle
- oracle的兩個bugOracle
- 進擊的Bug---那些年我遇到的大坑3
- 程式設計師遇到Bug時的30個反應程式設計師
- 程式設計師遇到bug後的七種反應程式設計師
- git安裝及第一次上傳程式碼遇到的問題Git
- 第一次感受到改原始碼解決 BUG 的樂趣原始碼
- 分享2個近期遇到的MySQL資料庫的BUG案例MySql資料庫
- 手工生成HTML格式AWR遇到Bug 13527323一例HTML