Mysql主從復制機制原理


Mysql主從復制的用途

  • 實施災備,用於故障切換
  • 讀寫分離用於查詢服務
  • 備份,避免數據丟失

 

Mysql主從復制的條件

  • 主庫開啟binlog日志(從庫需要從這里面讀取)
  • 主從的Mysql server-id需要不同
  • 從庫服務器能連通主庫

 

Mysql主從復制原理

 

 

  1. 主庫接收用戶做crud操作,寫入數據庫,更新結果集到binlog中
  2. 主從同步是主找從的,從庫IO發起請求,主庫的主進程看從庫 master change中給的參數是否合法,如果合法主進程交給IO進程執行 3 操作,否則拒絕處理
  3. 主庫根據master的位置點,從這個位置點的binlog日志一直到binlog日志最后,將其准備發送給從庫。
  4. 將找到的binlog日志發送個i從庫,並且還會發送新的日志點。
  5. 從庫接收到binlog日志,將其寫入realy-log(中繼日志)中。
  6. 從庫IO進程再向master info保存主庫傳過來的最后的binlog日志的日志位置點。
  7. 從庫IO時循環發起請求的,發了再要,不會管SQL讀取中繼日志的操作。從庫IO根據新的日志點,向主庫發起請求,主庫執行 3 4 操作,再發送新的binlog給從庫,從庫再執行5操作。
  8. 其實第一次向relay-log中放數據時候,SQL進程就已經知道,SQL進程將relay-log中的SQL語句轉換成數據,寫入從庫,從而實現同步。
  9. 從庫SQL線程讀取中計日志,並不會一次性讀完,會把讀取到的日志點存放到relay-log.info中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM