您好,登錄后才能下訂單哦!
這篇文章主要介紹“MySQL集群NDB 7.5有哪些知識點(diǎn)”,在日常操作中,相信很多人在MySQL集群NDB 7.5有哪些知識點(diǎn)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL集群NDB 7.5有哪些知識點(diǎn)”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
MySQL Cluster是在shared-nothing系統(tǒng)中開啟in-memory數(shù)據(jù)庫集群功能的一項(xiàng)技術(shù)。shared-nothing架構(gòu)可以使系統(tǒng)以廉價的硬件工作,對硬件和軟件的需求很小。
MySQL集群被設(shè)計成沒有任何單點(diǎn)故障。在一套shared-nothing系統(tǒng)中,每個節(jié)點(diǎn)都有自己的內(nèi)存和硬盤,像共享網(wǎng)絡(luò)、網(wǎng)絡(luò)問卷系統(tǒng)和SAN存儲這些共享存儲機(jī)制不被MySQL集群推薦和支持。
MySQL集群通過一個稱為NDB的內(nèi)存集群存儲引擎,和標(biāo)準(zhǔn)的MySQL服務(wù)器集成在一起。NDB是Network DataBase的縮寫。MySQL集群是MySQL服務(wù)器和NDB存儲引擎的結(jié)合。
一套MySQL集群包含一系列的電腦主機(jī),每臺主機(jī)運(yùn)行一個或多個進(jìn)程;這些進(jìn)程被稱為節(jié)點(diǎn),包含MySQL服務(wù)器(用于訪問NDB的數(shù)據(jù))、數(shù)據(jù)節(jié)點(diǎn)(用于存儲數(shù)據(jù))、一個或多個管理服務(wù)器、其他定制的數(shù)據(jù)訪問程序。這些節(jié)點(diǎn)的關(guān)系圖如下:
集群中的節(jié)點(diǎn)可以被停止或重啟,也可以再次加入集群中。
NDBCLUSTER(也稱為NDB)是一個提供高可用性和數(shù)據(jù)永久化的內(nèi)存存儲引擎。
NDBCLUSTER可以通過配置一些參數(shù)實(shí)現(xiàn)故障切換和負(fù)載均衡。需要注意的是,在MySQL集群中,一個節(jié)點(diǎn)是指一臺主機(jī),而是一個進(jìn)程;可以在一臺主機(jī)上運(yùn)行多個節(jié)點(diǎn)。
在一套MySQL集群配置中,至少有三個節(jié)點(diǎn):
管理節(jié)點(diǎn):這個節(jié)點(diǎn)的角色是管理集群中的其他節(jié)點(diǎn),提供配置數(shù)據(jù),啟動停止節(jié)點(diǎn)和執(zhí)行備份功能。因?yàn)檫@個節(jié)點(diǎn)管理其他節(jié)點(diǎn)的配置信息,在集群中應(yīng)該首先啟動這個節(jié)點(diǎn)。通過ndb_mgmd命令啟動MGM節(jié)點(diǎn)。
數(shù)據(jù)節(jié)點(diǎn):這種類型的節(jié)點(diǎn)存儲集群的數(shù)據(jù)。MySQL集群中的表通常被保存在內(nèi)存中而不是磁盤上(這是我們稱呼MySQL集群為內(nèi)存數(shù)據(jù)庫的原因)。然而,一些MySQL集群的數(shù)據(jù)也可以儲存在磁盤上。
SQL節(jié)點(diǎn):這各節(jié)點(diǎn)用來訪問集群數(shù)據(jù)。在MySQL集群中,SQL節(jié)點(diǎn)是使用NDBCLUSTER存儲引擎的傳統(tǒng)的MySQL服務(wù)器。SQL節(jié)點(diǎn)通過mysqld --ndbcluster --ndb-connectstring方式啟動。
在生產(chǎn)環(huán)境中,部署一套三節(jié)點(diǎn)的MySQL集群是不現(xiàn)實(shí)的,因?yàn)檫@樣的配置無法提供冗余保護(hù)。想要實(shí)現(xiàn)MySQL集群的高可用性,需要部署多個數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn),管理節(jié)點(diǎn)也推薦部署多個。
管理服務(wù)器負(fù)責(zé)管理集群的配置和集群日志。每個集群節(jié)點(diǎn)讀取管理服務(wù)器上面的配置信息。
另外,除了上面這些節(jié)點(diǎn),還有集群客戶端進(jìn)程和應(yīng)用程序,包括標(biāo)準(zhǔn)的MySQL客戶端、NDB特定的API程序和管理客戶端。
MySQL集群有兩種日志:
集群日志:記錄集群的事件報告
節(jié)點(diǎn)日志:每個節(jié)點(diǎn)的單獨(dú)日志
通常,只需要檢查集群日志即可,只要當(dāng)開發(fā)應(yīng)用程序或排錯時才會用到節(jié)點(diǎn)日志檢查點(diǎn),一般來說,當(dāng)數(shù)據(jù)被保存到磁盤上時,會觸發(fā)一個檢查點(diǎn)。在MySQL集群中,當(dāng)被提交的事務(wù)數(shù)據(jù)被保存到磁盤上時,會觸發(fā)檢查點(diǎn)。對于NDB存儲引擎,有兩種類型的檢查點(diǎn)一起工作來確保集群數(shù)據(jù)的一致性。
本地檢查點(diǎn)(LCP):這是單獨(dú)節(jié)點(diǎn)上面的檢查點(diǎn)。一個本地檢查點(diǎn)會保存本地節(jié)點(diǎn)上面的所有數(shù)據(jù)到磁盤上,每幾分鐘會觸發(fā)一次,觸發(fā)檢查點(diǎn)的時間間隔依據(jù)節(jié)點(diǎn)上面的數(shù)據(jù)量、集群的活動級別和其他因素而定。
全局檢查點(diǎn)(GCP):全局檢查點(diǎn)每幾秒鐘會發(fā)生一次,當(dāng)所有節(jié)點(diǎn)上面的事務(wù)同步且日志文件被刷新到磁盤上時發(fā)生。
一個數(shù)據(jù)節(jié)點(diǎn)是一個ndbd進(jìn)程,每個數(shù)據(jù)節(jié)點(diǎn)需要部署到不同的主機(jī)上,MySQL集群不支持在同一臺主機(jī)上部署多個ndbd進(jìn)程。
[root@dongdan ~]# ps -ef|grep ndbd
root 23759 1 0 Aug03 ? 00:00:00 ndbd
root 23760 23759 0 Aug03 ? 00:24:05 ndbd
root 31446 31395 0 13:46 pts/2 00:00:00 grep ndbd
管理節(jié)點(diǎn)的進(jìn)程是ndb_mgmd進(jìn)程,SQL節(jié)點(diǎn)的進(jìn)程是mysqld進(jìn)程。
[root@dongdan ~]# ps -ef|grep mysqld
root 23833 1 0 Aug03 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/var/lib/mysql/main_my.cnf
mysql 24051 23833 0 Aug03 ? 00:36:04 /usr/sbin/mysqld --defaults-file=/var/lib/mysql/main_my.cnf --basedir=/usr --datadir=/var/lib/mysql/database --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/database/dongdan.err --pid-file=/var/lib/mysql/database/dongdan.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root 31464 31395 0 13:50 pts/2 00:00:00 grep mysqld
節(jié)點(diǎn)組包含一個或多個節(jié)點(diǎn)。
MySQL集群使用心跳和超時機(jī)制,當(dāng)其中一個節(jié)點(diǎn)網(wǎng)絡(luò)無法聯(lián)通時,會判斷這個節(jié)點(diǎn)失效。
到此,關(guān)于“MySQL集群NDB 7.5有哪些知識點(diǎn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。