oracle已知sid查进程,查看数据库session的sid来查杀对应系统进程号spid

经常遇到在PLSQL Developer等工具操作后,(例如做了个jobs,但jobs做错了,要停止)就要找到sessions对应的系统spid ,方便登录到服务器,利用系统的spid进行查杀。(其实可以直接用PLSQL Developer工具的sessions工具来查杀,但有时候登录的用户不够权限,一般要sysdba之类的用户才有查杀权利),所以就可以通过查看v$sessions的sid和对应v$process的spid来查杀不需要的session对应的进程

select a.USERNAME,b.SPID from v$session a,v$process b where a.PADDR=b.ADDR

下面的效果更详细

select a.SID,a.USERNAME,a.status,a.process,b.SPID from v$session a,v$process b where a.PADDR=b.ADDR;【效果 如下图】

例如我在PL/SQL Developer里面的sessions 工具里面看到 sid为630的登录sessions

我要知道630sid 对应的系统spid,就是上图的11452为系统对应的spid

然后就登录到系统上,用root或者oracle 用户,查看ps -ef |grep ora 对应的进程号是11452的,并kill -9 11452,那么图2看到的 sid为630的会话就中断了,被杀了。。

补充一个查询语句:

select a.SID,a.USERNAME,a.status,a.process,b.SPID,c.SQL_TEXT from v$session a,v$process b,v$sqltext c

where a.PADDR=b.ADDR and a.SQL_ADDRESS=c.ADDRESS

and spid='9191';

通过查看系统top命令,看到哪个进程号 占用cpu 高,就可以查看到该进程号在数据库里面做的操作

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值