客户Windows环境下32位的Oracle 10.2.0.3,在告警日志中发现多次ORA-7445和ORA-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-4030和ORA-7445 [ACCESS_VIOLATION] [unable_to_trans_pc] [PC:XXXXXXX] [ADDR:XXX] [UNABLE_TO_WRITE]错误,唯一的区别在于,metalink上的这个问题发生在64位Windows环境中Oracle,而当前的Windows环境是32位。不过这篇文章中描述问题出现的原因同样和内存不足有关,那么很可能这个错误在32位环境中同样会出现。
接近这个问题的方法就是根据主机可用内存和32位系统的限制,来提高SGA和PGA的内存分配,保证Oracle日常操作有足够的内存可以使用。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-708691/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/4227/viewspace-708691/