ORA-02049:oracle超時分散式事務處理等待鎖
阿新 • • 發佈:2022-04-01
查詢死鎖資訊
SELECT username,
lockwait,
status,
machine,
program
FROM v$session
WHERE sid IN (SELECT session_id FROM v$locked_object);
查詢被鎖的SQL語句
SELECT sql_text FROM v$sql WHERE hash_value IN (SELECT sql_hash_value FROM v$session WHERE sid IN (SELECT session_id FROM v$locked_object));
查詢被死鎖的程序
SELECT s.username, l.OBJECT_ID, l.SESSION_ID, s.SERIAL#, l.ORACLE_USERNAME, l.OS_USER_NAME, l.PROCESS FROM V$LOCKED_OBJECT l, V$SESSION S WHERE l.SESSION_ID = S.SID; --或者 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 L.SID = S.SID AND L.ID1 = O.OBJECT_ID(+) AND S.USERNAME IS NOT NULL;
根據實際情況決定是否kill
alter system kill session 'sid,serial#';