随笔-13  评论-28  文章-63  trackbacks-0
1:先在oracle数据库中找到锁住的对象:
select xidusn, object_id, session_id, locked_mode from v$locked_object;

2:得到session_id。再根据session_id找到v$session对应的sid号和serial#:
select username,sid,serial# from v$session where sid=session_id;

3:用oracle的slq kill掉相关的session sql语句:
   alter system kill session 'sid,serial#';

4:如果不能kill掉,报ora-00031错:说明之前有kill过,这样找到这个进程spid slq语句:
   select pro.spid from v$session ses,v$process pro where ses.sid=129 and ses.paddr=pro.addr;

5:根据这个spid对应linux下的进程pid
   linux命令:
   ps -ef  | gre | 'ora' (找到所有ora开头的进程)

   kill  -9 (pid)

6:搞定收工。



   
posted on 2006-08-25 10:46 七匹狼 阅读(2439) 评论(3)  编辑  收藏 所属分类: oracle

评论:
# re: 在linux下kill oracle的死进程 2006-08-27 22:29 | 冰川
from v$locked_object;
-----------------------------

v$locked_object这是嘛东西?
是系统表?
  回复  更多评论
  
# re: 在linux下kill oracle的死进程 2006-08-27 23:07 | 七匹狼
是的。刘冰相!  回复  更多评论
  
# re: 在linux下kill oracle的死进程 2006-08-28 00:31 | 冰川
日啊
名字都被给你改了!  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: