posts - 33,  comments - 70,  trackbacks - 0

          1.? 先了解一下你是否應該用 mysql 集群。

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

          ?

          MySQL Cluster Components

          ?

          ?

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

          1 Sql 結點( SQL node-- 上圖對應為 mysqld : 分布式數據庫。包括自身數據和查詢中心結點數據 .

          2 )數據結點 (Data node -- ndbd): 集群共享數據 ( 內存中 ).

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

          ?

          3 .配置

          ?????? mysql-max 版本,當然現在 mysql 集群系統 windonws 平臺上面不被支持 .

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

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

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

          當然,你也可以讓一個機器同時為 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] # 這個相當于 192.168.1.251

          ?

          ?

          4.?????? 啟動測試

          ?

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

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

          ?

          ·???????? 在數據結點服務器上面(依然是192.168.1.251 and more):

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

          ?

          ·???????? SQL 結點服務器上面(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

          關閉集群:

          shell> ndb_mgm -e shutdown

          ?

          ?

          5 .基本的集群說明

          1 )在mysql 集群中.table引擎為NDBCLUSTER時才做集群,其他非NDBCLUSTER表和一般mysql數據庫表一樣,不會共享數據. NDBCLUSTER 表數據存儲在Data node服務器內存中,Data Node可以為1臺或多臺服務器,它們之間存放共享數據。Data Node服務器可以分組數據copy。

          例如:2,3,4,5 為四臺Data Node服務器ID. 2,3為組0。? 4,5為組1。? 23維持數據相同, 4,5維持數據相同。 組0和組1維持數據不同。

          ??? 2 sql node 服務器中,非NDBCLUSTER數據存在本身數據庫中,table引擎為NDBCLUSTER時,數據存儲在Data Node 中。當查詢NDBCLUSTER表時,它會從Data node集群中提起數據.

          ??? 3)Manager server

          ??? 管理SQl node Data node 狀態。

          ?

          ?

          6 深入了解

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

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

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

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

          每臺機器的內存容量 = 1.1 × 整個數據庫在內存的大小 ??? 我翻譯的有問題 ??? 整個數據庫在內存的大小。因為當不使用集群引擎的話,集群是不會處理其他表的亞。

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

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

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

          每臺機器的內存容量 = 1.1 × 整個數據庫在內存的大小 大家都是明白人, 難不成我還會扯別的Engine?

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

          有哪位高手能否介紹一下有關mysql的并行檢索?
          比如說,我有2000個查詢,讓兩臺機器同時執行,每臺機器負責1000個查詢。
          或者有什么別的建議?  回復  更多評論
            
          # re: Mysql 集群簡介和配置[未登錄]
          2014-09-15 15:18 | 菜鳥
          @dustin
          動不動就說不穩定,人家島國的有個很大很大的社交網站就是這么搞的。你有啥子證據說不穩定,服了你。
            回復  更多評論
            
          <2014年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          常用鏈接

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          連接

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 工布江达县| 庄河市| 大同县| 林周县| 乐陵市| 孟津县| 德安县| 泽库县| 东山县| 临武县| 汶上县| 延吉市| 项城市| 都江堰市| 宝山区| 瓦房店市| 礼泉县| 资兴市| 洛川县| 乐平市| 温宿县| 阜城县| 仙居县| 醴陵市| 洛川县| 西藏| 石林| 麦盖提县| 临沭县| 上杭县| 六枝特区| 大同县| 西青区| 宜川县| 白河县| 原阳县| 柳林县| 措美县| 霍城县| 邵阳市| 铜山县|