1. 程式人生 > 其它 >簡述MySQL複製的優點

簡述MySQL複製的優點

MySQL複製是指從一個mysql伺服器(MASTER)將資料通過日誌的方式經過網路傳送到另一臺或多臺mysql伺服器(SLAVE),然後在slave上重放(replay或redo)傳送過來的日誌,以達到和master資料同步的目的。MySQL複製屬於比較成熟的技術,在MySQL資料庫中得到廣泛使用,下面我們一起來了解一下MySQL複製的優點。

MySQL 內建的複製功能是構建大型、高效能應用程式的基礎。將 MySQL 的資料分佈到多個系統上去,這種分佈的機制是通過將 MySQL 的某一臺主機的資料複製到其他主機(Slaves)上,並重新執行一遍來實現的。在複製過程中,一臺伺服器充當主伺服器,而另一臺或多臺其他伺服器充當從伺服器。主伺服器將更新寫入二進位制日誌檔案,並維護檔案的一個索引以跟蹤日誌迴圈。這些日誌可以記錄傳送到從伺服器的更新。當一個從伺服器連線主伺服器時,它通知主伺服器,從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知新的更新。

結合上述的MySQL複製的基本原理,總結出下面5個MySQL複製的優點:

1.提供了讀寫分離的能力。

MySQL複製讓所有的slave都和master保持資料一致,因此外界客戶端可以從各個slave中讀取資料,而寫資料則從master上操作。也就是實現了讀寫分離。

需要注意的是,為了保證資料一致性,寫操作必須在master上進行。

通常說到讀寫分離這個詞,立刻就能意識到它會分散壓力、提高效能。

2.為MySQL伺服器提供了良好的伸縮(scale-out)能力。

由於各個slave伺服器上只提供資料檢索而沒有寫操作,因此"隨意地"增加slave伺服器數量來提升整個MySQL群的效能,而不會對當前業務產生任何影響。

之所以"隨意地"要加上雙引號,是因為每個slave都要和master建立連線,傳輸資料。如果slave數量巨多,master的壓力就會增大,網路頻寬的壓力也會增大。

3.資料庫備份時,對業務影響降到最低。

由於MySQL伺服器群中所有資料都是一致的(至少幾乎是一致的),所以在需要備份資料庫的時候可以任意停止某一臺slave的複製功能(甚至停止整個mysql服務),然後從這臺主機上進行備份,這樣幾乎不會影響整個業務(除非只有一臺slave,但既然只有一臺slave,說明業務壓力並不大,短期內將這個壓力分配給master也不會有什麼影響)。

4.能提升資料的安全性。

這是顯然的,任意一臺MySQL伺服器斷開,都不會丟失資料。即使是master宕機,也只是丟失了那部分還沒有傳送的資料(非同步複製時才會丟失這部分資料)。

5.資料分析不再影響業務。

需要進行資料分析的時候,直接劃分一臺或多臺slave出來專門用於資料分析。這樣OLTP和OLAP可以共存,且幾乎不會影響業務處理效能。

MySQL複製的優點決定了MySQL資料庫中複製技術存在的必然性,MySQL複製不僅僅對資料安全和業務提升有很大幫助,同時也為MySQL資料庫的發展提供了更多的可能。