DB的主從原理

一、        主從配置的原理:
Mysql
Replication 是一個異步的複製過程,從一個 Mysql instace(我們稱之爲 Master)複製到另一個
Mysql instance(
我們稱之 Slave)。在 Master Slave
之間的實現整個複製過程主要由三個線程來完成,其中兩個線程(Sql線程和IO線程) Slave 端,另外一個線程(IO線程) Master端。
  要實現 MySQL Replication ,首先必須打開 Master 端的Binary
Log(mysql-bin.xxxxxx)
功能,否則無法實現。因爲整個複製過程實際上就是SlaveMaster端獲取該日誌然後再在自己身上完全順序的執行日誌中所記錄的各種操作。打開 MySQL Binary Log 可以通過在啓動 MySQL Server 的過程中使用“—log-bin” 參數選項,或者在 my.cnf 配置文件中的 mysqld 參數組([mysqld]標識後的參數部分)增加
“log-bin”
參數項。
  MySQL 複製的基本過程如下:
  1. Slave 上面的IO線程連接上 Master,並請求從指定日誌文件的指定位置(或者從最開始的日誌)之後的日誌內容;
 
   2. Master 接收到來自 Slave IO 線程的請求後,通過負責複製的 IO
線程根據請求信息讀取指定日誌指定位置之後的日誌信息,返回給 Slave 端的 IO
線程。返回信息中除了日誌所包含的信息之外,還包括本次返回的信息在 Master 端的 Binary Log 文件的名稱以及在 Binary
Log
中的位置;
  3. Slave IO 線程接收到信息後,將接收到的日誌內容依次寫入到 Slave 端的Relay
Log
文件(mysql-relay-bin.xxxxxx)的最末端,並將讀取到的Master端的bin-log的文件名和位置記錄到master-
info
文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log的哪個位置開始往後的日誌內容,請發給我
 
  
 4. Slave SQL 線程檢測到 Relay Log 中新增加了內容後,會馬上解析該 Log 文件中的內容成爲在 Master
端真實執行時候的那些可執行的 Query 語句,並在自身執行這些 Query。這樣,實際上就是在 Master 端和 Slave
端執行了同樣的 Query,所以兩端的數據是完全一樣的。

二、        設置mysql主從配置的優點:
1
        解決web應用系統,數據庫出現的性能瓶頸,採用數據庫集羣的方式來實現查詢負載;一個系統中數據庫的查詢操作比更新操作要多得多,通過多臺查詢服務器將數據庫的查詢分擔到不同的查詢服務器上從而提高查詢效率。
2
        Mysql數據庫支持數據庫的主從複製功能,使用主數據庫進行數據的插入、刪除與更新操作,而從數據庫則專門用來進行數據查詢操作,這樣可以將更新操作和查詢操作分擔到不同的數據庫上,從而提高了查詢效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章