現在有數據庫A,數據庫B,在數據庫A上創建dblink,通過dblink向數據庫B中插入數據,報如下錯誤:
ORA-02049: 超時: 分佈式事務處理等待鎖
問題原因分析:第一次執行操作後出錯,數據庫沒有提交或回退,未關閉原有數據庫窗口,重新打開新窗口執行數據插入操作,報ORA-02049錯誤
解決途徑:關閉所有數據庫窗口,重新打開數據庫後執行如下語句,
查看死鎖的進程
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;
將死鎖進程殺掉
ALTER SYSTEM KILL SESSION '537,5217';
重新執行數據插入操作,一切正常。