[ZZ]MySQL高可用解決方案

來源:互聯網
上載者:User

標籤:

MySQL高可用解決方案(MySQL HA Solution)

 

什麼是高可用性?
很多公司的服務都是24小時*365天不間斷的。比如Call Center。這就要求高可用性。再比如購物網站,必須隨時都可以交易。那麼當購物網的server掛了一個的時候,不能對業務產生任何影響。這就是高可用性。

高可用性2個問題:
如何共用資料或同步資料?如何處理failover?
解釋failover,意思就是當伺服器down掉,或者出現錯誤的時候,可以自動的切換到其他待命的伺服器,不影響伺服器上App的運行。

對於分散式資料庫系統。如何架構才能保證其高可用性呢?以MySQL為例。
1. MySQLreplication with manual failover
同步資料是採用MySQL replication的方法,在MySQL分表分塊到主從已經解釋。簡單的說就是從庫根據主庫的日誌來做相應的處理,保證資料的一致。通常還配合MySQL Proxy或Amoeba等進行讀寫分離減少伺服器壓力。
manual failover,顯然當Master掛掉時,利用本方式是需要手動來處理failover,一般來說是將slave更改為server。
可用性達到: 98%-99.9+%

2.Master-Master with MMM manager(Multi-Master Replication Manager)
同步資料的方式是Multi-Master Replication Manager,在MySQL分表分塊到主從解釋,多主多從的設定,是一個loop環形,每個DB既是前一個DB的Slave又是後一個的Master。優勢就在於,一個Master掛掉,也還可以繼續DB操作。每個DB都可以進行讀寫,分散壓力。
可用性達到:99%

3.Heartbeat/SAN
處理failover的方式是Heartbeat,Heartbeat可以看成是一組程式,監控管理各個node間串連的網路。當node出現錯誤時,自動啟動其他node開始服務。Heartbeat必須解決的一個問題就是split brain,在網路中的一個node down掉後,每個node都會認為其他node down掉並嘗試開始服務,因為產生資料衝突。

通過SAN來共用資料。
SAN:Storage Area Network,是一種LAN來處理大資料量的傳輸,提供了電腦和儲存系統之間的資料轉送。各個電腦群組成的叢集可以通過SAN共用儲存。


當server1掛掉的時候,Heartbeat監控到啟動Server2的服務。而因為採用了SAN來共用了儲存,Server2可以直接利用SAN網路中的資料。通過這種方式來提供高可用的解決方案。
可用性達到: 99.5%-99.9%

4.Heartbeat/DRBD
處理failover的方式依舊是Heartbeat。
同步資料使用DRBD:Distributed Replicated Block Device(DRBD)是一個用軟體實現的、無共用的、伺服器之間鏡像塊裝置內容的儲存複製解決方案。和SAN網路不同,它並不共用儲存,而是通過伺服器之間的網路複製資料。

可用性達到: 99.9%

5. MySQLCluster(NDB Cluster)
MySQL Cluster也是由各個DB node組成一個cluster,在這個cluster中由網路連接。可以自由的增減node的個數來對應資料庫壓力。

用synchronous replication(同步複製,要不同時成功要麼同時失敗)的方式來同步各個node的資料。然後對各個table進行partition,基於各個table的primary key。

採用了Shared Nothing Architecture的結構。不共用任何資料,而是每個node都同步好各自的資料。這樣即使是PC也可以輕鬆被加入到Shared Nothing的結構中。

             Share disk                  Sharenothing                   Sharememory 

 

很難懂,我猜想MySQL Cluster的結構應該和Hadoop中的HDFS(Hadoop Distributed File System)相似,按照key來做partition,然後將各個partition通過synchronous的方式同步的儲存到各個 DataNode上,Management Node來監聽管理Cluster,通過SQL Node來訪問DataNode上的資料。

 

可用性百分比資料來源:
http://www.mysqlperformanceblog.com/2009/10/16/finding-your-mysql-high-availability-solution-–-the-questions/

 

轉自:

http://blog.sina.com.cn/s/blog_7e89c3f501012vtr.html

 

[ZZ]MySQL高可用解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.