码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-06-23 15:36:20      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:kill   程序   释放   找不到   开始   堆栈   处理   bsp   占用   

产生问题的原因是:会话连接数过多,需要kill掉,释放无用连接

 步骤:

       1. 查看当前总会话数和进程数,这两个视图就是跟会话及进程有关的重要视图啦,信息都是从这里面取的。

           1)  select count(*) from v$session;

             2)  select count(*) from v$process;

 

2.查询那些应用的连接数此时是多少

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;

 

3.查询会话状态,并杀会话

   select saddr,sid,serial#,paddr,username,status from v$session where username is not null;

  alter system kill session ‘sid,serial#‘;

被kill掉的session,状态会被标记为killed,Oracle会在该用户下一次touch时清除该进程.

 

 

inactive 处于此状态的会话表示不是正在执行的,比如select语句已经完成。我一开始以为,只要是inactive状态的会话,就是该杀,为什么不释放呢。其实,inactive对数据库本身没有什么影响,但是如果程序没有及时commit,那么就会造成占用过多会话。解决inactive的方法最好的就是在oracle中直接设置超时时间,也是有两种方法,区别暂时还不清楚:

1.修改sqlnet.ora文件,新增expire_time=x(单位是分钟)

我的sqlnet.ora位置在D:/oracle/ora92/network/admin

2.通过ALTER PROFILE DEFAULT LIMIT IDLE_TIME 10; 命令修改,记得重启下oracle。

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

标签:kill   程序   释放   找不到   开始   堆栈   处理   bsp   占用   

原文地址:http://www.cnblogs.com/MMMMzoe/p/7069583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!