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  45为组1  23维持数据相同, 45维持数据相同。 组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) 阅读(61950) 评论(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个,当一台没关系。或者2G内存的机器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
动不动就说不稳定,人家岛国的有个很大很大的社交网站就是这么搞的。你有啥子证据说不稳定,服了你。
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2006年6月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

随笔分类

随笔档案

文章档案

相册

连接

最新随笔

搜索

  •  

最新评论

阅读排行榜

评论排行榜