zoukankan      html  css  js  c++  java
  • ORACLE连接数

      最近脑袋有点大,事情有点多,需要做个转型,要不然这些事情会将自己埋了.
    优先需要弄的事情
    1、Oracle连接要改为连接池
    2、前端优化事项:界面优化、新功能上线、性能优化(压缩什么的)
    3、服务化接口的治理

    今天遇到困难的问题总结,数据库大佬突然罢工了,连接数超过限制了,进去之后发现里面的“ACTIVE”连接并多,把倒是有许多"INACTIVE"连接,还有一些是为
    "KILLED"的连接。

    如何关闭非活动连接

    当session是active的时候,alter system kill session 只是将session标识为killed
    或者pseudo状态,并不会释放session持有的资源,所以我们在执行完alter system kill session 后,看会话还是一直存在。

    如果想清理连接怎么办呢?

    1、手工清理进程方法
    alter system disconnect session '20,9907' post_transaction;
    alter system kill session '3964,51752' immediate;

    通过OS清理连接
    SELECT SPID, OSUSER, S.PROGRAM, SCHEMANAME
    FROM GV$PROCESS P, GV$SESSION S
    WHERE P.ADDR = S.PADDR;
    2、清理进程的时候记得要用kill -9 参数,否则没有生效。至少我执行的环境是这样。
    3、如果会话已经在DB里killed,上面的SQL已经查不出spid,可以用下面的SQL查出SPID
    SELECT ADDR, PID, SPID
    FROM V$PROCESS P
    WHERE ADDR IN (SELECT P.ADDR
    FROM V$PROCESS P
    WHERE PID <> 1
    MINUS
    SELECT S.PADDR
    FROM V$SESSION S)


    补充阅读:
    1、http://www.cnblogs.com/kerrycode/p/3636992.html
    2、PMON进程负责处理异常结束进程相关资源的释放。PMON周期性地被唤醒,可以对"_PKT_PMON_INTERVAL"这个隐藏参数来进行修改。也可以通过查找出进程的PID,然后在oradebug中,发布 oradebug wakeup orapid(oracle进程的PID,不是OS的PID)来手动唤醒PMON进程。可以用alter session set events '100246 trace name conext forever,level 4'来查看PMON的相关
    操作。
    3、程序还是找找连接池的方案,或者看看到底是那个地方的连接没有及时释放吧。

  • 相关阅读:
    try catch in php
    druid德鲁伊数据库密码加密
    mysql 1093
    MySQL Delete语句不能用别名
    SQL筛选两个字段同时满足多个条件的结果
    MySQL 查询有效小数位数大于两位的值
    我们慌慌张张,不过图碎银几两
    查看Linux服务器端口占用情况,网络情况和CPU使用情况
    Gitbash命令行管理项目
    IDEA中Git的用户名修改
  • 原文地址:https://www.cnblogs.com/wangn/p/5033839.html
Copyright © 2011-2022 走看看