ORA-02050故障诊断一例

转http://www.cnblogs.com/svennee/p/4083359.html

昨天客户反映说在下午某时间段有几个事务失败了,让我查下当时数据库系统的负载是否正常,看了下CPU的历史负载,很正常,于是看了下日志发现有几个timeout错误和一个ORA-02050错误。
Tue Feb 15 20:44:05 2011

Error 1013 trapped in 2PC on transaction 199.40.297416. Cleaning up.

Tue Feb 15 20:44:56 2011

Error stack returned to user:

ORA-02050: transaction 199.40.297416 rolled back, some remote DBs may be in-doubt

ORA-01013: user requested cancel of current operation

这个是分布式事务处理出错的提示,根据提示可知,可能是由于远程的数据库处理失败,导致事务号为199.40.297416的事务失败而回滚。原因可能是网络,也可能是远程节点的连接超时或是人为kill等。

Oracle给出的解释是:
Error: ORA 2050

Text: transaction <num> rolled back, some remote DBs may be in-doubt

-------------------------------------------------------------------------------

Cause:There was a network failure or a remote failure during the two-phase commit.

Action:Notify the database administrator.

The remote databases will automatically resynchronize when the failure is repaired.

大致意思为:一种可能为网络失败,另外一种是事务在两个阶段commit时,远程节点操作不成功,这时,它会记在dba_2pc_pending
中,reco进程后续会自动尝试去继续完成这个事务。但如果能确定这个节点段时间内不能完成,可能就需要人工处理这个pending
transaction了。

查询数据字典dba_2pc_pending和dba_2pc_neighbors均无任何记录,说明事务已经自动被恢复了。

附录:
dba_2pc_pending describes distributed transactions awaiting recovery.

dba_2pc_neighbors describes incoming and outgoing connections for pending transactions.

在我这个例子中,由于事务已经被自动恢复,所以无需人工干预,如果没有自动恢复的话,可以通过如下语句处理:

强制提交或回滚:
SQL>commit force ‘199.40.297416‘;


SQL>rollback force ‘199.40.297416‘;

如果事务的状态为collecting,则不需要commit/rollback force,可这样处理,如下:

1、disable分布式恢复
SQL>alter system disable distributed recovery;

2、purge in-doubt transaction entry
SQL>exec dbms_transaction.purge_lost_db_entry(‘199.40.297416‘);

3、最后enable分布式恢复
SQL>alter system enable distributed recovery;

时间: 2024-08-05 17:29:09

ORA-02050故障诊断一例的相关文章

tnsnames.ora配置小结

oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin文件夹下. 1.  sqlnet.ora-–作用类似于linux或者其它unix的nsswitch.conf文件.通过这个文件来决定怎么样找一个连接中出现的连接字符串. 比如我们client输入 sqlplus sys/[email protected] 假如我的sqlnet.ora是以下这个样子 SQLNET.AUTHENT

利用ADO让普通人用excel读取oracle数据库表的通用办法

Ref:http://blog.csdn.net/iamlaosong/article/details/8465177 Excel通过ADO方式连接到Oracle并操作Oracle给那些编程能力不强的人带来很大的福音,结合着Excel的数据处理与图表制作,就能很轻松地处理一些常规工作. 日常工作中需要查询各种数据,而且不断变化,处理这些数据的人不是技术人员,不会连接数据库自己查询,通过下面的办法就可以让技术人员编辑好包含查询语句的excel文件,让管理人员自己输入条件取数了. 我的方法是编辑需要

hbase官方文档(转)

Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Software Foundation.保留所有权利. Apache Hadoop, Hadoop, MapReduce, HDFS, Zookeeper, HBase 及 HBase项目 logo 是Apache Software Foundation的商标. Revision History Revision 0.95-SNAPSHOT 2012-12-03T13:38 中文版

oracle12c安装,连接,使用等

1.  oracle12c的安装 参照如下链接: http://jingyan.baidu.com/article/f96699bbab21c0894e3c1bf8.html 2. 连接数据库时,出现ORA-12514错误. 解决方案参考如下链接: http://blog.sina.com.cn/s/blog_6f7b73770101b6l5.html 1)确保Oracle 基本服务都已启动 OracleDBConsoleorcl OracleOraDb11g_home1TNSListener

CRS

CRS是集群就绪服务(cluster ready service)的简称,主要负责集群中的资源管理以及OCR管理.为了与10gR2集群管理软件名称crs区分,这里用CRSD代替CRS.相关概念:--资源:集群所管理的程序实体或者守护进程:--OCR(Oracle Cluster Register):OCR实际上是一个包含了所有信息的注册表,CRSD通过访问OCR来获得集群资源的列表,以及每个资源的属性.1.在2个节点的RAC环境中,从节点1上关闭节点2的监听 su - grid srvctl s

基于PaddlePaddle的新能源充电桩智能运维

随着大数据.人工智能.云计算技术的日渐成熟和飞速发展,传统的运维技术和解决方案已经不能满足需求,智能运维已成为运维的热点领域.同时,为了满足大流量.用户高质量体验和用户分布地域广的互联网应用场景,大型分布式系统的部署方式也成为了高效运维的必然之选.如何提升运维的能力和效率,是保障业务高可用所面临的最大挑战.本篇文章以百度基于PaddlePaddle的新能源充电桩为切入点,深入介绍智能运维在电力行业的实际应用. 以下为演讲实录. 电力行业运维过程中的痛点与机遇 众所周知,典型电力行业包括发电.输电

Oracle AWR报告指标解析一例

啥是AWR? ===================================================================================================== AWR (Automatic Workload Repository) 一堆历史性能数据,放在SYSAUX表空间上, AWR和SYSAUX都是10g出现的,是Oracle调优的关键特性: 大约1999年左右开始开发,已经有15年历史 默认快照间隔1小时,10g保存7天.11g保存8

【Linux】搜集的一些故障诊断时常用命令

1.Last命令 linux last 命令介绍 功能说明:列出目前与过去登入系统的用户相关信息. 语 法:last [-adRx][-f <记录文件>][-n <显示列数>][帐号名称...][终端机编号...] 补充说明:单独执行last指令,它会读取位于/var/log目录下,名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来. 参 数: -a  把从何处登入系统的主机名称或IP地址,显示在最后一行. -d  将IP地址转换成主机名称. -f <

oracle instant client,tnsping,tnsnames.ora和ORACLE_HOME

前段时间要远程连接oracle数据库,但是又不想在自己电脑上完整安装oracle客户端,于是到oracle官网下载了轻量级客户端instant client.这玩意没有图形界面,全靠sqlplus远程连接服务器,所以不占地方,正好满足我这种追求"简单就好"的强迫症患者需求. 但是呢,可能是服务器那边没开监听端口,我在自己的机子上尝试了各种配置,包括tnsnames.ora,sqlnet.ora等,远程连接均告失败.为了排查问题,我先ping了一下服务器的外网地址,发现没问题.网上说,光