最初由 lutheran 发布 [B]进程超出最大连接数,数据库不能连接,查看v$session里只有80多个会话,但是在v$process里有350个数据库进程,数据库使用的是专用服务器,有大部分的会话已经断开,但是进程没有释放,请问这是怎么引起的???急!!!!!!!!!!! [/B]
可见的原因大致有如下几个:
1、网络的抖动,即网络发生了瞬断。
2、你的数据库设置了profile等限制用户连接时间的设置
3、应用设计的问题。比如有几台数据库服务器,其中N-1台设有trigger,有行级触发,对其中一台做操作。
这样的问题解决起来也很容易:
1、检查网络、去掉限制时间的设置。
2、增大数据库的processes参数,多加几个连接。
3、解决燃眉之急可以用如下的办法,在os执行如下脚本生成的结果就可以了
SELECT 'kill -9'||spid
FROM V$PROCESS
WHERE ADDR IN
(SELECT ADDR FROM V$PROCESS
WHERE PID <> 1
MINUS
SELECT PADDR FROM V$SESSION);
ps: kill针对是unix及linux,如果是windows需要用orakill。