Oracle连接数过多释放机制

在开发时,调试程序需要不断的连接数据库,这时到时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.查指定程序的连接数

SQL>select count(*) from V$SESSION where program='JDBC Thin Client' #JDBC连接Oracle的数目

posted on 2022-08-10 08:02  root-123  阅读(1341)  评论(0编辑  收藏  举报