標籤:mysq 技術分享 image 操作 接收 主從複製 概述 基本 原理
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 、主從複製 原理圖
mysql之 MySQL 主從複製概述