宇筱博客

  • 解决办法
  • 学无止境
  • 记录时光
  • 百宝箱
宇筱博客
点滴记忆,汇聚成海。
  1. 首页
  2. 解决办法
  3. 正文

Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack

2020年1月8日 431点热度 0人点赞 0条评论

解决办法

定位原因

-- 以sysdba身份登陆PL/SQL

sqlplus / as sysdba;

-- 查看当前连接进程数

SQL>select count(*) from v$process;

-- 查看连接数上限

SQL>select value from v$parameter where name = 'processes';

-- 查询processes数量

SQL> show parameter processes

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

aq_tm_processes integer 0

db_writer_processes integer 3

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processes integer 2

processes integer 150

-- 查询sessions数量

SQL> show parameter sessions

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

java_max_sessionspace_size integer 0

java_soft_sessionspace_limit integer 0

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

sessions integer 170

shared_server_sessions integer

SQL>

经过以上数据库参数查询,发现sessions数量不够,只有150,故增大sessions数量。

只要会话连接数超过上面的process数150或者sessions数170,再来一个的会话进程,就会产生12516错误。因此可以修改一下该值。sessions和processes关系必须按照如下关系设置。

sessions=1.1*processes+5;

//这个是sessions值和processes值的关系,最好按照这样做,因此如果要将processes数设置为500,则sessions数必须为1.1*500+5=555

修改连接数的限制

-- 以sysdba身份登陆PL/SQL

-- 查询目前连接数

   show parameter processes;

-- 修改processes

   alter system set processes=500 scope=spfile;

-- 修改processes

   alter system set sessions=555 scope=spfile;

-- 重启Oracle服务或重启Oracle服务器

-- 然后reboot数据库,使其生效

原文链接:https://blog.csdn.net/tianqishu11/java/article/details/78615850

标签: 暂无
最后更新:2020年1月8日

小渔民

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2025 宇筱博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15017825号-2