Mysql的undo、redo、bin log分析
目录
- 关于undo log
- 关于redolog
- 关于binlog
- 一个事务的提交流程
undo log :记录数据被修改之前的样子
redo log:记录数据被修改之后的样子
bin log:记录整个操作。
关于undo log
关于undo log:
在执行一条涉及数据变更的sql时,在数据加载到buffer Pool时,同时会在undo log写入原来的记录。
关于redolog
关于redo log
mysql对于数据操作是在内存(buffer Pool)中的。但是断电时,内存数据会全部丢失。redo log 记录数据修改之后的值,不管事务是否提交都会记录下来。
当redo log buffer可能会出现异常情况:
case1 :redo log buffer 中的数据未能及时写入磁盘,系统宕机。mysql认为该操作为失败操作,重启之后数据回滚
case2 : redo log buffer 刷入磁盘成功之后宕机,那么重启之后mysql会加载redo 内容到buffer Pool中。(redo log commit 才算成功)
关于binlog
关于bin log:记录整个操作过程,主要应用场景:主从数据同步
一个事务的提交流程
1、首先执行器根据mysql的执行计划来查询数据,如果buffer Pool中没有,就去数据库中查询,查询到了再将其放到缓存池中。
2、在数据被缓存到缓存池的同时,会写入undo log日志文件
3、更新的动作是在缓存池中完成的。同时会将更新后的数据添加到redo log buffer中
4、将redo log buffer 中数据刷入到redo log文件中
5、将本地操作记录写入到bin log文件中
6、将bin log文件名字和更新内容在binlog中位置记录到redo log中,同时在redo log最后添加commit 标记。
Mysql的undo、redo、bin log分析相关推荐
- mysql bin 分析_mysql bin log 分析
1.mysql现状 mysql> show binary logs; +------------------+-----------+ | Log_name | File_si ...
- [转]MySQL日志——Undo | Redo
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多 ...
- MySQL日志(undo log 和 redo log 实现事务的原子性/持久性/一致性)
日志的重要性 日志绝对是数据库的核心. 持久化的日志记录了各种重要的信息. 数据的恢复需要依赖日志. 慢查询sql语句需要用到慢查询日志.以及错误日志中保存着mysqld数据库服务端在启动过程中 ...
- bin log,redo log以及undo log详解
1 bin log 1.1 定义 bin log应该说是Mysql里最核心的日志,是MySQL数据库级别的文件,记录对MySQL数据库各种引擎下执行修改的所有操作(包括DDL和DML语句),不会记录s ...
- 说说MySQL中的Redo log Undo log都在干啥
在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件. MySQL中的日志文件,有这么两类常常讨 ...
- 如何解决 bin log 与 redo log 的一致性问题
如何解决 bin log 与 redo log 的一致性问题 为什么说 redo log 具有崩溃恢复的能力 MySQL Server 层拥有的 bin log 只能用于归档,不足以实现崩溃恢复(cr ...
- Mysql的undo log详解
一.简介 redo log是事务持久性的保证,undo log是事务原子性的保证.在事务中更新数据的前置操作其实是要先写入一个undo log. 二.作用 1.用于数据的回滚.比如数据执行时候发生错误 ...
- redo log和bin log以及两阶段提交(笔记)
1.redo log 如果熟悉MySQL你肯定知道MySQL能过对数据进行恢复(前提是开启bin log日志),当然这要归功于bin log日志.但是你可曾听过redo log呢? 首先redo lo ...
- mysql binlog size_设置max_binlog_size和expire_logs_days参数,设置mysql数据库bin log清除机制...
自从前段时间数据库服务增加了mysql主从同步功能,发现主服务器的bin log日志一直在增长,短短一段时间有的文件达到几百兆.如果时间长了势必会占用很多服务器资源. 在百度搜索到,mysql-bin ...
最新文章
- Java map 知识
- ajax post json php,ajax POST json对象给PHP,PHP怎么接收值
- pytorch 中的 split
- 想学python买什么书好-学习 Python 用哪本书好?
- 莫烦python学习笔记之numpy基本运算
- React Native学习总结第二天
- 租房管理系统毕业设计Java_java毕业设计_springboot框架的租房管理系统
- 解决C:\Users\Admin\AppData\Roaming\npm\nodemon.ps1
- 软件工程经济学期末复习
- 自学python教程免费python教程视频
- 为什么微信显示这个android设备,微信显示安卓手机型号在哪设置
- Ubuntu 16.04通过Trickle限制某个软件的下载/上传速度
- linux删除每行首字符,vim技巧:删除行首、行末的空白字符,删除空白行
- 如何精确的设置行与行之间的间距
- 程序员们,千万不要接私活!
- icpc 北京赛区总结
- Hive转换常用函数
- 用matlab求解工作时间调度问题,置换流水车间调度问题的MATLAB求解
- 【2020年天梯赛—校内选拔赛】7-8 悄悄关注
- 对于ASR流程的理解
热门文章
- java maven 项目依赖关系,java – 关于依赖关系共享的Maven多模块项目组合
- java常用代码,Java常用代码
- linux 提升cpu权限,CPUlimit有效防止Linux系统CPU过载
- mysql 表结构 增删改查_mysql学习【第3篇】:数据库之增删改查操作
- mysql 数据如何存储,MySQL如何存储数据
- linux进程属主6,20150917 Linux进程查看与管理以及作业管理
- 转子碰磨 matlab,航空科普:什么是航空发动机转子碰磨?
- 鼠标拖动改变DIV等网页元素的大小的最佳实践
- 实战Java内存泄漏问题分析 -- hazelcast2.0.3使用时内存泄漏 -- 2
- 从代码里提取的测试需求