ib_logfiles文件及作用
大家都知道这个是InnoDB的redolog。关于redolog的写入策略部分,可以看我之前的这个文章(链接)。
这个系列文件个数由参数innodb_log_files_in_group控制,若设置为4,则命名为ib_logfile0~3。
很多文章都指出这些文件的写入是顺序、循环写的,logfile0写完从logfile1继续,logfile3写完则logfile0继续。

ibdata1的作用
INNODB类型数据状态下, ibdata1文件是InnoDB存储引擎的共享表空间文件,该文件中主要存储着下面这些数据:
data dictionary
double write buffer
insert buffer/change buffer
rollback segments
undo space
Foreign key constraint system tables
另外,当选项 innodb_file_per_table = 0 时,在ibdata1文件中还需要存储 InnoDB 表数据&索引。

ib_logfile1文件
ib_logfile1是INNODB的REDO、UNDO日志,并不是备份用的日志。
MYSQL可以通过BINLOG来恢复,但这个ib_logfile没什么恢复的作用,它主要是在事务中起一个前滚或后滚的作用。
ib_logfiles的作用,主要是在系统崩溃重启时,作事务重做的。而在系统正常时,每次checkpoint时间点,会将之前写入的事务应用到数据文件中。因此有一个问题:系统重启之后,怎么知道checkpoint做到哪儿了?

Ib_logfile的checkpoint field
实际上不仅要记录checkpoint做到哪儿(LOG_CHECKPOINT_LSN),还要记录用到了哪个位置(LOG_CHECKPOINT_OFFSET)等其他信息。所以在ib_logfile0的头部预留了空间,用于记录这些信息。
因此即使使用后面的logfile,每次checkpoint完成后,ib_logfile0都是要更新的。同时你会发现所谓的顺序写盘,也并不是绝对的:)

相关的一些数字
a) InnoDB留了两个checkpoint filed,按照注释的解释,目的是为了能够“write alternately”
b) 每个checkpint field需要的大小空间为304字节。(相关定义在log0log.h)
c) 第一个checkpoint的起始位置在ib_logfile0的第512字节(OS_FILE_LOG_BLOCK_SIZE)处;
d) 第二个在1536 (3 * OS_FILE_LOG_BLOCK_SIZE)字节处。

master.info 文件
在从服务器上设置好主服务器后会生成一个 master.info 文件,用于记录主服务器的同步信息。

relay log 文件
从服务器上的中续日志文件。在已经设置个过同步工作的从服务器上上再次设置同步时应该删除这个文件。

Tags标签: ib_logfiles,innodb Tags相关文章如下:

    上一篇:MySQL 5.7.18官方默认已移除了默认my-default.cnf

    下一篇:如何避免ibdata1文件大小暴涨及释放空间