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

1:MySQL的復制原理

5.7 創建 slist https follow 功能 ext 顯示 RoCE

MySQL官網鏈接:https://dev.mysql.com/doc/refman/5.7/en/replication-implementation-details.html
MySQL復制功能使用三個線程實現,一個在master上,兩個在slave上:

  • Binlog dump thread
    • master創建此線程,以便在slave連接時將二進制日誌內容發送到slave.master上的SHOW PROCESSLIST的輸出中將此線程標識為Binlog Dump線程。
    • 此線程獲取master二進制日誌上的一個鎖,以便讀取發送到slave的每個事件。一旦讀取了事件,即使在事件發送到slave之前,鎖也會被釋放。**
  • Slave I/O thread
    • 在slave上發出START SLAVE語句時,slave會創建一個I/O線程,該線程連接到master並要求它發送二進制日誌中記錄的更新。
    • 此線程讀取master的Binlog Dump thread發送的更新(請參閱上一項)並將它們復制到包含slave的中繼日誌的本地文件中。
    • 該線程的狀態在SHOW SLAVE STATUS的輸出中顯示為Slave_IO_running,或者在SHOW STATUS的輸出中顯示為Slave_running
  • Slave SQL thread.
    • slave創建一個SQL線程來讀取由Slave I/O thread寫入的中繼日誌,並執行其中包含的事件。

NEXT:2:基於二進制日誌文件位置的復制 http://blog.51cto.com/itzhoujun/2351367

1:MySQL的復制原理