1. 程式人生 > >老男孩教育每日一題-第83天-binlog是什麽?記錄的什麽?有幾種工作模式及企業應用場景

老男孩教育每日一題-第83天-binlog是什麽?記錄的什麽?有幾種工作模式及企業應用場景

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是什麽?記錄的什麽?有幾種工作模式及企業應用場景