前线一个项目应急,说是应用挂起了,数据库也登陆不上去了。让我救急。
于是找到前线的兄弟,QQ远程上去(真土是不?可惜没别的招),获得系统信息如下:
OS:Windows Server 2003 Version V5.2 Service Pack 2
Oracle:10.1.0.2.0
OS的内存是8GB的,但是是个32位的系统。这个真悲剧。
Oracle的版本居然是个10.1.0.2的,要命,这居然是准备生产环境用的。
Oracle的内存配置,

__shared_pool_size = 528482304
shared_pool_size = 528482304
__large_pool_size = 109051904
large_pool_size = 109051904
__java_pool_size = 50331648
java_pool_size = 50331648
sga_target = 1367343104
看了看,使用了大概1.7GB内存。其中PGA大概500M。
前线同志说连不上去,但是我没发现这个问题,应该是一段时间后,oracle自动清理了一些死链接吧。不得不说,这个应用做的,真是差,后来知道,他们居然不控制连接数目,还是用的java的连接池,都不确定连接池中连接什么时候释放。这些都是注定要杯具的原因。
不管那么多,先看看oracle的alert吧,打开,居然最开始的信息被哪个杀千刀的给清除了,只剩下出问题的日志了。
主要信息由以下几组:
1,ORA-07445
Errors in file c:\oracle\product\10.1.0\admin\orcl\bdump\orcl_mmon_3940.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [0x122A20B] [] [] [] []
2,ORA-04030

Errors in file c:\oracle\product\10.1.0\admin\orcl\bdump\orcl_j000_2884.trc:
ORA-04030: out of process memory when trying to allocate 680032 bytes (joxp heap,u:CTX_SEG)
ORA-04030: out of process memory when trying to allocate 123404 bytes (QERHJ hash-joi,kllcqas:kllsltba)
ORA-04030: out of process memory when trying to allocate 680032 bytes (joxp heap,u:CTX_SEG)
ORA-04030: out of process memory when trying to allocate 680032 bytes (joxp heap,u:CTX_SEG)
3,这个居然让oracle直接崩溃退出了。

Errors in file c:\oracle\product\10.1.0\admin\orcl\bdump\orcl_j000_2884.trc:
ORA-12012: error on auto execute of job 1
ORA-04030: out of process memory when trying to allocate 680032 bytes (joxp heap,u:CTX_SEG)
ORA-06512: at "WKSYS.WK_ERR", line 10
ORA-06512: at "WKSYS.WK_ERR", line 53
ORA-06512: at "WKSYS.WK_ERR", line 71
ORA-06512: at "WKSYS.WK_ERR", line 105
ORA-06512: at "WKSYS.WK_JOB", line 210
ORA-04030: out of process memory when trying to allocate 123404 bytes (QERHJ hash-joi,kllcqas:kllsltba)
ORA-06512: at "WKSYS.WK_JOB", line 444
ORA-04030: out of process memory when trying to allocate 680032 bytes (joxp heap,u:CTX_SEG)
ORA-04030: out of process memory when trying to allocate 680032 bytes (joxp heap,u:CTX_SEG)
ORA-06512: at line 1
看到第一个7455,我就怕了。这个玩意儿好久不见,又重出江湖了。出现在了哥的江湖。
第一个问题。
先仔细研究了下,所有的报错都是和MMON有关系。这个应该是ASSM的bug。既然是ASSM,我的参数设置差不多了,我就先不管了,看看你有什么问题。
第二个问题,也是内存相关问题,大不了就是任务失败,先略过。
再看第三个问题。
同样,一直没注意,从没见过这么一个任务。居然让oracle崩溃了。
开始我以为是产品代码,后来查了下,居然,是oracle自带的。具体干嘛的也没管他。
想想oracle有个自动分析的任务,10g之后自动运行的,先停了。不理他了。
然后开始解决应用挂起的问题。