mysql複製原理圖

哎呀我的天吶發表於2016-03-11



圖中master thread是每1s從redo buffer重新整理redo到磁碟。
dump thread將binlog推送到遠端的slave,每一個slave會對應一個dump thread

接收IO執行緒和回放SQL執行緒的單位是event(write_row等等),5.6之前SQL執行緒只有一個執行緒,而主庫上執行是多執行緒的,延時較大。
從5.6開始支援多執行緒,之前的SQL Thread作為協調的執行緒,真正回放的執行緒是Work Thread,但是5.6有一個問題,Work Thread是和庫對應的,一個庫對應一個Work Thread,5.7開始備庫和主庫一致。

還有兩個重要的檔案,master-info.log和relay-info.log,
master-info.log表示IO執行緒接收到的pos的位置(event的位置),relay-info.log表示回放到的pos位置。
至於是dump thread推還是slave過來拉日誌,其實是推拉結合的?

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29990276/viewspace-2055728/,如需轉載,請註明出處,否則將追究法律責任。

相關文章