中易网

查看oracle锁的表名

答案:3  悬赏:0  
解决时间 2021-01-11 12:03
  • 提问者网友:沉默菋噵
  • 2021-01-10 16:22
查看oracle锁的表名
最佳答案
  • 二级知识专家网友:行雁书
  • 2021-01-10 16:41
查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id
查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time
全部回答
  • 1楼网友:北城痞子
  • 2021-01-10 19:07
SELECt S.SID SESSION_ID, S.USERNAME, DECODE(LMODE, 0 , ' None ' , 1 , ' Null ' , 2 , ' Row-S (SS) ' , 3 , ' Row-X (SX) ' , 4 , ' Share ' , 5 , ' S/Row-X (SSX) ' , 6 , ' Exclusive ' , TO_CHAr(LMODE)) MODE_HELD, DECODE(REQUEST, 0 , ' None ' , 1 , ' Null ' , 2 , ' Row-S (SS) ' , 3 , ' Row-X (SX) ' , 4 , ' Share ' , 5 , ' S/Row-X (SSX) ' , 6 , ' Exclusive ' , TO_CHAr(REQUEST)) MODE_REQUESTED, O.OWNER || ' . ' || O. OBJECT_NAME || ' ( ' || O.OBJECT_TYPE || ' ) ' , S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2
FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S
WHERe L.SID = S.SID AND L.ID1 = O. OBJECT_ID
执行上记SQL语句,可以查寻到数据库中的锁的情报.
SESSION_ID, USERNAME, MODE_HELD, MODE_REQUESTED, OBJECT_NAME, LOCK_TYPE, LOCK_ID
分别是 拥有锁的SESSION_ID,拥有锁的USERNAME,锁的执行模式MODE_HELD,锁的请求MODE_REQUESTED,锁所在的数据库对象名
,锁的类型,锁的ID
  • 2楼网友:街头电车
  • 2021-01-10 17:33
下面3个语句是我经常使用来解决oracle锁问题的 -- 注意你的用户有没有权限问题
1. 查看被锁的表
SELECt p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,
b.os_user_name
FROM v$process p, v$session a, v$locked_object b, all_objects c
WHERe p.addr = a.paddr AND a.process = b.process
AND c.object_id = b.object_id

2. 查看是哪个进程锁的
SELECt sid, serial#, username, osuser FROM v$session where osuser = 'tangpj'
3. 杀掉这个进程 alter system kill session 'sid,serial#';
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息