展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

写入redo log buffer过程与redo log file

  • Mini-Transaction

  • redo 日志写入log buffer


  • redo log block的结构图



  • redo log file相关参数设置

1、innodb_log_group_home_dir :指定 redo log 文件组所在的路径,默认值为 ./ ,表示在数据库的数据目录下。MySQL的默认数据目录
( var/lib/mysql )下默认有两个名为 ib_logfile0 和ib_logfile1 的文件,log buffer中的日志默认情况下就是刷新到这两个磁盘文件中。
此redo日志文件位置还可以修改。
2、innodb_log_files_in_group:指明redo log file的个数,命名方式如:ib_logfile0,iblogfile1...iblogfilen。默认2个,最大100个。
# 查看
show variables like 'innodb_log_files_in_group';

3、innodb_flush_log_at_trx_commit:控制 redo log 刷新到磁盘的策略,默认为1。
4、innodb_log_file_size:单个 redo log 文件设置大小,默认值为 48M 。最大值为512G,注意最大值指的是整个 redo log 系列文件之和,
即(innodb_log_files_in_group * innodb_log_file_size )不能大于最大值512G。
# 查看
show variables like 'innodb_log_file_size';

根据业务修改其大小,以便容纳较大的事务。编辑my.cnf文件并重启数据库生效
vim /etc/my.cnf
innodb_log_file_size=200M
  • 日志组文件

  • checkpoint

  • 如果 write pos 追上 checkpoint ,表示日志文件组满了,这时候不能再写入新的 redo log记录,MySQL 得停下来,清空一些记录,把 checkpoint 推进一下

posted @ 2022-06-22 17:29  DogLeftover  阅读(50)  评论(0编辑  收藏  举报