1. 程式人生 > >MySQL復制原理

MySQL復制原理

原理 href htm ron tail ati 功能 details https

參考官網:https://dev.mysql.com/doc/refman/5.7/en/replication-implementation-details.html

MySQL復制功能是通過三個線程實現的,包括主上的binlog dump tread和從上的sql thread、I/O ttread

Binlog dump thread

master創建binlog dump thread,用於 當slave連接到master時發送binlog events給其,dump thread每次讀取將要發送給slave的每個event時

先獲得lock在binary log,讀完之後再 釋放。

Slave I/O thread

當執行 START SLAVE 在slave端執行後,slave會創建I/O thread 連接到master主動讀取dump thread將最新的binlog events寫到本地的relay log中

Slave SQL thread

slave創建SQL thread從relay log中讀取event並應用

I/O thread讀取event的速度並不因為server執行的慢而變慢,即使slave的I/O thread 停止一會,當再次開啟的時候也能迅速的獲取master中所有

最新的binlog內容到relay log,即使SQL thread有很大的延遲。如果slave在SQL thread運用完所有的relay log之前停止了,I/O thread至少獲取到

了到目前為止在master上所發生的所有事務日誌到relay log,保證安全復制,到slave 下次啟動時接著應用。

如果maser 通過show processlist看不到binlog dump thread,則說明復制已經停了。

MySQL復制原理