数据库10.10.17.2 数据库10.10.17.3 10.10.17.2 SQL> create database link DBL_JUNE connect to test identified by test using 'june'; 数据库链接已创建。 SQL> update t100 set id=999 where id=3; 已更新16行。 SQL> update test.t100@dbl_june set id=999 where id=3; 已更新57行。 断开10.10.17.3的网络 此时提交事务会挂起 SQL> commit; 此时执行commit 被挂起,这个时候如果网络恢复则问题会自动解决。 在10.10.17.2上执行了一个shutdown abort SQL> col local_tran_id format a13 SQL> col global_tran_id format a30 SQL> col state format a8 SQL> col mixed format a3 SQL> col host format a10 SQL> col commit# format a10 SQL> select local_tran_id, global_tran_id, state, mixed, host, commit# from dba_2pc_pending; LOCAL_TRAN_ID GLOBAL_TRAN_ID STATE MIX HOST COMMIT# ------------- ------------------------------ -------- --- ---------- ---------- 6.23.9753 JUNE.418501c2.6.23.9753 prepared no june2 7118994 SQL> select local_tran_id, in_out, database, dbuser_owner, interface from dba_2pc_neighbors; LOCAL_TRAN_ID IN_ DATABASE DBUSER_OWNER INTERFACE ------------- --- ---------- ------------------------------ -------------------- 6.23.9753 in TEST N 6.23.9753 out DBL_JUNE TEST C ERROR: ORA-01591: 锁被未决分布式事务处理 6.23.9753 持有 已选择720行。 SQL> l 1* select * from t100 在10.10.17.2上执行 SQL> conn / as sysdba 已连接。 SQL> rollback force '6.23.9753"; ERROR: ORA-01756: 引号内的字符串没有正确结束 SQL> rollback force '6.23.9753'; 回退已完成。 SQL> conn test/test 已连接。 SQL> select count(*) from t100; COUNT(*) ---------- 1600000 数据库10.10.17.2 数据库10.10.17.3 10.10.17.2 SQL&