MySQL innoDB重做記錄檔

來源:互聯網
上載者:User

MySQL innoDB重做記錄檔

前言:之前一直弄不清楚mysql裡面bin log和innodb log檔案的區別,在腦子裡面一直有個疑問binlog記錄檔已經可以用來進行資料庫的記錄備份恢複了,怎麼又多了一個redo log檔案了。相信也有很多人有這個疑惑,現在把整個過程文檔整理出來,希望對大家有所幫忙。

如果對Oracle很瞭解,那麼在整個學習innoDB log的時候,可以把聯機重做日誌的那套理論套在學習innoDB log上面,幾乎是一樣的;

一、innodb log的基礎知識

  • innodb log顧名思義:即innodb儲存引擎產生的日誌,也可以稱為重做記錄檔,預設在innodb_data_home_dir下面有兩個檔案ib_logfile0和ib_logfile1。MySQL官方手冊中將這兩個檔案叫文InnoDB儲存引擎的記錄檔;
  • innodb log的作用:當MySQL的執行個體和介質失敗的時候,Innodb儲存引擎就會使用innodb log檔案進行恢複,保證資料庫的完整性;
  • innodb log的寫原理:(請容許我再放下InnoDB的原理圖,並且建議把這張圖看到吐)

看紅色框框的那部分

  • 每個InnDB儲存引擎至少有1個重做記錄檔組(group),每個檔案組下至少有兩個重做記錄檔,預設的為ib_logfile0、ib_logfile1;
  • 日誌組中每個重做日誌的大小一致,並迴圈使用;
  • InnoDB儲存引擎先寫重做記錄檔,當檔案滿了的時候,會自動切換到記錄檔2,當重做記錄檔2也寫滿時,會再切換到重做記錄檔1;
  • 為了保證安全和效能,請設定每個重做記錄檔設定鏡像,並分配到不同的磁碟上面;

(發現以上特性跟ORACLE的串連重做記錄檔簡直是一樣的)

二、innodb log的相關參數

運行指令碼:show variables like 'innodb%log%'; 查看重做日誌的相關參數

mysql> show variables like 'innodb%log%';

常用設定的參數有:

innodb_mirrored_log_groups  鏡像組的數量,預設為1,沒有鏡像;

innodb_log_group_home_dir  日誌組所在的路徑,預設為data的home目錄;

innodb_log_files_in_group    日誌組的數量,預設為2;

innodb_log_file_size              日誌組的大小,預設為5M;

innodb_log_buffer_size        日誌緩衝池的大小,圖上為30M;

三、參數的相關調優

3.1 重做記錄檔的大小設定跟ORACLE一樣,面臨的問題是相似的。

當innodb log設定過大的時候,可能會導致系統崩潰後恢複需要很長的時間;

當innodb log設定過小的時候,當一個事務產生大量的日誌的時候,需要多次切換重做記錄檔,會產生類似如下的警示;

130702 12:53:13  InnoDB: ERROR: the age of the last checkpoint is 2863217109,

InnoDB: which exceeds the log group capacity 566222311.

InnoDB: If you are using big BLOB or TEXT rows, you must set the

InnoDB: combined size of log files at least 10 times bigger than the

四、重做日誌與二進位日誌的區別

4.1  記錄的範圍不同:二進位日誌會記錄MySQL的所有儲存引擎的日誌記錄(包括InnoDB、MyISAM等),

而InnoDB儲存引擎的重做日誌只會記錄其本身的交易記錄。

4.2 記錄的內容不同:二進位記錄檔記錄的格式可以為STATEMENT或者ROW也可以是MIXED,其記錄的都是關於一個事務的具體操作內容。

InnoDB儲存引擎的重做記錄檔記錄的關於每個頁的更改的物理情況。

4.3 寫入的時間也不同:二進位記錄檔是在事務提交前進行記錄的,而在事務進行的過程中,不斷有重做日誌條目被寫入到重做記錄檔中。

總結:理論指導實踐,理論的知識雖然比較枯燥,學習跟建房子一樣,看著很漂亮的高樓大廈,地下往往要有一個堅實的基礎,基礎打好了,高樓也能建得穩了。

MySQL InnoDB儲存引擎鎖機制實驗

InnoDB儲存引擎的啟動、關閉與恢複

MySQL InnoDB獨立資料表空間的配置

MySQL Server 層和 InnoDB 引擎層 體繫結構圖

InnoDB 死結案例解析

MySQL Innodb獨立資料表空間的配置

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.