資料庫 之 Mysql複製概念介紹

來源:互聯網
上載者:User

標籤:操作   部分   dump   作用   模式   級聯   服務區   程式   線程進程   

Master/Slave

Master: write/read,寫操作都在主節點上操作

Slaves: read,讀操作都是從節點這邊發出

為什麼要複製?

冗餘:promte(提升為主),異地災備,可以通過人工或者工具程式(MHA)實現

擴充:轉移一部分“讀”請求;

支援安全的備份操作;

測試需要;

主/從架構實現:

在主節點上啟用二進位日誌,從節點啟動連接線程,請求主節點把這個事件發給自己一份,從節點上有一個線程叫IO Thread,主節點上啟用dump thread,IO Thread從節點將接受到的日誌儲存到中繼日誌,從伺服器上的SQL THread負責從中繼日誌裡產生一份資料。這樣的資料同步方式是非同步。主伺服器負責寫操作,從伺服器負責讀操作。

主從有可能導致主從資料不一致。如主服務多線程進程,從服務區是單線程進程,有可能導致主從資料不一致,從伺服器的資料可能會落後於主伺服器,這個問題是不可避免的,只能儘早發現,將不正確的資料手動更改,如果資料差別很大,手動恢複很難,可以在主伺服器上做備份,把資料直接回複到從伺服器上。

主伺服器存到二進位log,存到從伺服器上是非同步作業的。傳輸是單向的。但是這裡有個問題,如果寫操作超出主伺服器的效能,解決方案,使用雙主模型

主從複製的三種形式:同步複製,非同步複製,半同步複製

同步複製:

        雙主模型:寫操作都在本地寫,同步給另一個節點,放到relay中。

主伺服器都要啟動中繼日誌和二進位日誌,所有發給本節點的寫操作,都要記錄到二進位日誌中,並通過dump thread發給對端主伺服器,對端主伺服器通過io thread將收到的資料存放區到中繼日誌中,並依靠sql thread實現重放。主節點實現了冗餘。每個節點都可以讀和寫操作。這種操作可以降低讀請求,每個伺服器負載一半的請求,但是寫操作的請求數量是一樣的,因為,雙主的伺服器都要寫入一份資料。

利用中介軟體的讀寫分離器實現請求讀寫分離,中介軟體可以利用keepalive實現冗餘。但是有了雙主模型,就不需要讀寫分離,只需要用haproxy或者nginx或者lvs來實現請求的四層調度將請求調度到不同伺服器上即可。

mysql主從複製弊端可能運行一段時間後,根據商務邏輯的不一樣,可能導致主從資料不一致,導致得到的資料不一致。該情況在資料要求強一致的情況下是不允許存在的。

在主伺服器上,操作是多線程並行的,但是記錄到二進位檔案中是串列記錄,從伺服器是單線程運行擷取資料,這樣導致從伺服器拉取資料的速度落後於主伺服器,導致了資料的差異,長此以往會導致資料嚴重不一致。如果這裡設定讀寫分離,可能導致從伺服器上讀出的資料是錯誤的。雙主模型同樣有這個問題。主從資料不一致,建議解決辦法是手動修改資料。如果資料差別太大,將從伺服器關閉,在主伺服器上做備份,恢複到從伺服器上。

非同步複製:

一主多從;

一從一主;

級聯複製;一主複製給一從,同時,這個從伺服器又是其他伺服器的主,其他從伺服器到這個轉送伺服器複製資料,級聯的作用是降低主伺服器的壓力。中間的這個從伺服器要啟用二進位日誌和中繼日誌,同時,中間這台從伺服器僅起到過渡的作用,不需要儲存資料,因此將block hole引擎用於這個中間從伺服器上,使得不會產生資料儲存,但是中繼日誌和二進位日誌都有正常儲存,起到過渡的效果。

迴圈複製;多主模式下,採用迴圈複製,但是鏈條更長,可能導致資料落後嚴重。

雙主複製;

半同步複製:

一從多主模型:每個主伺服器提供不同的資料庫,master只保證slaves中的一個操作成功,就返回,其他slave不管。這個功能,是由google為MYSQL引入的。


資料庫 之 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.