天天看點

mysql 主從複制實作原理

Mysql主從複制通過三個線程來實作,其中一個運作于主伺服器,另外兩個運作于從伺服器。

三個線程分别是:

Binlog dump thread: 

      當從伺服器連接配接到主時,主伺服器就會建立這個線程以便于發送二進制日志

到從伺服器,可以在伺服器上通過 "show processlist"檢視。該線程在從二進制日

志讀取将要發送到從伺服器的事件之前擷取讀鎖,事件讀取完後,釋放鎖。

Slave I/O thread:

    從伺服器上執行"start slave"語句後,從伺服器就會建立一個I/O線程,通過

該線程連接配接到主伺服器,并請求主伺服器發送二進制日志更新。從伺服器通過I/O

線程讀取更新,主伺服器通過"Binlog dump thread"線程複制和發送更新到從服務

器的本地檔案,即中繼日志。

     線程狀态可以通過指令"show slave status"輸出中的參數 "Slave_IO_runnning"

或者 "show status"輸出中的"Slave_running"檢視。

Slave SQL thread:

     從伺服器建立sql線程讀取IO線程寫的中繼日志檔案,并執行事件.

     線程狀态可通過指令"show slave status"輸出中的參數 "Slave_SQL_runnning"

檢視。

本文轉自 marbury 51CTO部落格,原文連結:http://blog.51cto.com/magic3/1540299