事务标识(xid)解析

本文介绍了Oracle数据库中事务标识XID的构成,包括USN、SLOT和SQN三部分,并提供了通过XID获取这些信息的方法。同时,讨论了在v$lock视图中如何利用id1和id2来标识事务,及其与XIDUSN、XIDSLOT和XIDSQN的关系。
摘要由CSDN通过智能技术生成

相关资料中说明事务标识的构成方式为xid=usn.slot.(sqn+1),这三部分组合起来唯一标识系统内的事务。

1,通过xid获取usn/slot/sqn方式如下:
注意:
*字节序问题;
*sqn没有+1

select xid,xidusn,xidslot,xidsqn from v$transaction;
0A001B0034DE0000 10 27 56884

with v as(select '08002A0071CA0000' xid from dual)
select to_number(substr(v.xid,3,2)||substr(v.xid,1,2),'xxxx') usn,
       to_number(substr(v.xid,7,2)||substr(v.xid,5,2),'xxxx') slot,
       to_number(substr(v.xid,15,6)||substr(v.xid,13,2)||substr(v.xid,11,2)||substr(v.xid,9,2),'xxxxxxxxxx') sqn
  from v;
USN SLOT SQN
10 27 56884

2,在v$lock中,使用id1/id2来标识事务。其中:id1的高四字节为回滚段号,低四字节为槽号,id2为序号,分别与v$transaction中XIDUSN, XIDSLOT, XIDSQN对应。
select sid,id1,id2 from v$lock where type='TX';
81 1572909 664

with v as (select 1572909 id1,664 id2 from dual)
sel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值