数据库系统级的,还是操作系统级的。如果是数据库系统级的用数据库系统命令:
alter system kill session ‘SID,pid’;
b、 找到这个SESSION所对应的spid
SELECT * FROM v$process WHERE addr = '上面查寻的paddr'; example:SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = '2B5E2E2C';ADDR PID SPID USERNAME SERIAL# TERMINAL-------- ---------- ------------ --------------- ---------- ----------------2B5E2E2C 44 1204 SYSTEM -99 JWC
c、 杀掉spid所标识的那个进程
D:>orakill sid spid (注:cmd命令窗口中执行 只有oracle服务器端才有orakill命令)
example: D:\>orakill oemrep(实例名,一般是orcl) 1204(spid号码,不是sid号码)
select spid, osuser, s.program from
v$process p, v$session s where p.addr=s.paddr
提示:KILL OF THREAD id 1204 IN INSTANCE oemrep successfully signalled.
结果:成功删除该SESSION,表也解锁
查看分布式事务锁:
show parameter distributed_LOCK_TIMEOUT
oracle/ldjybzx
–查死锁 kill -9 spid
Select A.sid, b.serial#, decode(A.Type,
'MR',
'Media Recovery',
'RT',
'Redo Thread',
'UN',
'User Name',
'TX',
'Transaction',
'TM',
'DML',
'UL',
'PL/SQL User Lock',
'DX',
'Distributed Xaction',
'CF',
'Control File',
'IS',
'Instance State',
'FS',
'File Set',
'IR',
'Instance Recovery',
'ST',
'Disk Space Transaction',
'TS',
'Temp Segment',
'IV',
'Library Cache Invalida-tion',
'LS',
'Log Start or Switch',
'RW',
'Row Wait',
'SQ',
'Sequence Number',
'TE',
'Extend Table',
'TT',
'Temp Table',
'Unknown') LockType, c.object_name,
---b.username,
---b.osuser,
decode(a.lmode,
0,
'None',
1,
'Null',
2,
'Row-S',
3,
'Row-X',
4,
'Share',
5,
'S/Row-X',
6,
'Exclusive',
'Unknown') LockMode, B.MACHINE, D.SPID
From v$lock a, v$session b, all_objects c, V$PROCESS D
Where a.sid = b.sid And a.Type In ('TM', 'TX') And c.object_id = a.id1 And
B.PADDR = D.ADDR
Show Disqus Comments