幽兰生空谷
--绝世独自开

连接Oracle数据库ORA-12516, TNS:listener could not find available handler with matching protocol stack

背景介绍:

启动项目时报:

原因:

在数据库安装完成后,常常需要设置SESSIONSPROCESSES的大小。

其中,

SESSIONS指定了一个实例中允许的会话数,即能同时登录到数据库的并发用户数。

PROCESSES指定了一个实例在操作系统级别能同时运行的进程数,包括后台进程与服务器进程。

由于一个后台进程可能同时对应多个会话,所以,通常SESSIONS的值是大于PROCESSES的值。

由于SESSIONS的值是根据PROCESSES的值计算得到的,所以,一般情况下只需要设置PROCESSES的值即可。

Oracle 11gR2以下版本中,SESSIONS大小的计算公式为:(1.1 * PROCESSES) + 5;

Oracle 11gR2中,SESSIONS大小的计算公式为:(1.5 * PROCESSES) + 22。

若SESSIONS的当前值比计算值大的话,则SESSIONS的值可能保持不变;

若SESSIONS的当前值比计算值小的话,则SESSIONS取计算值,即SESSIONS的值总是取MAX(当前值,计算值),但是这个也不是绝对的。

当数据库连接的并发用户已经达到SESSIONS的值时,又有新会话连接进来,就会报错“ORA-00018,”maximum number of sessions exceeded””的错误。

当Oracle需要启动新的PROCESS,而当前的进程数又已经达到PROCESSES参数时,就会报错:“ORA-00020: maximum number of processes (2048) exceeded”。

如果数据库上连接被占用完,当新的连接过来时,那么就会在客户端产生“ORA-12519, TNS:no appropriate service handler found”的报错信息。

Windows解决方案:

1.查看当前processes数量

cmd窗口:

sqlplus /nolog;

conn /as sysdba;

show parameter processes;

会看到进程相关信息:

2.修改processes数量

alter system set processes=600 scope=spfile;

3.重启启动数据库

shutdown immediate; 立刻关闭
startup; 启动

此时在连接数据库即可。

赞(1) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《连接Oracle数据库ORA-12516, TNS:listener could not find available handler with matching protocol stack》
文章链接:https://www.itheibai.com/archives/1197
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途,网站会员捐赠是您喜欢本站而产生的赞助支持行为,仅为维持服务器的开支与维护,全凭自愿无任何强求。

评论 抢沙发

评论前必须登录!

 

养成“打赏”的好习惯,从我做起!

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册