MySQL資料庫主從同步
阿新 • • 發佈:2019-11-27
一、主從同步的原因
為了減輕伺服器處理海量併發訪問所產生的效能問題,其中最主流的方案之一就是讀寫分離。
二、MySQL主從同步流程圖
三、主從庫如何同步
1、 Master主伺服器將對資料的操作記錄到二進位制日誌中(Binary log),MySQL將事務序列(交叉執行)的寫入二進位制日誌;
2、Slave從伺服器將二進位制日誌(Binary log)copy到中繼日誌當中(Relay log)。首先,slave開始一個工作執行緒——I/O執行緒。
- slave開始一個工作執行緒——I/O執行緒。I/O執行緒在master上開啟一個普通的連線;
- 開始binlog dump process;
- 如果binlog dump process已經跟上master,它會睡眠並等待master產生新的事件。
- I/O執行緒將這些事件寫入中繼日誌;
- SQL slave thread(SQL從執行緒)從中繼日誌讀取事件,並重放其中的事件而更新slave的資料,使其與master中的資料一致
四、為什麼需要中繼日誌(Relay log)
由於網路等原因,Binary log不可能一口氣存到 I/O thread中,所以Relay log中用來快取Binary log的事件。(Relay log儲存在從伺服器slave快取中,開銷比較小)
五、需要注意的點
- master和slave連線,slave會在master中開啟一個連線,使得master也開始一個執行緒;
- 複製在slave上是序列化的,即master上的並行更新操作不能在slave上並行操作
六、主從同步優點
- 主庫寫,從庫讀,降低伺服器壓力;
- 在從主伺服器進行備份,避免備份期間影響主伺服器服務,保證資料安全;
- 當主伺服器出現問題時,可以切換到從伺服器,提高效能
七、主從同步資料庫設定
1、連線上MySQL
2、在主伺服器Master中做相關配置
設定server-id,log-bin,log-bin-index
重啟主伺服器資料庫
show master status
建立repl賬戶並賦給許可權,並重新整理
3、從伺服器進行相關配置
修改配置檔案
設定server-id,relay-log-index,relay-log
重啟從伺服器資料庫
進行設定
start slave
show slave status (/G,將內容豎向顯示)
4、驗證
主庫File和position與從庫一致,則證明主從同步了
5、(附加)資料庫可設定一個用來遠端訪問的賬戶(%代表遠端訪問)
&n