面試積累-MySQL-關於MySQL的複製

MySQL 的複製原理以及流程

Mysql 內建的複製功能是構建大型,高性能應用程序的基礎。將 Mysql 的數據 分佈到多個系統上去,這種分佈的機制,是通過將 Mysql 的某一臺主機的數據 複製到其它主機(slaves)上,並重新執行一遍來實現的。 * 複製過程中一 個服務器充當主服務器,而一個或多個其它服務器充當從服務器。主服務器將 更新寫入二進制日誌文件,並維護文件的一個索引以跟蹤日誌循環。這些日誌 可以記錄發送到從服務器的更新。 當一個從服務器連接主服務器時,它通知主 服務器在日誌中讀取的最後一次成功更新的位置。從服務器接收從那時起發生 的任何更新,然後封鎖並等待主服務器通知新的更新。
過程如下 :

  1. 主服務器 把更新記錄到二進制日誌文件中。
  2. 從服務器把主服務器的二進制日誌拷貝 到自己的中繼日誌(replay log)中。
  3. 從服務器重做中繼日誌中的時間, 把更新應用到自己的數據庫上。

MySQL支持的複製類型?

  1. 基於語句的複製: 在主服務器上執行的 SQL 語句,在從服務器上執行 同樣的語句。MySQL 默認採用基於語句的複製,效率比較高。 一旦發 現沒法精確複製時,會自動選着基於行的複製。
  2. 基於行的複製:把改變的內容複製過去,而不是把命令在從服務器上執 行一遍. 從 mysql5.0 開始支持
  3. 混合類型的複製: 默認採用基於語句的複製,一旦發現基於語句的無法 精確的複製時,就會採用基於行的複製。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章