一、今天同事反馈业务化运行的数据中心库发生了oracle无法连接的情况,导致所有业务系统无法正常运作的问题。报:“ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程序”

二、收到这个情况,没有先去百度,之前经常碰到这个问题。猜想问题应该出在3个地方中的其中一种   A.oracle实例  B.监听服务  C.listener.log :

1.首先比较着急的是想看看数据库本身是否有问题,远程登录oracle服务器,通过sqlplus登录数据库,查询是正常的,说明数据库本身是好的,心里就比较踏实。

2.然后想到的oracle监听服务的问题,先去重启了下oracle监控服务、重启了oracle实例,甚至重启了服务器,依然问题存在。

3.判断可能是oracle监听配置失效,之前有碰到过监听配置失效,重新配置监听就解决问题的情况。 所以通过Net Configuration Assistant 删除了原来的监听服务配置,重新配置了一遍,问题依然存在。

4.listener.log是否存在超过4G,导致无法写入的问题,也排查了,不是这个问题。

三、没有思路的情况下,只能去百度,网上说法是连接池超出最大额度,导致连接无法申请。顺着这个思路,开始排查:

1.通过sqlplus登录,查询oracle最大连接额度的配置:  300个连接,正常,oracle默认是150。之前手动调整过一次。

2.查询目前已经使用了多少个连接: 吓一跳,294个。这下心里有底了。原因找到了。

3.接下来的就是揪出元凶,到底哪个应用程序占用过多连接:

 select  b.MACHINE, b.PROGRAM , count(*) from v$process a, v$session b where a.ADDR = b.PADDR and  b.USERNAME is not null   group by  b.MACHINE  , b.PROGRAM order by count(*) desc;     

4.发现了问题,接下来就好办了,***程序.exe 占用128个连接,这个服务框架使用的ORM有点问题,之前也出现过几次,占用连接过多的情况。一直想重构,都没找到好的时机。现在没办法,先重启这几个服务框架,一下子连接数量就降下来了。

5.外部的服务器,开启PL/SQL连接正常,搞定。顺便把oracle连接池最大限额搞大点,加一倍,搞到600。

记录一次 “ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程序” 的处理过程的更多相关文章

  1. Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题 ...

  2. 转载:ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序” 解决方案

    ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序” 解决方案   简单描述一下场景,总共两台应用服务器,每台安装3个tomcat进行集群,并通过nginx做了负载均衡,今天在生 ...

  3. ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小. 使用 ...

  4. 【ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序】

    服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小. 取得 ...

  5. Oracle"TNS监听程序找不到符合协议堆栈要求的可用处理程序"解决方案

    问题描述:在使用ETL工具通过odbc方式连接Oracle进行数据抽取的过程中,Oracle 监听日志报错如下: 根本原因就是Oracle的process和session已经达到了甚至超过了最大值,解 ...

  6. ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程”的异常

    简单说明:我们开发时多人开发,会频繁访问服务器数据库,结果当连接数大的时候,就会报ora-12516的错误,ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程"的异常 ...

  7. PLSQL连接数据库报监听程序找不到符合协议堆

    服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小   根 ...

  8. ORA-12514(TNS:监听程序当前无法识别...)

    记录: ORA-12514(TNS:监听程序当前无法识别...)的解决方案 在安装ORACLE 11G 过程中由于配置的原因,安装过程中报了如下错误:   按照安装提示执行后面的操作后,打开PL/SQ ...

  9. 解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别

    linux开启后终端按下面输入(容易忘记,记录下): [oracle@localhost ~]$ lsnrctl stop                #先关闭监听服务 [oracle@localh ...

随机推荐

  1. Zookeeper原理、安装、基本使用和API

     ZooKeeper ZooKeeper是一种分布式协调服务, 解决应用程序的分布式带来的问题.   1 分布式应用 分布式应用可以在给定时间(同时)在网络中的多个系统上运行,通过协调它们以快速有效的 ...

  2. hashlib,hmac,subprocess,configparser,xlrd,xlwt,xml模块基本功能

    hashlib模块:加密 import hashlib# 基本使用cipher = hashlib.md5('需要加密的数据的二进制形式'.encode('utf-8'))print(cipher.h ...

  3. Matlab rgb2hsv

    >> im = imread('lake.jpg');>> imshow(im)>> hsv_im = rgb2hsv(im);>> imshow(hs ...

  4. JDK新特性之可变个数的形参的方法

    可变个数的形参的方法:1.格式:对于方法的形参来说:数据类型...形参名2.可变个数的形参的方法与同名的方法之间可以构成重载3.可变个数的形参在调用时,个数从0开始,到无穷都可以(在调用这个方法时,s ...

  5. mac下 部分服务启动,结束, 查看状态的命令

    以sshd服务为例 启动sshd服务:sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 停止sshd服务:sudo laun ...

  6. 8. Security-oriented operating systems (面向安全的操作系统 5个)

    这款出色的可启动live CD的Linux发行版来自于Whax和Auditor的合并. 它拥有各种各样的安全和取证工具,并提供丰富的开发环境. 强调用户模块化,所以用户可以轻松地定制以包括个人脚本,附 ...

  7. AWS Tagging Strategies

    How should I tag my AWS resources? Amazon Web Services (AWS) allows customers to assign metadata to ...

  8. javaEE REST 基于第三方框架Restlet

    郭晨 软件151 1531610114 1.修改web.xml文件 添加URL模式(<url-pattern>)到Servlet的映射关系 设置Servlet的初始化参数(<init ...

  9. C++——list中erase和remove的区别

    1.之前在做相关的操作的时候,涉及到清除list相关的元素,因此会用到erase和remove,那么二者有什么区别呢? 从官方文档中,我们可以获取以下信息 erase : 说明:Removes fro ...

  10. C# 如何保证对象线程内唯一:数据槽(CallContext)【转载】

    如果说,一个对象保证全局唯一,大家肯定会想到一个经典的设计模式:单例模式,如果要使用的对象必须是线程内唯一的呢? 数据槽:CallContext,ok看下msdn对callcontent的解释. Ca ...