簡介
MySQL主從同步的是基于binlog實現(xiàn),從庫同步主庫binlog文件,實現(xiàn)數(shù)據(jù)的同步
主從復制的三種模式
- 基于語句的復制 :主庫把sql語句寫入到bin log中,完成復制
- 基于行數(shù)據(jù)的復制:主庫把每一行數(shù)據(jù)變化的信息作為事件踪旷,寫入到bin log曼氛,完成復制
- 混合復制:結(jié)合以上兩種模式,默認用語句復制令野,出問題時候自動切換成行數(shù)據(jù)復制
binlog三種存儲模式
以上三種復制模式分別對應binlog以下三種存儲模式:
- statement:記錄的是修改SQL語句
- row:記錄的是每行實際數(shù)據(jù)的變更
- mixed:statement和row模式的混合
binlog模式在MySQL 5.7.7之前舀患,默認為 STATEMENT,在之后的版本中气破,默認為ROW草慧。
這里建議采用ROW模式,因為ROW模式更安全偿衰,可以清楚記錄每行數(shù)據(jù)修改的細節(jié)一汽。
復制過程
image.png
- master將改變記錄到binlog中
- slave啟動一個IO線程異步地將master的binlog拷貝到它的relaylog中繼日志
- slave的SQL線程重做relaylog中的更新
由于該同步過程是異步進行的,因此存在主從延遲問題