redo log:

1、用来实现灾难恢复、突然断电会导致innodb表空间(table space)中的数据

没有及时更新到磁盘上面。。可以通过执行redo log来恢复这些数据。


2、提升innodb的i/o性能。innodb把数据、索引先放到内存的缓存池buffer pool。

如果每次修改数据、索引都同步到磁盘。会加大io请求。


innodb_log_buffer_size  缓存大小。

innodb_log_buffer_size (global)


  这是 InnoDB 存储引擎的事务日志所使用的缓冲区。类似于 Binlog 。为了提高性能,也是先将日志信息写入 Innofb Log Buffer 中,

当满足 innodb_flush_log_trx_commit 参数所设置的相应条件(或者日志缓冲区写满)之后,

才会将日志写到文件(或者同步到磁盘)中。可以通过 innodb_log_buffer_size 参数设置其可以使用的最大内存空间。


  注:innodb_flush_log_trx_commit 参数对 InnoDB Log 的写入性能有非常关键的影响。该参数可以设置为0,1,2,解释如下:


  0:log buffer中的数据将以每秒一次的频率写入到log file中,且同时会进行文件系统到磁盘的同步操作,

但是每个事务的commit并不会触发任何log buffer 到log file的刷新或者文件系统到磁盘的刷新操作;


  1:在每次事务提交的时候将log buffer 中的数据都会写入到log file,同时也会触发文件系统到磁盘的同步;


  2:事务提交会触发log buffer 到log file的刷新,但并不会触发磁盘文件系统到磁盘的同步。此外,每秒会有一次文件系统到磁盘同步操作。




innodb_log_file_size   文件大小

innodb_log_files_in_group 几个文件

innodb_log_group_home_dir  目录

innodb_flush_log_at_trx_commit  提交类型 

innodb_os_log_written   多少字节

innodb_os_log_fsyncs  多少次

 

innodb-log-buffer-size=10485760

innodb-log-files-in-group=2

default-storage-engine=INNODB




注意:数据文件ib_logfile的大小、数量、目录。直接修改/etc/my.cnf是不可以的。

innodb_log_file_size

innodb_log_files_in_group

innodb_log_group_home_dir


实验:增加log日志文件、大小。

1、必须干净的关闭mysql

2、vim /etc/my.cnf 

innodb-log-files-in-group=4

innodb_log_file_size=10485760

3、mv ib_logfile* /temp

4、启动mysql

5、查看错误日志。没有报错。




实验:修改redo log文件的路径。innodb_log_group_home_dir

1、干净关闭mysql

2、vim /etc/my.cnf

3、mv

4、启动

5、cat 错误日志