问题描述
今天做压力测试时,由于大量的并发访问导致数据库连接占满,新服务启动时,无法获取到数据库连接,导致启动报错,报错信息如下:
##读取调用得到- 1
Caused by:oracle.net.ns.NetException:Got minus one from a read call
解决方案
连接oracle服务器
##切换oracle用户
su - oracle
##连接oracle
sqlplus / as sysdba
此时报错,报错信息如下:
ORA-00020:maximumnumber of processes(200) exceeded
根据报错信息可知是由于processes进程数达到了最大值,导致无法登录.
继续解决
停止监听服务,等待数据库访问连接数下降用户再登录
#停止监听服务
lsnrctl stop
#启动监听服务
lsnrctl start
重新登录,修改系统processes参数为500,重启数据库
sqlplus / as sysdba
##查询数据库设置的最大连接数
show parameter processes;
##修改最大连接数
alter system set processes = 500 scope = spfile;
shutdown immediate;
startup;
##重新查询数据库设置的最大连接数
show paratemer processes;