首页 > 数据库技术 > 详细

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

时间:2017-11-02 13:54:49      阅读:302      评论:0      收藏:0      [点我收藏+]

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锁表处理

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!