在数据库系统中,既有存放数据的文件,也有存放日志的文件。日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件。

    MySQL中的日志文件,有这么两类常常讨论到:undo日志与redo日志。

1 undo

1.1 undo是什么

undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。
对数据的变更操作,主要来自 INSERT UPDATE DELETE,而UNDO LOG中分为两种类型,一种是 INSERT_UNDO(INSERT操作),记录插入的唯一键值;一种是 UPDATE_UNDO(包含UPDATE及DELETE操作),记录修改的唯一键值以及old column记录。
Id Name
1 A
2 B
3 C
4
D

1.2 undo参数

MySQL跟undo有关的参数设置有这些:
 1 mysql> show global variables like '%undo%';
2 +--------------------------+------------+
3 | Variable_name | Value |
4 +--------------------------+------------+
5 | innodb_max_undo_log_size | 1073741824 |
6 | innodb_undo_directory | ./ |
7 | innodb_undo_log_truncate | OFF |
8 | innodb_undo_logs | 128 |
9 | innodb_undo_tablespaces | 3 |
10 +--------------------------+------------+
11
12 mysql> show global variables like '%truncate%';
13 +--------------------------------------+-------+
14 | Variable_name | Value |
15 +--------------------------------------+-------+
16 | innodb_purge_rseg_truncate_frequency | 128 |
17 | innodb_undo_log_truncate | OFF |
18 +--------------------------------------+-------+
  • innodb_max_undo_log_size
    控制最大undo tablespace文件的大小,当启动了innodb_undo_log_truncate 时,undo tablespace 超过innodb_max_undo_log_size 阀值时才会去尝试truncate。该值默认大小为1G,truncate后的大小默认为10M。
  • innodb_undo_tablespaces
    设置undo独立表空间个数,范围为0-128, 默认为0,0表示表示不开启独立undo表空间 且 undo日志存储在ibdata文件中。该参数只能在最开始初始化MySQL实例的时候指定,如果实例已创建,这个参数是不能变动的,如果在数据库配置文 件 .cnf 中指定innodb_undo_tablespaces 的个数大于实例创建时的指定个数,则会启动失败,提示该参数设置有误。
aaarticlea/png;base64,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" alt="" />
    如果设置了该参数为n(n>0),那么就会在undo目录下创建n个undo文件(undo001,undo002 ...... undo n),每个文件默认大小为10M.
aaarticlea/png;base64,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" alt="" />
什么时候需要来设置这个参数呢?
    当DB写压力较大时,可以设置独立UNDO表空间,把UNDO LOG从ibdata文件中分离开来,指定 innodb_undo_directory目录存放,可以制定到高速磁盘上,加快UNDO LOG 的读写性能。
  • innodb_undo_log_truncate
   InnoDB的purge线程,根据innodb_undo_log_truncate设置开启或关闭、innodb_max_undo_log_size的参数值,以及truncate的频率来进行空间回收和 undo file 的重新初始化。
   该参数生效的前提是,已设置独立表空间且独立表空间个数大于等于2个。
   purge线程在truncate undo log file的过程中,需要检查该文件上是否还有活动事务,如果没有,需要把该undo log file标记为不可分配,这个时候,undo log 都会记录到其他文件上,所以至少需要2个独立表空间文件,才能进行truncate 操作,标注不可分配后,会创建一个独立的文件undo_<space_id>_trunc.log,记录现在正在truncate 某个undo log文件,然后开始初始化undo log file到10M,操作结束后,删除表示truncate动作的 undo_<space_id>_trunc.log 文件,这个文件保证了即使在truncate过程中发生了故障重启数据库服务,重启后,服务发现这个文件,也会继续完成truncate操作,删除文件结束后,标识该undo log file可分配。
  • innodb_purge_rseg_truncate_frequency
  用于控制purge回滚段的频度,默认为128。假设设置为n,则说明,当Innodb Purge操作的协调线程 purge事务128次时,就会触发一次History purge,检查当前的undo log 表空间状态是否会触发truncate。

1.3 undo空间管理

如果需要设置独立表空间,需要在初始化数据库实例的时候,指定独立表空间的数量。
UNDO内部由多个回滚段组成,即 Rollback segment,一共有128个,保存在ibdata系统表空间中,分别从resg slot0 - resg slot127,每一个resg slot,也就是每一个回滚段,内部由1024个undo segment 组成。
回滚段(rollback segment)分配如下:
  • slot 0 ,预留给系统表空间;
  • slot 1- 32,预留给临时表空间,每次数据库重启的时候,都会重建临时表空间;
  • slot33-127,如果有独立表空间,则预留给UNDO独立表空间;如果没有,则预留给系统表空间;
