1. 程式人生 > >實現MYSQL的主從復制

實現MYSQL的主從復制

MySQL主從復制 linux 數據庫

一、MYSQL 主從復制原理
1、在每個事務更新數據完成之前,master在二進制日誌記錄這些變化。寫入二進制日誌完成後,master通知存儲引擎提交事務。

2、slave將master的binary log復制到其中繼日誌。slave開始一個工作線程--I/O線程,I/O線程在master上打開一個普通的連接,然後開始binlog dump process。binlog dump process從master的二進制日誌中讀取事件,如果已經連接上master,它會睡眠並等待master產生新的事件,I/O線程將這些事件寫入中繼日誌。

3、SQL從線程處理該過程的最後一步,sql線程從中繼日誌讀取事件,並重放其中的事件而更新slave的數據,使其與master中的數據一致。

二、實現主從復制
1、實現時間同步
啟動ntp服務,實現開機自動啟動
技術分享圖片

修改/etc/ntpd.conf,添加兩項
server 192.168.1.20 //手工寫 需要同步的上層服務器
fudge 192.168.1.20 stratum 8 //手工寫 同步上層服務器的stratum,大小不能超過或等於16
技術分享圖片

獲取ntp服務器時間
技術分享圖片

技術分享圖片

時間同步
2、配置MySQL主master服務器
修改配置文件my.cnf

技術分享圖片技術分享圖片技術分享圖片

授予復制權限
技術分享圖片
flush privileges 命令本質上的作用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏。MySQL用戶數據和權限有修改後,希望在"不重啟MySQL服務"的情況下直接生效

file列顯示日誌名,position列顯示偏移量

3、配置從服務器slave
修改/etc/my.cnf
技術分享圖片
默認情況,中繼日誌使用host_name-relay-bin.nnnnnn形式的文件名,其中host_name是從服務器主機名,nnnnnn是序 列號。用連續序列號來創建連續中繼日誌文件,從000001開始。從服務器跟蹤索引文件中目前正使用的中繼日誌。
默認中繼日誌索引文件名為host_name-relay-bin.index。默認情況,在從服務器的數據目錄中創建這些文件。

技術分享圖片

配置同步登陸MySQL

技術分享圖片
技術分享圖片

技術分享圖片

4.驗證主從復制

技術分享圖片

技術分享圖片

實現MYSQL的主從復制