1. 程式人生 > >MySQL資料庫主從同步

MySQL資料庫主從同步

一、主從同步的原因


 

   為了減輕伺服器處理海量併發訪問所產生的效能問題,其中最主流的方案之一就是讀寫分離。

二、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