查看连接服务器的用户数_Oracle数据库配置--自动清理应用程序无效连接

本文介绍了当Oracle数据库出现连接数超过最大值的问题时,如何处理。通过查看当前会话、删除无效连接以及配置Oracle自动清除超过特定时间的闲置连接,可以有效管理数据库资源。具体操作包括使用SQL查询检查会话状态,使用shell命令终止连接,以及创建和应用Profile限制会话的连接和闲置时间。这种方法有助于避免应用程序无端占用过多数据库连接。
摘要由CSDN通过智能技术生成

概述

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

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


1、查看数据库连接

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

32c51160653103d5983118709c1e8073.png

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;
8489a2a07644a30bd4731c88ad0bc706.png

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';
4d3bf6f8706db509b7ee060d05446083.png

3.3、修改用户profile

select username,profile from dba_users where username='UAP65';alter user UAP65 profile killidle;
755c3d28a1e3fcc94bc0d6643c770332.png

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


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

901a4028bd7b808000cf737ea8e3a708.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值