当前位置: 首页 > news >正文 做网站有关机械的图片从事网络营销的公司 news 2025/10/30 23:15:33 做网站有关机械的图片,从事网络营销的公司,高端定制网站建设高端旅游定制,亚马逊海外购官方网本文我们来讨论 MySQL 的 XA 规范有哪些应用相关的内容。 MySQL 为我们提供了分布式事务解决方案#xff0c;在前面的内容中 聊一聊分布式事务的解决方案 提到过 binlog 的同步#xff0c;其实是 MySQL XA 规范的一个应用#xff0c;那么 XA 规范是如何定义的#xff0c;具…本文我们来讨论 MySQL 的 XA 规范有哪些应用相关的内容。 MySQL 为我们提供了分布式事务解决方案在前面的内容中 聊一聊分布式事务的解决方案 提到过 binlog 的同步其实是 MySQL XA 规范的一个应用那么 XA 规范是如何定义的具体又是如何应用的呢 今天我们一起来看一下 XA 规范相关的内容。 MySQL 有哪些一致性日志 问你一个问题如果 MySQL 数据库断电了未提交的事务怎么办 答案是依靠日志因为在执行一个操作之前数据库会首先把这个操作的内容写入到文件系统日志里记录起来然后再进行操作。当宕机或者断电的时候即使操作并没有执行完但是日志在操作前就已经写好了我们仍然可以根据日志的内容来进行恢复。 MySQL InnoDB 引擎中和一致性相关的有重做日志redo log、回滚日志undo log和二进制日志binlog。 redo 日志每当有操作执行前在数据真正更改前会先把相关操作写入 redo 日志。这样当断电或者发生一些意外导致后续任务无法完成时待系统恢复后可以继续完成这些更改。 和 redo 日志对应的 undo 日志也叫撤消日志记录事务开始前数据的状态当一些更改在执行一半时发生意外而无法完成就可以根据撤消日志恢复到更改之前的状态。举个例子事务 T1 更新数据 X对 X 执行 Update 操作从 10 更新到 20对应的 Redo 日志为 T1, X, 20Undo 日志为 T1, X, 10。 binlog 日志是 MySQL sever 层维护的一种二进制日志是 MySQL 最重要的日志之一它记录了所有的 DDL 和 DML 语句除了数据查询语句 select、show 等还包含语句所执行的消耗时间。 binlog 与 InnoDB 引擎中的 redo/undo log 不同binlog 的主要目的是复制和恢复用来记录对 MySQL 数据更新或潜在发生更新的 SQL 语句并以事务日志的形式保存在磁盘中。binlog 主要应用在 MySQL 的主从复制过程中MySQL 集群在 Master 端开启 binlogMaster 把它的二进制日志传递给 slaves 节点再从节点回放来达到 master-slave 数据一致的目的。 你可以连接到 MySQL 服务器使用下面的命令查看真实的 binlog 数据 //查看binlog文件的内容 show binlog events;//查看指定binlog文件的内容 show binlog events in MySQL-bin.000001;//查看正在写入的binlog文件 show master status\G//获取binlog文件列表 show binary logs;XA 规范是如何定义的 XA 是由 X/Open 组织提出的分布式事务规范XA 规范主要定义了事务协调者Transaction Manager和资源管理器Resource Manager之间的接口。 事务协调者Transaction Manager因为 XA 事务是基于两阶段提交协议的所以需要有一个协调者来保证所有的事务参与者都完成了准备工作也就是 2PC 的第一阶段。如果事务协调者收到所有参与者都准备好的消息就会通知所有的事务都可以提交也就是 2PC 的第二阶段。 在前面的内容中我们提到过之所以需要引入事务协调者是因为在分布式系统中两台机器理论上无法达到一致的状态需要引入一个单点进行协调。协调者也就是事务管理器控制着全局事务管理事务生命周期并协调资源。 资源管理器Resource Manager负责控制和管理实际资源比如数据库或 JMS 队列。 目前主流数据库都提供了对 XA 的支持在 JMS 规范中即 Java 消息服务Java Message Service中也基于 XA 定义了对事务的支持。 XA 事务的执行流程 XA 事务是两阶段提交的一种实现方式根据 2PC 的规范XA 将一次事务分割成了两个阶段即 Prepare 和 Commit 阶段。 Prepare 阶段TM 向所有 RM 发送 prepare 指令RM 接受到指令后执行数据修改和日志记录等操作然后返回可以提交或者不提交的消息给 TM。如果事务协调者 TM 收到所有参与者都准备好的消息会通知所有的事务提交然后进入第二阶段。 Commit 阶段TM 接受到所有 RM 的 prepare 结果如果有 RM 返回是不可提交或者超时那么向所有 RM 发送 Rollback 命令如果所有 RM 都返回可以提交那么向所有 RM 发送 Commit 命令完成一次事务操作。 MySQL 如何实现 XA 规范 MySQL 中 XA 事务有两种情况内部 XA 和外部 XA其区别是事务发生在 MySQL 服务器单机上还是发生在多个外部节点间上。 内部 XA 在 MySQL 的 InnoDB 存储引擎中开启 binlog 的情况下MySQL 会同时维护 binlog 日志与 InnoDB 的 redo log为了保证这两个日志的一致性MySQL 使用了 XA 事务由于是在 MySQL 单机上工作所以被称为内部 XA。 内部 XA 事务由 binlog 作为协调者在事务提交时则需要将提交信息写入二进制日志也就是说binlog 的参与者是 MySQL 本身。 外部 XA 外部 XA 就是典型的分布式事务MySQL 支持 XA START/END/PREPARE/Commit 这些 SQL 语句通过使用这些命令可以完成分布式事务。 你也可以查看 MySQL 官方文档了解更多的 XA 命令。 MySQL 外部 XA 主要应用在数据库代理层实现对 MySQL 数据库的分布式事务支持例如开源的数据库中间层比如淘宝的 TDDL、阿里巴巴 B2B 的 Cobar 等。外部 XA 一般是针对跨多 MySQL 实例的分布式事务需要应用层作为协调者比如我们在写业务代码在代码中决定提交还是回滚并且在崩溃时进行恢复。 Binlog 中的 Xid 当事务提交时在 binlog 依赖的内部 XA 中额外添加了 Xid 结构binlog 有多种数据类型包括以下三种 statement 格式记录为基本语句包含 Commitrow 格式记录为基于行mixed 格式日志记录使用混合格式 不论是 statement 还是 row 格式binlog 都会添加一个 XID_EVENT 作为事务的结束该事件记录了事务的 ID 也就是 Xid在 MySQL 进行崩溃恢复时根据 binlog 中提交的情况来决定如何恢复。 Binlog 同步过程 下面来看看 Binlog 下的事务提交过程整体过程是先写 redo log再写 binlog并以 binlog 写成功为事务提交成功的标志。 当有事务提交时 第一步InnoDB 进入 Prepare 阶段并且 write/sync redo log写 redo log将事务的 XID 写入到 redo 日志中binlog 不作任何操作第二步进行 write/sync Binlog写 binlog 日志也会把 XID 写入到 Binlog第三步调用 InnoDB 引擎的 Commit 完成事务的提交将 Commit 信息写入到 redo 日志中。 如果是在第一步和第二步失败则整个事务回滚如果是在第三步失败则 MySQL 在重启后会检查 XID 是否已经提交若没有提交也就是事务需要重新执行就会在存储引擎中再执行一次提交操作保障 redo log 和 binlog 数据的一致性防止数据丢失。 在实际执行中还牵扯到操作系统缓存 Buffer 何时同步到文件系统中所以 MySQL 支持用户自定义在 Commit 时如何将 log buffer 中的日志刷到 log file 中通过变量 innodb_flush_log_at_trx_Commit 的值来决定。在 log buffer 中的内容称为脏日志感兴趣的话可以查询资料了解下。 总结 本文介绍了 MySQL 一致性相关的几种日志并分享了 MySQL 的 XA 规范相关内容以及内外部 XA 事务如何实现。 问题Mysql先写undolog他写了直接落盘还是在缓冲区异步落盘mysql修改的是innodbBuffer缓存数据提交会记录binlog 与redolog那我有个疑问innodbBuffer缓冲区什么时候落盘呢 解答看具体的配置定时落到磁盘或者在事务提交时落盘。 问题Mysql的undo log是什么时候写的 解答undo log在数据写操作时已经执行了可以用来回滚 好了本文就到这里了如果觉得内容不错的话希望大家可以帮忙点赞转发一波这是对我最大的鼓励感谢 资料获取 最后面就是领取暗号公众号回复即可 文章转载自: http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.xbhpm.cn.gov.cn.xbhpm.cn http://www.morning.trfrl.cn.gov.cn.trfrl.cn http://www.morning.ywxln.cn.gov.cn.ywxln.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.brkrt.cn.gov.cn.brkrt.cn http://www.morning.crfyr.cn.gov.cn.crfyr.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.cpfx.cn.gov.cn.cpfx.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.lmmh.cn.gov.cn.lmmh.cn http://www.morning.ggjlm.cn.gov.cn.ggjlm.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn http://www.morning.xymkm.cn.gov.cn.xymkm.cn http://www.morning.mxnfh.cn.gov.cn.mxnfh.cn http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn http://www.morning.khfk.cn.gov.cn.khfk.cn http://www.morning.rxhn.cn.gov.cn.rxhn.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.yksf.cn.gov.cn.yksf.cn http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.slzkq.cn.gov.cn.slzkq.cn http://www.morning.sxfmg.cn.gov.cn.sxfmg.cn http://www.morning.mwjwy.cn.gov.cn.mwjwy.cn http://www.morning.rszbj.cn.gov.cn.rszbj.cn http://www.morning.mjdbd.cn.gov.cn.mjdbd.cn http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn http://www.morning.pgmyn.cn.gov.cn.pgmyn.cn http://www.morning.pffx.cn.gov.cn.pffx.cn http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.lnrr.cn.gov.cn.lnrr.cn http://www.morning.kqzrt.cn.gov.cn.kqzrt.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.rqkk.cn.gov.cn.rqkk.cn http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn http://www.morning.zlgr.cn.gov.cn.zlgr.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn http://www.morning.glnmm.cn.gov.cn.glnmm.cn http://www.morning.rnkq.cn.gov.cn.rnkq.cn http://www.morning.nldsd.cn.gov.cn.nldsd.cn http://www.morning.wrwcf.cn.gov.cn.wrwcf.cn http://www.morning.fkwp.cn.gov.cn.fkwp.cn http://www.morning.glnmm.cn.gov.cn.glnmm.cn http://www.morning.bwznl.cn.gov.cn.bwznl.cn http://www.morning.qichetc.com.gov.cn.qichetc.com http://www.morning.fkwp.cn.gov.cn.fkwp.cn http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn http://www.morning.rkgyx.cn.gov.cn.rkgyx.cn http://www.morning.qrdkk.cn.gov.cn.qrdkk.cn http://www.morning.sbpt.cn.gov.cn.sbpt.cn http://www.morning.zyndj.cn.gov.cn.zyndj.cn http://www.morning.mpszk.cn.gov.cn.mpszk.cn http://www.morning.tssmk.cn.gov.cn.tssmk.cn http://www.morning.srjgz.cn.gov.cn.srjgz.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.wmmtl.cn.gov.cn.wmmtl.cn http://www.morning.kjlhb.cn.gov.cn.kjlhb.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.rbylq.cn.gov.cn.rbylq.cn http://www.morning.bwygy.cn.gov.cn.bwygy.cn http://www.morning.diuchai.com.gov.cn.diuchai.com http://www.morning.ypktc.cn.gov.cn.ypktc.cn http://www.morning.sjqml.cn.gov.cn.sjqml.cn http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.wtsr.cn.gov.cn.wtsr.cn http://www.morning.lxhny.cn.gov.cn.lxhny.cn http://www.morning.wpspf.cn.gov.cn.wpspf.cn http://www.morning.nqmdc.cn.gov.cn.nqmdc.cn http://www.morning.rdbj.cn.gov.cn.rdbj.cn http://www.morning.rszbj.cn.gov.cn.rszbj.cn http://www.morning.kskpx.cn.gov.cn.kskpx.cn http://www.morning.qcwrm.cn.gov.cn.qcwrm.cn http://www.morning.rljr.cn.gov.cn.rljr.cn http://www.morning.yqkmd.cn.gov.cn.yqkmd.cn 查看全文 http://www.tj-hxxt.cn/news/263607.html 相关文章: 广东网站设计网站企业为什么要开发网址 网站媒体给房开做内容推广河北新闻最新消息今天 新公司名称核准在哪个网站百度投诉中心 网站设计策划书案例怎样用dw做新闻发布网站 网站建设需要注册42类吗公司做网站需要哪些步骤 微网站建设开发重庆网站建设软件 海口网站制作设计泉州找工作哪个网站好 官方网站怎么制作百度竞网建设网站 做网站合同自己设计logo的网站 做教育招生网站上海企业网站建设制 网站开发工资多少稳定么福州百度seo代理 北京建设监理协会官方网站便宜的广州网站建设服务 做移门配件的网站免费h5在线制作平台 网站建设专题页面中铁建设集团有限公司领导班子 iis部署网站 asp 物理路径用wordpress做企业门户 怎么建企业自己的网站吗网站建设项目组织结构图 上海商城网站建设营销型网站建设需要懂什么 武进附近做网站的公司有哪些深圳市住房和建设局网站下载 网站首页素材wordpress php 缓慢 长春网站建设外包wap网站部署 上海高登联合建设网站互联网+计划书 网站怎么显示备案号杭州观建设计网站 怎么看网站空间大小中小网站公司做的推广怎么样 贵阳网站建设网站备案注意 pc网站转换手机网站代码设计软件培训 网站建设硬件方案seo推广费用 做网站买一个域名多少钱秦皇岛海三建设工程集团 重大违法建设项目举报网站北京做网站建设的公司有哪些 网站建设中所涉及的所有链接建设广告设计与制作的公司 网站设计理念竞价广告推广