mysql複製原理/基於庫的多線程複製原理/基於BLGC的多線程複製原理

來源:互聯網
上載者:User

標籤:mysql 複製


mysql複製原理/基於庫的多線程複製原理/基於BLGC的多線程複製原理


單線程主從複製:

從庫向主程式庫要求binlog,並將binlog轉存到自己的relaylog中,從庫重做binlog裡面的sql,

主要由以下三個線程完成.

dump thread: 在主庫上,發送binlog

io thread: 在slave上,接收,轉存,請求binlog

sql thread :在slave 上,重做binlog



基於庫的多線程複製原理:


從庫向主程式庫要求binlog,並將binlog轉存到自己的relaylog中,從庫重做binlog裡面的sql,

主要由以下三個線程完成.

dump thread: 在主庫上,發送binlog

io thread: 在slave上,接收,轉存,請求binlog

sql thread :在slave 上,讀取binlog,並分配binlog給work thread (分配原則,判斷並存執行的事務是否擁有相同的資料庫)

work thread:執行binlog ,可以有多個





多線程複製


mysql5.7 基於BLGC的多線程複製原理,同時處於prepare階段的事務不會有衝突。

在mysql5.7 的binlog中新增了兩個欄位來來標註哪些事務可以並存執行,和binlog的寫入順序

last_committed:事務提交編號,同一組內的事務,編號相同,可以並存執行。

sequence_number:binglog寫入順序,使用者確保master的binlog順序和slave的binlog順序的一致。


多線程複製中的一些問題

1.binlog以組為順序並發重做,如果上一組binlog中有某個sql執行失敗,整組sql是否復原,slave複製是否暫停?

如果一組中的某個sql執行失敗,整組sql都會復原,

這個時候整個slave是否會暫停,有待驗證


2.並行複製中如何保證master上的binlog和slave上binglog的順序一致

在mysql5.7中為了實現並行複製,特地在binlog日誌中增加了兩個欄位,last_committd,sequence_number,

在slave上按組並行重放的時需要等待組中所有sql執行完成,然後在flush階段按照sequence_number排序,並行提交,

這樣就保證了,master上binlog的的寫入順序就和slave上的binlog的寫入順序相同了。



參考資料

http://www.tuicool.com/articles/EvQjEr

mysql5.7並行複製相關簡介:

http://blog.itpub.net/28218939/viewspace-1975822/

http://blog.itpub.net/28218939/viewspace-1975856/

http://www.ttlsa.com/mysql/mysql-5-7-enhanced-multi-thread-salve/

http://dev.mysql.com/doc/refman/5.6/en/replication-implementation-details.html


本文出自 “SQLServer MySQL” 部落格,請務必保留此出處http://dwchaoyue.blog.51cto.com/2826417/1788704

mysql複製原理/基於庫的多線程複製原理/基於BLGC的多線程複製原理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.