版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《MySQL數(shù)據(jù)庫(kù)管理》課程設(shè)計(jì)報(bào)告</p><p> 題目:MySQL集群的研究與實(shí)現(xiàn)</p><p> 完成日期: 2012 年 12 月 31 日</p><p><b> 目 錄</b></p><p> 1. 課程設(shè)計(jì)題目概述3</p><p> 2
2、. 研究?jī)?nèi)容與目的3</p><p><b> 3. 研究方法4</b></p><p> 3.1研究方法……………………………………………………………………….. 4</p><p> 3.2實(shí)驗(yàn)方法………………………………………………………………………… 5</p><p> 3.3可行性分析..…………
3、………………………………………………………………..... 5</p><p> 4. 研究報(bào)告10</p><p> 4.1規(guī)劃階段………………………………………………………………………… 10</p><p> 4.2安裝Mysql server……………………………………………………………… 10</p><p> 4.3安
4、裝Mysql Cluster……………………………………………………………. 11</p><p> 4.4配置管理節(jié)點(diǎn)…………………………………………………………………… 11</p><p> 4.5配置SQL節(jié)點(diǎn)…………………………………………………………………….13</p><p> 4.6 配置存儲(chǔ)節(jié)點(diǎn)……………………………………………………………
5、………13</p><p> 4.7啟動(dòng)MySQL Cluster…………………………………………………………….13 </p><p> 4.8關(guān)閉MySQL Cluster……………………………………………………………..14</p><p> 4.9數(shù)據(jù)測(cè)試………………………………………………………………………… 14</p><p&
6、gt; 4.10安全關(guān)閉………………………………………………………………………. 14</p><p> 5. 測(cè)試報(bào)告/實(shí)驗(yàn)報(bào)告………………………………………………………………...15</p><p> 6. 課題研究結(jié)論……………………………………………………………………....22</p><p> 7. 總結(jié)……………………………………………………
7、……………………………. 23</p><p> 1.課程設(shè)計(jì)題目概述</p><p> MySQL Cluster 是一種技術(shù),該技術(shù)允許在無(wú)共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫(kù)的 Cluster 。通過(guò)無(wú)共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價(jià)的硬件,而且對(duì)軟硬件無(wú)特殊要求。此外,由于每個(gè)組件有自己的內(nèi)存和磁盤(pán),不存在單點(diǎn)故障。</p><p> MySQL Clust
8、er 由一組計(jì)算機(jī)構(gòu)成,每臺(tái)計(jì)算機(jī)上均運(yùn)行著多種進(jìn)程,包括MySQL服務(wù)器,NDB Cluster 的數(shù)據(jù)節(jié)點(diǎn),管理服務(wù)器,以及(可能)專(zhuān)門(mén)的數(shù)據(jù)訪問(wèn)程序。</p><p> MySQL Cluster 是MySQL適合于分布式計(jì)算環(huán)境的高實(shí)用、高冗余版本。MySQL Cluster 能夠使用多種故障切換和負(fù)載平衡選項(xiàng)配置NDB存儲(chǔ)引擎,但在 Cluster 級(jí)別上的存儲(chǔ)引擎上做這個(gè)最簡(jiǎn)單。MySQL Clus
9、ter的NDB存儲(chǔ)引擎包含完整的數(shù)據(jù)集,僅取決于 Cluster本身內(nèi)的其他數(shù)據(jù)。</p><p> 目前,MySQL Cluster的 Cluster部分可獨(dú)立于MySQL服務(wù)器進(jìn)行配置。在MySQL Cluster中, Cluster的每個(gè)部分被視為1個(gè)節(jié)點(diǎn)。</p><p> 【關(guān)鍵字】:集群 MySQL Cluster </p><p> 2. 研究?jī)?nèi)
10、容與目的</p><p><b> 研究目的:</b></p><p> 伴隨著企業(yè)的成長(zhǎng),在業(yè)務(wù)量提高的同時(shí),系統(tǒng)的訪問(wèn)量和數(shù)據(jù)流量的快速增長(zhǎng),其處理能力和計(jì)算強(qiáng)度也相應(yīng)增大,使得單一設(shè)備根本無(wú)法承擔(dān)。在此情況下,如果扔掉現(xiàn)有設(shè)備去做大量的硬件升級(jí),這樣將造成現(xiàn)有資源的浪費(fèi),而且如果再面臨下一次業(yè)務(wù)量的提升,這又將導(dǎo)致再一次硬件升級(jí)的高額成本投入,甚至性能再卓越
11、的設(shè)備也不能滿足當(dāng)前業(yè)務(wù)量的需求。于是,人們希望通過(guò)幾個(gè)中小型服務(wù)器組建集群,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的負(fù)載均衡,在需要更高數(shù)據(jù)庫(kù)處理速度,我們只要簡(jiǎn)單地增加數(shù)據(jù)庫(kù)服務(wù)器就可以得到擴(kuò)展。</p><p> 數(shù)據(jù)庫(kù)作為應(yīng)用系統(tǒng)的核心,在企業(yè)的IT系統(tǒng)中起著非常重要的作用,單一設(shè)備根本無(wú)法保證系統(tǒng)的持續(xù)運(yùn)行,發(fā)生系統(tǒng)故障,嚴(yán)重影響系統(tǒng)的正常運(yùn)行,甚至帶來(lái)巨大的經(jīng)濟(jì)損失。于是人們希望通過(guò)組建數(shù)據(jù)庫(kù)集群,來(lái)保證系統(tǒng)的可用性,一旦某節(jié)
12、點(diǎn)發(fā)生故障,系統(tǒng)會(huì)自動(dòng)故障轉(zhuǎn)移,實(shí)現(xiàn)系統(tǒng)的持續(xù)工作。</p><p> 企業(yè)的數(shù)據(jù)是企業(yè)的一些重要信息,一些核心數(shù)據(jù)甚至關(guān)系著企業(yè)的命脈,單一設(shè)備根本無(wú)法保證數(shù)據(jù)的安全性,一旦發(fā)生丟失,很難再找回來(lái),于是人們希望通過(guò)組建數(shù)據(jù)庫(kù)集群,實(shí)現(xiàn)數(shù)據(jù)集群的冗余,通過(guò)多份數(shù)據(jù)來(lái)保證安全性。</p><p> MySql是一種在目前被廣泛使用著開(kāi)源的免費(fèi)的數(shù)據(jù)庫(kù),在中小型數(shù)據(jù)應(yīng)用中,一般單臺(tái)MySq
13、l服務(wù)器就能滿足要求了,但對(duì)于大型WEB或其他應(yīng)用下,巨量的數(shù)據(jù)存儲(chǔ)訪問(wèn),單臺(tái)MySql服務(wù)器就不能很好地勝任了,而要使多臺(tái)MySql服務(wù)器協(xié)同工作,不但要考慮MySql服務(wù)器集群結(jié)構(gòu),要考慮MySql服務(wù)器的HA熱備問(wèn)題,還要考慮各服務(wù)器之間負(fù)載均衡問(wèn)題。</p><p><b> 研究?jī)?nèi)容:</b></p><p> 隨著計(jì)算機(jī)應(yīng)用的普及,數(shù)據(jù)庫(kù)已經(jīng)成為構(gòu)建電
14、子商務(wù)的關(guān)鍵服務(wù)之一。雖然集群技術(shù)很好地解決了提高訪問(wèn)容量的問(wèn)題(如c009le等搜索門(mén)戶網(wǎng)站),但數(shù)據(jù)庫(kù)卻成為網(wǎng)站的瓶頸,因?yàn)闉榱吮苊鈹?shù)據(jù)一致性問(wèn)題,網(wǎng)站多采用單一的數(shù)據(jù)庫(kù)服務(wù)器為所有網(wǎng)頁(yè)服務(wù)提供數(shù)據(jù),當(dāng)訪問(wèn)量提高時(shí),單個(gè)數(shù)據(jù)庫(kù)服務(wù)器往往不堪重負(fù)。即使按照過(guò)去最優(yōu)配置建設(shè)的服務(wù)器系統(tǒng)可能也無(wú)法承擔(dān)訪問(wèn)量的爆炸性增長(zhǎng)。因此,需要?jiǎng)?chuàng)建具有良好可擴(kuò)展性和卓越性能價(jià)格比的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)服務(wù)器,以滿足快速增長(zhǎng)的訪問(wèn)量和數(shù)據(jù)流量需求。</p&g
15、t;<p> 這就需要使用特定的連接方式,將價(jià)格相對(duì)較低的硬件設(shè)備結(jié)合起來(lái),同時(shí)也能提供高性能相當(dāng)?shù)娜蝿?wù)處理能力,即數(shù)據(jù)庫(kù)集群。</p><p> 采用Linux系統(tǒng),可以提高客戶工作站運(yùn)行的可靠性和穩(wěn)定性,獲得高可用性服務(wù)器。在Linux系統(tǒng)下一種雙機(jī)互備份工作方式的MySQL數(shù)據(jù)庫(kù)集群的具體實(shí)現(xiàn)方案,實(shí)現(xiàn)了高可用性集群服務(wù)器。兩個(gè)相對(duì)獨(dú)立的應(yīng)用在兩臺(tái)機(jī)器同時(shí)運(yùn)行,但彼此均設(shè)為備份機(jī),當(dāng)某一臺(tái)
16、服務(wù)器出現(xiàn)故障時(shí),另一臺(tái)服務(wù)器可以在短時(shí)間內(nèi)將故障服務(wù)器的應(yīng)用接管過(guò)來(lái),從而保證了應(yīng)用的持續(xù)性。</p><p><b> 3. 研究方法</b></p><p><b> 3.1研究方法</b></p><p><b> 實(shí)驗(yàn)法</b></p><p><b>
17、; 3.2實(shí)驗(yàn)方法</b></p><p> ?。?)先使用三臺(tái)主機(jī)搭建一個(gè)集群,分別作為管理節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)、SQL節(jié)點(diǎn)</p><p> <1> 在主節(jié)點(diǎn)上創(chuàng)建數(shù)據(jù)庫(kù)、新建數(shù)據(jù)表、插入數(shù)據(jù)</p><p> <2> 在非主節(jié)點(diǎn)上查看主節(jié)點(diǎn)數(shù)據(jù)更新情況</p><p> <3> 在非主節(jié)
18、點(diǎn)上上創(chuàng)建數(shù)據(jù)庫(kù)、新建數(shù)據(jù)表、插入數(shù)據(jù)</p><p> <4> 在主節(jié)點(diǎn)上查看非主節(jié)點(diǎn)數(shù)據(jù)更新情況</p><p> (2)使用三臺(tái)主機(jī)搭建一個(gè)集群,其中一臺(tái)作為管理節(jié)點(diǎn),另兩臺(tái)分別作為數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)</p><p> <1> 在主節(jié)點(diǎn)上創(chuàng)建數(shù)據(jù)庫(kù)、新建數(shù)據(jù)表、插入數(shù)據(jù)</p><p> <2&g
19、t; 在非主節(jié)點(diǎn)上查看主節(jié)點(diǎn)數(shù)據(jù)更新情況</p><p> <3> 在非主節(jié)點(diǎn)上上創(chuàng)建數(shù)據(jù)庫(kù)、新建數(shù)據(jù)表、插入數(shù)據(jù)</p><p> <4> 在主節(jié)點(diǎn)上查看非主節(jié)點(diǎn)數(shù)據(jù)更新情況</p><p><b> 3.3可行性分析</b></p><p> ?。?)MySQL Cluster 是一種技
20、術(shù),該技術(shù)允許在無(wú)共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫(kù)的 Cluster 。通過(guò)無(wú)共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價(jià)的硬件,而且對(duì)軟硬件無(wú)特殊要求。此外,由于每個(gè)組件有自己的內(nèi)存和磁盤(pán),不存在單點(diǎn)故障。MySQL Cluster 由一組計(jì)算機(jī)構(gòu)成,每臺(tái)計(jì)算機(jī)上均運(yùn)行著多種進(jìn)程,包括MySQL服務(wù)器,NDB Cluster 的數(shù)據(jù)節(jié)點(diǎn),管理服務(wù)器,以及(可能)專(zhuān)門(mén)的數(shù)據(jù)訪問(wèn)程序。</p><p> ?。?)3臺(tái)主機(jī)可以通過(guò)
21、交換機(jī)連接到一起,只需要在連接前修改主機(jī)的IP地址,安裝好需要安裝的軟件,這三臺(tái)主機(jī)同時(shí)安裝有ubuntu 11.04 。</p><p> ?。?)在進(jìn)行將5臺(tái)安裝有MySQL的主機(jī)搭建成一個(gè)集群的時(shí)候,只需要用到三臺(tái)主機(jī),只需要將其中的兩臺(tái)主機(jī)分別作為數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)。</p><p> ?。?)由于我們安裝的都是虛擬機(jī),可以在其中開(kāi)啟多臺(tái)虛擬系統(tǒng),所以又可以在這兩臺(tái)主機(jī)中做出更大
22、的集群,但是出于當(dāng)前計(jì)算機(jī)性能的問(wèn)題的考慮,實(shí)現(xiàn)一臺(tái)主機(jī)跑多個(gè)虛擬系統(tǒng)很吃力,所以實(shí)驗(yàn)中我們只做了將3臺(tái)安裝MySQL的主機(jī)搭建成一個(gè)小的集群。</p><p> ?。?)集群實(shí)現(xiàn)的多種方案</p><p> <1>MySQL Clustering(ndb-cluster stogare) MySQL公司以存儲(chǔ)引擎方式提供的高可靠性方案,是事務(wù)安全的,實(shí)時(shí)復(fù)制數(shù)據(jù),可用于
23、需要高可靠性及負(fù)載均衡的場(chǎng)合。該方案至少需要三個(gè)節(jié)點(diǎn)服務(wù)器才能達(dá)到較好的效果?! 〕杀荆骸 ?1) 節(jié)點(diǎn)服務(wù)器對(duì)RAM的需求很大,與數(shù)據(jù)庫(kù)大小呈線性比例; (2) 最好使用千兆以太網(wǎng)絡(luò); (3) 還需要使用Dolphin公司提供的昂貴的SCI卡?! ?yōu)點(diǎn): (1) 可用于負(fù)載均衡場(chǎng)合; (2) 可用于高可靠性場(chǎng)合; (3) 高伸縮性; (4) 真正的數(shù)據(jù)庫(kù)冗余; (5) 容易維護(hù)。 缺點(diǎn): (1
24、) 隨著數(shù)據(jù)庫(kù)的變大,對(duì)RAM的需求變得更大,因此成本很高; 速度: (1) 幾乎比典型的單獨(dú)服務(wù)器(無(wú)千兆以太網(wǎng),無(wú)SCI卡,存儲(chǔ)引擎相關(guān)的 限制少)慢10倍?! ?yīng)用場(chǎng)合: (1) 冗余,高可靠性,負(fù)載均衡<2>MySQL / GFS-GNBD/ HA (Active/Passive) GFS是事務(wù)安全的文件系統(tǒng)。同一時(shí)刻可以讓一個(gè)MySQL使用共享數(shù)據(jù)?! 〕?lt;/p><p&
25、gt; MySQL Cluster (集群)基本原理MySQL簇概述</p><p> MySQL簇是一種技術(shù),該技術(shù)允許在無(wú)共享的系統(tǒng)中部署“內(nèi)存中”數(shù)據(jù)庫(kù)的簇。通過(guò)無(wú)共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價(jià)的硬件,而且對(duì)軟硬件無(wú)特殊要求。此外,由于每個(gè)組件有自己的內(nèi)存和磁盤(pán),不存在單點(diǎn)故障。</p><p> MySQL簇將標(biāo)準(zhǔn)的MySQL服務(wù)器與名為NDB的“內(nèi)存中”簇式存儲(chǔ)引擎集成了起
26、來(lái)。在我們的文檔中,術(shù)語(yǔ)NDB指的是與存儲(chǔ)引擎相關(guān)的設(shè)置部分,而術(shù)語(yǔ)“MySQL簇”指的是MySQL和NDB存儲(chǔ)引擎的組合。</p><p> MySQL簇由一組計(jì)算機(jī)構(gòu)成,每臺(tái)計(jì)算機(jī)上均運(yùn)行著多種進(jìn)程,包括MySQL服務(wù)器,NDB簇的數(shù)據(jù)節(jié)點(diǎn),管理服務(wù)器,以及(可能)專(zhuān)門(mén)的數(shù)據(jù)訪問(wèn)程序。關(guān)于簇中這些組件的關(guān)系,參見(jiàn)下圖:</p><p> application</p>
27、<p> NDB是一種“內(nèi)存中”存儲(chǔ)引擎,它具有可用性高和數(shù)據(jù)一致性好的特點(diǎn)。</p><p> 能夠使用多種故障切換和負(fù)載平衡選項(xiàng)配置NDB存儲(chǔ)引擎,但以簇層面上的存儲(chǔ)引擎開(kāi)始最簡(jiǎn)單。MySQL簇的NDB存儲(chǔ)引擎包含完整的數(shù)據(jù)集,僅取決于簇本身內(nèi)的其他數(shù)據(jù)。</p><p> 在最低的MySQL簇配置中,至少有三個(gè)節(jié)點(diǎn),這三類(lèi)節(jié)點(diǎn)分別是:</p><
28、p> <1>管理(MGM)節(jié)點(diǎn):這類(lèi)節(jié)點(diǎn)的作用是管理MySQL簇內(nèi)的其他節(jié)點(diǎn),如提供配置數(shù)據(jù)、啟動(dòng)并停止節(jié)點(diǎn)、運(yùn)行備份等。由于這類(lèi)節(jié)點(diǎn)負(fù)責(zé)管理其他節(jié)點(diǎn)的配置,應(yīng)在啟動(dòng)其他節(jié)點(diǎn)之前首先啟動(dòng)這類(lèi)節(jié)點(diǎn)。MGM節(jié)點(diǎn)是用命令ndb_mgmd啟動(dòng)的。</p><p> <2> 數(shù)據(jù)節(jié)點(diǎn):這類(lèi)節(jié)點(diǎn)用于保存簇的數(shù)據(jù)。數(shù)據(jù)節(jié)點(diǎn)的數(shù)目與副本的數(shù)目相關(guān),是片段的倍數(shù)。例如,對(duì)于兩個(gè)副本,每個(gè)副本有兩個(gè)
29、片段,那么就有4個(gè)數(shù)據(jù)節(jié)點(diǎn)。沒(méi)有必要有一個(gè)以上的副本。數(shù)據(jù)節(jié)點(diǎn)是用命令ndbd啟動(dòng)的。</p><p> <3> SQL節(jié)點(diǎn):這是用來(lái)訪問(wèn)簇?cái)?shù)據(jù)的節(jié)點(diǎn)。對(duì)于MySQL簇,客戶端節(jié)點(diǎn)是使用NDB簇存儲(chǔ)引擎的傳統(tǒng)MySQL服務(wù)器。典型情況下,SQL節(jié)點(diǎn)是使用命令mysqld –ndbcluster啟動(dòng)的,或?qū)dbcluster添加到my.cnf后使用mysqld啟動(dòng)。簇配置包括對(duì)簇中單獨(dú)節(jié)點(diǎn)的配置,以
30、及設(shè)置節(jié)點(diǎn)之間的單獨(dú)通信鏈路。對(duì)于目前設(shè)計(jì)MySQL簇,其意圖在于,從處理器的能力、內(nèi)存空間和帶寬來(lái)講,存儲(chǔ)節(jié)點(diǎn)是同質(zhì)的,此外,為了提供單一的配置點(diǎn),作為整體,簇的所有配置數(shù)據(jù)均位于1個(gè)配置文件中。</p><p><b> 4. 研究報(bào)告</b></p><p><b> 4.1 規(guī)劃階段</b></p><p>
31、 計(jì)劃建立有5個(gè)節(jié)點(diǎn)的MySQL CLuster體系,在這里將兩個(gè)SQL節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)裝在一起,因此需要用到3臺(tái)機(jī)器,具體分配如下表:</p><p> 4.2 安裝Mysql server </p><p> $wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.59.tar.gz/from/http://mysql
32、.cs.pu.edu.tw/</p><p> $tar -xzvf mysql-5.1.59.tar.gz</p><p> $cd mysql-5.1.59</p><p> $./configure --with-charset=utf8 --with-collation=utf8_bin --with-extra-</p><p&g
33、t; charsets=gbk,gb2312,big5,utf8,binary,ascii --prefix=/usr/local/mysql --with-plugins=partition,ndbcluster</p><p><b> $make </b></p><p> $make install</p><p> 4.3
34、安裝Mysql Cluster</p><p><b> $wget </b></p><p> http://dev.mysql.com/get/Downloads/MySQL-Cluster-7. 1/mysql-cluster-</p><p> gpl-7.1.15a-linux-x86_64-glibc23.tar.gz/fro
35、m/http://mysql.ntu.edu.tw/</p><p> $tar -xzvf mysql-cluster-gpl-7.1.15a-linux-x86_64-glibc23.tar.gz</p><p> $mv mysql-cluster-gpl-7.1.15a-linux-x86_64-glibc23.tar.gz</p><p> /usr
36、/local/mysql-cluster</p><p> $cd /usr/local/mysql-cluster</p><p> $groupadd mysql</p><p> $useradd -g mysql mysql </p><p> $passwd mysql </p><p> $cd
37、/usr/local/mysql-cluster</p><p> $chown -R mysql:mysql . </p><p> $scripts/mysql_install_db --user=mysql </p><p> $cp -rp bin/ndb* /usr/local/bin/</p><p> 4.4 配置管理節(jié)
38、點(diǎn)</p><p> $cp support-files/ndb-config-2-node.ini /etc/ndb_mgmd.ini</p><p> $vi /etc/ndb_mgmd.ini</p><p> [ndbd default]</p><p> NoOfReplicas= 2</p><p>
39、; MaxNoOfConcurrentOperations= 10000</p><p> DataMemory= 80M</p><p> IndexMemory= 24M</p><p> TimeBetweenWatchDogCheck= 30000</p><p> DataDir= /usr/local/mysql-clu
40、ster/data</p><p> MaxNoOfOrderedIndexes= 512</p><p> #設(shè)置管理節(jié)點(diǎn)服務(wù)器</p><p> [ndb_mgmd default]</p><p> DataDir= /usr/local/mysql-cluster/data #MGM上保存日志的目錄</p>&l
41、t;p> [ndb_mgmd]</p><p><b> Id=1</b></p><p> HostName= 10.0.31.49</p><p> #設(shè)置存儲(chǔ)節(jié)點(diǎn)服務(wù)器(NDB節(jié)點(diǎn))</p><p><b> [ndbd] </b></p><p>&l
42、t;b> Id= 2</b></p><p> HostName= 10.0.31.40</p><p> DataDir=/usr/local/mysql-cluster/data</p><p><b> [ndbd]</b></p><p><b> Id= 3</b&g
43、t;</p><p> HostName= 10.0.31.41</p><p> DataDir=/usr/local/mysql-cluster/data</p><p> #設(shè)置SQL節(jié)點(diǎn)服務(wù)器</p><p><b> [mysqld]</b></p><p><b>
44、 Id= 5</b></p><p> HostName= 10.0.31.40</p><p> [mysqld]#第二個(gè)SQL節(jié)點(diǎn)</p><p><b> Id= 6</b></p><p> HostName= 10.0.31.41</p><p> # 選擇一個(gè)未使
45、用的端口</p><p> [tcp default]</p><p> PortNumber= 63132</p><p> 4.5 配置SQL節(jié)點(diǎn)</p><p><b> [mysqld]</b></p><p> basedir = /usr/local/mysql/</p
46、><p> datadir = /usr/local/mysql/data</p><p> user = mysql</p><p> port = 3306</p><p> socket = /tmp/mysql.sock</p><p> ndbcluster</p><p>
47、ndb-connectstring=10.0.31.40</p><p> [MYSQL_CLUSTER]</p><p> ndb-connectstring=10.0.31.41</p><p> 4.6 配置存儲(chǔ)節(jié)點(diǎn)(NDB節(jié)點(diǎn))</p><p> $vi /etc/ndbd.cnf</p><p>
48、[mysqld]ndbclusterDataDir=/usr/local/mysql-cluster/data[MYSQL_CLUSTER]ndb-connectstring=nodeid=192.168.0.55</p><p> 4.7 啟動(dòng)MySQL Cluster</p><p> 首先啟動(dòng)管理節(jié)點(diǎn)服務(wù)器,然后啟動(dòng)存儲(chǔ)節(jié)點(diǎn)服務(wù)器,最后才啟動(dòng)SQL節(jié)點(diǎn)服務(wù)器: </
49、p><p> (1)在管理節(jié)點(diǎn)服務(wù)器上,執(zhí)行以下命令啟動(dòng)MGM節(jié)點(diǎn)進(jìn)程:</p><p> $/usr/local/bin/ndb_mgmd -f /etc/ndb_mgmd.ini --configdir=/usr/local/mysq</p><p><b> l-cluster</b></p><p> $n
50、etstat -ntpl |grep ndb #檢查是否成功</p><p> ?。?)在每臺(tái)存儲(chǔ)節(jié)點(diǎn)服務(wù)器上,先執(zhí)行以下命令:</p><p> $/usr/local/bin/ndbd --initial --defaults-file=/etc/ndbd.cnf</p><p> ?。?)運(yùn)行以下命令啟動(dòng)SQL節(jié)點(diǎn)服務(wù)器:</p><p&
51、gt; $mysqld_safe --defaults-file=/etc/my.cnf &</p><p> 4.8 關(guān)閉MySQL Cluster</p><p> 在MGM節(jié)點(diǎn)所在的機(jī)器上, Shell中簡(jiǎn)單地輸入下述命令用來(lái)關(guān)閉Cluster:</p><p> $/usr/local/bin/ndb_mgm -e shutdown</
52、p><p> 運(yùn)行以下命令關(guān)閉SQL節(jié)點(diǎn)的mysqld服務(wù):</p><p> $/usr/local/bin/mysqladmin -uroot shutdown</p><p><b> 4.9 數(shù)據(jù)測(cè)試</b></p><p> ?。?)在主節(jié)點(diǎn)上新建一個(gè)數(shù)據(jù)庫(kù)ClusterTest,新建數(shù)據(jù)表user,插入一行
53、數(shù)據(jù)</p><p> mysql> create database ClusterTest</p><p> mysql> use ClusterTest</p><p> mysql> create table user(nu mint , name varchar(50) engine=NDB);</p><p>
54、; mysql> select * from user;</p><p> ?。?)在非主節(jié)點(diǎn)上查看數(shù)據(jù)同步情況</p><p> mysql> use ClusterTest</p><p> mysql> select * from user;</p><p> (3)在非主節(jié)點(diǎn)上新建一個(gè)數(shù)據(jù)庫(kù)ClusterTe
55、st,新建數(shù)據(jù)表user,插入一行數(shù)據(jù)</p><p> mysql> create database ClusterTest</p><p> mysql> use ClusterTest</p><p> mysql> create table user(nu mint , name varchar(50) engine=NDB);<
56、;/p><p> mysql> select * from user;</p><p> (4)在主節(jié)點(diǎn)上查看數(shù)據(jù)同步情況</p><p> mysql> use ClusterTest</p><p> mysql> select * from user;</p><p><b>
57、4.10安全關(guān)閉</b></p><p> 要想關(guān)閉 Cluster,可在MGM節(jié)點(diǎn)所在的機(jī)器上,在Shell中簡(jiǎn)單地輸入下述命令:</p><p> [db1~]root# /usr/local/mysql/ndb_mgm -e shutdown</p><p> 運(yùn)行以下命令關(guān)閉SQL節(jié)點(diǎn)的mysqld服務(wù):</p><p&
58、gt; [db2~]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown</p><p> 5. 測(cè)試報(bào)告/實(shí)驗(yàn)報(bào)告</p><p><b> 實(shí)驗(yàn)報(bào)告</b></p><p> ?。?)下載mysql-cluster-gpl-7.1.22-linux-x86_64-glibc 23.
59、tar.gz安裝包,選擇服務(wù)器架構(gòu)類(lèi)型。</p><p> ?。?)建立mysql用戶組和mysql用戶:#groupadd mysql && useradd mysql -g mysql(3)解壓壓縮包并重命名:</p><p> #tar zxvf mysql-cluster-gpl-7.1.22-linux-x86_64-glibc 23.tar.gz</
60、p><p> #mv mysql-cluster-gpl-7.1.22-linux-x86_64-glibc 23 mysqlc</p><p> ?。?)進(jìn)入mysqlc目錄創(chuàng)建logs目錄并更改mysqlc目錄的所有者</p><p> #cd mysqlc && mkdir logs</p><p> #cd ..
61、 && chown -R mysql:mysql mysqlc</p><p><b> 截圖如下: </b></p><p> (5)建系統(tǒng)相關(guān)數(shù)據(jù)庫(kù)以及表</p><p> #scripts/mysql_install_db --user=mysql</p><p><b> ?。?)
62、配置管理節(jié)點(diǎn)</b></p><p> #mkdir /var/lib/mysql-cluster && cd /var/lib/mysql-cluster</p><p> # vim /var/lib/mysql-cluster/config.ini</p><p><b> 保存并退回出</b></
63、p><p><b> 截圖如下:</b></p><p> ?。?)安裝配置數(shù)據(jù)節(jié)點(diǎn)</p><p> 復(fù)制管理節(jié)點(diǎn)上的mysqlc整個(gè)目錄到數(shù)據(jù)節(jié)點(diǎn)1上的/usr/local目錄,重命名為mysql,確保mysql目錄的所屬用戶和組為mysql。</p><p> 復(fù)制配置文件和啟動(dòng)腳本</p><
64、;p> #cp support-files/my-medium.cnf /etc /my.cnf</p><p> #cp support-files/mysql.server /etc /init.d/mysqld</p><p><b> 編輯配置文件</b></p><p> #vim /etc /my.cnf</p&
65、gt;<p> 增加[mysqld]下面的配置項(xiàng)</p><p> 保存后退出,在數(shù)據(jù)節(jié)點(diǎn)2上進(jìn)行相同操作。</p><p><b> 截圖如下:</b></p><p><b> ?。?)啟動(dòng)管理節(jié)點(diǎn)</b></p><p><b> (9)啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)</b
66、></p><p> ?。?0)啟動(dòng)SQL節(jié)點(diǎn)</p><p> ?。?1)在管理端查看集群當(dāng)前狀態(tài)</p><p> ?。?2)在節(jié)點(diǎn)2上啟動(dòng)數(shù)據(jù)節(jié)點(diǎn)和SQL節(jié)點(diǎn)</p><p><b> 測(cè)試報(bào)告</b></p><p> 主節(jié)點(diǎn)上創(chuàng)建ClusterTest數(shù)據(jù)庫(kù),user數(shù)據(jù)表,插
67、入一條數(shù)據(jù)。</p><p> 在非主節(jié)點(diǎn)上查看數(shù)據(jù)同步情況: </p><p> 在非主節(jié)點(diǎn)上更新數(shù)據(jù)</p><p> 查看主節(jié)點(diǎn)上數(shù)據(jù)同步情況</p><p><b> 6. 課題研究結(jié)論</b></p><p> MySQL Cluster 由一組計(jì)算機(jī)構(gòu)成,每臺(tái)計(jì)算機(jī)上均運(yùn)行著
68、多種進(jìn)程,包括MySQL服務(wù)器,NDB Cluster 的數(shù)據(jù)節(jié)點(diǎn),管理服務(wù)器,以及(可能)專(zhuān)門(mén)的數(shù)據(jù)訪問(wèn)程序。</p><p> MySQL Cluster 是MySQL適合于分布式計(jì)算環(huán)境的高實(shí)用、高冗余版本。MySQL Cluster 能夠使用多種故障切換和負(fù)載平衡選項(xiàng)配置NDB存儲(chǔ)引擎,但在 Cluster 級(jí)別上的存儲(chǔ)引擎上做這個(gè)最簡(jiǎn)單。MySQL Cluster的NDB存儲(chǔ)引擎包含完整的數(shù)據(jù)集,僅取
69、決于 Cluster本身內(nèi)的其他數(shù)據(jù)。在課程設(shè)計(jì)中實(shí)現(xiàn)了對(duì)一臺(tái)計(jì)算機(jī)上進(jìn)行創(chuàng)建數(shù)據(jù)庫(kù)、新建數(shù)據(jù)表、插入數(shù)據(jù),在其他計(jì)算機(jī)上均能查看這些信息的功能 。</p><p> 采用Linux系統(tǒng),可以提高客戶工作站運(yùn)行的可靠性和穩(wěn)定性,獲得高可用性服務(wù)器。在Linux系統(tǒng)下一種雙機(jī)互備份工作方式的MySQL數(shù)據(jù)庫(kù)集群的具體實(shí)現(xiàn)方案,實(shí)現(xiàn)了高可用性集群服務(wù)器。兩個(gè)相對(duì)獨(dú)立的應(yīng)用在兩臺(tái)機(jī)器同時(shí)運(yùn)行,但彼此均設(shè)為備份機(jī),當(dāng)某
70、一臺(tái)服務(wù)器出現(xiàn)故障時(shí),另一臺(tái)服務(wù)器可以在短時(shí)間內(nèi)將故障服務(wù)器的應(yīng)用接管過(guò)來(lái),從而保證了應(yīng)用的持續(xù)性。</p><p><b> 7. 總結(jié)</b></p><p> 隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,傳統(tǒng)的服務(wù)器體系結(jié)構(gòu)愈來(lái)愈不適應(yīng)當(dāng)前的需求,集群技術(shù)以其獨(dú)特的優(yōu)點(diǎn)很好地適應(yīng)了當(dāng)前網(wǎng)絡(luò)發(fā)展的需要。而Linux以其開(kāi)源代碼模式成為當(dāng)前集群研究的熱點(diǎn),本文正是基于這一點(diǎn),介紹了
71、MySQL集群的基本概念及其實(shí)現(xiàn)方式,依靠集群文件系統(tǒng)實(shí)現(xiàn)對(duì)系統(tǒng)中的所有文件、設(shè)備和網(wǎng)絡(luò)資源的全局訪問(wèn),突破了數(shù)據(jù)庫(kù)容量的瓶頸限制。開(kāi)源數(shù)據(jù)庫(kù)開(kāi)發(fā)商MySQL公司在2007 MySQL大會(huì)上宣布了最新的MySQL Cluster Carrier Grade Edition數(shù)據(jù)庫(kù)DBT2基準(zhǔn)測(cè)試結(jié)果。該基準(zhǔn)測(cè)試結(jié)果顯示了MySQL Cluster Carrier Grade Edition的高擴(kuò)展性,使用8個(gè)節(jié)點(diǎn)的Cluster能達(dá)到每分
72、鐘100,000個(gè)事務(wù)處理。所以企業(yè)在網(wǎng)絡(luò)規(guī)劃資金欠缺的情況下,用免費(fèi)的MySQL Cluster架設(shè)數(shù)據(jù)庫(kù)集群,完全可以滿足大流量的信息處理需求。</p><p> MySQL數(shù)據(jù)庫(kù)有很多優(yōu)點(diǎn)</p><p><b> 擴(kuò)展性和靈活性 </b></p><p> MySQL數(shù)據(jù)庫(kù)服務(wù)器提供非常強(qiáng)大的擴(kuò)展性,可以支持深度嵌入應(yīng)用系統(tǒng),大小
73、只有1MB。也可以支持TB級(jí)別的數(shù)據(jù)倉(cāng)庫(kù)。平臺(tái)靈活性一直以來(lái)是MySQL的特性,MySQL現(xiàn)在支持Linux,UNIX,和Windows。當(dāng)然,MySQL的開(kāi)源本性允許全面的自定義,這滿足了那些需要添加特殊要求至數(shù)據(jù)庫(kù)的需求。 </p><p><b> 高性能 </b></p><p> 獨(dú)特的存儲(chǔ)引擎架構(gòu)使得數(shù)據(jù)庫(kù)專(zhuān)業(yè)人員可以為特定的應(yīng)用配置有針對(duì)性的MySQ
74、L數(shù)據(jù)庫(kù),由此,可以獲得出人意料的性能結(jié)果。不管應(yīng)用是高速的事務(wù)處理或是每天處理上億查詢大容量web站點(diǎn),MySQL可以滿足任何系統(tǒng)最急需的性能要求。使用高速加載工具,不同的內(nèi)存緩存,全文索引,以及其它的性能加強(qiáng)機(jī)制,MySQL提供了現(xiàn)今關(guān)鍵業(yè)務(wù)系統(tǒng)需要的所有功能和特性。 </p><p><b> 高可用 </b></p><p> 堅(jiān)若磐石的可靠性和持續(xù)的可用
75、性是MySQL的特征,客戶憑借MySQL確保24小時(shí)的服務(wù)。MySQL提供各種高可用的方案,高速的主/從復(fù)制配置,特殊集群服務(wù)器提供的即時(shí)切換,以及其它第三方供應(yīng)商為MySQL數(shù)據(jù)庫(kù)提供的獨(dú)特高可用解決方法。 </p><p><b> 強(qiáng)大的事務(wù)支持 </b></p><p> MySQL提供一個(gè)強(qiáng)大的事務(wù)處理引擎。特性包括完整的ACID(原子性,一致性,隔離性
76、,持久性)事務(wù)支持,不限制的行級(jí)鎖,分布式事務(wù)能力,多版本事務(wù)支持。另外,也確保數(shù)據(jù)完整性,方法是通過(guò)服務(wù)器強(qiáng)制的引用完整性,特殊事務(wù)隔離級(jí)別,即時(shí)死鎖檢測(cè)。 </p><p> Web和數(shù)據(jù)倉(cāng)庫(kù)能力 </p><p> MySQL事實(shí)上可用于高速web站點(diǎn),因?yàn)樗邆涓咝阅艿牟樵円?,大量快速?shù)據(jù)插入能力,有力地支持特定web方法如全文搜索。這些特性同樣適用于數(shù)據(jù)倉(cāng)庫(kù)環(huán)境,這里的My
77、SQL擴(kuò)展至可以容納T級(jí)別的數(shù)據(jù)年。其它的特性,如內(nèi)存表,B-樹(shù)索引和hash索引,以及高達(dá)80%壓縮率的壓縮表。使得MySQL完全可以用于web站點(diǎn)和商業(yè)智能應(yīng)用。 </p><p><b> 強(qiáng)大的數(shù)據(jù)保護(hù) </b></p><p> 保障公司數(shù)據(jù)資產(chǎn)安全是數(shù)據(jù)庫(kù)管理員的日常工作之一。MySQL提供超乎尋常的安全特性,可以確保絕對(duì)的數(shù)據(jù)安全。在數(shù)據(jù)庫(kù)安全認(rèn)證方
78、面,MySQL提供有力機(jī)制以確保只有授機(jī)用戶可以訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,這樣就可以有能力將用戶阻止在客戶端機(jī)器的一層。SSH和SLL的支持確保了連接的安全與可靠。粒度對(duì)象權(quán)限框架保證了用戶可能看到他們被許可看的,強(qiáng)大的數(shù)據(jù)加密和解密功能確保了敏感數(shù)據(jù)不被未授權(quán)的查看。最后,MySQL和其它第三方軟件提供商提供的備份和恢復(fù)工具允許完全的邏輯與物理備份以及按時(shí)間點(diǎn)恢復(fù)。 </p><p><b> 全面的應(yīng)用開(kāi)
79、發(fā) </b></p><p> MySQL之所以成為全球最流行的開(kāi)源數(shù)據(jù)庫(kù)的原因之一是它針對(duì)每一個(gè)應(yīng)用開(kāi)發(fā)提供全面的支持。在數(shù)據(jù)庫(kù)里,支持包括存儲(chǔ)過(guò)程,觸發(fā)器,函數(shù),視圖,游標(biāo),ANSI標(biāo)準(zhǔn)SQL,以及更多。對(duì)于嵌入式應(yīng)用,可以使用嵌入式MySQL的插件庫(kù),幾乎支持任意應(yīng)用。MySQL提供連接器和驅(qū)動(dòng)(ODBC,JDBC,等等)。這使得各種應(yīng)用程序都可以使用MySQL作為首選的數(shù)據(jù)庫(kù)管理服務(wù)器。不管
80、是,PHP, Perl, Java, Visual Basic, 還是 .NET,MySQL都可滿足應(yīng)用開(kāi)發(fā)人員成功構(gòu)建數(shù)據(jù)庫(kù)驅(qū)動(dòng)信息系統(tǒng)的需求。 </p><p><b> 管理方便 </b></p><p> MySQL有著異乎尋常的快速部署能力。軟件從下載到安裝完成平均時(shí)間少于是15分鐘。對(duì)于以下任意平臺(tái)都是: Microsoft Windows, Linu
81、x, Macintosh, 或是 UNIX。一旦安裝,自管理特性,比如自動(dòng)空間增長(zhǎng),自動(dòng)重啟,以及動(dòng)態(tài)改變配置為數(shù)據(jù)庫(kù)管理員大大減少了壓力。MySQL提供了一套圖形化管理和遷移工具,使得DBA可以管理,解決問(wèn)題,以及從一個(gè)單一的工作臺(tái)控制多個(gè)MySQL服務(wù)器。許多第三方的軟件供應(yīng)商提供工具,可以讓DBA進(jìn)行數(shù)據(jù)設(shè)計(jì)和ETL,完成數(shù)據(jù)庫(kù)管理工作,任務(wù)管理,性能監(jiān)控。</p><p> 開(kāi)源自由和24*7支持 &l
82、t;/p><p> 很多公司對(duì)于是否完全采用開(kāi)源軟件還持懷疑態(tài)度。因?yàn)樗麄冋J(rèn)為使用MySQL不可能會(huì)得到他們當(dāng)前依賴的商業(yè)服務(wù)對(duì)關(guān)鍵業(yè)務(wù)提供的支持。事實(shí)上,這些懷疑是完全沒(méi)有必要的,MySQL企業(yè)版提供一天24小時(shí)的支持。MySQL不是一個(gè)典型的開(kāi)源項(xiàng)目,因?yàn)槠淙康能浖际怯蒓racle所有,正因?yàn)槿绱?,存在一個(gè)特殊的付費(fèi)和支持模型,使得存在一個(gè)自由開(kāi)源和得到支持受信軟件的結(jié)合體。 </p><
83、;p> 最低的總體擁有成本 </p><p> 將當(dāng)前數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用程序遷移至MySQL,或是在新的開(kāi)發(fā)項(xiàng)目中使用MySQL,公司將可以體會(huì)到成本大大的降低了。將MySQL數(shù)據(jù)庫(kù)服務(wù)器和使用廉價(jià)硬件擴(kuò)展架構(gòu)相結(jié)合,公司可以發(fā)現(xiàn)可以獲得超乎想象的擴(kuò)展性和性能,所有的這些花費(fèi)遠(yuǎn)遠(yuǎn)少于使用水平擴(kuò)展的方式。另外,可靠性和易維護(hù)性意味著MySQL可以讓數(shù)據(jù)庫(kù)管理員不用在解決性能問(wèn)題或是宕機(jī)時(shí)間上耗費(fèi)時(shí)間,而只需
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)mysql集群的研究與實(shí)現(xiàn)
- mysql數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- mysql集群
- 集群通信系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)基于linux下的mysql數(shù)據(jù)庫(kù)的研究
- 分布式mysql數(shù)據(jù)庫(kù)集群在線監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)the linux-based installation and configuration of mysql database
- 分布式MySQL數(shù)據(jù)庫(kù)集群在線監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- java課程設(shè)計(jì)--基于mysql的學(xué)生信息管理系統(tǒng)
- 基于MySQL集群實(shí)現(xiàn)的高性能數(shù)據(jù)庫(kù)架構(gòu)設(shè)計(jì).pdf
- 樂(lè)曲程序的設(shè)計(jì)與實(shí)現(xiàn)---課程設(shè)計(jì)
- 生成樹(shù)協(xié)議的研究與實(shí)現(xiàn)課程設(shè)計(jì)
- mysql集群解決方案
- opensips+freeswitch+mysql集群
- 精品課程網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)設(shè)計(jì)課程設(shè)計(jì)
- java+mysql學(xué)生信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- vlsi課程設(shè)計(jì)——同步fifo的設(shè)計(jì)與實(shí)現(xiàn)
- web課程設(shè)計(jì)--個(gè)人博客的設(shè)計(jì)與實(shí)現(xiàn)
- 課程設(shè)計(jì)--nat功能的配置與實(shí)現(xiàn)
- 預(yù)測(cè)編碼的分析與實(shí)現(xiàn)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論