定位Oracle kill命令未实际中断的Session/Process

原创 2011年01月19日 09:50:00

我们经常会遇到在Oracle中执行某条命令或存储过程,执行时间比预想的要长很多,才发现是自己的失误,想要中止执行的语句或者存储过程,一般的前台开发工具都支持这种Cancel功能,但是不是总能顺利的完成,最近遇到一次:

 

有个兄弟找我说,有个存储过程好像被锁定了,是在执行的时候发现错误,强行中止,但却无法再打开存储过程进入编译状态,我们用的是share server模式,以前有遇到类似的情况,一般通过查询v$access可以确定sid,再找到v$session进行alter system kill,但是多数时候这是没有办法成功的,session只是被标记成KILLED状态,其实后台的进程还在执行,如果你开始没有注意你kill的session的process信息,你此时可能会手足无措,因为被标记为KILLED状态的session已经不再对应kill前的pid了,所以你想用操作系统的kill命令可能都找不到对象,最后,在v$shared_server中找到了线索,s003一直处于EXEC状态,其对应的pid也没有找到相应的session,而且我们的OLTP系统一般是不会执行长操作的,所以定位到s003,于是到操作系统中使用kill -9 pid命令,问题解决。

 

以上个人经历分享,给大家参考。

kill system session(解决oracle死锁)

  • 2011年12月18日 14:49
  • 225B
  • 下载

oracle kill session

  • 2012年01月06日 16:36
  • 57B
  • 下载

ora-00031:session marked for kill处理oracle中杀不掉的锁

一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀...

oracle kill session.delete 600w(1.25G)数据 1个多小时无结果

mx表中数据太多,查询变慢,备份去年2011年的,然后将2011年数据删掉。  delete from t_busi_presend_mx where cjsj 这个语句,执行1个多小时了,没有反...

Oracle 彻底 kill session

kill session 是DBA经常碰到的事情之一。如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生。同时也应当注意,如果kill 的session属于...

[Oracle] Kill Session 经验总结

在Oracle的日常维护中,经常出现以下两种情况需要我们DBA kill session: 1. App抱怨他们的应用hang住了,在数据库里查询得知他们的session被其它session blo...

Oracle的KILL锁表及清楚session方法

一、处理过程      1.通过查找出已被锁定的数据库表及相关的sid、serial#及spid:        select object_name as 对象名称,s.sid,s.serial#,...

Oracle的KILL锁表及清除session方法

一、处理过程       1.通过查找出已被锁定的数据库表及相关的sid、serial#及spid:         select object_name as 对象名称,s.sid,s.seri...

Oracle中Kill session的研究

转载于 http://www.cngr.cn/article/57/111/2006/200604065534_4.shtml    我们知道,在Oracle数据库中,可以通过kill sessi...
  • zgmzyr
  • zgmzyr
  • 2011年11月22日 12:46
  • 353

Oracle kill session详解

kill session 是DBA经常碰到的事情之一。如果kill掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生。同时也应当注意, 如果kill 的session属...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:定位Oracle kill命令未实际中断的Session/Process
举报原因:
原因补充:

(最多只允许输入30个字)