2 wu xiao sheng wu_xiao_sheng 于 2016.03.28 10:46 提问

什么情况下会出现oracle数据库自身连接超出最大连接数 ----急急急!!! 5C

这些天一直被这个问题困扰,oracle连接超出最大连接数。原以为是tomcat程序还有没释放的连接,但是经过追踪审查之后发现不是程序的问题,而是数据库本身连接数异常多。下面是我操作过程。

重启oracle服务后,登陆sqlplus。
SQL> select count(*) from v$session;
SQL> show parameter processes;
SQL> show parameter sessions;
之前都是150,后来修改了成了500
SQL> alter system set processes=500 scope=spfile;
SQL> shutdown immediate;
SQL> startup
重启tomcat服务。
改完之后发现,过一段时间之后依然会冲到496个连接,不是改了最大连接数就能解决的。
SQL> select sid,serial#,a.* from v$session a where username='BOSS';
BOSS为正式数据库用户。
这个连接数很正常,也很稳定,基本在20个左右。
SQL> select sid,serial#,a.* from v$session a where username<>'BOSS';
不等于BOSS的基本上就是boss2这个用户在连接,boss2是数据库服务器名称。
请问大神这个是什么原因导致的?有什么解决办法吗?

6个回答

wu_xiao_sheng
wu_xiao_sheng   2016.03.28 11:19

说错了,应该是这样的,boss2是MACHINE,SYSMAN是用户。
图片说明

Royal_lr
Royal_lr   Ds   Rxr 2016.03.28 11:42

连接没有释放的话,,迟早会达到最大连接,,一般连接用完就关闭

wu_xiao_sheng
wu_xiao_sheng   2016.03.28 13:34

恩 我在从程序角度查看一下有没有可能导致了这个问题。主要是程序稳定运行了很长时间了,如果有没有关闭的连接,最开始就不能正常运行。就在前两天出现了这个问题,在v$session, v$process中都可以看到会话数与进程数都在持续不断往上涨,两个方面增长的根源来自于不同的用户,v$process中的用户是SYSTEM,v$session中的用户是SYSMAN。执行killsession后,立马又重新生成新的session。

wu_xiao_sheng
wu_xiao_sheng   2016.03.28 14:15

SYSMAN是关于oracle的EM管理的用户,如果不修改什么设置的话,实际没什么用。查看连接最多的就是这个用户,于是就把oracleEM管理的相关服务停掉了。OracleDBConsolboss服务停止后,连接数正常了。但是这只是暂缓之计,具体原因出在哪还没找出。求各位大神指导。

zhangjs712
zhangjs712   2016.03.29 09:08

1、系统有没有连接池的监控,可以查看当前活动的连接。
2、另外有没有可能是oracle的连接数设置的太小,而系统的用户太多已经超过了连接数的设置。

wu_xiao_sheng
wu_xiao_sheng   2016.03.30 18:20

系统有连接池的监控,都很正常。
oracle连接数之前是有点小为默认的150,后来调整到了500,肯定够用了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!