当前位置:首页 > 数据库 > Oracle

原来是它(Oracle.ManagedDataAccess.Client)——再说ORA-12516故障解决

        最近一直和ORA-12516报错作斗争。接着我之前分享的一篇博文说起http://blog.itpub.net/30162081/viewspace-1623524/,当时通过kill进程的方法临时解决了问题,但是根本问题没有找到——为什么设备会产生大量连接?说到底,这个问题当时并没有解决,并且继续“折磨”了我将近一个月。这段时间,不断地有人找我——数据库连不上了!!!问题到底出在哪儿了呢。
       下面和大家分享一下解决过程,希望对大家有所借鉴。

开发环境

操作系统:Windows Server 2008 R2  Standard
数据库:Oracle 10g(10.2.0.4) 64bit

频繁报错ORA-12516,初步分析

最近ORA-12516错误频出,我也是不胜其烦。但是每次都找不到根本原因,只能停监听、杀进程或者直接关闭客户端程序。
复述一下故障现象:连接数据库报错,提示“ORA-12516”错误——“ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄”。

一直很稳定的系统架构,为什么突然不行了呢?
数据库processes参数使用的默认值150,相应的sessions为170,;
我们采用C/S架构,其中Client数量并不多,也就20台左右,所以正常情况下sessions数量为40左右,其中包括16个数据库内部连接。
可现在,sessions数量动辄就到了130~140,直接导致ORA-12516报错。

下面贴一个当时的查询结果:

点击(<span style="cursor:pointer;color:red;" .="code_hide(‘code680‘)">此处

)折叠或打开
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!