首页 > 编程知识 正文

阿里分布式事务,分布式事务管理

时间:2023-05-04 07:31:39 阅读:171451 作者:4322

由于事务操作的数据通常跨越多个物理节点,分布式数据库将类似的方案称为分布式事务。 TDSQL MySQL版支持常规分布式事务协议和XA分布式事务协议。 TDSQL MySQL版本(内核5.7或更高版本)在缺省情况下支持分布式事务,并且像独立事务一样对客户端透明和方便。 TDSQL MySQL版本的分布式事务使用两阶段提交算法(2PC )来保证事务的原子性和一致性),隔离级别为读、可读或可读

一般分布式事务begin; #打开事务. set之间的添加删除审核等非DDL操作commit; 提交事务XA分布式事务XA分布式事务是指实例之间的事务。

xa begin ' '; 打开#xa事务。 由于事务id是在系统内部生成的,因此会传递空字符串.使用非DDL操作select gtid (; #获取当前XA事务的id。 以下假设“xid' xa prepare 'xid”。 #准备事务xa commit/rollback 'xid '; #提交或回退事务的新事务接口select gtid () :获取当前分布式事务的全局唯一标识符。 如果为空,则事务不是分布式事务。

通常分布式事务标识符的形式为"网关id "-"代理随机值"-"序列号"-"时间戳"-"分区号",例如c 46535 Fe-B6-DD-595 db6b 8 XA分布式事务标识符的格式是“ex”-“网关id'-‘Proxy随机值”-“序列号”-“时间戳”-“分区号”。 例如是ex-c46535fe-b6-dd-595db6b8-25。 select gtid_state (当前分布式事务的全局唯一标识符) :用于在事务提交异常后,在缺省情况下3秒钟内获取事务的状态。 可能的结果如下

COMMIT :表示事务已提交或最终提交。 ABORT :表示事务最终将回滚。 空:事务处理的状态将在一个小时后清除,因此有以下两种可能性: 在一小时后执行查询会清除事务的状态,而在一小时内执行查询会最终回滚标识事务。 在xa boost ‘“当前分布式事务的全局唯一标识符”(普通事务提交(commit ) )发送异常后,事务将由后台组件自动提交或回退一段时间。 如果用户不想等待这样的时间,可以重复调用接口,以便系统可以快速提交或回滚事务。 接口返回事务的状态,即提交或回滚。

xa lockwait :显示当前分布式事务处理的等待关系。 用户可以使用dot工具将其转换为图像。

xa show :在proxy中显示当前活动的事务。

本文由博客一文多发平台OpenWrite发布!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。