MySQL Cluster 是MySQL適合于分布式計算環(huán)境的高實用、高冗余版本。它采用了NDB Cluster 存儲引擎,允許在1個 Cluster 中運行多個
1 MySQL Cluster
MySQL Cluster 是MySQL適合于分布式計算環(huán)境的高實用、高冗余版本。它采用了NDB Cluster 存儲引擎,允許在1個 Cluster 中運行多個MySQL服務(wù)器。在MyQL 5.0及以上的二進制版本中、以及與最新的Linux版本兼容的RPM中提供了該存儲引擎。(注意,要想獲得MySQL Cluster 的功能,必須安裝 mysql-server 和 mysql-max RPM)。
目前能夠運行MySQLCluster 的操作系統(tǒng)有Linux、Mac OS X和Solaris(一些用戶通報成功地在FreeBSD上運行了MySQL Cluster ,但MySQL AB公司尚未正式支持該特性)。
1.1MySQL Cluster概述
MySQL Cluster 是一種技術(shù),該技術(shù)允許在無共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫的 Cluster 。通過無共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價的硬件,,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內(nèi)存和磁盤,不存在單點故障。
MySQL Cluster 由一組計算機構(gòu)成,每臺計算機上均運行著多種進程,包括MySQL服務(wù)器,NDB Cluster 的數(shù)據(jù)節(jié)點,管理服務(wù)器,以及(可能)專門的數(shù)據(jù)訪問程序。關(guān)于 Cluster中這些組件的關(guān)系,請參見下圖:
所有的這些節(jié)點構(gòu)成一個完成的MySQL集群體系。數(shù)據(jù)保存在“NDB存儲服務(wù)器”的存儲引擎中,表(結(jié)構(gòu))則保存在“MySQL服務(wù)器”中。應(yīng)用程序通過“MySQL服務(wù)器”訪問這些數(shù)據(jù)表,集群管理服務(wù)器通過管理工具(ndb_mgmd)來管理“NDB存儲服務(wù)器”。
通過將MySQLCluster 引入開放源碼世界,MySQL為所有需要它的人員提供了具有高可用性、高性能和可縮放性的 Cluster數(shù)據(jù)管理。
1.2 MySQL Cluster 基本概念
“NDB”是一種“內(nèi)存中”的存儲引擎,它具有可用性高和數(shù)據(jù)一致性好的特點。
MySQL Cluster 能夠使用多種故障切換和負載平衡選項配置NDB存儲引擎,但在Cluster 級別上的存儲引擎上做這個最簡單。MySQL Cluster的NDB存儲引擎包含完整的數(shù)據(jù) 集,僅取決于 Cluster本身內(nèi)的其他數(shù)據(jù)。
目前,MySQLCluster的 Cluster部分可獨立于MySQL服務(wù)器進行配置。在MySQL Cluster中, Cluster的每個部分被視為1個節(jié)點。
管理(MGM)節(jié)點:這類節(jié)點的作用是管理MySQL Cluster內(nèi)的其他節(jié)點,如提供 配置數(shù)據(jù)、啟動并停止節(jié)點、運行備份等。由于這類節(jié)點負責管理其他節(jié)點的配置,應(yīng)在啟動其他節(jié)點之前首先啟動這類節(jié)點。MGM節(jié)點是用命令“ndb_mgmd”啟動的。
數(shù)據(jù)節(jié)點:這類節(jié)點用于保存 Cluster的數(shù)據(jù)。數(shù)據(jù)節(jié)點的數(shù)目與副本的數(shù)目相關(guān),是片段的倍數(shù)。例如,對于兩個副本,每個副本有兩個片段,那么就有4個數(shù)據(jù)節(jié)點。不過沒有必要設(shè)置多個副本。數(shù)據(jù)節(jié)點是用命令“ndbd”啟動的。
SQL節(jié)點:這是用來訪問Cluster數(shù)據(jù)的節(jié)點。對于MySQL Cluster,客戶端節(jié)點是使用NDB Cluster存儲引擎的傳統(tǒng)MySQL服務(wù)器。通常,SQL節(jié)點是使用命令“mysqld –ndbcl uster”啟動的,或?qū)ⅰ皀dbcluster”添加到“my.cnf”后使用“mysqld”啟動。
注釋:在很多情況下,術(shù)語“節(jié)點”用于指計算機,但在討論MySQL Cluster時,它表示的是進程。在單臺計算機上可以有任意數(shù)目的節(jié)點,為此,我們采用術(shù)語“ Cluster主機”。
1.3管理服務(wù)器(MGM節(jié)點)
負責管理 Cluster配置文件和 Cluster日志。 Cluster中的每個節(jié)點從管理服務(wù)器檢索配置數(shù)據(jù),并請求確定管理服務(wù)器所在位置的方式。當數(shù)據(jù)節(jié)點內(nèi)出現(xiàn)新的事件時,節(jié)點將關(guān)于這類事件的信息傳輸 到管理服務(wù)器,然后,將這類信息寫入Cluster日志。
此外,可以有任意數(shù)目的 Cluster客戶端進程或應(yīng)用程序。它們分為兩種類型:
標準MySQL客戶端:對于MySQL Cluster,它們與標準的(非Cluster類)MySQL沒有區(qū)別。換句話講,能夠從用PHP、Perl、C、C++、Java、Python、Ruby等編寫的現(xiàn)有 MySQL應(yīng)用程序訪問MySQL Cluster。
管理客戶端:這類客戶端與管理服務(wù)器相連,并提供了啟動和停止節(jié)點、啟動和停止消息跟蹤(僅調(diào)試版本)、顯示節(jié)點版本和狀態(tài)、啟動和停止備份等的命令。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com