|
昨晚收到短信报警,有两台DB报ORA-00020错误,如果你不太清楚ORA-20代表了什么,在linux/unix平台下,可以用oerr ora 20来查看它比较详细的错误代码;在生产环境中,processes参数一般都设置的比实际的processes多一些,所以DB一旦报ORA-20错误,基本上可以确定是程序出了问题,那该如何着手解决呢?
$oerr ora 20 00020, 00000, "maximum number of processes (%s) exceeded" // *Cause: All process state objects are in use. // *Action: Increase the value of the PROCESSES initialization parameter. 查v$session,看看是那个program引起的,脚本如下: select program,count(*) from v$session group by program; 找到出问题的program,确定原因就比较方便啦,当然导致ORA-20也有其它的问题,比如library cache lock/pin等,所以我们在处理故障时,event/lock等是需要都要特别关注的;至于ORA-20错误的防范,最主要的就是加强对session的监控,如果某个program的session数超出了正常的水平,就要及时处理。。。
|