面試寶典系列-MySql主從複製原理

實現原理圖大體以下(來源網絡):sql

複製過程:數據庫

  1. 主服務器必須啓用二進制日誌,記錄全部修改數據庫的事件
  2. 主服務器建立一個I/O線程,從服務器建立一個I/O線程和一個SQL線程
  3. 從服務器上的I/O線程鏈接上主服務器,並告訴主服務器日誌讀取偏移位
  4. 主服務器I/O線程檢查該值是否小於當前二進制日誌偏移位
  5. 若是小於,則讀取偏移位以後的數據給從服務器的I/O線程
  6. 從服務器I/O線程將讀取到的數據依次寫入到中繼日誌中,並記錄當前偏移位(下次使用)
  7. 從服務器的SQL線程發現中繼日誌中新增了內容,則當即解析日誌的新增內容,並依次執行。(從服務器和主服務器執行的都是相同的sql,保證了數據的一致性)

小結:服務器

  • 主從複製是異步的邏輯的SQL語句級的複製網絡

  • 複製時,主庫有一個I/O線程,從庫有兩個線程,I/O和SQL線程異步

  • 實現主從複製的必要條件是主庫要開啓記錄binlog功能線程

  • 做爲複製的全部Mysql節點的server-id都不能相同日誌

  • binlog文件只記錄對數據庫有更改的SQL語句(來自主庫內容的變動),不記錄任何查詢(select,show)語句server

 

相關文章
相關標籤/搜索