ORA-12537: TNS:connection closed ORA-00020: maximum number of processes (2000) exceeded

ORA-12537: TNS:connection closed

ORA-00603: ORACLE server session terminated by fatal error

ORA-00020: maximum number of processes (2000) exceeded

1、问题背景

开发说连接数据库报错,监听程序已经关闭

image-20230921095309751

2、解决办法

1.根据提示我检查了监听状态,发现有一个没起,启动后还是连不上

cd $ORACLE_HOME/network/admin/
lsnrctl start listener

启动后我连接了下数据库,不正常,能连接,但是show parameter name都报错,提示没有登

2.查看alert日志,发现报了大量的ORA-00020报错

cd $ORACLE_BASE/diag/rdbms/orcl/trace/

原来是连接数达到最大限制了,所以才连不上数据库

image-20230921095409707

3.清理会话

#查看非本地连接进程
ps -ef|grep -v grep|grep LOCAL=NO |wc -l

#杀掉所有非本地连接进程
ps -ef|grep -v grep|grep LOCAL=NO |awk '{print $2}'|xargs kill -9

#查看哪个ip链接数最多
netstat -na|grep "ESTA"|awk '{print $5}'|awk -F ":" '{print $1}'|awk '{++S[$NF]} END {for (a in S) print a, S[a]}'

这个根据实际情况而定,我这边是因为应用问题导致,所以要杀掉会话,如果是正常连接达到最大限制,可以根据数据库配置调整链接数

4.查看process相关参数

#查看当前系统允许的进程连接数
show parameter process;

#查看系统允许的会话数
show parameter session;

#查看系统当前进程的连接数
select count(*) from v$process;

#查看系统当前会话的连接数
select count(*) from v$session; 

#查看当前系统活动的连接数
select count(*) from v$session where status='ACTIVE';

#修改process和session
alter system set processes=3000 scope=both;
alter system set sessions=3100 scope=both;

#重启生效
shutdown immediate;
startup;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值