ORA-12518:Oracle 监听程序无法分发客户端连接原因及解决方法
本文主要讲解ORA-12518:Oracle监听程序无法分发客户端连接的原因分析及解决方法。问题描述数据中台的同步任务有时会报错如下ORA-12518, TNS:listener could not hand off client connection。意即Oracle监听程序无法分发客户端连接原因分析只是有时候会报错有时候又能成功执行就可以排除监听配置错误的可能性大概率是数据库当前的进程数或会话数已经达到设置的上限值无法接收新的连接了也可能是服务器内存或CPU资源耗尽导致数据库无法创建新进程去响应连接。进程数就是Oracle同时工作的进程数量会话数就是Oracle同时接受的客户端连接的数量。查询数据库的进程数上限SELECT value FROM v$parameter WHERE name processes;查询数据库的进会话数上限SELECT value FROM v$parameter WHERE name sessions;查询当前实际进程数SELECT COUNT(*) FROM v$process;查询当前实际会话数SELECT COUNT(*) FROM v$session;查询结果发现实际进程数非常接近进程数上限值实际会话数也很接近会话数上限值而且检查发现Oracle服务器CPU和内存资源都还足够说明是连接数达到上限了需要调高上限值。解决方法Oracle默认的进程数和会话数上限分别是150和248显然这是完全不够用的应该根据实际项目规模来设置相应的进程数上限我这里把进程数上限改为1000ALTER SYSTEM SET processes1000 SCOPEspfile;会话数上限会根据进程数上限自动计算不用手动设置一个进程可以对应多个会话所以会话数一般高于进程数。修改完成后需要重启数据库服务以使修改生效打开运行窗口输入 services.msc 再按回车键打开服务界面先停止数据库服务和监听服务再启动数据库服务和监听服务。修改完进程数上限后会话数上限也会根据换算关系自动调整过来如下图发现会话数上限已经变为1528了。不同版本的Oracle数据库的会话数和进程数的换算关系有所区别如下是目前的几种换算关系从上到下不同的换算关系对应的版本越来越新。1会话数 (进程数 * 1.1) 52会话数 (进程数 * 1.5) 223会话数 (进程数 * 1.5) 28后续观察发现中台同步任务没有再出现ORA-12518的报错了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2480248.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!