1、redoLog
redo Log又成重做日志,redo log 是物理日志,記錄的是在某個資料頁上做了什么修改,不記錄更新后的狀態,
1.1 作業層
InnoDB引擎層特有
1.2 記錄機制
1.2.1 作用:
一般來說這個日志是InnoDB引擎來做的,先把需要更新的放置在redoLog中,并更新記憶體,InnoDB引擎會在適當的時候,將這個操作記錄更新到磁盤里面,而這個更新往往是在系統比較空閑的時候做,減少對磁盤的I/O操作,
1.2.2 存盤:
-
redoLog的空間大小是有限的,一般分為四個空間: write
-
pos是當前記錄的位置,一邊寫一邊后移,checkpoint是當前要擦除的位置,也是往后推移并且回圈的,擦除記錄前要把記錄更新到資料檔案,
-
也就是說綠色是當前空閑的存盤空間可以用來寫日志,
1.2.3 日志作用
主要就是在系統宕機的時候用來恢復到宕機前的資料的,只能恢復到最后一次提交的記錄,也就是說的crash-safe能力,
2、binLog
binLog日志是歸檔日志,邏輯日志,以二進制的形式記錄陳述句的原始邏輯,
有兩種模式,statement 格式的話是記 sql 陳述句,row 格式會記錄行的內容,記兩條,更新前和更新后都有,
2.1 作業層
在server層實作,任何引擎都可以實作,
2.2 記錄機制
binlog記錄了對MySQL資料庫執行更改的所有操作,但是不包括SELECT和SHOW這類操作,因為這類操作對資料本身并沒有修改,然后,若操作本身并沒有導致資料庫發生變化,那么該操作也會寫入二進制日志,
2.3 日志作用
主要就是在系統宕機的時候用來恢復到宕機前的資料的,只能恢復到最后一次提交的記錄,也就是說的crash-safe能力,
可以用來做資料庫備份等,在最近一次的全量備份上,使用binlog日志進行恢復到現在的資料庫,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/191000.html
標籤:其他
