处理Oracle的分布式事务故障

最近两天生产数据库一直在报ORA-24756错误,查了MOS上的文档,看到一篇类似的,说是BUG(Bug 19201866 - RECO reports ORA-24756 repeatedly into trace file (文档 ID 19201866.8)),但是HP-UX上的11.2.0.4没有解决需要升级到12.2版本,文档中还说重启实例也可以解决,但是不现实。

于是查报错时的trace文件都是如下的内容

*** 2017-02-04 09:17:56.058
ERROR, tran=42.13.2709343, ose=0:
ORA-24756:
......

看到tran=42.13.2709343,印象中是分布式事务,于是查DBA_2PC_PENDINGS视图

[email protected]> COL LOCAL_TRAN_ID FORMAT A13
[email protected]> COL GLOBAL_TRAN_ID FORMAT A90
[email protected]> COL STATE FORMAT A10
[email protected]> COL MIXED FORMAT A3
[email protected]> COL HOST FORMAT A10
[email protected]> COL COMMIT# FORMAT A15
[email protected]> SET LINESIZE 240
[email protected]> SELECT LOCAL_TRAN_ID, GLOBAL_TRAN_ID, STATE,FAIL_TIME,FORCE_TIME,RETRY_TIME, MIXED, HOST, COMMIT#
  2     FROM DBA_2PC_PENDING
  3  /

LOCAL_TRAN_ID GLOBAL_TRAN_ID                                                                             STATE      FAIL_TIME         FORCE_TIME        RETRY_TIME        MIX HOST       COMMIT#
------------- ------------------------------------------------------------------------------------------ ---------- ----------------- ----------------- ----------------- --- ---------- ---------------
42.13.2709343 1096044365.31302E3235352E3233322E32332E746D313438363137313036383638333230333633            collecting 20170204 09:17:55                   20170206 01:12:41 no  bosbpm4s   764631398601

看到LOCAL_TRAN_ID和trace文件中的tran一致,刚开始的设想是正确的。其中FAIL_TIME是20170204 09:17:55对应到后台的alert日志中,看到这个时间前后的报错信息

Sat Feb 04 09:17:50 2017
Error 22 trapped in 2PC on transaction 42.13.2709343. Cleaning up.
Error stack returned to user:
ORA-02050: transaction 42.13.2709343 rolled back, some remote DBs may be in-doubt
ORA-00022: invalid session ID; access denied
ORA-02063: preceding line from LINK_DB2
Sat Feb 04 09:17:56 2017
DISTRIB TRAN 41544f4d.31302E3235352E3233322E32332E746D313438363137313036383638333230333633
  is local tran 42.13.2709343 (hex=2a.0d.29575f)
  insert pending collecting tran, scn=764631398601 (hex=b2.079538c9)
Sat Feb 04 09:17:56 2017
Errors in file /oracle11g/app/oracle/diag/rdbms/db1/db1/trace/db1_reco_23402.trc:
ORA-24756:

这种分布式事务故障可能会锁定数据导致其他事务报ORA-01591报错或者一直占用UNDO段不能被别的事务重用。需要手工处理这种故障。

[email protected]> EXECUTE DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY(‘42.13.2709343‘);

PL/SQL procedure successfully completed.

[email protected]> commit;

Commit complete.

[email protected]> SELECT LOCAL_TRAN_ID, GLOBAL_TRAN_ID, STATE,FAIL_TIME,FORCE_TIME,RETRY_TIME, MIXED, HOST, COMMIT#
  2     FROM DBA_2PC_PENDING
  3  /

no rows selected

清理完毕。

管理分布式事务的官方文档:http://docs.oracle.com/cd/E11882_01/server.112/e25494/ds_txnman.htm#ADMIN12252

MOS文档:How to Purge a Distributed Transaction from a Database (文档 ID 159377.1) ORA-30019 When Executing Dbms_transaction.Purge_lost_db_entry (文档 ID 290405.1)

