最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

MySQLCluster集群探索與實(shí)踐

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 09:42:16
文檔

MySQLCluster集群探索與實(shí)踐

MySQLCluster集群探索與實(shí)踐:MySQL集群是一種在無(wú)共享架構(gòu)(SNA,Share Nothing Architecture)系統(tǒng)里應(yīng)用內(nèi)存數(shù)據(jù)庫(kù)集群的技術(shù)。這種無(wú)共享的架構(gòu)可以使得系統(tǒng)使用低廉的硬件獲取高的可擴(kuò)展性。 MySQL集群是一種分布式設(shè)計(jì),目標(biāo)是要達(dá)到?jīng)]有任何單點(diǎn)故障點(diǎn)。因此,任何組成部分都應(yīng)該擁
推薦度:
導(dǎo)讀MySQLCluster集群探索與實(shí)踐:MySQL集群是一種在無(wú)共享架構(gòu)(SNA,Share Nothing Architecture)系統(tǒng)里應(yīng)用內(nèi)存數(shù)據(jù)庫(kù)集群的技術(shù)。這種無(wú)共享的架構(gòu)可以使得系統(tǒng)使用低廉的硬件獲取高的可擴(kuò)展性。 MySQL集群是一種分布式設(shè)計(jì),目標(biāo)是要達(dá)到?jīng)]有任何單點(diǎn)故障點(diǎn)。因此,任何組成部分都應(yīng)該擁

MySQL集群是一種在無(wú)共享架構(gòu)(SNA,Share Nothing Architecture)系統(tǒng)里應(yīng)用內(nèi)存數(shù)據(jù)庫(kù)集群的技術(shù)。這種無(wú)共享的架構(gòu)可以使得系統(tǒng)使用低廉的硬件獲取高的可擴(kuò)展性。 MySQL集群是一種分布式設(shè)計(jì),目標(biāo)是要達(dá)到?jīng)]有任何單點(diǎn)故障點(diǎn)。因此,任何組成部分都應(yīng)該擁

MySQL集群是一種在無(wú)共享架構(gòu)(SNA,Share Nothing Architecture)系統(tǒng)里應(yīng)用內(nèi)存數(shù)據(jù)庫(kù)集群的技術(shù)。這種無(wú)共享的架構(gòu)可以使得系統(tǒng)使用低廉的硬件獲取高的可擴(kuò)展性。

MySQL集群是一種分布式設(shè)計(jì),目標(biāo)是要達(dá)到?jīng)]有任何單點(diǎn)故障點(diǎn)。因此,任何組成部分都應(yīng)該擁有自己的內(nèi)存和磁盤。任何共享存儲(chǔ)方案如網(wǎng)絡(luò)共享,網(wǎng)絡(luò)文件系統(tǒng)和SAN設(shè)備是不推薦或不支持的。通過(guò)這種冗余設(shè)計(jì),MySQL聲稱數(shù)據(jù)的可用度可以達(dá)到99.999%。

實(shí)際上,MySQL集群是把一個(gè)叫做NDB的內(nèi)存集群存儲(chǔ)引擎集成與標(biāo)準(zhǔn)的MySQL服務(wù)器集成。它包含一組計(jì)算機(jī),每個(gè)都跑一個(gè)或者多個(gè)進(jìn)程,這可能包括一個(gè)MySQL服務(wù)器,一個(gè)數(shù)據(jù)節(jié)點(diǎn),一個(gè)管理服務(wù)器和一個(gè)專有的一個(gè)數(shù)據(jù)訪問(wèn)程序。它們之間的關(guān)系如下圖所示:



存儲(chǔ)引擎

MySQL Cluster 使用了一個(gè)專用的基于內(nèi)存的存儲(chǔ)引擎,這樣做的好處是速度快, 沒(méi)有磁盤I/O的瓶頸,但是由于是基于內(nèi)存的,所以數(shù)據(jù)庫(kù)的規(guī)模受系統(tǒng)總內(nèi)存的限制, 如果運(yùn)行NDB的MySQL服務(wù)器一定要內(nèi)存夠大,比如4G, 8G, 甚至16G。NDB引擎是分布式的,它可以配置在多臺(tái)服務(wù)器上來(lái)實(shí)現(xiàn)數(shù)據(jù)的可靠性和擴(kuò)展性,理論上 通過(guò)配置2臺(tái)NDB的存儲(chǔ)節(jié)點(diǎn)就能實(shí)現(xiàn)整個(gè)數(shù)據(jù)庫(kù)集群的冗余性和解決單點(diǎn)故障問(wèn)題。

該存儲(chǔ)引擎有下列弊端:

基于內(nèi)存,數(shù)據(jù)庫(kù)的規(guī)模受集群總內(nèi)存的大小限制
基于內(nèi)存,斷電后數(shù)據(jù)可能會(huì)有數(shù)據(jù)丟失,這點(diǎn)還需要通過(guò)測(cè)試驗(yàn)證。
多個(gè)節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)通訊和數(shù)據(jù)同步、查詢等操作,因此整體性受網(wǎng)絡(luò)速度影響,
因此速度也比較慢
當(dāng)然也有它的優(yōu)點(diǎn):

