zoukankan      html  css  js  c++  java
  • 清除Oralcle的session的理由和方法

    杀掉Oralcle的一些session,理由大体如下:
    一、问题的提出
    很多的时候我们迅速的杀掉Oralcle的一些session,理由大体如下:
      
    1、 一些时候,由于我们的数据量很大,相应的事务大并且多,在做shutdown immediate的时候会花费好多的时间,而我们却想用shutdown immediate的方式,而又要把数据库迅速的shutdown下来。
      
    2、 我们的应用可能使用了会话控制,即在应用的层面控制了一些用户的连接的数量。但有时可能网络发生的瞬断,从而就产生了一些死进程,他们的状态为 Inactive的状态。当我们用alter system kill session ‘sid,serial#’进行清除时,这些session的状态又变成了killed,这些就由Pmon进程来慢慢进行清除了,而你恰恰又是个急脾 气。
      
    3、 系统忽然慢了现来,你发现是某个session在做怪,想迅速把它迅速结束掉。
      
    二、处理方法
    其实处理方法很简单,是被一些人称为“谋杀”的一种方法。因为一个session会对应着操作系统中相应的一个进程(process),我们不使用 Alter system kill session这种方式了,取而代之则是kill的方式,当session的后台进程被杀掉了,便会促使懒散的Pmon进程迅速进行清理工作。
      
    1、 以一个session做以示例,
      
    a、 找到你要杀掉的那个session, 并记下paddr
      
    select sid, username, paddr, status from v$session
    where username = '用户名' and
    status = 'INACTIVE';
      
    b、 找到这个session所对应的spid
      
    select * from v$process where addr = '上面查寻的paddr';
    c、 杀掉spid所标识的那个进程
      
    如果你的Oracle是在Unix平台上的,可以用kill。
      
    $kill spid
      
    如果你的Oracle是在windown平台上的,有一些的不同,因为windown是以thead来代替process的,需要用到sid和spid两个值,所用的命令也由kill替换为Orakill,格式为rakill sid spid
      
    C:\>orakill sid  spid
      
    d、 再查一下v$session,看会话在不在了。
      
    2、 如何谋杀掉所有的Oracle的用户的进程呢?
      
    a、windows的环境,执行如下图中的SQL,并把结果存成.bat的文件,比如kill.bat, 执行一下kill.bat就可以了。
      
    select 'orakill '||sid||' '||spid as thread from
    sys.v_$process p, sys.v_$session s
    where sid > 6 and
    p.addr = s.paddr ;
      
    b、 Unix的环境相对来说就简单多了,执行如下的命令就可以了
      
    $ ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill
      
    然后你再shutdown immediate就很快的了。
      
    有一些死锁进程,异常退出后用
    alter system kill session 'sid, serial#';无法释放会话
    可从操作系统直接处理。
  • 相关阅读:
    WeChat-SmallProgram:组件 scroll-view 横向和纵向 案例
    Codeforces Round #277 (Div. 2) D. Valid Sets 树形DP
    Codeforces Round #243 (Div. 2) E. Sereja and Two Sequences DP
    Codeforces Round #263 (Div. 2) D. Appleman and Tree 树形dp
    Codeforces Round #259 (Div. 2) D. Little Pony and Harmony Chest 状压DP
    Codeforces Round #274 (Div. 2) E. Riding in a Lift DP
    HDOJ 6069 素数筛
    在平面中,一个点绕任意点旋转θ度后的点的坐标
    HDOJ 5724 博弈SG函数
    Codeforces Round #422 (Div. 2) C. Hacker, pack your bags! 排序+贪心
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400520.html
Copyright © 2011-2022 走看看