當前位置: 妍妍網 > 資訊

MySQL日誌系統深入解析:Redo Log, Undo Log與Binlog

2024-07-05資訊


今天給大家分享MySQL中的三種核心日誌——Redo Log、Undo Log和Binlog,涵蓋它們的介紹、作用、儲存位置、寫入機制、記錄格式、特點以及如何管理這些日誌。

1. Redo Log(重做日誌)

1.1 介紹與作用

Redo Log記錄了對InnoDB儲存引擎中數據頁修改的物理操作。它的主要目的是確保事務的永續性,即使在系統崩潰時也能保證數據不遺失。當事務送出時,其相關更改首先被記錄到Redo Log中,隨後才會標記事務狀態為已送出。

1.2 預設儲存位置

Redo Log儲存在MySQL的數據目錄下的`ib_logfile*`檔中,如`/var/lib/mysql/ib_logfile0`和`ib_logfile1`。

1.3 寫入機制

Redo Log采用迴圈寫的方式,當一個日誌檔寫滿後會切換到下一個日誌檔繼續寫入。事務送出時,相關日誌會立即寫入磁盤(即使事務尚未完成),這稱為「預寫式日誌」(Write-Ahead Logging, WAL)策略。

1.4 記錄格式

Redo Log記錄的是物理日誌,即實際對數據頁做的修改操作。

1.5 特點

確保事務的永續性。

支持崩潰恢復,透過重做已記錄的操作來恢復數據。

1.6 如何刪除

Redo Log是迴圈使用的,不需要手動刪除。MySQL會自動管理這些日誌檔,舊的日誌在新的日誌被寫滿並確認不再需要時會被覆蓋。

2. Undo Log(回滾日誌)

2.1 介紹與作用

Undo Log主要用於事務的回滾操作,記錄了如何撤銷對資料庫的修改,以實作事務的原子性。當事務需要回滾時,Undo Log能幫助恢復到事務開始前的狀態。

2.2 儲存位置

Undo Log儲存於InnoDB表空間內,具體位置依賴於表空間配置,一般位於ibdata檔或自訂的表空間檔中。

2.3 寫入機制

Undo Log同樣采用預寫日誌方式,事務開始時寫入Undo Log,事務送出或回滾後可能會被清理。

2.4 記錄格式

Undo Log記錄的是邏輯日誌,描述了如何反向操作以撤銷更改。

2.5 特點

支持事務的原子性,允許回滾操作。

在MVCC(多版本並行控制)中,用於提供歷史版本數據。

2.6如何刪除

Undo Log在事務送出且不再需要時會被自動清理,或者在表空間不足時按照一定的策略進行回收。

3. Binlog(二進制日誌)

3.1 介紹與作用

Binlog記錄了MySQL伺服器上執行的所有更改數據的SQL語句(除了數據查詢語句)。它主要用於數據恢復、主從復制以及數據審計。

3.2 儲存位置

Binlog檔預設儲存在MySQL的數據目錄下(/var/lib/mysql),檔名格式為`mysql-bin.*`。

3.3 寫入機制

Binlog采用追加寫的方式,新事件不斷被添加到日誌檔末尾。MySQL支持多種寫入模式,包括ROW(記錄每一行的變化)、STATEMENT(記錄執行的SQL語句)和MIXED(根據情況自動選擇ROW或STATEMENT)。

說明:需要開啟Binlog日誌,才會寫入 ,開啟方法一般修改mysql.ini(Windows)和my.cnf配置檔。

3.4 記錄格式

Binlog記錄的是邏輯日誌,根據設定的不同,可以是SQL語句的文本或是行級別的變化。

日誌格式

記錄內容

Statement

記錄進行數據修改 SQL 語句。

Row

記錄每一行的數據變更,占用較多空間。(預設)

Mixed

前兩者混合,判斷是否可能引起數據不一致:可能則用 Row 否則用 Statement

3.5 特點

支持數據恢復和復制。

對於主從復制,是同步數據的關鍵。

可用於審計和數據變更跟蹤。

3.6 如何刪除

可以透過`PURGE BINARY LOGS`命令手動刪除指定的或過期的Binlog檔,或者使用reset 刪除全部日誌( 慎用

指令

含義

reset master

刪除全部日誌

purge master logs to 'binlog.xxx'

刪除xxx編號之前的日誌

purge master logs before 'yyyy-mm-dd hh:mm:ss'

刪除引號時間之前產生的日誌

show variables like '%binlog_expire_logs_seconds%';

配置日誌過期時間,到期自動刪除

綜上所述,Redo Log、Undo Log和Binlog各自承擔著不同的職責,共同維護著MySQL資料庫的穩定執行和數據一致性。理解這些日誌的工作原理對於資料庫管理和最佳化至關重要。

小明工作助手新增pdf轉word、pdf轉圖片功能,歡迎免費體驗

歷史相關

優秀幹貨作者推薦

小編十多年工作經驗積累的電腦軟體分享給大家

CSDN:https://blog.csdn.net/xishining

個人部落格網站:https://programmerblog.xyz

往期推薦

!