參數binlog_row_image設置MINIMAL,你今天被坑了嗎?

今天網友"芬達"跟我討論一個參數binlog_row_image,在什麼場景下設置爲MINIMAL,我覺得這個案例很有意義,尤其是在生產環境中,要慎重設置這個參數。


首先這個MINIMAL,只會在binlog裏記錄被影響的行,而不能像默認的FULL一樣,記錄完整的變更前和變更後的所有記錄,這裏就會產生一個問題,數據被誤更改,無法用mysqlbinlog等工具閃回,另外大數據那邊用canal抽binlog,會造成數據不準確等一系列問題。


下面通過模擬實驗,看看binlog裏記錄的內容。


表結構如下:

1.png


裏面的數據:

2.png


此時,執行一條update變更操作:

3.png


馬上看下binlog裏面記錄的內容:

4.png

注意看紅色框部分的內容,變更前的完整原始數據並沒有被記錄,固無法閃回。


雖然MINIMAL可以減少binlog的文件大小(binlog_format = ROW),降低磁盤IO,但從數據安全角度來看,這將是危險的!


這裏感謝網友"芬達"提供素材。



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