多個(gè)節(jié)點(diǎn)之間可以分布在不同的地理位置,因此也是一個(gè)實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)的方案。
擴(kuò)展性很好,增加節(jié)點(diǎn)即可實(shí)現(xiàn)數(shù)據(jù)庫(kù)集群的擴(kuò)展。
冗余性很好,多個(gè)節(jié)點(diǎn)上都有完整的數(shù)據(jù)庫(kù)數(shù)據(jù),因此任何一個(gè)節(jié)點(diǎn)宕機(jī)都不會(huì)造成服務(wù)中斷。
實(shí)現(xiàn)高可用性的成本比較低,不象傳統(tǒng)的高可用方案一樣需要共享的存儲(chǔ)設(shè)備和專用的軟件才能實(shí)現(xiàn),NDB 只要有足夠的內(nèi)存就能實(shí)現(xiàn)。

體系結(jié)構(gòu)

MySQL Cluster 由3個(gè)不同功能的服務(wù)構(gòu)成,每個(gè)服務(wù)由一個(gè)專用的守護(hù)進(jìn)程提供,一項(xiàng) 服務(wù)也叫做一個(gè)節(jié)點(diǎn),下面來(lái)介紹每個(gè)節(jié)點(diǎn)的功能。

The management (MGM) node

管理節(jié)點(diǎn),用來(lái)實(shí)現(xiàn)整個(gè)集群的管理,理論上一般只啟動(dòng)一個(gè),而且宕機(jī)也不影響 cluster 的服務(wù),這個(gè)進(jìn)程只在cluster 啟動(dòng)以及節(jié)點(diǎn)加入集群時(shí)起作用, 所以這個(gè)節(jié)點(diǎn)不是很需要冗余,理論上通過(guò)一臺(tái)服務(wù)器提供服務(wù)就可以了。

通過(guò) ndb_mgmd 命令啟動(dòng),使用 config.ini 配置文件

The storage or database (DB) node:

數(shù)據(jù)庫(kù)節(jié)點(diǎn),用來(lái)存儲(chǔ)數(shù)據(jù),可以和管理節(jié)點(diǎn)(MGM) , 用戶端節(jié)點(diǎn)(API) 可以處在 不同的機(jī)器上,也可以在同一個(gè)機(jī)器上面,集群中至少要有一個(gè)DB節(jié)點(diǎn),2個(gè)以上 時(shí)就能實(shí)現(xiàn)集群的高可用保證,DB節(jié)點(diǎn)增加時(shí),集群的處理速度會(huì)變慢。

通過(guò) ndbd 命令啟動(dòng),第一次創(chuàng)建好cluster DB 節(jié)點(diǎn)時(shí),需要使用 –init參數(shù)初始化。

例如: bin/ndbd –ndb-connectstring=ndb_mgmd.mysqlcluster.net –initial

The client (API) node:

客戶端節(jié)點(diǎn),通過(guò)他實(shí)現(xiàn) cluster DB 的訪問(wèn),這個(gè)節(jié)點(diǎn)也就是普通的 mysqld 進(jìn)程, 需要在配置文件中配置ndbcluster 指令打開 NDB Cluster storage engine 存儲(chǔ)引擎,增加 API 節(jié)點(diǎn)會(huì)提高整個(gè)集群的并發(fā)訪問(wèn)速度和整體的吞吐量,該節(jié)點(diǎn) 可以部署在Web應(yīng)用服務(wù)器上,也可以部署在專用的服務(wù)器上,也開以和DB部署在 同一臺(tái)服務(wù)器上。

通過(guò) mysqld_safe 命令啟動(dòng),

這3類節(jié)點(diǎn)可以分布在不同的主機(jī)上,比如 DB 可以是多臺(tái)專用的服務(wù)器,也可以 每個(gè)DB都有一個(gè)API,當(dāng)然也可以把API分布在Web前端的服務(wù)器上去,通常來(lái)說(shuō), API越多cluster的性能會(huì)越好。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

MySQLCluster集群探索與實(shí)踐

MySQLCluster集群探索與實(shí)踐:MySQL集群是一種在無(wú)共享架構(gòu)(SNA,Share Nothing Architecture)系統(tǒng)里應(yīng)用內(nèi)存數(shù)據(jù)庫(kù)集群的技術(shù)。這種無(wú)共享的架構(gòu)可以使得系統(tǒng)使用低廉的硬件獲取高的可擴(kuò)展性。 MySQL集群是一種分布式設(shè)計(jì),目標(biāo)是要達(dá)到?jīng)]有任何單點(diǎn)故障點(diǎn)。因此,任何組成部分都應(yīng)該擁
推薦度:
標(biāo)簽: mysql 探索 實(shí)踐
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top