Oracle系列—【数据库连接数超了,导致数据库连接不上,如何排查当前连接数,以及如何修改最大连接数限制?】…
•
数据库
数据库连接数超了,导致数据库连接不上,如何排查当前连接数,以及如何修改最大连接数限制?
1.对比当前连接数和最大连接数
如果差的比较少,比如相差十几,二十几,连不上的话,很有可能是用连接池连接,一次申请连接数大于剩余的连接数导致的。
#查看当前总连接数 SELECT count(*) FROM V$session; #查看数据库设置的最大连接数,process的值即为最大连接数 SELECT * from V$PARAMETER WHERE NAME LIKE '%process%';#这条sql服务端和客户端都能执行; show parameter process;#这条命令只能在服务端执行
2.分组查看每个用户的连接数情况
如果是有不用的服务占了大量连接,建议停掉这个不用的服务。如果确实不够用,再执行第三步的操作,修改最大连接限制。
#OSUSER:连接主机登录的用户名; MACHINE:主机host; USERNAME:数据库用户名; STATUS:连接状态 select a.OSUSER,a.MACHINE, a.USERNAME,a.STATUS,COUNT(*) as CONNECT_NUM FROM V$SESSION a LEFT JOIN "V$SQLAREA" b ON a.SQL_ADDRESS = b.ADDRESS -- WHERE -- a.MACHINE LIKE 'afp-asset-center-%' -- AND a.status != 'KILLED' GROUP BY a.OSUSER,a.MACHINE, a.USERNAME,a.STATUS ORDER BY CONNECT_NUM DESC;
3.修改最大连接数限制
#登录dba账号 sqlplus / as sysdba; #修改最大连接数,并持久化 alter system set processes=6000 scope=spfile; #关闭数据库 shutdown immediate; #启动数据库 startup;
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/895791766e.html
