mysql xa 使用_MySQL如何实现 XA 规范
一、前言
我们提交一个事务,里面有多条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 规范相关推荐
- mysql 数据库设计规范_MySQL 数据库设计初步规范V1.0
数据库设计规范: 1,表设计规范 1.1关于表设计 a) 表名.列名必须有注释. b) 命名应使用富有意义的英文词汇或者缩写,多个单词组成的,全部大写,以"_ ...
- mysql复数记录_mysql 数据库设计查询规范
(一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是unsigned. ...
- mysql xa 演示_mysql的XA事务恢复过程详解
mysql数据库开机报错: InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequenc ...
- mysql xid原理_MySQL数据库分布式事务XA实现原理分析
[IT168 技术]MySQL XA原理 MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布 ...
- mysql xa 实现_MySQL数据库分布式事务XA的实现原理分析
1 原理 关于MySQL数据库的分布式事务XA,分布式事务实现的原理,可见[3];关于MySQL XA的说明,可见[1][2]. MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨 ...
- MySQL高级特性之分布式(XA)事务的介绍
文章目录 分布式(XA) 事务 1.内部XA事务 2.外部XA事务 这一部分是 高性能MySQL(第3版)中第七章第11节内容:关于MySQL高级特性之分布式(XA)事务的介绍,(不感兴趣的可以忽略) ...
- jdbc版本低MySQL版本高_Mysql JDBC驱动版本与Mysql版本的对应问题解决
好长时间不用Mysql了, 昨天朋友有一个小项目在我的机器上跑的一点问题都没有, 到他的机器上却是报服务器内部错误(500), 用QQ上远程协助(太慢 好长时间不用Mysql了, 昨天朋友有一个小项目 ...
- mysql数据库设计规范_MYSQL数据库设计规范与原则
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...
- mysql 数据库设计规范_MYSQL数据库设计规范与原则
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超过30个字符); 例如:user, stat ...
最新文章
- Linux socket 流模式(STREAM)跟数据报模式(DGRAM)的区别
- 游戏服务器正式发布时动态库处理的两种策略
- 给微软的日志框架写一个基于委托的日志提供者
- linux-ubuntu txt乱码
- Spring Boot中扩展XML请求和响应的支持
- AcWing(状态机模型) 1049. 大盗阿福
- JavaScript 字符串函数
- expect+shell脚本实现免密登录
- 线性代数 矩阵 知识技巧思维导图 [21考研上岸之旅]
- 网络规划设计师教程第二版目录
- 网络安全实验室|网络信息安全攻防学习平台(基础关1-12)
- 【Python Programe】使用Python发送语音验证
- nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
- 考研数学数学二有手就行系列之多元函数微分学(六)
- 非共识与小趋势——复盘罗辑思维7年演化之路
- C++QT13位时间戳转换成年月日时分秒毫秒
- MATLAB中图像邻域处理
- 【自学笔记】前端面试题之CSS(部分HTML)
- PHPMailer远程命令执行漏洞复现
- 为什么要升级BIOS呢?(1)
热门文章
- 将View兑换Bitmap
- Flex与.NET互操作(十六):FluorineFx + Flex视频聊天室案例开发
- JavaScript之实例练习(模态对话框详解)
- keil5图标变成白色_平面设计:创建万圣节图标
- Python获取本机所有网卡的MAC地址
- apt-get install php5-redis,Ubuntu14-04安装redis和php5-redis扩展
- r语言clind函数_R 语言学习笔记 1
- 序列化与反序列化_分布式系统基础之序列化和反序列化
- dom文档对象手册_编程小白网页学习笔记之文档对象模型(DOM)
- JVM Java内存区域 与 内存溢出 (系列号1)