时间: 2024-10-12 20:29:58

处理Oracle的分布式事务故障的相关文章

浅述Oracle分布式事务概念

着系统的复杂性不断增加,我们所面对的分布式系统渐渐增加.分布式文件系统.分布式消息队列系统等等层出不穷,在一些行业特别是互联网行业应用广泛.分布式数据库也是目前使用比较常用的分布式系统之一. 简单来说,分布式数据库就是通过多个相互连接的数据库节点(注意不是Instance),来支持前端系统数据访问需要的数据库组织结构.各个节点之间相互独立.自我管理(site autonomy).分布式数据库系统追求的主要目标包括:可用性(availability).准确性(accuray).一致性(concur

Oracle直方图的详细解析(转)

Oracle直方图解析 一.    何谓直方图: 直方图是一种统计学上的工具,并非Oracle专有.通常用于对被管理对象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图.比如下图所示,是一个以关学生化学考试成绩分数分布情况绘制的直方图:              二.       Oracle中

ora-01591:锁被未分布式事物处理/Distrib tran

伴随报错内容:         Distrib tran xxx.xxx.xx.x.xxxx          1.使用Oracle DBA用户,查询如下数据字典:select * from dba_2pc_pending 2.强制Rollback或者Commit该事务: select 'commit force '''|| local_tran_id||''';' from dba_2pc_pending; select 'rollback force '''|| local_tran_id|

Oracle直方图的详细解析

yuanwen:http://blog.csdn.net/javacoffe/article/details/5578206 Oracle直方图解析 一.    何谓直方图: 直方图是一种统计学上的工具,并非Oracle专有.通常用于对被管理对象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图.

Yarn 详解

唐 清原, 咨询顾问 简介: 本文介绍了 Hadoop 自 0.23.0 版本后新的 map-reduce 框架(Yarn) 原理,优势,运作机制和配置方法等:着重介绍新的 yarn 框架相对于原框架的差异及改进:并通过 Demo 示例详细描述了在新的 yarn 框架下搭建和开发 hadoop 程序的方法. 读者通过本文中新旧 hadoop map-reduce 框架的对比,更能深刻理解新的 yarn 框架的技术原理和设计思想,文中的 Demo 代码经过微小修改即可用于用户基于 hadoop 新

Interview

下面的题是供大家查漏补缺用的,真正的把这些题搞懂了,才能"以不变应万变". 回答问题的时候能联系做过项目的例子是最好的,有的问题后面我已经补充联系到项目中的对应的案例了. 1.简述 private. protected. public. internal 修饰符的访问权限.  private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 当前程序集内可以访

linux中分区工具的使用

列出可用的磁盘设备 图形化磁盘管理功能工具:点击"应用程序"->"系统工具"->"磁盘"或执行命令gnome-disks 列出块设备 lsblk 创建分区使用: fdisk创建MBR分区,也支持GPT,对于一块硬盘,最多只能管理15分区 gdisk创建GPT分区 GNU parted高级分区操作(创建.复制.调整大小等等) partprobe-重新设置内存中的内核分区表版本 分区工具fdisk和gdisk fdisk /dev/sdb

.net面试题1[转载]

1.简述private.protected.public.internal修饰符的访问权限. private:私有成员,在类的内部才可以访问. protected:保护成员,该类内部和继承类中可以访问. public:公共成员,完全公开,没有访问限制. internal:当前程序集内可以访问. 2.ADO.NET中的五个主要对象 Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close以后还可以

Hadoop MapReduceV2(Yarn) 框架

Hadoop MapReduceV2(Yarn) 框架简介 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者可参考 Hadoop 官方简介.使用和学习过老 Hadoop 框架(0.20.0 及之前版本)的同仁应该很熟悉如下的原 MapReduce 框架图: 图 1.Hadoop 原 MapReduce 架构 从上图中可以清楚的看出原 MapRed