記憶體分配問題處理
一. 故障 現 象 簡述
1. 應用 簡訊報 **** 資料庫 例項 無 法 連 接,重 啟 ***** 資料庫 例項後 恢復正常。
二. 故障原 因分析
1. 資料 庫 告警 日誌 2023.11.8 記錄 如下異常 :
Tue Nov 8 00:00:19 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:00:55 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:01:29 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:02:00 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:02:33 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:03:05 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:03:36 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:04:10 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:04:41 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:07:14 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:07:44 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:08:15 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:08:47 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:09:17 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:09:48 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:10:19 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:10:50 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:11:22 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:11:52 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:12:23 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:12:55 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:13:25 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:13:57 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:14:27 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:14:58 2023 WARNING: ran out of shared pool for GES enqueue object. Tue Nov 8 00:15:03 2023 Trace dumping is performing id=[cdmp_20231108001503] Tue Nov 8 00:15:06 2023 |
2. 以 上資訊表明2023 .11.8 00:00 SHARED POOL 已 耗盡 , 沒有 空間 處理 GES 。
Tue Nov 8 00:15:07 2023 Error occured while spawning process P003; error = 4031 Tue Nov 8 00:15:07 2023 ORA-04031: unable to allocate 3832 bytes of shared memory ("shared pool","unknown object","sga heap(2,0)","osp allocation") |
3. 告警 日誌記錄 4031 錯誤 ,這個 是因為 SHARE POOL 沒有 足夠 空間 處理 新增 SQL 語句 。
Tue Nov 8 00:15:08 2023 Errors in file /oracle/ ***** .trc: ORA-00604: error occurred at recursive SQL level 1 ORA-04031: unable to allocate 4064 bytes of shared memory ("shared pool","select 1 from aq$_schedules","sga heap(1,0)","kglsim heap") Tue Nov 8 00:15:08 2023 Error occured while spawning process q003; error = 4031 Tue Nov 8 00:15:09 2023 Errors in file /oracle/ ***** .trc: ORA-00604: error occurred at recursive SQL level 1 ORA-04031: unable to allocate 4064 bytes of shared memory ("shared pool","select count(*) from sys.aq_...","sga heap(2,0)","kglsim heap") |
4. 告警 日誌 再 次記錄 4031 錯誤 , 提示 SHARE POOL 已 沒有足夠空間處理 新增 SQL 語句 。
5. 綜合 分析 以上 報錯資訊,可知 因 為 SHARE POOL 內 存不足導致異常 ,因 為 SHARE POOL 是 SGA 組 成部分, 也 就意味著 SGA 空間不 足或是分 配 不合理, 經 過資料 庫 SGA 檢查 , SGA 總 大 為 2 G ,確認 原因是 SGA 空間 不足導致此故障 發生 ,建議增加 SGA 記憶體 空間。
三. 故障處理方案
1. 服務 器總內 存 量為 128G , 共執行 14 套 資料庫 其使用 SGA 總 和 為 68G ,大 頁 內 存 總大小為 74G ,大 頁記憶體剩餘可用為 6G ,系統總 體 記憶體使用率少 於 85% ,系統可 用 記憶體數 為 20-30G 之間 , GGVV 資料 庫當前SGA 大 小為 2G , 綜合以上 因素建 議 統一 增 大 GGVV 資料 庫 兩 節點SG A 為 4 G ,資料 庫當前 SHARED_POOL_SIZE 引數 為 1G ,建議 將此引數值增大到1.5G ,此 更改不會影 響資料 庫 服務 器 穩定 執行。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70021989/viewspace-3006385/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 小計:引用型別記憶體分配問題型別記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- 動態記憶體分配記憶體
- Java 18 如何改進處理大型物件回收的記憶體碎片問題? -Java物件記憶體
- JavaScript 工作原理之三-記憶體管理及如何處理 4 類常見的記憶體洩漏問題(譯)JavaScript記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- java-方法記憶體分配Java記憶體
- go記憶體分配器Go記憶體
- java基礎-記憶體分配Java記憶體
- hadoop 記憶體分配規則Hadoop記憶體
- C語言-記憶體分配C語言記憶體
- 記憶體分配策略學習記憶體
- 深度理解glibc記憶體分配記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- Linux記憶體不足的處理方法Linux記憶體
- SQLServer記憶體問題分析SQLServer記憶體
- 探究 iOS 記憶體問題iOS記憶體
- 【Java】 記憶體分配全面淺析Java記憶體
- JVM GC 與 記憶體分配策略JVMGC記憶體
- C++動態記憶體分配C++記憶體
- mimalloc記憶體分配程式碼分析記憶體
- C語言的記憶體分配C語言記憶體
- C中的記憶體分配模型記憶體模型
- [20210126]探究oracle記憶體分配.txtOracle記憶體
- Linux核心筆記005 - 越界訪問記憶體,Linux核心處理過程Linux筆記記憶體
- 教你如何解決DPDK記憶體大頁在NUMA架構重分配問題記憶體架構
- Python如何管理記憶體?記憶體分配機制是什麼?Python記憶體
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- ThreadLocal記憶體洩漏問題thread記憶體
- 排查Java的記憶體問題Java記憶體
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- X86環境大記憶體下資料庫啟動問題分析與處理記憶體資料庫
- 圖解Go語言記憶體分配圖解Go記憶體
- Android O 8.0 以上 bitmap記憶體分配Android記憶體
- v8記憶體分配淺談記憶體
- curl 中減少記憶體分配操作記憶體
- JVM 之 記憶體分配與回收策略JVM記憶體
- 深入理解golang:記憶體分配原理Golang記憶體