现在的位置: 首页 > 综合 > 正文

Oracle杀掉死锁进程

2013年09月08日 ⁄ 综合 ⁄ 共 513字 ⁄ 字号 评论关闭

用Oracle Sql Developer操作表的时候,不知咋的把表锁住了。

结果那张表一插数据就死,连truncate都不行。

 

从网上七拼八凑了个方法,终于把进程杀了,表也就解锁了。

 

首先要用dba级别的用户操作,因为要察看很多系统表。用普通用户操作的话,会提示表或者View不存在。(为什么不提示权限不够?害我总以为是版本问题)

 

然后找锁表的sid(session id),SERIAL#,PADDR

select * from v$lock ,dba_objects,v$session  where  object_id=v$lock.id1  and  v$lock.sid=v$session.sid

 

找spid

SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';

 

最后. 杀进程
(1).先杀ORACLE进程:

ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';


(2).再杀操作系统进程:KILL -9 刚才查出的SPID

ORAKILL 刚才查出的SID 刚才查出的SPID

 

注:貌似只要执行1就ok了

 

提示找不到spid。。。不管了,去看看锁住的表。能插数据了,解决。

 

 

 

抱歉!评论已关闭.