ORA-02049: 超时: 分布式事务处理等待锁 问题的解决【转】


现在有数据库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';

重新执行数据插入操作,一切正常。
————————————————
版权声明:本文为CSDN博主「afei3418」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/afei3418/article/details/50380712/

posted @ 2019-09-17 21:08  zhongzone  阅读(2387)  评论(0)    收藏  举报