0xFE 0x62 0x69 0x6ELOG_EVENT,含時間戳、類型、數據以 UPDATE 為例:
ha_update_row 修改數據binlog_query 寫 Binlogha_autocommit_or_rollback 提交/回滾為什麼先寫數據再寫 Binlog?若先寫 Binlog 再更新時 Crash,Slave 可能已應用,導致主從不一致。
Relay Log;SQL 線程 讀 Relay Log → 重放 SQL| 問題 | 答案 |
|---|---|
| Binlog 格式? | 二進制順序,不加密、不壓縮 |
| Binlog 用 WAL? | No |
| Master 發送用內存 copy? | 大概率先讀磁盤再發送 |
| Relay Log 用 WAL? | Yes,先寫再應用 |
| Binlog 與 Relay Log SQL 一致? | 網絡可靠前提下 Yes |
innodb_support_xa=1 + sync_binlog=1 才能保證 Binlog 與數據強一致。