posts - 33,  comments - 70,  trackbacks - 0

          1.? 先了解一下你是否應(yīng)該用 mysql 集群。

          減少數(shù)據(jù)中心結(jié)點(diǎn)壓力和大數(shù)據(jù)量處理,采用把 mysql 分布,一個(gè)或多個(gè) application 對應(yīng)一個(gè) mysql 數(shù)據(jù)庫。把幾個(gè) mysql 數(shù)據(jù)庫公用的數(shù)據(jù)做出共享數(shù)據(jù),例如購物車,用戶對象等等,存在數(shù)據(jù)結(jié)點(diǎn)里面。其他不共享的數(shù)據(jù)還維持在各自分布的 mysql 數(shù)據(jù)庫本身中。

          ?

          MySQL Cluster Components

          ?

          ?

          2.? 集群 Mysql 中名稱概念 .( 如上圖 )

          1 Sql 結(jié)點(diǎn)( SQL node-- 上圖對應(yīng)為 mysqld : 分布式數(shù)據(jù)庫。包括自身數(shù)據(jù)和查詢中心結(jié)點(diǎn)數(shù)據(jù) .

          2 )數(shù)據(jù)結(jié)點(diǎn) (Data node -- ndbd): 集群共享數(shù)據(jù) ( 內(nèi)存中 ).

          3 )管理服務(wù)器 (Management Server – ndb_mgmd): 集群管理 SQL node,Data node.

          ?

          3 .配置

          ?????? mysql-max 版本,當(dāng)然現(xiàn)在 mysql 集群系統(tǒng) windonws 平臺(tái)上面不被支持 .

          ?????? 安裝 mysql 就不多說了,網(wǎng)上一打堆,簡明扼要。

          ?????? A:192.168.1.251 – Data node Management Server.

          ?????? B:192.168.1.254 – SQL node.

          當(dāng)然,你也可以讓一個(gè)機(jī)器同時(shí)為 3 者。

          A,B my.inf 加上:

          ??????

          [MYSQLD]???????????????????????

          ndbcluster????????????????????? # run NDB engine

          ndb-connectstring=192.168.1.251? # location of MGM node

          ?

          # Options for ndbd process:

          [MYSQL_CLUSTER]????????????????

          ndb-connectstring=192.168.1.251? # location of MGM node

          ?

          A: /var/lib/mysql-cluster/config.ini

          [NDBD DEFAULT]???

          NoOfReplicas=1??? # Number of replicas

          DataMemory=80M??? # How much memory to allocate for data storage

          IndexMemory=18M?? # How much memory to allocate for index storage

          ????????????????? # For DataMemory and IndexMemory, we have used the

          ????????????????? # default values. Since the "world" database takes up

          ????????????????? # only about 500KB, this should be more than enough for

          ????????????????? # this example Cluster setup.

          # TCP/IP options:

          [TCP DEFAULT]????

          portnumber=2202?? # This the default; however, you can use any

          ??????????????? ??# port that is free for all the hosts in cluster

          ????????????????? # Note: It is recommended beginning with MySQL 5.0 that

          ????????????????? # you do not specify the portnumber at all and simply allow

          ????????????????? # the default value to be used instead

          # Management process options:

          [NDB_MGMD]?????????????????????

          hostname=192.168.1.251?????????? # Hostname or IP address of MGM node

          datadir=/var/lib/mysql-cluster? # Directory for MGM node logfiles

          # Options for data node "A":

          [NDBD]????????????????? ????????

          ??????????????????????????????? # (one [NDBD] section per data node)

          hostname=192.168.1.251?????????? # Hostname or IP address

          datadir=/usr/local/mysql/data?? # Directory for this data node's datafiles

          # SQL node options:

          [MYSQLD]

          hostname=192.168.1.254

          #[MYSQLD] # 這個(gè)相當(dāng)于 192.168.1.251

          ?

          ?

          4.?????? 啟動(dòng)測試

          ?

          ·???????? 在管理服務(wù)器上面(這里是192.168.1.251):

          				
          						·??????????????? 
          				
          				
          						shell> ndb_mgmd -f /var/lib/mysql-cluster/config.ini
          				
          		

          ?

          ·???????? 在數(shù)據(jù)結(jié)點(diǎn)服務(wù)器上面(依然是192.168.1.251 and more):

          				
          						·??????????????? 
          				
          				
          						shell> ndbd --initial (
          						
          								第一次時(shí)加 --initial 參數(shù))
          						
          						
          								
          								
          						
          				
          		

          ?

          ·???????? SQL 結(jié)點(diǎn)服務(wù)器上面(192.168.1.254):

          				
          						·??????????????? 
          				
          				
          						shell> mysqld &
          				
          		

          ?

          251 上面察看

          ?

          ./ndb_mgm

          -- NDB Cluster -- Management Client --

          ndb_mgm> show

          Connected to Management Server at: 192.168.1.251:1186

          Cluster Configuration

          ---------------------

          [ndbd(NDB)]???? 1 node(s)

          id=2??? @192.168.1.251? (Version: 5.0.22, Nodegroup: 0, Master)

          ?

          [ndb_mgmd(MGM)] 1 node(s)

          id=1??? @192.168.1.251? (Version: 5.0.22)

          ?

          [mysqld(API)]?? 1 node(s)

          id=3??? @192.168.1.254? (Version: 5.0.22)

          ?

          ok

          關(guān)閉集群:

          shell> ndb_mgm -e shutdown

          ?

          ?

          5 .基本的集群說明

          1 )在mysql 集群中.當(dāng)table引擎為NDBCLUSTER時(shí)才做集群,其他非NDBCLUSTER表和一般mysql數(shù)據(jù)庫表一樣,不會(huì)共享數(shù)據(jù). NDBCLUSTER 表數(shù)據(jù)存儲(chǔ)在Data node服務(wù)器內(nèi)存中Data Node可以為1臺(tái)或多臺(tái)服務(wù)器,它們之間存放共享數(shù)據(jù)。Data Node服務(wù)器可以分組數(shù)據(jù)copy

          例如:2,3,4,5 為四臺(tái)Data Node服務(wù)器ID. 2,3為組0? 45為組1? 23維持數(shù)據(jù)相同, 45維持數(shù)據(jù)相同。 組0和組1維持數(shù)據(jù)不同。

          ??? 2 sql node 服務(wù)器中,非NDBCLUSTER數(shù)據(jù)存在本身數(shù)據(jù)庫中,table引擎為NDBCLUSTER時(shí),數(shù)據(jù)存儲(chǔ)在Data Node 中。當(dāng)查詢NDBCLUSTER表時(shí),它會(huì)從Data node集群中提起數(shù)據(jù).

          ??? 3)Manager server

          ??? 管理SQl node Data node 狀態(tài)。

          ?

          ?

          6 深入了解

          http://dev.mysql.com/doc/refman/5.0/en/ndbcluster.html

          posted on 2006-06-28 11:58 地獄男爵(hellboys) 閱讀(61962) 評論(7)  編輯  收藏 所屬分類: 系統(tǒng)綜合

          FeedBack:
          # re: Mysql 集群簡介和配置
          2006-06-28 12:17 | Messiah
          不錯(cuò),受益匪淺!  回復(fù)  更多評論
            
          # re: Mysql 集群簡介和配置
          2006-06-29 11:22 | pesome
          恩,很有幫助阿,能把你的blog提交到openfans不,很想收錄你的文章  回復(fù)  更多評論
            
          # re: Mysql 集群簡介和配置
          2006-07-03 13:36 | dustin
          在決定用MySQL Cluster之前,首先要明確自己數(shù)據(jù)庫方案是否適合用Cluster:

          1. MySQL的cluster現(xiàn)在的處理還相當(dāng)?shù)挠字桑?它所有的數(shù)據(jù)都需要保證能放在內(nèi)存中,所以有個(gè)經(jīng)驗(yàn)公式就是:
          每臺(tái)機(jī)器的內(nèi)存容量 = 1.1 × 整個(gè)數(shù)據(jù)庫在內(nèi)存的大小,MySQL的官方推薦是16GB的內(nèi)存(當(dāng)然相比昂貴的商業(yè)數(shù)據(jù)庫,這個(gè)也不算什么,關(guān)鍵是項(xiàng)目要能忍受MySQL Cluster暫時(shí)的不穩(wěn)定性)
          所以如果數(shù)據(jù)庫是“增量”型的數(shù)據(jù)庫, 則需要有定期清除策略;
          并且對于增量上升的比較快的表,最好需要做一些數(shù)據(jù)的優(yōu)化:盡量不要用Varchar的類型(NDB Cluster Engine將它視為定長255, 而Cluster可以支持的最長Row的大小為8K);
          2. Cluster還存在Bug,這個(gè)是需要首先了解的,對于實(shí)時(shí)修改Table(Alter Table 的DDL)的情況Cluster是不支持的。
          3. 如果只是提供數(shù)據(jù)庫的冗余,建議使用Mysql Replication。  回復(fù)  更多評論
            
          # re: Mysql 集群簡介和配置
          2006-07-03 15:45 | 地獄男爵(hellboys)
          1.優(yōu)化必然不錯(cuò),要不用什么數(shù)據(jù)庫都不行。呵呵。對于內(nèi)存大小。如果機(jī)器內(nèi)存小的話可以讓數(shù)據(jù)結(jié)點(diǎn)分組,這樣就可以體現(xiàn)集群的優(yōu)勢。
          例如:一臺(tái)8G內(nèi)存的機(jī)器,當(dāng)了數(shù)據(jù)庫就over了。 但是可以做到4G內(nèi)存的機(jī)器2個(gè),當(dāng)一臺(tái)沒關(guān)系。或者2G內(nèi)存的機(jī)器4個(gè)。就看項(xiàng)目的需要了。

          每臺(tái)機(jī)器的內(nèi)存容量 = 1.1 × 整個(gè)數(shù)據(jù)庫在內(nèi)存的大小 ??? 我翻譯的有問題 ??? 整個(gè)數(shù)據(jù)庫在內(nèi)存的大小。因?yàn)楫?dāng)不使用集群引擎的話,集群是不會(huì)處理其他表的亞。

          2.Cluster還存在Bug,呵呵,當(dāng)然有.那你為什么不提交給mysql.com亞,能得到apple的mp3亞,也為業(yè)內(nèi)做貢獻(xiàn)拉. 對于實(shí)時(shí)修改Table(Alter Table 的DDL)的情況Cluster已經(jīng)支持拉。 我用的是mysql-max 5.022.

          3.Number of replicas的關(guān)系是什么呢?
            回復(fù)  更多評論
            
          # re: Mysql 集群簡介和配置
          2006-07-04 15:06 | Dustin Tang
          @地獄男爵(hellboys)
          內(nèi)存小的機(jī)器就別想著做Cluster了, 幾百萬條很小的數(shù)據(jù)就能把數(shù)據(jù)庫撐暴.

          如果要支持HA, 那么有一半的機(jī)器要拿去做備份服務(wù)器, 用jdbc本身自帶的HA是令人難以忍受的.

          每臺(tái)機(jī)器的內(nèi)存容量 = 1.1 × 整個(gè)數(shù)據(jù)庫在內(nèi)存的大小 大家都是明白人, 難不成我還會(huì)扯別的Engine?

          還是一句話:如果用Cluster的目的是提供備份, 那么MySQL Replication 要比Cluster成熟.  回復(fù)  更多評論
            
          # re: Mysql 集群簡介和配置
          2011-01-26 14:52 | tmeper
          查詢的次數(shù)太多,導(dǎo)致檢索時(shí)間過長。

          有哪位高手能否介紹一下有關(guān)mysql的并行檢索?
          比如說,我有2000個(gè)查詢,讓兩臺(tái)機(jī)器同時(shí)執(zhí)行,每臺(tái)機(jī)器負(fù)責(zé)1000個(gè)查詢。
          或者有什么別的建議?  回復(fù)  更多評論
            
          # re: Mysql 集群簡介和配置[未登錄]
          2014-09-15 15:18 | 菜鳥
          @dustin
          動(dòng)不動(dòng)就說不穩(wěn)定,人家島國的有個(gè)很大很大的社交網(wǎng)站就是這么搞的。你有啥子證據(jù)說不穩(wěn)定,服了你。
            回復(fù)  更多評論
            
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          連接

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 柏乡县| 岚皋县| 额尔古纳市| 文昌市| 黄陵县| 叙永县| 宽城| 五台县| 马龙县| 晴隆县| 石城县| 黄龙县| 手游| 云林县| 健康| 延边| 罗田县| 安义县| 昭苏县| 通江县| 西乌珠穆沁旗| 迁西县| 蓬溪县| 高平市| 阳谷县| 敦化市| 天柱县| 青海省| 大同县| 仪征市| 德保县| 衡南县| 娄底市| 漯河市| 合江县| 宣城市| 靖安县| 天气| 靖边县| 利辛县| 顺义区|