首先介绍几个概念:

REDO 为了重做对数据页(page)更改保存的信息,用于恢复

UNDO 为了撤销对数据记录(tuple)更改保存的信息,用于回滚事务

LSN(Log Sequence NO) 日志号,一个递增的64位整数,一个LSN表示一个(redo)Log结构。

CHECKPOINT表示一个时间点,在CHECKPOINT LSN之前的更改都已经保存到了持久存储。恢复时只需从最后一个CHECKPOINT LSN开始。

下面从update, commit, recovery三个方面简单说明:

update(Insert与之类似)

1.计算更新后tuple到原tuple的delta信息,把这个delta复制到rollback segment中的undo

2.写redo log,记录对rollback segment的更改

3.把buffer pool中的对应tuple更新成新值,把新值的rollback pointer写入undo log

4.写redo log,记入对页(page)的更改

5.将页状态改成dirty

commit

force log, flush当前事务的redo log

recovery

1.启动开始时检测是否发生崩溃

2.定位到最近的一个checkpoint

3.定位在这个checkpoint时flush到磁盘的数据页,检查checksum。如果不正确,说明这个页在上次写入是不完整的,从doublewrite buffer里把正确的页读出来,更新到buffer中的页

4.分析redo log,标识出未提交事务

5.顺序执行redo

6.rollback未提交的事务

以上是我个人的一些简单总结,具体细节的可以参考:

Jeremy Cole的InnoDB: A journey to the core

mysql宕机恢复_MySQL:数据库宕机以后恢复的过程?如何保证事务的ACID特性?相关推荐

  1. mysql数据库整体备份和恢复_MySQL 数据库的备份和恢复

    MySQL 数据库的备份和恢复 基本知识>>>>>>> 逻辑备份: 1.mysqldump(数据导出工具) mysqldump options db_name ...

  2. mysql表误删回复_mysql数据库数据删除怎么恢复

    不小心把数据库删掉了,想要恢复数据,除了备份以外,还有以下方法. 在mysql有时执行了错误的update或者delete时导致大量数据错误恢复的办法.执行时没有开启事务,也没有对数据进行.这时就需要 ...

  3. mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享

    ##状况描述 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决 ...

  4. 升级mysql服务器二进制备份_MySQL二进制日志备份和恢复详解

    基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句. 作用: 1.二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二 ...

  5. mysql二进制日志重置_MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

  6. 如何查看mysql备份的情况_MySQL数据库备份详解(示例代码)

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  7. 详述MySQL事务及ACID特性的实现原理

    " 事务是 MySQL 等关系型数据库区别于 NoSQL 的重要方面,是保证数据一致性的重要手段. 本文将首先介绍 MySQL 事务相关的基础概念,然后介绍事务的 ACID 特性,并分析其实 ...

  8. 深入学习MySQL事务:ACID特性的实现原理

    事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理. MySQL博大精深,文 ...

  9. MySql:事务的ACID特性

    目录 一.事务概念 二.事务的ACID特性 一.事务概念 定义: 一个事务是由一条或者多条SQL语句所组成的一个不可分割的单元,只有事务中的所有操作都正常执行完,那么整个事务才能被提交到数据库.如果有 ...

最新文章

  1. matlab如何画图时去掉陆地点,科学网—Matlab m_map一张地图上使用用多个colormap以及patch精细岸线数据去除河流 - 肖鑫的博文...
  2. mysql 数值类型 长度_mysql中的数据类型的长度
  3. 16岁应该遵循什么_成人学习一般遵循的规律
  4. 延迟关机_苹果电脑到底需不需要关机?关机和休眠你选择哪个
  5. apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理
  6. linux内核分为四个子系统,linux操作系统的内核有哪几个子系统构成,简要说明各子系统的作用...
  7. 小米平板5系列获EEC认证:骁龙870加持 预装深度定制MIUI系统
  8. 究竟还要等多久才能坐上真正的无人驾驶汽车?
  9. Java之品优购课程讲义_day03(6)
  10. 封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)
  11. 技术交流群和CSDN免费下载服务
  12. JavaScript实现12进制的时钟特效
  13. 计算机按键去抖动的方式,键盘去抖动原则和方法
  14. 计算机网络知识点整理(笔试面试)
  15. 两个常用算法day1
  16. 手把手教大家搭建微信公众号查题功能
  17. [Java]Error:No enclosing instance of type E is accessible. Must qualify the allocation with an enclo
  18. 十大iOS体育游戏评点
  19. 利用bootstrap写的后台管理系统主页模板
  20. MSDN WebCast网络广播全部下载列表(更新至2/11/2007)

热门文章

  1. 如何react中使用redux和react-redux
  2. html5中的空格怎么写,空格的代码(【html5空格代码怎么写】)
  3. 信息度量(一):自信息、互信息与信息散度
  4. Photo MOS 继电器(松下、欧姆龙、力特、东芝)
  5. 今天的资料里有超实用的Excel图表模板,其中还包含了饼形图、条形图、仪表图、圆环图、折线图、柱形图等12种工作中常用图形~
  6. 雅虎金融目前在其IOS应用中提供4种加密货币的交易服务
  7. 氧化三甲胺(TMAO)及其相关代谢物定量
  8. 第十课 讲解易语言的网络验证
  9. c语言程序 电子钢琴按键,基于51单片机8按键电子琴-简易版系统设计(原理图+程序仿真+论文)...
  10. 数据库开发工程师 + 职位要求技能要求(高级)