龙空技术网

Oracle数据库配置--自动清理应用程序无效连接

波波说运维 1489

前言:

此刻我们对“oracle用户会话数过多”大概比较注意,朋友们都想要分析一些“oracle用户会话数过多”的相关资讯。那么小编也在网上汇集了一些有关“oracle用户会话数过多””的相关资讯,希望朋友们能喜欢,同学们快快来学习一下吧!

概述

最近,服务器Oracle数据库出现问题,用不到半天,就会报连接上的问题,这种一般就是数据库的会话超过最大数了。由于服务器跑的是文件传输应用,占用的请求和会话肯定很大,因此用户数不大就已经让oracle的会话数达到最大值。处理方式不外乎两种:扩大oracle最大session数以及清除inactive会话,当然还有,就是从数据库连接池和程序bug上面下手。

这里我选择配置Oracle自动清除超过一定时间的应用程序无效连接,下面一起来看看吧!

1、查看数据库连接

select sid,serial#,username,status from v$session;

2、删除无效连接

这个方式比较粗暴,是直接清理掉数据库通过监听去连接的所有会话...shenzhong!

ps -ef|grep ora_*| grep LOCAL=NO|awk '{print $2}'|xargs kill -9
3、优化自动删除无效连接

通过profile可以对用户会话进行一定的限制,比如IDLE时间。将IDLE超过一定时间的会话断开,可以减少数据库端的会话数量,减少资源耗用。

创建profile文件,profileName的connect_time设置连接超过多少分钟后强制释放,idle_time设置连续不活动的会话超过多少分钟后强制释放

3.1、设置resource_limit为TRUE

sqlplus / as sysdbaalter system set resource_limit=true;SELECT * FROM DBA_PROFILES;

3.2、创建一个允许30分钟IDLE时间的PROFILE

创建profile文件,connect_time设置连接超过多少分钟后强制释放,idle_time设置连续不活动的会话超过多少分钟后强制释放

create profile killidle limit connect_time 240 idle_time 30;select * from dba_profiles where profile='KILLIDLE';

3.3、修改用户profile

select username,profile from dba_users where username='UAP65';alter user UAP65 profile killidle;

配置后应用程序就不会无端端的占用数据库过多连接了。

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

标签: #oracle用户会话数过多 #oracle清除用户所有数据 #oracle会话强制提交