回滚段中除去32个提供给临时表事务使用,剩下的 128-32=96个回滚段,可执行 96*1024 个并发事务操作,每个事务占用一个 undo segment slot,注意,如果事务中有临时表事务,还会在临时表空间中的 undo segment slot 再占用一个 undo segment slot,即占用2个undo segment slot。如果错误日志中有:Cannot find a free slot for an undo log。则说明并发的事务太多了,需要考虑下是否要分流业务。
回滚段(rollback segment )采用 轮询调度的方式来分配使用,如果设置了独立表空间,那么就不会使用系统表空间回滚段中undo segment,而是使用独立表空间的,同时,如果回顾段正在 Truncate操作,则不分配。
aaarticlea/png;base64,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" alt="" />

2 redo

2.1 redo是什么

    当数据库对数据做修改的时候,需要把数据页从磁盘读到buffer pool中,然后在buffer pool中进行修改,那么这个时候buffer pool中的数据页就与磁盘上的数据页内容不一致,称buffer pool的数据页为dirty page 脏数据,如果这个时候发生非正常的DB服务重启,那么这些数据还没在内存,并没有同步到磁盘文件中(注意,同步到磁盘文件是个随机IO),也就是会发生数据丢失,如果这个时候,能够在有一个文件,当buffer pool 中的data page变更结束后,把相应修改记录记录到这个文件(注意,记录日志是顺序IO),那么当DB服务发生crash的情况,恢复DB的时候,也可以根据这个文件的记录内容,重新应用到磁盘文件,数据保持一致。
    这个文件就是redo log ,用于记录 数据修改后的记录,顺序记录。它可以带来这些好处:
  • 当buffer pool中的dirty page 还没有刷新到磁盘的时候,发生crash,启动服务后,可通过redo log 找到需要重新刷新到磁盘文件的记录;
  • buffer pool中的数据直接flush到disk file,是一个随机IO,效率较差,而把buffer pool中的数据记录到redo log,是一个顺序IO,可以提高事务提交的速度;
    假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么redo日志就会用来存放Name='B2'的记录,如果这个修改在flush 到磁盘文件时出现异常,可以使用redo log实现重做操作,保证事务的持久性。
Id Name
1 A
2 B
3 C
4
D
 
    这里注意下redo log 跟binary log 的区别,redo log 是存储引擎层产生的,而binary log是数据库层产生的。假设一个大事务,对tba做10万行的记录插入,在这个过程中,一直不断的往redo log顺序记录,而binary log不会记录,知道这个事务提交,才会一次写入到binary log文件中。binary log的记录格式有3种:row,statement跟mixed,不同格式记录形式不一样。

2.2 redo 参数

  • innodb_log_files_in_group
redo log 文件的个数,命名方式如:ib_logfile0,iblogfile1... iblogfilen。默认2个,最大100个。
  • innodb_log_file_size
文件设置大小,默认值为 48M,最大值为512G,注意最大值指的是整个 redo log系列文件之和,即(innodb_log_files_in_group * innodb_log_file_size )不能大于最大值512G。
  • innodb_log_group_home_dir
文件存放路径
  • innodb_log_buffer_size
Redo Log 缓存区,默认8M,可设置1-8M。延迟事务日志写入磁盘,把redo log 放到该缓冲区,然后根据 innodb_flush_log_at_trx_commit参数的设置,再把日志从buffer 中flush 到磁盘中。
  • innodb_flush_log_at_trx_commit
  • innodb_flush_log_at_trx_commit=1,每次commit都会把redo log从redo log buffer写入到system,并fsync刷新到磁盘文件中。
  • innodb_flush_log_at_trx_commit=2,每次事务提交时MySQL会把日志从redo log buffer写入到system,但只写入到file system buffer,由系统内部来fsync到磁盘文件。如果数据库实例crash,不会丢失redo log,但是如果服务器crash,由于file system buffer还来不及fsync到磁盘文件,所以会丢失这一部分的数据。
  • innodb_flush_log_at_trx_commit=0,事务发生过程,日志一直激励在redo log buffer中,跟其他设置一样,但是在事务提交时,不产生redo 写操作,而是MySQL内部每秒操作一次,从redo log buffer,把数据写入到系统中去。如果发生crash,即丢失1s内的事务修改操作。
  • 注意:由于进程调度策略问题,这个“每秒执行一次 flush(刷到磁盘)操作”并不是保证100%的“每秒”。
 aaarticlea/png;base64,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" alt="" />

2.3 redo 空间管理

    Redo log文件以ib_logfile[number]命名,Redo log 以顺序的方式写入文件文件,写满时则回溯到第一个文件,进行覆盖写。(但在做redo checkpoint时,也会更新第一个日志文件的头部checkpoint标记,所以严格来讲也不算顺序写)。
实际上redo log有两部分组成:redo log buffer 跟redo log file。buffer pool中把数据修改情况记录到redo log buffer,出现以下情况,再把redo log刷下到redo log file:
  • Redo log buffer空间不足
  • 事务提交(依赖innodb_flush_log_at_trx_commit参数设置)
  • 后台线程
  • 做checkpoint
  • 实例shutdown
  • binlog切换

3 undo及redo如何记录事务

3.1 Undo + Redo事务的简化过程

  假设有A、B两个数据,值分别为1,2,开始一个事务,事务的操作内容为:把1修改为3,2修改为4,那么实际的记录如下(简化):
  A.事务开始.
  B.记录A=1到undo log.
  C.修改A=3.
  D.记录A=3到redo log.
  E.记录B=2到undo log.
  F.修改B=4.
  G.记录B=4到redo log.
  H.将redo log写入磁盘。
  I.事务提交

3.2  IO影响

  Undo + Redo的设计主要考虑的是提升IO性能,增大数据库吞吐量。可以看出,B D E G H,均是新增操作,但是B D E
G 是缓冲到buffer区,只有G是增加了IO操作,为了保证Redo Log能够有比较好的IO性能,InnoDB 的 Redo
Log的设计有以下几个特点:
 
  A. 尽量保持Redo Log存储在一段连续的空间上。因此在系统第一次启动时就会将日志文件的空间完全分配。 以顺序追加的方式记录Redo Log,通过顺序IO来改善性能。
  B. 批量写入日志。日志并不是直接写入文件,而是先写入redo log buffer.当需要将日志刷新到磁盘时 (如事务提交),将许多日志一起写入磁盘.
  C. 并发的事务共享Redo Log的存储空间,它们的Redo Log按语句的执行顺序,依次交替的记录在一起,
     以减少日志占用的空间。例如,Redo Log中的记录内容可能是这样的:
     记录1: <trx1, insert …>
     记录2: <trx2, update …>
     记录3: <trx1, delete …>
     记录4: <trx3, update …>
     记录5: <trx2, insert …>
  D. 因为C的原因,当一个事务将Redo Log写入磁盘时,也会将其他未提交的事务的日志写入磁盘。
  E. Redo Log上只进行顺序追加的操作,当一个事务需要回滚时,它的Redo Log记录也不会从Redo Log中删除掉。

3.3 恢复

前面说到未提交的事务和回滚了的事务也会记录Redo Log,因此在进行恢复时,这些事务要进行特殊的的处理。有2种不同的恢复策略:
 
  A. 进行恢复时,只重做已经提交了的事务。
  B. 进行恢复时,重做所有事务包括未提交的事务和回滚了的事务。然后通过Undo Log回滚那些
     未提交的事务。
 
  MySQL数据库InnoDB存储引擎使用了B策略, InnoDB存储引擎中的恢复机制有几个特点:
 
  A. 在重做Redo Log时,并不关心事务性。 恢复时,没有BEGIN,也没有COMMIT,ROLLBACK的行为。也不关心每个日志是哪个事务的。尽管事务ID等事务相关的内容会记入Redo Log,这些内容只是被当作要操作的数据的一部分。
  B. 使用B策略就必须要将Undo Log持久化,而且必须要在写Redo Log之前将对应的Undo
Log写入磁盘。Undo和Redo Log的这种关联,使得持久化变得复杂起来。为了降低复杂度,InnoDB将Undo
Log看作数据,因此记录Undo Log的操作也会记录到redo log中。这样undo log就可以象数据一样缓存起来,而不用在redo
log之前写入磁盘了。
     包含Undo Log操作的Redo Log,看起来是这样的:
     记录1: <trx1, Undo log insert <undo_insert …>>
     记录2: <trx1, insert …>
     记录3: <trx2, Undo log insert <undo_update …>>
     记录4: <trx2, update …>
     记录5: <trx3, Undo log insert <undo_delete …>>
     记录6: <trx3, delete …>
  C. 到这里,还有一个问题没有弄清楚。既然Redo没有事务性,那岂不是会重新执行被回滚了的事务?
     确实是这样。同时Innodb也会将事务回滚时的操作也记录到redo log中。回滚操作本质上也是
     对数据进行修改,因此回滚时对数据的操作也会记录到Redo Log中。
     一个回滚了的事务的Redo Log,看起来是这样的:
     记录1: <trx1, Undo log insert <undo_insert …>>
     记录2: <trx1, insert A…>
     记录3: <trx1, Undo log insert <undo_update …>>
     记录4: <trx1, update B…>
     记录5: <trx1, Undo log insert <undo_delete …>>
     记录6: <trx1, delete C…>
     记录7: <trx1, insert C>
     记录8: <trx1, update B to old value>
     记录9: <trx1, delete A>
     一个被回滚了的事务在恢复时的操作就是先redo再undo,因此不会破坏数据的一致性。
 

mysql的undo log和redo log的更多相关文章

  1. mysql事务(一)——redo log与undo log

    数据事务 即支持ACID四大特性. A:atomicity          原子性——事务中所有操作要么全部执行成功,要么全部执行失败,回滚到初始状态 C:consistency     一致性—— ...

  2. 必须了解的mysql三大日志-binlog、redo log和undo log

    日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息.mysql日志主要包括错误日志.查询日志.慢查询日志.事务日志.二进制日志几大类.作为开发,我们重点需要关注的是二进制日志( ...

  3. MySQL日志系统bin log、redo log和undo log

    MySQL日志系统bin log.redo log和undo log   今人不见古时月,今月曾经照古人. 简介:日志是MySQL数据库的重要组成部分,记录着数据库运行期间各种状态信息,主要包括错误日 ...

  4. 3000帧动画图解MySQL为什么需要binlog、redo log和undo log

    全文建立在MySQL的存储引擎为InnoDB的基础上 先看一条SQL如何入库的: 这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存 ...

  5. 2 万字 + 30 张图 | 细聊 MySQL undo log、redo log、binlog 有什么用?

    作者:小林coding 计算机八股文网站:https://xiaolincoding.com/ 大家好,我是小林. 从这篇「执行一条 SQL 查询语句,期间发生了什么?」中,我们知道了一条查询语句经历 ...

  6. bin log、redo log、undo log和MVVC

    logs innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过 ...

  7. [转]undo log与redo log原理分析

    数据库通常借助日志来实现事务,常见的有undo log.redo log,undo/redo log都能保证事务特性,这里主要是原子性和持久性,即事务相关的操作,要么全做,要么不做,并且修改的数据能得 ...

  8. mysql报错Ignoring the redo log due to missing MLOG_CHECKPOINT between

    mysql报错Ignoring the redo log due to missing MLOG_CHECKPOINT between mysql版本:5.7.19 系统版本:centos7.3 由于 ...

  9. 说说MySQL中的Redo log Undo log都在干啥

        在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQL中的日志文件, ...

随机推荐

  1. Mysql跨表更新

    Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法,需要的朋友可以参考下 假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Pr ...

  2. 《Linux就该这么学》第二期视频

    Linux就该这么学--第二期学习笔记... ------------- 你的未来取决于你现在点点滴滴的努力 需要用到的一些工具: Vm11激活码 ---------- root在Linux系统中相当 ...

  3. Nginx核心配置文件常用参数详解

    Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...

  4. java中CRUD(增删查改)底层代码的实现

    java中CRUD(增删查改)底层代码的实现: package com.station.dao; import com.station.model.Product; import java.sql.* ...

  5. 日志的使用-log4j

    1,首先添加对log4j-core-2.6.2.jar,log4j-api-2.6.2.jar的引用. https://files.cnblogs.com/files/renjing/log4j.zi ...

  6. JAVA泛型中的类型擦除及为什么不支持泛型数组

    一,数组的协变性(covariant array type)及集合的非协变性 设有Circle类和Square类继承自Shape类. 关于数组的协变性,看代码: public static doubl ...

  7. u-boot移植(一)---准备工作

    一.工具链的制作 1.1 工具 软件工具:crosstool-ng 下载地址:git clone https://github.com/crosstool-ng/crosstool-ng crosst ...

  8. android contentprovider内容提供者

    contentprovider内容提供者:让其他app可以访问私有数据库(文件) 1.AndroidManifest.xml 配置provider <?xml version="1.0 ...

  9. 安卓中location.href或者location.reload 不起作用

    链接:https://www.cnblogs.com/joshua317/p/6163471.html 在移动wap中,经常会使用window.location.href去跳转页面,这个方法在绝大多数 ...

  10. JavaScript之原型|typeof|instanceof

    //var 变量X --> 对象 --> 构造器 --> 原型对象 function Person(){}; var stu = new Person(); //var stu = ...