当前位置: 首页 > news >正文

MySQL8.0.30 版本中redo log的变化

MySQL redo log记录数据记录变更,以及未数据一致性恢复提供保障。在运维MySQL 过程中,会遇到调整redo log 和redo buffer size 大小的需求,然而修改redo log 文件大小需要重启,不过 MySQL 8.0.30 版本中提供动态调整redo log 文件大小的功能。

https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html

从 MySQL 8.0.30 开始, innodb_redo_log_capacity系统变量控制 redo log 总的大小。

因为在该版本以及之后的版本参数innodb_log_file_size 和 innodb_log_files_in_group 已经被废弃。

如下图所示,8.0.30 版本对原来的循环覆盖写的结构进行了改造,不再以 redo 文件个数和单个 redo 文件的大小来进行限制,而是通过 innodb_redo_log_capacity来指定整个 redo 空间的大小。整个redo空间会被切成32个文件(固定个数),文件按照 ib_redo$SEQ 的方式进行编号,$SEQ 是一个递增的序列号。在文件管理上,所有的文件会被分成两类:

  • normal redo 文件,命名为 ib_redo$SEQ,正常的 redo 文件,和以前一样,任意时刻只会有一个 redo 文件进行写入;
  • unused redo 文件,命名为 ib_redo$SEQ_tmp,未被使用的 redo 文件在被使用时,会被重命名为正常文件;

后台的 log_files_governor 线程会负责处理已经写完成的文件,在满足回收条件时,会重新变成 unused redo 文件

当 innodb_redo_log_capacity 发生变化时,已经使用过的和正在使用过的 redo 文件并不会发生改变,仅需要调整 unused redo 文件。当用户修改 innodb_redo_log_capacity 时,会唤醒后台的 log_files_governor 线程,后台线程首先会重新计算当前的 redo_log_capacity,然后根据变化的类型:

  • 如果是空间放大,直接根据放大后的大小,重新生成新的 unused redo 文件;
  • 如果是空间缩小,需要计算当前已使用的空间数能否满足目标值,如果满足,那么缩小过程和放大过程一样,直接重新生成新的 ununsed redo 文件即可;如果不能,还需要在更新 redo_log_capacity 之后,通过调整暴露给 log_writer 和 page_cleaner 线程的 lsn 信息,来加速空间回收;

unused redo 文件的引入,类似于引入了缓存区的机制,因为 unused redo 文件不是正在使用的 redo 文件,所以可以直接进行重建,从而满足 innodb_redo_log_capacity 的设置。

在运行时设置时,配置更改会立即发生,但可能需要一些时间才能完全实现新的限制。如果重做日志文件占用的空间小于指定值,则脏页将从缓冲池中较不积极地刷新到表空间数据文件中,最终增加重做日志文件所占用的磁盘空间。如果重做日志文件占用的空间超过指定值,则会更积极地刷新脏页,最终减少重做日志文件所占用的磁盘空间。

https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log.html

http://www.dtcms.com/a/545373.html

相关文章:

  • 0430. 扁平化多级双向链表
  • 网站关键词多少合适icp备案服务码
  • TypeScript声明合并详解二
  • 做网站组织架构my77728域名查询
  • 深度学习------图像分割项目
  • 【深度学习2】线性回归的从零开始实现
  • LeetCode第2题:两数相加及其变种(某大厂面试原题)
  • Java 字符编码全解析:从乱码根源到 Unicode 实战指南
  • SpringBoot 高效工具类大全
  • 自己做网站用软件wordpress电商优秀
  • 百度网站建设中的自由容器网站用哪个数据库
  • 入侵检测系统——HIDS和NIDS的区别
  • C语言多进程创建和回收
  • 仓颉编程语言:控制流语句详解(if/else)
  • 专利撰写与申请核心要点简报
  • AI搜索引擎num=100参数移除影响深度分析:内容标识与准确性变化
  • NJU-SME 人工智能(三) -- 正则化 + 分类 + SVM
  • 【数据库】表的设计
  • 深圳制作网站建设推广第一网站ppt模板
  • 点网站建设广州专业网站建设哪家公司好
  • 仓颉语言构造函数深度实践指南
  • DTAS 3D-尺寸公差分析定制化服务与解决方案的专家-棣拓科技
  • 永康营销型网站建设wordpress自定义作者连接
  • linux NFS(网络文件系统)挂载完整指南
  • 数字营销软件完整指南|CRM、CDP、自动化平台 2025
  • 企业级建模平台Enterprise Architect如何自动化生成报告
  • Chat2DB 学习笔记
  • 外国做爰网站小程序问答库
  • 关于网站建设方案的案例石家庄建站凡科
  • LeetCode 410 - 分割数组的最大值