redo log

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章