Mysql主從複製原理與實踐

來源:互聯網
上載者:User

標籤:master

Mysql主從複製原理:

1.Mysql支援單雙向、鏈式級聯、非同步複製。可以一主一從,也可以一主多從。

2.鏈式級聯中的從是下級從的主。類似A-->B-->C-->D。

3.主從複製配好後,資料庫的更新必須在主伺服器上進行,以免造成主從衝突。

4.主從伺服器架構可實現對使用者的請求實現讀寫分離。從處理使用者的select,主處理update,insert,delete等更新。以此保持主從即時同步。

5.可以把從伺服器根據業務來拆分。

6.mysql主從複製是非同步複製。master與slave之間三個線程參與完成,其中兩個線程(IO和SQL)在slave,另一個線程(IO)在master端。

7.首先必須開啟master的Binlog(Mysql-bin.xxxxxx)功能,因為整個複製過程實際上就是slave從master端擷取Binlog日誌,然後在slave自身上以相同的順序執行binlog日誌中所記錄的各種操作。


下面簡單描述下mysql主從複製過程(Binlog中不包含select內容):

1.slave伺服器上執行 start slave 開啟主從複製開關。

2.此時。slave伺服器的IO線程會通過在master上授權的複製使用者請求串連master伺服器,並請求從指定的Binlog記錄檔的指定位置之後的Binlog的日誌內容。

3.master伺服器接收到來自slave伺服器的IO線程的請求後,master伺服器上負責複製的IO線程根據slave伺服器的IO線程請求的資訊讀取指定Binlog記錄檔的指定位置之後的Binlog的日誌資訊,然後返回給slave端的IO線程。返回資訊除了日誌內容外,還有本次返回的日誌內容後在master伺服器端的新的Binlog檔案名稱以及在Binlog中的指定位置。

4.當slave的IO線程收到來自master的IO線程發送的日誌內容及記錄檔及位置點後,將Binlog日誌內容依次寫入到slave自身的relaylog(中繼日誌)檔案(mysql-relay-bin.xxxxxx)的最末端,並將新的Binlog檔案名稱和位置記錄到master-info檔案中,以便下一次讀取master的新Binlog日誌時能夠告訴master需要從新Binlog日誌的那個檔案哪個位置開始請求新的Binlog日誌內容。

5.slave伺服器的sql線程會即時的檢測本地relay log 中新增加了日誌內容,然後把這些內容解析成master曾經執行的sql語句,並在自身slave上按語句的順序執行sql語句。

6.這樣 就可以確保在master和slave執行了同樣的sql語句。

Mysql主從複製原理與實踐

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.