一、前言

我们提交一个事务,里面有多条sql,mysql是如何管理事务的呢?是如何做到其中一条sql执行失败,全部回滚的呢?

二、XA事务

XA协议是基于二阶段提交的一个具体实现,也是分为Prepare和Commit两个阶段。

Prepare阶段:TM(事务协调者)向所有RM(资源管理者)发送prepare指令,询问是否可以执行,RM返回可执行或不可执行。

Commit阶段:所有RM都返回可执行,则向所有RM发送commit指令。如果有一个RM返回不可执行,则向所有RM发送rollback指令。

三、MySQL如何实现 XA 规范

MySQL根据单机还是分布式集群分为内部XA和外部XA。

内部XA:也就是单机的情况下,binlog充当TM(事务协调者)的角色。一个事务过来,写入redo log日志和undo log日志。事务提交时,同时写入redo log和binlog,保证redo log和binlog一致。如果事务撤销,则根据undo log进行撤销。

外部XA:分布式集群的情况下,一般用数据库代理层来充当TM的角色,实现对事务的支持。

mysql xa 使用_MySQL如何实现 XA 规范相关推荐

  1. mysql 数据库设计规范_MySQL 数据库设计初步规范V1.0

    数据库设计规范: 1,表设计规范 1.1关于表设计 a)         表名.列名必须有注释. b)         命名应使用富有意义的英文词汇或者缩写,多个单词组成的,全部大写,以"_ ...

  2. mysql复数记录_mysql 数据库设计查询规范

    (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是unsigned. ...

  3. mysql xa 演示_mysql的XA事务恢复过程详解

    mysql数据库开机报错: InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequenc ...

  4. mysql xid原理_MySQL数据库分布式事务XA实现原理分析

    [IT168 技术]MySQL XA原理 MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布 ...

  5. mysql xa 实现_MySQL数据库分布式事务XA的实现原理分析

    1 原理 关于MySQL数据库的分布式事务XA,分布式事务实现的原理,可见[3];关于MySQL XA的说明,可见[1][2]. MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨 ...

  6. MySQL高级特性之分布式(XA)事务的介绍

    文章目录 分布式(XA) 事务 1.内部XA事务 2.外部XA事务 这一部分是 高性能MySQL(第3版)中第七章第11节内容:关于MySQL高级特性之分布式(XA)事务的介绍,(不感兴趣的可以忽略) ...

  7. jdbc版本低MySQL版本高_Mysql JDBC驱动版本与Mysql版本的对应问题解决

    好长时间不用Mysql了, 昨天朋友有一个小项目在我的机器上跑的一点问题都没有, 到他的机器上却是报服务器内部错误(500), 用QQ上远程协助(太慢 好长时间不用Mysql了, 昨天朋友有一个小项目 ...

  8. mysql数据库设计规范_MYSQL数据库设计规范与原则

    MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...

  9. mysql 数据库设计规范_MYSQL数据库设计规范与原则

    MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...

最新文章

  1. Linux socket 流模式(STREAM)跟数据报模式(DGRAM)的区别
  2. 游戏服务器正式发布时动态库处理的两种策略
  3. 给微软的日志框架写一个基于委托的日志提供者
  4. linux-ubuntu txt乱码
  5. Spring Boot中扩展XML请求和响应的支持
  6. AcWing(状态机模型) 1049. 大盗阿福
  7. JavaScript 字符串函数
  8. expect+shell脚本实现免密登录
  9. 线性代数 矩阵 知识技巧思维导图 [21考研上岸之旅]
  10. 网络规划设计师教程第二版目录
  11. 网络安全实验室|网络信息安全攻防学习平台(基础关1-12)
  12. 【Python Programe】使用Python发送语音验证
  13. nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
  14. 考研数学数学二有手就行系列之多元函数微分学(六)
  15. 非共识与小趋势——复盘罗辑思维7年演化之路
  16. C++QT13位时间戳转换成年月日时分秒毫秒
  17. MATLAB中图像邻域处理
  18. 【自学笔记】前端面试题之CSS(部分HTML)
  19. PHPMailer远程命令执行漏洞复现
  20. 为什么要升级BIOS呢?(1)

热门文章

  1. 将View兑换Bitmap
  2. Flex与.NET互操作(十六):FluorineFx + Flex视频聊天室案例开发
  3. JavaScript之实例练习(模态对话框详解)
  4. keil5图标变成白色_平面设计:创建万圣节图标
  5. Python获取本机所有网卡的MAC地址
  6. apt-get install php5-redis,Ubuntu14-04安装redis和php5-redis扩展
  7. r语言clind函数_R 语言学习笔记 1
  8. 序列化与反序列化_分布式系统基础之序列化和反序列化
  9. dom文档对象手册_编程小白网页学习笔记之文档对象模型(DOM)
  10. JVM Java内存区域 与 内存溢出 (系列号1)