天天看點

面試積累-MySQL-關于MySQL的複制MySQL 的複制原理以及流程MySQL支援的複制類型?

MySQL 的複制原理以及流程

Mysql 内建的複制功能是建構大型,高性能應用程式的基礎。将 Mysql 的資料 分布到多個系統上去,這種分布的機制,是通過将 Mysql 的某一台主機的資料 複制到其它主機(slaves)上,并重新執行一遍來實作的。 * 複制過程中一 個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器将 更新寫入二進制日志檔案,并維護檔案的一個索引以跟蹤日志循環。這些日志 可以記錄發送到從伺服器的更新。 當一個從伺服器連接配接主伺服器時,它通知主 伺服器在日志中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生 的任何更新,然後封鎖并等待主伺服器通知新的更新。

過程如下 :

  1. 主伺服器 把更新記錄到二進制日志檔案中。
  2. 從伺服器把主伺服器的二進制日志拷貝 到自己的中繼日志(replay log)中。
  3. 從伺服器重做中繼日志中的時間, 把更新應用到自己的資料庫上。

MySQL支援的複制類型?

  1. 基于語句的複制: 在主伺服器上執行的 SQL 語句,在從伺服器上執行 同樣的語句。MySQL 預設采用基于語句的複制,效率比較高。 一旦發 現沒法精确複制時,會自動選着基于行的複制。
  2. 基于行的複制:把改變的内容複制過去,而不是把指令在從伺服器上執 行一遍. 從 mysql5.0 開始支援
  3. 混合類型的複制: 預設采用基于語句的複制,一旦發現基于語句的無法 精确的複制時,就會采用基于行的複制。