MySQL NDB Cluster和Galera Cluster的主要特性和優缺點介紹

luckyfriends發表於2017-07-21
http://m.blog.itpub.net/15498/viewspace-2135219/
MySQL NDB Cluster是MySQL 適合於分散式計算環境的高實用、高冗餘版本。它採用了NDB Cluster 儲存引擎,允許在1個 Cluster 中執行多個MySQL伺服器。


MySQL NDB Cluster是一種技術,該技術允許在無共享的系統中部署“記憶體中”資料庫的 Cluster 。透過無共享體系結構,系統能夠使用廉價的硬體,而且對軟硬體無特殊要求。此外,由於每個元件有自己的記憶體和磁碟,不存在單點故障。


MySQL NDB cluster主要由三種型別的服務組成:


NDB Management Server:管理伺服器主要用於管理cluster中的其他型別節點(Data Node和SQL Node),透過它可以配置Node資訊,啟動和停止Node。
SQL Node:在MySQL Cluster中,一個SQL Node就是一個使用NDB引擎的mysql server程式,用於供外部應用提供叢集資料的訪問入口。
Data Node:用於儲存叢集資料;系統會盡量將資料放在記憶體中。


優點:
1.透過自動分片實現高水平的寫入擴充套件能力
        MySQL Cluster 自動將表分片(或分割槽)到不同節點上,使資料庫可以在低成本的商用硬體上橫向擴充套件,同時保持對應用程式完全應用透明。 
2.99.999%的可用性
        憑藉其分散式、無共享架構,MySQL Cluster 可提供 99.999% 的可用性,確保了較強的故障恢復能力和在不停機的情況下執行預定維護的能力。 
3.SQL 和NoSQL API
        MySQL Cluster 讓使用者可以在解決方案中整合關聯式資料庫技術和NoSQL技術中的最佳部分,從而降低成本、風險和複雜性。 
4.實時效能
        MySQL Cluster 提供實時的響應時間和吞吐量,能滿足最苛刻的 Web、電信及企業應用程式的需求。  
5.具有跨地域複製功能的多站點叢集
        跨地域複製使多個叢集可以分佈在不同的地點,從而提高了災難恢復能力和全球 Web 服務的擴充套件能力。  
6.聯機擴充套件和模式升級
        為支援持續運營,MySQL Cluster 允許向正在執行的資料庫模式中聯機新增節點和更新內容,因而能支援快速變化和高度動態的負載。


缺點:
    1.基於記憶體,資料庫的規模受叢集總記憶體的大小限制
    2.多個節點透過網路實現通訊和資料同步、查詢等操作,因此整體性受網路速度影響
    3.對需要進行分片的表需要修改引擎Innodb為NDB,不需要分片的可以不修改。
    4.NDB的事務隔離級別只支援Read Committed,即一個事務在提交前,查詢不到在事務內所做的修改;而Innodb支援所有的事務隔離級別,預設使用Repeatable Read,不存在這個問題。
    5.外來鍵支援:雖然最新的Cluster版本已經支援外來鍵,但效能有問題(因為外來鍵所關聯的記錄可能在別的分片節點中),所以建議去掉所有外來鍵。
    6.Data Node節點資料會被儘量放在記憶體中,對記憶體要求大。


Mysql-cluster的優缺點 

優點:

  1. a)         99.999 %的高可用性

  2. b)         快速的自動失效切換

  3. c)         靈活的分散式體系結構,沒有單點故障

  4. d)         高吞吐量和低延遲

  5. e)         可擴充套件性強,支援線上擴容

 

 

缺點:

  1. a)         存在很多限制,比如:不支援外來鍵,資料行不能超過8K(不包括BLOBtext中的資料)

  2. b)         部署、管理、配置很複雜

  3. c)         佔用磁碟空間大,記憶體大

  4. d)         備份和恢復不方便

  5. e)         重啟的時候,資料節點將資料load到記憶體需要很長時間




Galera Cluster for MySQL是一套基於同步複製的多主MySQL叢集解決方案,使用簡單,沒有單點故障,可用性高,能很好保證業務不斷增長時我們資料的安全和隨時的擴充套件,號稱是世界上最先進的開源資料庫叢集方案。
主要特點及特性如下:


1.支援InnoDB引擎
2.同步複製,各節點間無延遲且節點當機不會導致資料丟失
3.多主伺服器的拓撲結構
4.可以在任意節點上進行讀寫
5.自動剔除故障節點
6.自動身份控制,失敗節點自動脫離叢集
7.自動加入新節點
8.真正行級別的併發複製
9.客戶端連線跟操作單臺MySQL資料庫的體驗一致,對應用程式透明,應用程式不需作修改
10.熱Standby,在Failover過程中無停機時間(由於不需要Failover)
11.自動節點配置,無需手工備份當前資料庫並複製至新節點
12.對應於透明,無需更改應用或是進行極小的更改
13.無需進行讀寫分離
14.真正的基於”行”級別和ID檢查的並行複製



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-2142406/,如需轉載,請註明出處,否則將追究法律責任。

相關文章