六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 30|回复: 0

oracle锁表解除

[复制链接]

升级  73.33%

42

主题

42

主题

42

主题

秀才

Rank: 2

积分
160
 楼主| 发表于 2013-1-14 08:57:25 | 显示全部楼层 |阅读模式
--Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。
 
--锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
 
 
 
 
 --查看哪个表被锁
 
select b.owner,b.object_name,a.session_id,a.locked_modefrom v$locked_object a,dba_objects bwhere b.object_id = a.object_id;  
 
--查看是哪个session引起的
 
select b.username,b.sid,b.serial#,logon_timefrom v$locked_object a,v$session bwhere a.session_id = b.sid order by b.logon_time;  
 
执行命令:alter system kill session'1025,41';
 
其中1025为sid, 41为serial#.
 
锁表详情:
 

SELECT /*+ rule */ 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.osuserFROM v$session s,v$lock l,dba_objects oWHERE l.sid = s.sidAND l.id1 = o.object_id(+)AND s.username is NOT NULL  
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表