在写pl/sql的时候,有个很重要的注意点;
比如:
begin
update 某个sqlserver的表@dblink名字 .....;
update 某个oracle的表...;
end;
这段pl/sql执行会报错:
错误信息是:
-----------------------------------------------------------------
执行失败:ORA-02054: 事务处理 2.12.27634 有问题
ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息:
[Oracle][ODBC SQL Server Driver][SQL Server]对象名 'RECOVER.HS_TRANSACTION_LOG' 无效。
ORA-02063: 紧接着 2 lines (起自 dblink名字)
-----------------------------------------------------------------
然后你执行:
select * from 某个sqlserver的表@dblink名字
这个没问题;
再执行:
select * from 某个oracle的表
完了!结果提示:
执行失败:ORA-01591: 锁被有问题的分布式事务处理 2.12.27634 持有
这时候,你查询:
SELECT * FROM DBA_2PC_PENDING
会发现,被锁的信息;
然后,你用
commit/rollback force '2.12.27634' ; 解锁;
当然这里的2.12.27634 是随机的。每次被锁,都是不同的值;
这个问题如何解决呢?
begin
update 某个sqlserver的表@dblink名字 .....;
commit; --非常重要;
update 某个oracle的表...;
end;
这样就OK了,原因我觉得是这样的:oracle内部其实是两块事务,一个是针对sqlserver,一个针对自己的oracle;
所以必须把两端的事务独立下来;
下面这个写法也是OK的:
begin
update 某个sqlserver的表@dblink名字 .....;
update 某个sqlserver的表@dblink名字 .....;
commit; --非常重要;
update 某个oracle的表...;
update 某个oracle的表...;
end;
ORA-01591 锁被有问题的分布式事务处理
转载自http://hi.baidu.com/graceyan/item/da33101a33e033f99d778aa8
相关推荐
在大规模的SOA(Service-Oriented Architecture,面向服务架构)系统中,分布式事务处理是一项至关重要的技术。这种架构通常涉及多个独立的服务协同工作,每个服务都可能有自己的数据存储,因此,确保这些服务之间的...
分布式事务处理是现代大型服务导向架构(SOA)系统中不可或缺的一部分,特别是在诸如支付宝这样的高并发、高可用性环境中。本讲义将深入探讨在Java环境下实现大规模SOA系统中的分布式事务处理的关键技术和挑战。 ...
本篇文章将详细探讨如何使用Redisson实现Redis分布式事务锁,以及在Spring Boot环境中如何进行集成。 首先,Redis作为一个内存数据库,其高速读写性能使其成为实现分布式锁的理想选择。分布式锁的主要作用是在多...
6. **分布式事务的挑战与解决方案**:包括网络延迟、单点故障、数据一致性等问题,常见的解决方案有故障恢复机制、超时重试策略、幂等性设计等。 7. **NoSQL数据库的分布式事务**:NoSQL数据库通常不支持ACID(原子...
分布式事务处理涉及到的技术包括但不限于两阶段提交协议(2PC)、三阶段提交协议(3PC)、柔性事务处理、分布式锁、补偿事务(TCC)、事件驱动架构等。这些技术各有优劣,适用于不同的应用场景。比如两阶段提交协议...
此外,分布式事务处理还涉及许多其他技术概念和实际问题,如分布式锁、故障恢复机制、服务降级、补偿事务(Saga模式)等。这些技术都是为了在分布式系统中实现高效、可靠和一致的事务处理而提出的解决方案。 ...
《LINQ to SQL 分布式事务处理》 在.NET框架中,LINQ(Language Integrated Query,语言集成查询)提供了一种强大的数据访问机制,而LINQ to SQL是它的一个子集,专门用于与SQL Server数据库进行交互。分布式事务...
#### 四、分布式事务处理挑战 在分布式环境中,事务处理面临更多的挑战,主要是因为分布式系统涉及跨多个节点的数据同步和一致性问题。 1. **一致性保证**:在分布式事务中,需要确保多个参与方的操作要么全部成功...
面试中,分布式锁、分布式事务和分布式缓存等概念是考察开发者技术能力的重要方面。下面将对这些主题进行详细阐述。 分布式锁是解决分布式环境下的资源争抢问题的关键工具。在单机系统中,锁的实现相对简单,但在...
介绍分布式事务的定义、原则和实现原则,介绍使用Spring框架实现分布式事务的几种方式,包括使用JTA、Spring事务同步、链式事务等,并通过实战介绍其实现。除此以外还介绍了一些分布式事务相关的技术,如幂等性、...
在Oracle数据库中,分布式事务处理可能会导致分布式锁的存在,这些锁如果不正确地处理,可能会引起系统的性能问题甚至阻塞。以下是对分布式锁处理步骤的详细解释: 第一步:检查是否存在分布式锁 通过执行SQL查询`...
1. 分布式事务的基础概念:学习分布式事务的定义、特点和常见的分布式事务类型,如基于2PC和基于最终一致性的事务处理模型。 2. Java中的分布式事务实践:探讨如何在Java应用中实现分布式事务,包括使用JTA(Java ...
然而,随着服务的解耦,分布式事务处理成为了一大挑战。本文将深入探讨在微服务架构下如何有效地处理分布式事务。 微服务架构的分布式事务处理主要涉及到ACID(原子性、一致性、隔离性和持久性)特性,这是传统...
在Oracle中,锁定机制主要分为共享锁(S锁)和独占锁(X锁),它们在事务处理中扮演着至关重要的角色。悲观锁策略是预先获取锁,防止其他事务对相同资源进行修改,以避免并发问题。 1. **悲观锁的概念**: 悲观锁...
### 分布式事务处理方案详解 #### 数据库事务的基本特性:ACID 在讨论分布式事务之前,我们首先回顾一下数据库事务的基本概念。数据库事务具备四大基本特性:原子性(Atomicity)、一致性(Consistency)、隔离性...
总的来说,腾讯云的DCDB通过提供高性能的分布式事务处理能力,解决了在大规模并发场景下保持数据一致性的难题。结合其提供的监控和管理工具,使得开发者在使用分布式数据库时,能够更加高效、安全地管理事务,保证...
在分布式事务中引入幂等性,可以显著降低事务处理的复杂性和风险。常见的分布式事务模型有两阶段提交(2PC)、三阶段提交(3PC)以及更现代的方案如Saga、TCC(Try-Confirm-Cancel)和基于事件驱动的架构。 1. 两...
在出现网络延迟或节点故障时,分布式事务处理系统需要有足够的容错机制来保证系统的稳定运行和数据的正确性。 分布式事务处理是一个复杂的过程,涉及的技术和细节非常丰富。对于系统设计者而言,理解分布式事务的...
分布式事务处理是一个复杂的领域,涉及到多个技术层面的挑战。无论是经典的XA协议还是更现代的TCC协议,都有各自的适用场景和限制。在选择合适的分布式事务解决方案时,需要综合考虑系统的具体需求和技术背景。随着...
从技术角度看,HBase分布式事务与SQL实现是一个复杂的话题,它涉及到分布式系统理论、事务处理机制、数据库设计和实际的应用场景等多个领域。理解和掌握这些知识点对于想要深入研究和使用HBase以及TiDB这类分布式...