老男孩教育每日一題-第83天-binlog是什麽?記錄的什麽?有幾種工作模式及企業應用場景
阿新 • • 發佈:2017-07-05
mysql binlog 每日一題
參考答案
含義
binlog:是用於記錄所有更新了數據的操作語句,語句以事件的形式保存,它描述數據的更改過程
作用:用於實時備份數據,數據庫的主從復制
log_bin 打開記錄binlog功能
binlog的查看
mysqlbinlog /home/mysql/binlog/binlog.000003
binlog的刪除:可分為自動與手動刪除
自動刪除
能過binlog參數expire_logs_days來實現
show binary logs; show variables like "expire_logs_days"; set gloable expire_logs_days=3;
手工刪除
reset master 刪除主的binlog reset slave 刪除從的中繼日誌
三種模式:
Row level模式 :
日誌會記錄每一行數據被修改的形式,然後在從端對相同的數據進行修改
優點:可以不記錄執行SQL語句上下文相關的信息,只記錄哪一條數據被修改,修改成什麽樣了
缺點:所有執行的語句都當記錄到日誌文件中,而且都會以每行記錄的修改來記錄,會產生大量的日誌內容
statement模式:
每一條修改數據的SQL都會記錄master的bin-log中,slave在復制的時候SQL進程會解析成和原來master端執行過的相同的SQL來執行
優點:解決了上row level模式的缺點,不需要記錄每一行數據的變化,減少日誌量,可以得高性能
缺點:由於記錄的是執行語句,在此模式下會有主從無法復制的問題出現
mixed自動模式:
MYSQL會根據執行的每一條具體SQL語句來區分對待記錄的日誌格式,
企業使用場景:
1)如果不會用到mysql特殊的功能,基本都是默認的模式statement模式
2)如果會到mysql的一些特殊功能,基本都是會使用row level模式
備註
今天是每日一題陪伴大家的第84天,期待你的進步。
對於題目和答案的任何疑問,請在博客評論區留言。
往期題目索引
http://lidao.blog.51cto.com/3388056/1914205
本文出自 “李導的博客” 博客,請務必保留此出處http://lidao.blog.51cto.com/3388056/1944558
老男孩教育每日一題-第83天-binlog是什麽?記錄的什麽?有幾種工作模式及企業應用場景