zoukankan      html  css  js  c++  java
  • 解决Oracle 11gR2 空闲连接过多,导致连接数满的问题

    今天又遇到了11gR2连接数满的问题,以前也遇到过,因为应用那边没有深入检查,没有找到具体原因,暂且认为是这个版本Oracle的BUG吧。

    上次的处理办法是用Shell脚本定时在系统中kill  v$session.status='INACTIVE'的连接,但是这次现场没有在操作系统中部署脚本的权限,只好在数据库中做处理,幸好我们对这个数据库有完全的权限。这次使用了profile+JOB定时alter system kill 'sid,seral#' immediate的方式。具体脚本如下:

      1. CREATE PROFILE KILLIDLE LIMIT IDLE_TIME 30;

      2. SELECT * FROM dba_profiles WHERE PROFILE='KILLIDLE';

      3. ALTER USER TEST_USER PROFILE KILLIDLE;

      4. SELECT username,PROFILE FROM dba_users WHERE username='TEST_USER';

      5. ALTER SYSTEM SET resource_limit=TRUE;






      6. CREATE OR REPLACE PROCEDURE sp_kill_idlesession

      7. /**********************************

      8. 清除idle超时的会话进程

      9. **********************************/

      10. AS

      11. CURSOR c_kill_sqls

      12. IS SELECT 'alter system kill session '''||s.sid||','||s.SERIAL#||''' immediate' sqlstr FROM v$session s WHERE s.STATUS='SNIPED';

      13. BEGIN

      14. FOR v_sql IN c_kill_sqls

      15.   LOOP

      16.     EXECUTE IMMEDIATE v_sql.sqlstr;

      17.   END LOOP;

      18. END;





      19. --添加JOB,定时清理过期会话

      20. DECLARE jobnum NUMBER :=661;

      21. BEGIN

      22.   dbms_job.submit(job => jobnum,

      23.                   what => 'sp_kill_idlesession;',

      24.                   next_date => to_date('30-04-2014 18:00:00', 'dd-mm-yyyy hh24:mi:ss'),

      25.                   interval => 'SYSDATE + 1/144');

      26.   commit;

      27. END;







      28. --如果30分钟过期时间太短,对数据库访问性能产生了影响,可以调整

      29. ALTER PROFILE KILLIDLE LIMIT IDLE_TIME 30;
  • 相关阅读:
    js对象数组(JSON) 根据某个共同字段 分组
    一个 函数 用来转化esSearch 的range 条件
    关于 vuex 报错 Do not mutate vuex store state outside mutation handlers.
    android listview 重用view导致的选择混乱问题
    android SDK和ADT的更新
    Android中adb push和adb install的使用区别
    pycharm中添加扩展工具pylint
    su Authentication failure解决
    Putty以及adb网络调试
    有关android源码编译的几个问题
  • 原文地址:https://www.cnblogs.com/lcword/p/8242169.html
Copyright © 2011-2022 走看看