MySQL兩階段提交過程原理簡述

chenfeng發表於2019-01-14

MySQL使用兩階段提交主要解決 binlog 和 InnoDB redo log 的資料一致性的問題.


兩階段提交簡圖:


兩階段提交原理描述:

階段1:InnoDB redo log 寫盤,InnoDB 事務進入 prepare 狀態

階段2:如果前面prepare成功,binlog 寫盤,那麼再繼續將事務日誌持久化到binlog,如果持久化成功,那麼InnoDB 

事務 則進入 commit 狀態(實際是在redo log裡面寫上一個commit記錄)

備註: 每個事務binlog的末尾,會記錄一個 XID event,標誌著事務是否提交成功,也就是說,recovery 過程中,binlog 

最後一個 XID event 之後的內容都應該被 purge。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2557178/,如需轉載,請註明出處,否則將追究法律責任。

相關文章