ORA-01591: lock held by in-doubt distributed transaction

同事想删除某个表的数据,但是一直报错,跟我说是锁。通过如下SQL查询,没有发现表锁相关会话:
SELECT ddl.owner AS 用户,
       ddl.name AS 对象,
       ddl.type AS 类型,
       vs.osuser AS os_user,
       vs.machine,
       vs.status,
       vs.program,
       vs.logon_time AS "LOGIN_TIME",
       vp.spid,
       'kill -9 ' || vp.spid AS os_kill,
       vs.sid,
       vs.serial#,
       'alter system kill session ''' || vs.sid || ',' || vs.serial# ||
       ''';' "ORACKE_KILL",
       vs.inst_id
  FROM dba_ddl_locks ddl, gv$session vs, gv$process vp
 WHERE ddl.session_id = vs.sid
   AND vs.paddr = vp.addr

但是我尝试删除去删除的时候,报出错误:ORA-01591: lock held by in-doubt distributed transaction.
意思大概是有一个分布式事务的会话把表锁了。

查询分布式事务相关视图:select * from dba_2pc_pending:
         select 'commit force '''|| local_tran_id||''';' from dba_2pc_pending;
select 'rollback force '''|| local_tran_id||''';' from dba_2pc_pending;


将执行commit force***, rollback force ***之后,可以正常删除






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8520577/viewspace-1969724/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8520577/viewspace-1969724/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值