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 錯誤日誌