oracle 有大量LOCAL=NO进程连接数据库

当Oracle数据库出现大量LOCAL=NO进程导致无法连接时,可通过关闭监听来阻止新会话,并作为dba身份登录进行排查。通过SQL命令找出占用session最多的机器、用户和程序,然后结束相关进程。可以使用SQL语句获取并执行kill命令释放资源,调整session与process的关系以解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统的session数过大,导致数据库进程数满,无法连接的问题。

oracle用户登录服务器,使用dba身份进入sqlplus:

命令:sqlplus / as sysdba

报错:ERROR: ORA-00020: maximum number of processes (1000) exceeded(线程数超过最大值1000了)

管理员也无法登陆数据库 只有关闭oracle 的监听:  

命令:lsnrctl stop

关闭了监听,就不会有新的用户登录进来,也不会生成新的会话,占用进程了

这个时候可以使用管理员登录了(sqlplus / as sysdba)

2、登陆数据库之后,查看会话session的使用情况

命令:select count(1) from v$session;

3、查看session数最多的机器

命令:select machine,count(1)coun from v$session group by machine order by 2 desc;

4、下面命令可以查询到:占用session最多的机器、用户、程序的线程号(同系统进程号)这样,就找到占用session多的机器、用户、程序。

命令:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值