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、(附加)數據庫可設置一個用來遠程訪問的賬戶(%代表遠程訪問)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM