Windows環境下的ORA-7445(ACCESS_VIOLATION)和ORA-4030錯誤

yangtingkun發表於2011-10-06

客戶Windows環境下32位的Oracle 10.2.0.3,在告警日誌中發現多次ORA-7445ORA-4030錯誤資訊。

 

 

詳細資訊為:

Mon Aug 01 15:06:06 2011
Errors in file e:\oradata\acscnprd\trc\usr\acscnprd_ora_3356.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [unable_to_trans_pc] [PC:0x605033BB] [ADDR:0x4] [UNABLE_TO_WRITE] []

Mon Aug 01 15:06:06 2011
Errors in file e:\oradata\acscnprd\trc\usr\acscnprd_ora_3356.trc:
ORA-04030: out of process memory when trying to allocate 753120 bytes (pga heap,kco buffer)
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [unable_to_trans_pc] [PC:0x605033BB] [ADDR:0x4] [UNABLE_TO_WRITE] []

僅從資料庫的配置和錯誤資訊分析,導致問題的原因多半是記憶體不足所致。這時一個32位的資料庫,因此SGA分配一般而言不能超過1.7G,而當前資料庫還沒有配置到極限值,SGA總共配置了1.2G左右,而PGA只配置了400M左右,而資料庫的連線數則超過了200。根據這些不難判斷,Oracle的記憶體配置偏低。

而查詢metalink,發現與當前問題最為接近的是ID 763705.1,問題影響的版本同樣是10.2.0.3,同樣包括ORA-4030ORA-7445 [ACCESS_VIOLATION] [unable_to_trans_pc] [PC:XXXXXXX] [ADDR:XXX] [UNABLE_TO_WRITE]錯誤,唯一的區別在於,metalink上的這個問題發生在64Windows環境中Oracle,而當前的Windows環境是32位。不過這篇文章中描述問題出現的原因同樣和記憶體不足有關,那麼很可能這個錯誤在32位環境中同樣會出現。

接近這個問題的方法就是根據主機可用記憶體和32位系統的限制,來提高SGAPGA的記憶體分配,保證Oracle日常操作有足夠的記憶體可以使用。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-708691/,如需轉載,請註明出處,否則將追究法律責任。

相關文章