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

网站备案全国合作拍照点免费最好网站建设

网站备案全国合作拍照点,免费最好网站建设,管理员怎么看网站在线留言,wordpress被恶意登录书接上一篇文章,MySQL通过不同的策略来保证事务的ACID:原子性、一致性、隔离性、持久性,通过锁机制实现隔离性,通过redoundobinlog三种日志实现事务的原子性、一致性和持久性。 本文主要讲MySQL的持久性的一个实现机制-两阶段提交…

    书接上一篇文章,MySQL通过不同的策略来保证事务的ACID:原子性、一致性、隔离性、持久性,通过锁机制实现隔离性,通过redo+undo+binlog三种日志实现事务的原子性、一致性和持久性。

    本文主要讲MySQL的持久性的一个实现机制-两阶段提交策略。

   两阶段提交定义

   两阶段提交指的是MySQL在提交事务将脏数据刷盘的过程分为prepare和commit两个阶段,当客户端commit命令开始执行后,MySQL内部开启一个XA(分布式事务)事务,并为该事务分配一个XID,先将redo log缓存中的数据刷新到日志,redo log刷盘后,redo log对该事务标记为prepare,磁盘的redo日志中也就存在该XID。接着,将binlog缓存中的数据刷盘,binlog刷盘完成后,磁盘的binlog中会存在该XID,会将该redo log上的事务标记为commit。至此,客户端发起的commit命令执行完成。

    那么问题来了,提交一个事务的时候直接写到binlog中不行么,为啥非得先对redo log刷盘,然后再对binlog刷盘?

  两阶段提交策略的作用

    这就引出了两阶段提交策略的作用:确保MySQL数据库崩溃后重启时能快速恢复。这个快速是建立在使用redo log恢复基础上的,因为redo log的数据页记录的是物理页的修改,并且大小和物理表空间中数据页相同,利用redo log可以快速将未提交的事务提交并完成刷盘,因此提交事务时要使用两阶段提交策略。

    数据库崩溃时两阶段提交的不同情况

    数据库崩溃时,提交的事务(假设对表user中id=1 name="张三"的记录执行 update user set name="李四" where id = 1 )可能遇到如下

    1、redo log已经刷盘,事务被标记为prepare状态,binlog尚未刷盘,MySQL内部开启的XA事务会给redo log标记唯一的事务号,binlog中不存在该事务号。

    2、redo log已经刷盘,事务被标记为prepare状态,binlog已经完成刷盘,MySQL内部开启的XA事务会给redo log和binlog分别标记相同的事务号。

    3、redo log和binlog都已经完成刷盘,事务被标记为commit状态。

    数据库崩溃恢复时,会检查redo log中的XA事务号是否在binlog中能找到。

    针对第1种情况,binlog中不存在redo log 中的XA事务号,则直接将事务回滚。

    针对第2种情况,binlog中找到了redo log中的XA事务号,但事务仍然是prepare状态,说明binlog将修改刷盘后还没有来得及标记该事务为commit状态数据库就已经崩溃了,这个时候直接提交该事务即可。

    针对第3种情况,说明事务已经成功提交,崩溃恢复时事务无须处理。

    到这里两阶段提交策略就没有问题了,但爱学习的小伙伴肯定就会问了,都说学以致用,那么理解两阶段提交策略原理到底有什么用呢?

    哈哈哈哈,这个问题我也在思考,除了装逼之外,我暂时想不到其他在工作中能具体用到的地方,留作以后补充吧。

   

http://www.15wanjia.com/news/173651.html

相关文章:

  • 广东建设厅网站个人怎么登录啊拓者设计吧首页
  • 济南品牌网站制作便宜网站的网络营销方案
  • 专业做网站制作自助建站系统网站备案号在哪里看
  • 西宁市网站设计企业免费做英语卷子的网站
  • 网站seo快速优化网页代码大全
  • 网站多久才会被收录网上购物系统软件开发
  • 东莞网页模板建站电子商城网站开发价格
  • 网站设计师 网站开发工程师haai商城网站建设公司排名
  • 安徽太和有没有做网站的求职seo
  • 横峰网站建设开发一套小区多少钱
  • 科技公司 网站模板迷情 变性 wordpress
  • 河南无限动力做网站怎么样成都优化网站源头厂家
  • 祥云平台做网站如何雄安智能网站建设电话
  • 广州云购网站建设网站的在线支付怎么做
  • 保险购买网站山东省东营市建设局网站
  • 网站建设用到什么软件asp三层架构做网站
  • 北京企业展示网站建设网站开发 保修期
  • 重庆建设网站多久时间网易企业邮箱手机登录
  • 扬中网站建设怎么样专业网页制作费用
  • 英文网站建设怎么样前端工作6年一般拿多少工资
  • 做交易网站需要用到的软件wordpress 图片外链
  • 网站建设中通知南宁旅游网站建设
  • 邢台网站设计哪家专业wordpress 301定向
  • 郑州汉狮做网站报价wordpress 报错
  • 教人如何做吃的网站网站制作过程中碰到的问题
  • 游戏网站设计模板php做网站主题
  • 做标签网站邀请码杭州市城乡建设网站
  • 免费做deal的网站网站免费正能量软件推荐
  • 昆明网站制作网页网站业务建设是什么意思
  • 最新网站制作公司哪个好wordpress 下载功能