ORA-7445(_kgscReleaseCursor)和ORA-4030错误

又一个ORA-4030引起的错误。
数据库版本10.2.0.3 for Windows 64环境。错误信息为:

Tue Mar 13 20:51:28 中国标准时间 2012
Errors IN file d:\oracle\admin\orcl\udump\orcl_ora_6136.trc:
ORA-07445: 出现异常错误: 核心转储 [ACCESS_VIOLATION] [_kgscReleaseCursor+174] [PC:0x423AA92] [ADDR:0xC] [UNABLE_TO_READ] []
ORA-04030: 在尝试分配 244 字节 (kxs-heap-w,kntx.1) 时进程内存不足
Tue Mar 13 20:51:32 中国标准时间 2012
Errors IN file d:\oracle\admin\orcl\udump\orcl_ora_6136.trc:
ORA-04030: 在尝试分配 82444 字节 (pga heap,control file i/o buffer) 时进程内存不足
ORA-07445: 出现异常错误: 核心转储 [ACCESS_VIOLATION] [_kgscReleaseCursor+174] [PC:0x423AA92] [ADDR:0xC] [UNABLE_TO_READ] []
ORA-04030: 在尝试分配 244 字节 (kxs-heap-w,kntx.1) 时进程内存不足

这个ORA-7445错误非常罕见,在METALINK上都找不到任何信息,不过问题并不难判断,显然这个ORA-7445[_kgscReleaseCursor]错误是由于PGA内存不足引起的,根据错误信息Oracle在尝试分配PGA内存时由于PGA_AGGREGATE_TARGET参数设置太小导致内存分配报错,对于7445错误而言,错误发生在释放游标的函数上。
当前的PGA_AGGREGATE_TARGET只设置了300M,将其扩大,并重启数据库后,问题消失。值得注意的是,这个参数是可以动态修改的,但是动态调整后,ORA-4030和ORA-7445错误仍然出现,显然这个参数针对新创建的进程有效,而现有存在的会话仍然受修改之前的参数的限制。

This entry was posted in BUG and tagged , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *