mysql宕机恢复_MySQL:数据库宕机以后恢复的过程?如何保证事务的ACID特性?
首先介绍几个概念:
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特性?相关推荐
- mysql数据库整体备份和恢复_MySQL 数据库的备份和恢复
MySQL 数据库的备份和恢复 基本知识>>>>>>> 逻辑备份: 1.mysqldump(数据导出工具) mysqldump options db_name ...
- mysql表误删回复_mysql数据库数据删除怎么恢复
不小心把数据库删掉了,想要恢复数据,除了备份以外,还有以下方法. 在mysql有时执行了错误的update或者delete时导致大量数据错误恢复的办法.执行时没有开启事务,也没有对数据进行.这时就需要 ...
- mysql innodb表损坏_MySQL数据库INNODB表损坏修复处理过程分享
##状况描述 突然收到MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了.innodb表损坏不能通过repair table 等修复myisam的命令操作.现在记录下解决 ...
- 升级mysql服务器二进制备份_MySQL二进制日志备份和恢复详解
基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句. 作用: 1.二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二 ...
- mysql二进制日志重置_MySQL二进制日志备份和恢复详解
原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...
- 如何查看mysql备份的情况_MySQL数据库备份详解(示例代码)
原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...
- 详述MySQL事务及ACID特性的实现原理
" 事务是 MySQL 等关系型数据库区别于 NoSQL 的重要方面,是保证数据一致性的重要手段. 本文将首先介绍 MySQL 事务相关的基础概念,然后介绍事务的 ACID 特性,并分析其实 ...
- 深入学习MySQL事务:ACID特性的实现原理
事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理. MySQL博大精深,文 ...
- MySql:事务的ACID特性
目录 一.事务概念 二.事务的ACID特性 一.事务概念 定义: 一个事务是由一条或者多条SQL语句所组成的一个不可分割的单元,只有事务中的所有操作都正常执行完,那么整个事务才能被提交到数据库.如果有 ...
最新文章
- matlab如何画图时去掉陆地点,科学网—Matlab m_map一张地图上使用用多个colormap以及patch精细岸线数据去除河流 - 肖鑫的博文...
- mysql 数值类型 长度_mysql中的数据类型的长度
- 16岁应该遵循什么_成人学习一般遵循的规律
- 延迟关机_苹果电脑到底需不需要关机?关机和休眠你选择哪个
- apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理
- linux内核分为四个子系统,linux操作系统的内核有哪几个子系统构成,简要说明各子系统的作用...
- 小米平板5系列获EEC认证:骁龙870加持 预装深度定制MIUI系统
- 究竟还要等多久才能坐上真正的无人驾驶汽车?
- Java之品优购课程讲义_day03(6)
- 封包(一)(雷电模拟器+ProxyDroid+查尔斯3.93+WPE)
- 技术交流群和CSDN免费下载服务
- JavaScript实现12进制的时钟特效
- 计算机按键去抖动的方式,键盘去抖动原则和方法
- 计算机网络知识点整理(笔试面试)
- 两个常用算法day1
- 手把手教大家搭建微信公众号查题功能
- [Java]Error:No enclosing instance of type E is accessible. Must qualify the allocation with an enclo
- 十大iOS体育游戏评点
- 利用bootstrap写的后台管理系统主页模板
- MSDN WebCast网络广播全部下载列表(更新至2/11/2007)
热门文章
- 如何react中使用redux和react-redux
- html5中的空格怎么写,空格的代码(【html5空格代码怎么写】)
- 信息度量(一):自信息、互信息与信息散度
- Photo MOS 继电器(松下、欧姆龙、力特、东芝)
- 今天的资料里有超实用的Excel图表模板,其中还包含了饼形图、条形图、仪表图、圆环图、折线图、柱形图等12种工作中常用图形~
- 雅虎金融目前在其IOS应用中提供4种加密货币的交易服务
- 氧化三甲胺(TMAO)及其相关代谢物定量
- 第十课 讲解易语言的网络验证
- c语言程序 电子钢琴按键,基于51单片机8按键电子琴-简易版系统设计(原理图+程序仿真+论文)...
- 数据库开发工程师 + 职位要求技能要求(高级)