阅读背景:

ORA-01591 锁被未决分布式事务处理

来源:互联网 
数据库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&



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: