0


MySQL-redo日志

文章目录

前因

让已经提交了的事务对数据库中数据所做的修改永久生效,即使后来系统崩溃,在重启后也能把这种修改恢复出来。即在系统崩溃重启时按照记录的步骤重新更新数据页,称为**重做日志(redo日志)**。

概念

redo日志会把事务在执行过程中对数据库所做的所有修改都记录下来,在之后系统崩溃重启后可以把事务所做的任何修改都恢复出来。

本质

记录事务对数据库做了哪些修改

好处

  • redo日志占用的空间非常少
  • redo日志是顺序写入磁盘的

日志格式

在这里插入图片描述

  • type - 该条redo日志的类型 - MLOG_1BYTE ( type 字段对应的十进制数字为 1 ):表示在页面的某个偏移量处写入1个字节的 redo 日志类型。- MLOG_2BYTE ( type 字段对应的十进制数字为 2 ):表示在页面的某个偏移量处写入2个字节的 redo 日志类型。- MLOG_4BYTE ( type 字段对应的十进制数字为 4 ):表示在页面的某个偏移量处写入4个字节的 redo 日志类型。- MLOG_8BYTE ( type 字段对应的十进制数字为 8 ):表示在页面的某个偏移量处写入8个字节的 redo 日志类型。在这里插入图片描述- MLOG_WRITE_STRING ( type 字段对应的十进制数字为 30 ):表示在页面的某个偏移量处写入一串数据。在这里插入图片描述
  • space ID:表空间ID
  • page number:页号
  • data:该条redo日志的具体内容

log buffer

log buffer本质上是一片连续的内存空间,被划分成了若干个512字节大小的block.将log buffer中的redo日志刷新到磁盘的本质就是把block的镜像写入日志文件中。

判断某些redo日志占用的磁盘空间是否可以覆盖的依据就是它对应的脏页是否已经刷新到磁盘里。

感谢您的阅读,如果您感觉本篇博客还不错,请帮忙留言+点赞+收藏呗。~~


本文转载自: https://blog.csdn.net/zmh458/article/details/122848200
版权归原作者 Hi-Sunshine 所有, 如有侵权,请联系我们删除。

“MySQL-redo日志”的评论:

还没有评论