MYSQL AB複製
要實施複製,首先必須打開Master端的binary log(bin-log)功能,否則無法實現。因為整個MySQL 複製過程實際上就是Slave從Master端獲取該日誌然後再在自己身上完全順序的執行日誌中所記錄的各種操作。
複製的基本過程如下:
1)、Slave上面的IO進程連線上Master,並請求從指定日誌檔案的指定位置(或者從最開始的日誌)之後的日誌內容;
2)、Master接收到來自Slave的IO進程的請求後,通過負責複製的IO進程根據請求信息讀取指定日誌指定位置之後的日誌信息,返回給Slave 的IO進程。返回信息中除了日誌所包含的信息之外,還包括本次返回的信息已經到Master端的bin-log檔案的名稱以及bin-log的位置;
3)、Slave的IO進程接收到信息後,將接收到的日誌內容依次添加到Slave端的relay-log檔案的最末端,並將讀取到的Master端的 bin-log的檔案名稱和位置記錄到master-info檔案中,以便在下一次讀取的時候能夠清楚的告訴Master“我需要從某個bin-log的哪個位置開始往後的日誌內容,請發給我”;
4)、Slave的Sql進程檢測到relay-log中新增加了內容後,會馬上解析relay-log的內容成為在Master端真實執行時候的那些可執行的內容,並在自身執行。