1. 程式人生 > 實用技巧 >2.5.2 MySQL二進位制日誌介紹

2.5.2 MySQL二進位制日誌介紹

MySQL二進位制日誌介紹

什麼是 binary log

這個檔案記錄了mysql資料庫所有的DDL和DML(除了資料查詢語句 select)語句事件。用來記錄資料庫中發生的修改情況。比如:資料的修改、表的創健建及修改等。
它既可以記錄涉及修改的SQL,也可以記錄資料修改的行變化記錄,同時也記錄了執行時間。比如:執行sql:update itpux set name='a' where id between l and 5修改了5行記錄

binlog 日誌有兩個最重要的使用場景

1) MySQL主從複製:MySQL Replication 在 Master 端開啟 binlog, Master把它的二進位制日誌傳遞給 slaves來達到 master-slave 資料一致的目的。2)資料恢復通過使用 mysqlbinlog工具來使恢復資料;資料庫宕機恢復使用;異常操作,緊急恢復資料使用;

MySQL binlog的三種工作模式

(1) Row level日誌中會記錄每一行資料被修改的情況,然後在slave端對相同的資料進行修改。(2) Statement level(預設)每一條被修改資料的sql都會記錄到 master的bin-log中,slave在複製的時候sql程序會解析成和原來master端執行過的相同的sql再次執行(3) Mixed(混合模式)結合了 Row level和 Statement level的優點

設定 MySQL binlog模式

檢視 MySQLbinlog模式
mysql> show variables like "binlog%";
binlog_format    ROW
vi my.cnf
binlog_format= 'ROW'
or
binlog_format='STATEMENT'
or
binlog_format='Mixed'