ORA-01591: lock held by in-doubt…
2013-01-28 22:07
483 查看
总结:from 老白 http://www.oraclefans.cn/forum/showblog.jsp?rootid=7153
1、对于ORA-1591,一般来说是由于分布式事务失败引起的。强制提交或者回退分布式事务就可以解决问题
2、有些时候分布式事务自动的回退会失败,这样就会导致1591相关的表被锁住
3、这个时候分为两种情况,首先通过
SELECT KTUXEUSN, KTUXESLT, KTUXESQN,
KTUXESTA Status,
KTUXECFL Flags
FROM
x$ktuxe
WHERE
ktuxesta!='INACTIVE'
AND ktuxeusn in =108;
确认事务的状态,如果显示是:
KTUXEUSN
KTUXESLT KTUXESQN
STATUS
FLAGS
---------- ---------- ---------- ----------------
------------------------
108
28
46269
PREPARED
SCO|COL|REV|DEAD
说明事务需要回退或者提交。
此时如果DBA_2PC_PENDING中有该记录,但是状态不是PREPARED,那么就
UPDATE PENDING_TRANS$
SET
STATE='prepared',
STATUS ='P'
where local_tran_id='73.11.124822';
commit;
否则:
alter system disable distributed recovery;
insert into pending_trans$ (
LOCAL_TRAN_ID,
GLOBAL_TRAN_FMT,
GLOBAL_ORACLE_ID,
STATE,
STATUS,
SESSION_VECTOR,
RECO_VECTOR,
TYPE#,
FAIL_TIME,
RECO_TIME)
values(
'108.28.46269',
306206,
'XXXXXXX.12345.1.2.3',
'prepared','P',
hextoraw( '00000001' ),
hextoraw( '00000000' ),
0, sysdate, sysdate );
insert
into pending_sessions$
values(
'108.28.46269',
1, hextoraw('05004F003A1500000104'),
'C', 0, 30258592, '',
146
);
commit;
插入相关记录。
然后进行ROLLBACK FORCE
'TX-ID'或者COMMIT FORCE
'TX-ID'
如果ROLLBACK 不成功,可以尝试COMMIT
1、对于ORA-1591,一般来说是由于分布式事务失败引起的。强制提交或者回退分布式事务就可以解决问题
2、有些时候分布式事务自动的回退会失败,这样就会导致1591相关的表被锁住
3、这个时候分为两种情况,首先通过
SELECT KTUXEUSN, KTUXESLT, KTUXESQN,
KTUXESTA Status,
KTUXECFL Flags
FROM
x$ktuxe
WHERE
ktuxesta!='INACTIVE'
AND ktuxeusn in =108;
确认事务的状态,如果显示是:
KTUXEUSN
KTUXESLT KTUXESQN
STATUS
FLAGS
---------- ---------- ---------- ----------------
------------------------
108
28
46269
PREPARED
SCO|COL|REV|DEAD
说明事务需要回退或者提交。
此时如果DBA_2PC_PENDING中有该记录,但是状态不是PREPARED,那么就
UPDATE PENDING_TRANS$
SET
STATE='prepared',
STATUS ='P'
where local_tran_id='73.11.124822';
commit;
否则:
alter system disable distributed recovery;
insert into pending_trans$ (
LOCAL_TRAN_ID,
GLOBAL_TRAN_FMT,
GLOBAL_ORACLE_ID,
STATE,
STATUS,
SESSION_VECTOR,
RECO_VECTOR,
TYPE#,
FAIL_TIME,
RECO_TIME)
values(
'108.28.46269',
306206,
'XXXXXXX.12345.1.2.3',
'prepared','P',
hextoraw( '00000001' ),
hextoraw( '00000000' ),
0, sysdate, sysdate );
insert
into pending_sessions$
values(
'108.28.46269',
1, hextoraw('05004F003A1500000104'),
'C', 0, 30258592, '',
146
);
commit;
插入相关记录。
然后进行ROLLBACK FORCE
'TX-ID'或者COMMIT FORCE
'TX-ID'
如果ROLLBACK 不成功,可以尝试COMMIT
相关文章推荐
- ORA-01591: lock held by in-doubt distributed transaction问题解决
- ORA-01591: lock held by in-doubt distributed transaction 22.10.18863
- ORA-01591: lock held by in-doubt distributed transaction 以及分布式事务处理总结
- ORA-01591: lock held by in-doubt distributed transaction 以及分布式事务处理总结
- ORA-01591: lock held by in-doubt distributed transaction
- ORA-01591:lock held by in-doubt distributed transacation 解析
- ORA-01591: lock held by in-doubt distributed transaction
- ORA-01591: lock held by in-doubt distributed transaction
- oracle11g RAC GI ORA-15003: diskgroup "XXXX" already mounted in another lock name space
- undo表空间不足,ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
- 4000 ORA-16146: STANDBY DESTINATION C…
- Error is: '[Deployer:149164]The domain edit lock is owned by another session in exclusive mode - he
- ORA-01653: unable to extend table SYS.AUD$ by 128 in tablespace SYSTEM
- Address already in use: JVM_Bind
- Rfs[2]: no standby&nbs…
- ORA-600 [6006] ORA-600…
- 错误:ORA-28002: the …
- The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods install
- 查询结果按照 'in' 里面的数据排序:order by decode
- LXC in Ubuntu 12.04 LTS by Stéphane Graber