栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redo Log介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redo Log介绍

基本概念:
    它被称为重做日志,主要记录的是物理日志,也就是对磁盘上的数据进行的修改操作。
	通常包含两部分:内存中的日志缓冲(Redo Log Buffer),易丢失
				  重做日志文件(Redo Log File),持久化到磁盘,不易丢失 
基本原理 :
	MySQL在提交事务时,会将数据写入Redo Log Buffer,而Redo Log Buffer中的数据会根据一定的规则
	写入Redo Log文件。当MySQL发生故障重启时,会通过Redo Log 中的数据对表中的数据进行恢复,也就是
	将Redo Log文件中的数据恢复到 order.ibd文件中

刷盘规则:
1. 开启事务,发出提交事务指令后是否刷新日志由变量innodb_flush_log_at_trx_commit决定
2. 每秒刷新一次,刷新日志的频率由变量innnodb_flush_log_at_timeout的值决定,默认为1s,
		需要注意的是,刷新日志的频率和是否执行commmit操作无关
3. 当Log Buffer中已经使用的内存超过一半时,也会触发刷盘操作
4. 当事务中存在checkpoint(检查点)时,在一定程度上代表了刷写到磁盘时日志所处的LSN位置。
		其中LSN(Log Sequence Number)表示日志的逻辑序列号

写入机制:
Redo Log主要记录的是物理日志,其文件内容是以顺序循环的方式写入的,
一个文件写满时会写入另一个文件,
最后一个文件写满时,会向第一个文件写数据,并且是覆盖写

1. Write Pos是数据表中当前记录所在的位置,随着不断地向数据表中写入数据,这个位置会向后移动,当移动到最后一个文件的最后一个位置时,又会跳到第一个文件的开始位置进行写操作;
2. CheckPoint是当前要擦除的位置,这个位置也是向后移动,移动到最后一个文件的最后一个位置时,也是回到第一个文件的开始进行擦除。只不过在擦除记录前需要把记录更新到数据文件中;
3. Write Pos和CheckPoint 之前存在间隔时,中间的间隔表示还可以记录新的操作,如果Write Pos移动的速度较快,追上了CheckPoint,则表示数据已经写满,不能再向Redo Log文件中写数据了。此时需要停止写入数据,擦除一些记录

LSN机制:
Log Sequence Number:表示日志的逻辑序列号。
在InnoDB存储引擎中,LSN占用8字节的存储空间,并且单调递增。
一般可从中获取到如下信息:
 	1.Redo Log写入数据的的总量
	2.检查点位置
	3.数据页版本相关的信息
相关参数:
1.innodb_log_buffer_size: 表示log buffer的大小,默认为8MB
2.innodb_log_file_size: 表示事务日志的大小,默认为5MB
3.innodb_log_files_group: 表示事务日志组中的事务日志文件个数,默认为2个
4.innodb_log_group_home_dir =./: 表示事务日志组所在的目录,当前目录表示MySQL数据所在的目录
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756527.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号