mysql之 MySQL 主從基於position複製原理概述

張衝andy發表於2017-06-09

1 、主從複製簡介
MySQL 主從複製就是將一個 MySQL 例項(Master)中的資料實時複製到另一個 MySQL 實
例(slave)中,而且這個複製是一個非同步複製的過程。
實現整個複製操作主要由三個程式完成的,其中兩個程式在 Slave(sql_thread 和
IO_thread),另外一個程式在 Master(IO 程式)上。
2 、主從複製 原理 、 機制
要實施複製,首先必須開啟 Master 端的 binary log(bin-log)功能,否則無法實現。
因為整個複製過程實際上就是 Slave 從 Master 端獲取該日誌然後再在自己身上完全順序的
執行日誌中所記錄的各種操作。
複製的基本過程如下:
1)、Slave 上面的 IO_thread 連線上 Master,並請求從指定日誌檔案的指定位置(或者
從最開始的日誌)之後的日誌內容;
2)、Master 接收到來自 Slave 的 IO_thread 的請求後,通過負責複製的 IO 程式根據請
求資訊讀取指定日誌指定位置之後的日誌資訊,返回給 Slave 的 IO_thread。返回資訊中除
了日誌所包含的資訊之外,還包括本次返回的資訊已經到 Master 端的 bin-log file 的以及
bin-log pos;
3)、Slave 的 IO_thread 接收到資訊後,將接收到的日誌內容依次新增到 Slave 端的
relay-log 檔案的最末端,並將讀取到的 Master 端的 bin-log 的檔名和位置記錄到
master-info 檔案中,以便在下一次讀取的時候能夠清楚的告訴 Master“我需要從某個
bin-log 的哪 個位置開始往後的日誌內容,請發給我”;
4)、Slave 的 Sql_thread 檢測到 relay-log 中新增加了內容後,會馬上解析 relay-log
的內容成為在 Master 端真實執行時候的那些可執行的內容,並在本資料庫中執行。

3 、主從複製 原理圖


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2140555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章