当前位置: 首页 > wzjs >正文

vs 2008 建立网站网络服务提供商是指

vs 2008 建立网站,网络服务提供商是指,php ajax网站开发,土巴兔装修贵吗两阶段提交的目的 事务提交后,redo log和binlog都要持久化到磁盘,但是这两个过程都是独立的逻辑hi,可能出现半成功的状态,导致两份日志的逻辑不一致。 两阶段提交是为了解决redo log(InnoDB事务日志)与binlog(MySQL归档日志)的数…

两阶段提交的目的

事务提交后,redo log和binlog都要持久化到磁盘,但是这两个过程都是独立的逻辑hi,可能出现半成功的状态,导致两份日志的逻辑不一致。

两阶段提交是为了解决redo log(InnoDB事务日志)与binlog(MySQL归档日志)的数据一致性,确保:

事务提交后,两者要么都持久化要么都不持久化,避免因日志不全导致主从复制或数据恢复时出现不一致。

完整流程

阶段1:Prepare(准备阶段)

1.写redo log:事务执行修改操作,生成redo log,并写入日志文件,标记为Prepare状态(此时redo log已刷盘)。

2.内存记录状态:InnoDB存储引擎记录事务状态为Prepared,但不提交事务(数据未最终落盘生效)。

阶段2:commit(提交阶段)

1.写binlog:将事务操作写入binlog,并刷盘持久化(关键binlog必须成功刷盘,否则回滚)。

2.提交事务:InnoDB将redo log中的事务标记为commit状态(即更新redo log中的事务状态未提交),数据正式生效(数据页修改落盘)。

异常情况

binlog刷盘失败

场景描述

事务完成prepare阶段(redo log已刷盘),但commit阶段写入binlog时失败。

处理逻辑

1.立即回滚内存数据

        用undo log撤销内存中数据页的修改(恢复到事务前的旧值),确保用户看不到未提交的脏数据。

2.redo log的处理

        物理保留但逻辑失效:磁盘中的redo log文件(prepare状态)不删除,但标记未"无效"(之后会被新日志覆盖)

        崩溃恢复时校验:

        若数据库崩溃后重启,InnoDB扫描redo log时,发现prepare状态的事务,会检查对应的binlog是否存在: 

        若binlog不存在(未刷盘成功),则丢弃该redo log的应用(不执行数据恢复,相当于事务未提交)。

因为redo log是环形文件(默认 ib_logfile0/ib_logfile1 循环写入),当文件写满后,新日志会直接覆盖旧的无效的prepare的日志的物理空间,无需手动清理.

redo log刷盘失败

场景描述

事务在prepare阶段,因磁盘故障、IO错误等原因,导致redo log未成功刷盘

处理逻辑

事务会直接回滚:由于redo log未刷盘,InnoDB存储引擎无法通过日志恢复事务,因此直接放弃该事务:

        内存中的数据页修改通过undo log回滚(恢复旧值)

        事务标记未中止,不产生任何持久化的影响

binlog不会写入:因为prepare阶段未完成,不会进入commit阶段,binlog自然不会记录该事务。

若此时数据库崩溃:重启后 InnoDB 扫描磁盘 redo log,无该事务的 prepare 记录,这时候事务没有prepare记录并且redo log磁盘刷盘也是失败的,所以并不会进行事务的恢复,同时也保持了事务前的一致性。

 

        

 

http://www.dtcms.com/wzjs/137251.html

相关文章:

  • 企业网站策划应该怎么做网站推广如何做
  • 阿里巴巴运营工资大概多少北京网站seo技术厂家
  • 自己做网站上传视频免费网站收录网站推广
  • 网站如何转做app新闻源
  • 集团公司网站源码下载网络推广方法有几种
  • 导入表格数据做地图网站电脑培训班零基础
  • 网络科技有限公司网站中国数据统计网站
  • 网站必须做商标么免费的网页设计成品下载
  • 衡水 网站建设网站宣传文案范例
  • 网站改版的意义网页制作源代码
  • 有哪些网站建设公司龙华网站建设
  • 佛山制作手机网站seo资料
  • 个人免费网站注册comseo网站内部优化方案
  • 古色古香的网站模板2345网止导航
  • 潍坊做网站建设的公司自创网站
  • 网站建设网站排行谷歌海外广告投放推广
  • 泰安做网站建设的公司热点事件营销案例
  • 机关党建项目网站建设方案人民网舆情数据中心官网
  • 西城网站建设浩森宇特腾讯推广平台
  • 广安做网站seo1搬到哪里去了
  • 重庆网站制作招聘seo变现培训
  • 网站制作教程百度一下就知道手机版
  • 找谁做网站比较好东莞免费网站建设网络营销
  • 网站开发管理黑帽seo培训网
  • 企业网站开发流程什么是百度指数
  • java开发网站跟php开发网站区别渠道策略的四种方式
  • 用别人家网站做跳转淘宝流量助手平台
  • 网站及数据库怎么做后门南宁seo外包服务
  • 网站开发技术方法与路线seo课程培训
  • 万网注册域名做简单网站360指数官网