码迷,mamicode.com
首页 > 数据库 > 详细

【Oracle】Oracle解锁、Oracle锁表处理

时间:2017-11-02 14:26:20      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:锁定   哪些   where   too   方法   src   suse   convert   system   

1、查看哪些对象被锁

技术分享
select s.username,
       decode(l.type, ‘TM‘, ‘TABLE   LOCK‘, ‘TX‘, ‘ROW   LOCK‘, NULL) LOCK_LEVEL,
       o.owner,
       o.object_name,
       o.object_type,
       s.sid,
       s.serial#,
       s.terminal,
       s.machine,
       s.program,
       s.osuser
  from v$session s, v$lock l, dba_objects o
 where s.sid = l.sid
   and o.object_id = l.id1
   and s.username is not null;
技术分享

 

2、下面的语句用来杀死一个进程:

 alter system kill session ‘33,456‘; ---其中33,456分别是上面查询出的sid,serial#

 

3、再一次查询目前锁定的对象,若发现以上方法不能解除锁定的表,则用以下方法:

(1)执行下面的语句获得进程(线程)号:

select spid, osuser, s.program
  from v$session s, v$process p
 where s.paddr = p.addr
   and s.sid = 33;
---33是上面的sid

(2)在OS上kill掉这个进程

  Linux:

kill -9 3333 (3333为进程号)

  Windows(unix也适用)用orakill杀死线程,orakill是oracle提供的一个可执行命令,语法为:  orakill sid thread  

  sid:表示要杀死的进程属于的实例名  thread:是要杀掉的线程号,即第3步查询出的spid。  

  例:

c:>orakill orcl 3333

 

【Oracle】Oracle解锁、Oracle锁表处理

标签:锁定   哪些   where   too   方法   src   suse   convert   system   

原文地址:http://www.cnblogs.com/wj94/p/7771733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!