数据库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