新聞中心
一 MySQL-Cluster簡(jiǎn)介
MySQL Cluster是一種技術(shù),該技術(shù)允許在無共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫的簇。通過無共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價(jià)的硬件,而且對(duì)軟硬件無特殊要求。此外,由于每個(gè)組件都有自己的內(nèi)存和磁盤,所以不存在單點(diǎn)故障。

堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都成都酒店設(shè)計(jì)小微創(chuàng)業(yè)公司專業(yè)提供企業(yè)網(wǎng)站設(shè)計(jì)營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
MySQL簇將標(biāo)準(zhǔn)的MySQL服務(wù)器與名為NDB的“內(nèi)存中”的簇式存儲(chǔ)引擎集成了起來。術(shù)語NDB指的是與存儲(chǔ)引擎相關(guān)的設(shè)置部分,而術(shù)語“MySQL簇”指的是MySQL和NDB存儲(chǔ)引擎的組合。
MySQL簇由一組計(jì)算機(jī)構(gòu)成,每臺(tái)計(jì)算機(jī)上均運(yùn)行著多種進(jìn)程,包括MySQL服務(wù)器,NDB簇的數(shù)據(jù)節(jié)點(diǎn),管理服務(wù)器(MGM),以及(可能)專門的數(shù)據(jù)訪問程序。關(guān)于簇中這些組件的關(guān)系,如下圖:
所有這些程序一起構(gòu)成了MySQL簇。將數(shù)據(jù)保存到NBD簇引擎中時(shí),表將保存在數(shù)據(jù)節(jié)點(diǎn)內(nèi)。能夠從簇中所有其他MySQL服務(wù)器直接訪問這些表。因此,假如在將數(shù)據(jù)保存在簇內(nèi)的工資應(yīng)用程序中,如果某一應(yīng)用程序更新了一位雇員的工資,所有查詢?cè)摂?shù)據(jù)的其他MySQL 服務(wù)器能立刻發(fā)現(xiàn)這種變化。
對(duì)于MySQL簇,保存在數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)可被映射,簇能夠處理單獨(dú)數(shù)據(jù)節(jié)點(diǎn)的故障,除了少數(shù)事物將因事物狀態(tài)丟失而被放棄外,不會(huì)產(chǎn)生其他影響。由于事物性應(yīng)用程序能夠處理失敗事宜,因而它不是問題源。
二 MySQL簇的基本概念
NDB 是一種“內(nèi)存中”存儲(chǔ)引擎,它具有可用性高和數(shù)據(jù)一致性好的特點(diǎn)。
能夠使用多種故障切換和負(fù)載平衡選項(xiàng)配置NDB 存儲(chǔ)引擎,但以簇層面上的存儲(chǔ)引擎開始最簡(jiǎn)單。MySQL簇的NDB存儲(chǔ)引擎包含完整的數(shù)據(jù)集,僅取決于簇本身內(nèi)的其他數(shù)據(jù)。
下面名,我們將介紹設(shè)置由NDB存儲(chǔ)引擎和一些MySQL服務(wù)器構(gòu)成的MySQL簇的設(shè)置方法。
目前,MySQL簇的部分可以獨(dú)立于MySQL服務(wù)器進(jìn)行配置。在MySQL簇中,簇的每個(gè)部分被視為一個(gè)節(jié)點(diǎn)。
注釋:在很多情況下,術(shù)語“節(jié)點(diǎn)”用于指計(jì)算機(jī),但在討論MySQL簇時(shí),它表示的是進(jìn)程。在單臺(tái)計(jì)算機(jī)上可以有任意數(shù)目的節(jié)點(diǎn),所以我們才有可能將多個(gè)不同功能的節(jié)點(diǎn)配置在同一臺(tái)計(jì)算機(jī)上,為此,我們采用術(shù)語簇主機(jī)。
有三類簇節(jié)點(diǎn),在最低的MySQL簇配置中,至少有三個(gè)節(jié)點(diǎn),這三類節(jié)點(diǎn)分別是:
管理節(jié)點(diǎn)(MGM):這類節(jié)點(diǎn)的作用是管理MySQL簇內(nèi)的其他節(jié)點(diǎn),如提供配置數(shù)據(jù),啟動(dòng)并停止節(jié)點(diǎn),運(yùn)行備份等。由于這類節(jié)點(diǎn)負(fù)責(zé)管理其他節(jié)點(diǎn)的配置,所以管理節(jié)點(diǎn)應(yīng)在其他節(jié)點(diǎn)之前先啟動(dòng)。MGM節(jié)點(diǎn)是用命令ndb_mgm啟動(dòng)的。
數(shù)據(jù)節(jié)點(diǎn)(NDB):這類節(jié)點(diǎn)用于保存簇的數(shù)據(jù)。數(shù)據(jù)集點(diǎn)的數(shù)目與副本的數(shù)目相關(guān),是片段的倍數(shù)。例如,對(duì)于兩個(gè)副本,每個(gè)副本又兩個(gè)片段,那么就有4個(gè)數(shù)據(jù)節(jié)點(diǎn)。沒有必要有一個(gè)以上的副本。。數(shù)據(jù)節(jié)點(diǎn)是用命令ndbd來啟動(dòng)的。
SQL節(jié)點(diǎn):這類節(jié)點(diǎn)是用來訪問簇?cái)?shù)據(jù)的節(jié)點(diǎn)。對(duì)于MySQL簇,客戶端節(jié)點(diǎn)是使用NDB 簇存儲(chǔ)引擎的傳統(tǒng)MySQL服務(wù)器。典型情況下,SQL節(jié)點(diǎn)是使用命令mysql -ndbcluster來啟動(dòng)的,或?qū)dbcluster添加到my.cnf后面使用mysqld啟動(dòng)。
簇配置包括對(duì)簇中單獨(dú)節(jié)點(diǎn)的配置,以及設(shè)置節(jié)點(diǎn)之間的單獨(dú)通信鏈路。對(duì)于目前設(shè)計(jì)的MySQL簇,其意圖在于,從處理器的能力,內(nèi)存空間和寬帶來講,存儲(chǔ)節(jié)點(diǎn)是同質(zhì)的,此外,為了提供單一的配置點(diǎn),作為整體,簇的所有配置均位于一個(gè)文件中。
管理服務(wù)器(MGM節(jié)點(diǎn))負(fù)責(zé)管理簇配置文件和簇日志。簇中的每個(gè)節(jié)點(diǎn)從管理服務(wù)器檢索配置數(shù)據(jù),并請(qǐng)求確定管理服務(wù)器所在的位置的方式。當(dāng)數(shù)據(jù)節(jié)點(diǎn)內(nèi)出現(xiàn)有趣的事件時(shí),節(jié)點(diǎn)將關(guān)于這類事件的信息傳輸?shù)焦芾矸?wù)器,然后,啊經(jīng)這類信息寫入簇日志。
實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)過程中,只是用兩臺(tái)計(jì)算機(jī)來實(shí)現(xiàn)MySQL-Cluster環(huán)境的配置,具體環(huán)境如下:
管理節(jié)點(diǎn)(MGM)服務(wù)器:192.168.3.47 主機(jī)名:songzi nodeid=1
數(shù)據(jù)節(jié)點(diǎn)1(NDB ):192.168.3.47 nodeid=11
數(shù)據(jù)節(jié)點(diǎn)2(NDB):192.168.4.128 nodeid=12
SQL節(jié)點(diǎn)1:192.168.3.47 nodeid=21
SQL節(jié)點(diǎn)2:192.168.4.128 nodeid=22
其中192.168.3.47安裝的為Ubuntu12.04的32位操作系統(tǒng),192.168.4.128安裝的為ubuntu12.04的64位操作系統(tǒng)。
對(duì)于MySQL-Cluster的安裝包下載,下載地址見http://dev.mysql.com/downloads/cluster/ ,其中192.168.3.47的操作系統(tǒng)為32位的linux,所以選擇的下載版本為:mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz。而192.168.4.128為64 位的linux操作系統(tǒng),所以選擇的下載版本為:mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gz。在終端中執(zhí)行 :uname -m指令可查看操作系統(tǒng)的信息,若結(jié)果顯示為i686,則為32位操作系統(tǒng)。若結(jié)果為x86_64,則為64位操作系統(tǒng)。務(wù)必選擇正確的版本,并下載。
此外 如果之前安裝過mysql-server,在進(jìn)行此次實(shí)驗(yàn)之前,需要將mysql-server卸載,執(zhí)行以下指令卸載mysql
sudo apt-get autoremove –purge mysql-serversudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-common (非常重要)
四 安裝
對(duì)于每臺(tái)運(yùn)行存儲(chǔ)或者SQL節(jié)點(diǎn)的MySQL簇計(jì)算機(jī),必須在其上安裝MySQL服務(wù)器的二進(jìn)制版本。對(duì)于管理節(jié)點(diǎn),沒有必要安裝MySQL服務(wù)器的二進(jìn)制版本,但應(yīng)安裝MGM 服務(wù)器端口監(jiān)督程序和客戶端二進(jìn)制版本(分別是ndb_mgmd和ndb_mgm)。本節(jié)將詳細(xì)介紹每種簇節(jié)點(diǎn)安裝正確的二進(jìn)制版本所需要的步驟。
4.1 存儲(chǔ)節(jié)點(diǎn)和SQL節(jié)點(diǎn)安裝
SQL節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的安裝步驟基本相同,所以在設(shè)計(jì)為存儲(chǔ)節(jié)點(diǎn)或SQL節(jié)點(diǎn)的的每一臺(tái)機(jī)器上,以系統(tǒng)根用戶身份執(zhí)行以下步驟:
\1. 檢查/etc/passwd和/etc/group/文件,查看在系統(tǒng)上是否已經(jīng)存在mysql組和mysql用戶,這時(shí)因?yàn)槟承┎僮飨到y(tǒng)會(huì)將其作為安裝進(jìn)程的一部分創(chuàng)建??梢允褂靡韵轮噶畈榭矗?/p>
cat show /etc/passwd
cat show /etc/group
如果它們不存在,則需要?jiǎng)?chuàng)建新的mysql用戶組,然后為該組添加一個(gè)mysql用戶
groupadd mysql
useradd -g mysql mysql
\2. 進(jìn)入包含已經(jīng)下載好文件的目錄,解壓檔案文件,并創(chuàng)建與mysql可執(zhí)行文件鏈接symlink。注意,根據(jù)MySQL的版本號(hào)和瀏覽器下載文件的目錄,實(shí)際的文件和目錄名可能會(huì)有所不同。如本人下載文件在瀏覽器默認(rèn)的/home/jenny/Downloads目錄下,
cd /home/jenny/Downloads
tar zxvf -C mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz /usr/local/bin
cd /var/tmp
ln -s /usr/local/bin/mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz mysql
\3. 進(jìn)入mysql目錄,運(yùn)行所提供的用于創(chuàng)建系統(tǒng)數(shù)據(jù)庫的腳本:
cd mysql
scripts/mysql_install_db –user=mysql
如果此腳本不能運(yùn)行,若報(bào)錯(cuò)為主機(jī)名不匹配的話,則很有可能是下載的版本不對(duì),查看操作系統(tǒng)是32位還是64位,選擇正確的版本。若報(bào)錯(cuò)找不到默認(rèn)的文件,則很有可能是因?yàn)橹暗膍ysql-server沒有卸載,執(zhí)行上文提供的指令,徹底卸載mysql-server。
\4. 為MySQL服務(wù)器和數(shù)據(jù)目錄設(shè)置必要的權(quán)限:
chown -R root .
chown -R mysql data
chgrp -R mysql .
注意,在每臺(tái)運(yùn)行數(shù)據(jù)節(jié)點(diǎn)的機(jī)器上,數(shù)據(jù)目錄是/usr/local/mysql/data,也可另外指定,若指定為此目錄,則此文件必須存在,必要時(shí)需手動(dòng)創(chuàng)建。配置管理節(jié)點(diǎn)時(shí)將用到這類信息。
\5. 將MySQL啟動(dòng)腳本拷貝恰當(dāng)?shù)哪夸浵?,使之成為可?zhí)行的腳本,并設(shè)置它以便在啟動(dòng)操作系統(tǒng)時(shí)啟動(dòng):
cp support-files/mysql.server /etc/init.d
chmod +x /etc/init.d/mysql.server
chconfig –add mysql.server
請(qǐng)記住,對(duì)于存儲(chǔ)節(jié)點(diǎn)或SQL節(jié)點(diǎn)所在的每臺(tái)機(jī)器,必須分別執(zhí)行以上步驟。
4.2 管理節(jié)點(diǎn)安裝
對(duì)于管理(MGM)節(jié)點(diǎn),不需要安裝mysqld可執(zhí)行文件,僅需要安裝用于MGM服務(wù)器和客戶端的二進(jìn)制文件,這類文件可在下載的檔案文件中找到。假定將下載的檔案文件放在了/var/tmp文件下,以系統(tǒng)管理員的身份執(zhí)行以下步驟,在簇管理節(jié)點(diǎn)主機(jī)上安裝ndb_mgmd和ndb_mgm:
\1. 進(jìn)入/var/tmp目錄,從檔案文件中將ndb_mgmd和ndb_mgm提取到恰當(dāng)?shù)哪夸浵?,?usr/local/bin:
cd /var/tmp
tar zxvf -C mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz
cp /mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz/bin/ndb_mgm* /usr/local/bin/
\2. 進(jìn)入nndb_mgmd和ndb_mgm所在的目錄,然后使這兩個(gè)文件成為可執(zhí)行的:
cd /usr/local/bin
chmod mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gzd +x ndb_mgm*
至此,所有節(jié)點(diǎn)的安裝工作就已經(jīng)完成,接下來將詳細(xì)介紹每個(gè)節(jié)點(diǎn)的具體配置方法。
本文題目:Ubuntu中安裝和配置MySQL-Cluster
URL地址:http://m.fisionsoft.com.cn/article/codijgs.html


咨詢
建站咨詢
