認識MySQL Replication

來源:互聯網
上載者:User

標籤:

  MySQL Replication 是 MySQL 非常有特色的一個功能,他能夠將一個 MySQL Server 的 Instance 中的資料完整的複製到另外一個 MySQL Server 的 Instance 中。雖然複製過程並不是即時而是非同步進行的,但是由於其高效的效能設計,延時非常之少。

  Mysql 的 Replication 是一個非同步的複製過程,從一個 Mysql instace(我們稱之為 Master)複製到另一個 Mysql instance(我們稱之 Slave)。在 Master 與 Slave 之間的 實現整個複製過程主要由三個線程來完成,其中兩個線程(Sql線程和IO線程)在 Slave 端 , 另外一個線程(IO 線程)在Master 端。

  必須開啟 Master 端的 Binary Log(mysqlbin.xxxxxx)功能,開啟檔案有兩種,分別是:

  1.通過在啟動 MySQL Server 的過程中使用“—log-bin” 參數選項;

  2.在 my.cnf 設定檔中的 mysqld 參數組([mysqld]標識後的參數部分)增加 “log-bin” 參數;

MySQL 複製的基本過程如下:

1. Slave 上面的 IO 線程串連上 Master,並請求從指定記錄檔的指定位置(或者從 最開始的日誌)之後的日誌內容;

2. Master 接收到來自 Slave 的 IO 線程的請求後,通過負責複製的 IO 線程根據請 求資訊讀取指定日誌指定位置之後的日誌資訊,返回給 Slave 端的 IO 線程。返回信 息中除

了日誌所包含的資訊之外,還包括本次返回的資訊在 Master 端的 Binary Log 檔案的名稱以及在 Binary Log 中的位置;

3. Slave 的 IO 線程接收到資訊後,將接收到的日誌內容依次寫入到 Slave 端的 Relay Log 檔案(mysql-relay-bin.xxxxxx)的最末端,並將讀取到的 Master 端的 binlog 的文

件名和位置記錄到 master-info 檔案中,以便在下一次讀取的時候能夠清楚的 高速 Master“我需要從某個 bin-log 的哪個位置開始往後的日誌內容,請發給我”

4. Slave 的 SQL 線程檢測到 Relay Log 中新增加了內容後,會馬上解析該 Log 文 件中的內容成為在 Master 端真實執行時候的那些可執行檔 Query 語句,並在自身執 行這些

Query。這樣,實際上就是在 Master 端和 Slave 端執行了同樣的 Query,所 以兩端的資料是完全一樣的。

複製實現層級

  MySQL 的複製可以是基於一條語句(Statement Level),也可以是基於一條記錄(Row level),可以在 MySQL 的配置參數中設定這個複製層級,不同複製層級的設定會影響到 Master 端的 Binary Log 記錄成不同的形式。

  1. Row Level:Binary Log 中會記錄成每一行資料被修改的形式,然後在 Slave 端 再對相同的資料進行修改。

  2. Statement Level:每一條會修改資料的 Query 都會記錄到 Master 的 Binary Log 中。Slave 在複製的時候 SQL 線程會解析成和原來 Master 端執行過的相同的 Query 來再次執行。

  3.Mixed Level,實際上就是前兩種模式的結合。在 Mixed 模式下,MySQL 會根據執行的每一條具體的 Query 語句來區分對待記錄的日誌形式,也就是在 Statement 和 Row 之間選擇一種。

Replication 常用架構:

1.Master - Slaves

 

2. Master - Master

 

3.級聯複製

 

4. Dual Master 與級聯複製結合架構

認識MySQL Replication

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.