ORA-04030: 在嘗試分配...位元組 (hash-join subh,kllcqas:kllsltba) 時程式記憶體不足。
OS:AIX 6.1
DB:oracle 10.2.0.1
出現問題時報錯如下:
ORA-04030的出現原因及解決方法:
ORA-04030出現的基本都是過多的使用memory造成的
Oracle process使用的記憶體數量是有一定限制的:
A. 對於32 BIT系統,有SGA 1.7G限制
B. 某些OS系統本身也有一些記憶體引數限制
--執行 ulimit 看看
C. OS系統本身實體記憶體+Swap的限制
現在我們應該檢查DB使用的SGA + PGA是否超過上面的限制。
SGA 包括 db_cache,shared_pool,large_pool,java_pool session的PGA包括sort_area_size/Hash_area_size/*_area_size 或者 pga_aggregate_target
還有執行的CODE以及一些data也會佔用空間。
然後再根據情況降低裡面的某些值了,比如db_cache,sort_area_size等等。
假如是OS系統的某Limited造成的,大家可以考慮放開限制man ulimit來觀察如何放開限制
對於UNIX 系統,如果SGA沒有問題的話,很大一部分原因都是系統對oracle的限制導致的,
解決方法如下:
#vi /etc/security/limits
Default :
Fsize = -1
Core = -1
Cpu = -1
Data = -1
Rss = -1
Stack = -1
Nofile = -1
將所有的都改成-1.也就是無限制,問題解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25116248/viewspace-1423399/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-04030: 在嘗試分配程式記憶體不足記憶體
- ORA-04031:無法分配 32 位元組的共享記憶體記憶體
- 記憶體位元組對齊記憶體
- iOS 記憶體位元組對齊iOS記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- JAVA物件在JVM中記憶體分配Java物件JVM記憶體
- mimalloc記憶體分配程式碼分析記憶體
- JVM基礎:JVM記憶體組成及分配JVM記憶體
- JavaScript記憶體分配JavaScript記憶體
- JVM記憶體分配JVM記憶體
- java記憶體分配Java記憶體
- GO slice 切片-在記憶體中如何分配Go記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- SoftReference 到底在什麼時候被回收 ? 如何量化記憶體不足 ?記憶體
- JVM 記憶體模型 記憶體分配,JVM鎖JVM記憶體模型
- C語言:記憶體位元組對齊詳解C語言記憶體
- C/C++—— 記憶體位元組對齊規則C++記憶體
- 探索iOS記憶體分配iOS記憶體
- Java 記憶體分配策略Java記憶體
- java jvm 記憶體分配JavaJVM記憶體
- [C++]記憶體分配C++記憶體
- 動態記憶體分配記憶體
- Allowed memory size 記憶體不足記憶體
- java基礎-記憶體分配Java記憶體
- C語言-記憶體分配C語言記憶體
- java-方法記憶體分配Java記憶體
- go記憶體分配器Go記憶體
- Java 堆疊記憶體分配Java記憶體
- 記憶體分配策略學習記憶體
- 記憶體分配的確定記憶體
- weblogic的記憶體分配Web記憶體
- 記憶體分配方式 (轉)記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- 電腦記憶體不足怎麼辦? 虛擬記憶體不足的解決辦法記憶體
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- c++記憶體中位元組對齊問題詳解C++記憶體
- win10記憶體不足怎麼解決_win10記憶體不足怎麼辦Win10記憶體