现象
接到用户反馈数据查询缓慢,逐渐演变为系统无法登录,无法使用。在后台通过Navicat无法连接数据库,错误信息为 TNS:listener could not find available handler with matching protocol stack
原因
初步判断问题为Oracle数据库连接数不足。
解决步骤
1.登录Oracle服务器,使用su - oracle 切换Linux用户。
su - oracle
2.登录Oracle,使用nolog模式并以sysdba权限登录数据库
sqlplus /nolog
conn /as sysdba
此时碰到问题,连接数已被占满,无法连接,提示 ORA-00020: maximum number of processes (150) exceeded,想起来应用还没有停,于是将所有应用停止,释放连接。应用停止后成功登录。
3.修改进程最大连接数
alter system set processes = 300 scope = spfile;
4.重启Oracle服务,如果shutdown immediate长时间无响应可以使用shutdown abort
shutdown immediate;
startup;
#若shutdown immediate无响应,可使用以下命令
shutdown abort
5.查看最大连接数是否生效
select value from v$parameter where name ='processes';