Oracle 锁表及解决办法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--查看哪些表被锁住了
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;

--查询引起死锁的会话
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;

--查出sid和serial#
SELECT SID, SERIAL#, PADDR FROM V$SESSION WHERE SID = 对应的SID;

--查v$process视图,得到spid
SELECT SPID FROM V$PROCESS WHERE ADDR = '对应的ADDR';

--杀死进程(sid,serial#)
ALTER SYSTEM KILL SESSION '对应的SID,对应的serial#';