在开发时,调试程序需要不断的连接数据库,这时到时Oracle服务器连接数过多会当掉,把连接数过多的客户机网线拔出后,在远程Oracle上依然还会保留此用户的连接数,久久不能释放,上网查了下可以以下面方法解决。
通过profile可以对用户会话进行一定的限制,比如IDLE时间。
将IDLE超过一定时间的会话断开,可以减少数据库端的会话数量,减少资源耗用。
使用这些资源限制特性,需要设置resource_limit为TRUE:
步骤:
1、以dba身份登录
sqlplus "/ as sysdba"
2、show parameter resource;
3、alter system set resource_limit=true ;
显示资源限定是否开启,value为true是开启,为false是关闭
4、SELECT * FROM DBA_PROFILES
5、create profile profileName limit connect_time 60 idle_time 30;
创建profile文件,profileName任意起,connect_time设置连接超过多少分钟后强制释放,idle_time设置连续不活动的会话超过多少分钟后强制释放
1.查看Oracle最大连接数
SQL>show parameter processes #最大连接数
2.修改最大连接数
SQL>alter system set processes=value scope=spfile #value为需要设置的连接数的值
重启数据库后,即可查看到修改的最大连接已经生效
3.查看当前连接数
SQL>select * from V$SESSION where username is not null #查看当前连接数
4.查看不同用户的连接数
SQL>select username,count(username) from V$SESSION where username is not null group by username
5.查看并发连接数
SQL>select count(*) from V$SESSION where status='ACTIVE' #查看并发连接数
6.查指定程序的连接数