Oracle 12c因bug導致ORA-04031問題處理過程
各位親愛的使用者/讀者朋友們:
為了及時共享行業案例,通告共性問題,達成知識共享和提前預防,我們整理和編輯了《雲和恩墨技術通訊》(8月刊),透過對過去一段時間的知識回顧和故障歸納,以期提供有價值的資訊供大家參考。
同時,我們也希望能夠將熱點事件、新的產品特性及其他有價值的資訊聚集起來,為您提供具有前瞻性的支援資訊,保持對於當前最新的資料庫新聞和事件的瞭解,其中包括重要資料庫產品釋出、警報、更新、新版本、補丁等。
本期目錄:
新聞:2019年8月資料庫流行度排行
警示:12.1.2.0與11.2.0.4透過DB Link查詢觸發BUG 17890099
警示:Oracle 12c因bug導致ORA-04031
警示:ORA-00600 2252 錯誤正在SCN問題下不斷爆發
經驗:12c多租戶例項意外當機處理
經驗:記一次tuxedo crash的故障處理
問題:故障排除之enq:TX - index contention等待事件
公告:墨天輪DBASK技術專家邀請函
搶先下載:(複製連結瀏覽器中開啟,或者點選“閱讀原文”)
部分精選-Oracle 12c因bug導致ORA-04031(姜勁松)
ORA-04031這個錯誤,幾乎每一個專業的DBA都遇到過。這是一個相當嚴重的錯誤,Oracle程式在向SGA申請記憶體時,如果申請失敗,則會丟擲這個錯誤,大部分情況下是在向SGA中的shared pool申請記憶體時失敗。在Oracle 12.1.0.2及以後版本中,有可能是因為觸發了bug 26405036 Large Allocation Of "ges enqueues" and "ges resource dynamic" In The Shared Pool導致資料庫shared pool記憶體爆滿引發ORA-04031報錯,這個bug在19.1版本上已經修復,針對12.2的版本需打上相應的補丁進行修復。
問題描述
在7月17日上午11時10左右,某客戶收到告警簡訊,提示資料庫(12.2的三節點RAC環境)的2號節點當機,當即登陸該節點進行檢視,發現資料庫狀態正常,但日誌裡出現大量的ORA-04031報錯,提示無法分配shared_pool,手動執行shared pool重新整理指令碼進行重新整理,重新整理後shared pool使用率仍然為70%左右。此時有業務反饋資料庫節點3無法連線,客戶決定對節點3進行重啟,重啟後恢復正常,經過後續觀察,節點2 的ORA-04031報錯也再沒有出現。
問題分析
檢視當時節點二的告警日誌,發現日誌中丟擲ORA-04031報錯資訊
節點三10:49就開始報ORA-04031,直到11:51被手動停止例項
所以故障原因最早是節點三例項導致的,檢視4031 的dump trace檔案,在heapdump發現ges resource dynamic/ges enqueues異常高:
檢視這2個pool的變化趨勢,發現ges resource dynamic/ges enqueues一直在持續增長:
1. 故障前ges enqueues達到17GB,重啟後恢復為3.8GB,但後續還是會增長;
2. 故障前ges resource dynamic高達22GB(2個子池),重啟後4.8GB,後續0718 06:00新增1個1.2GB子池並持續增長。
問題解決
根據該故障現象,查詢MOS發現:Bug 26405036 Large Allocation Of "ges enqueues" and "ges resource dynamic" In The Shared Pool。
且該bug出現的資料庫版本和本庫匹配(本庫版本Linux 12.2.0.1,fix在19.1.0才包含),現象也匹配。
建議解決措施:
1. 針對12.2版本,透過應用補丁Patch 26405036: VERY HIGH "GES ENQUEUES" ON THE SHARED POOL得到解決。
2. 針對12.2版本,workaround可以在出現問題時臨時使用如下命令清理記憶體(後續還是會增長):
SQL> oradebug setmypid SQL> oradebug lkdebug -m reconfig lkdebug
3. 針對12.1版本,建議重啟例項。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556440/viewspace-2654771/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【RAC】處理因ons導致CPU使用率過高的問題
- ora-04031處理過程
- Oracle日常問題處理ORA-04031Oracle
- oracle taf unknown 問題處理過程Oracle
- 【問題處理】恢復因誤生成PFILE 導致RAC的SPFILE無效的問題
- Oracle全部索引丟失導致的效率問題處理Oracle索引
- 【問題處理】dbca建庫過程中報 ORA-04031錯誤的排查
- 【問題處理】因誤修改inittab檔案導致Oracle 10gR2 CRS無法啟動Oracle 10g
- 【故障處理】因GREP“花哨”功能導致ORA-12157錯誤的排查過程
- oracle goldengate 目標端表空間滿導致程式abended處理過程OracleGo
- 【問題處理】因ASM磁碟組空間不足導致資料庫例項無法啟動的故障處理ASM資料庫
- sqlldr標準輸出未處理導致批處理掛起問題SQL
- 一次bug的處理過程-OA重複檔案的問題薦
- crontab導致CPU異常的問題分析及處理
- Oracle監聽日誌過大導致的問題Oracle
- rman建立catalog過程及問題處理
- Library cache pin問題的處理過程
- oracle處理SQL的過程OracleSQL
- 使用資料庫處理併發可能導致的問題資料庫
- start_udev導致監聽自動停止問題處理dev
- 執行計劃問題導致處理速度時快時慢的問題
- 一次線上問題處理過程記錄
- 一次Row Cache Lock問題處理過程
- Oracle CPU使用率過高問題處理Oracle
- 關於Oracle full outer join 的bug問題分析及處理Oracle
- 前端開發分析-聊聊過程跨域問題處理前端跨域
- 如何處理六西格瑪過程中遇到的問題?
- Mysql安裝過程問題總結及處理方法MySql
- oracle bug 6825287導致DX鎖等待Oracle
- 由drop datafile導致的oracle bugOracle
- DB Link因 driving_site導致的效能問題
- ORACLE 查詢語句處理過程(Oracle
- oracle系統表空間過大問題處理Oracle
- oracle bdump 下.trc檔案過大問題處理Oracle
- Oracle日常問題-臨時表過多導致exp速度慢Oracle
- 因為一個小小的Integer問題導致阿里一面沒過,遺憾!阿里
- PHP5.2.4安裝中出現問題及處理過程PHP
- Oracle啟動問題處理Oracle