1. 先了解一下你是否应该用MySQL集群。
减少数据中心结点压力和大数据量处理,采用把MySQL分布,一个或多个application对应一个MySQL数据库。把几个MySQL数据库公用的数据做出共享数据,例如购物车,用户对象等等,存在数据结点里面。其他不共享的数据还维持在各自分布的MySQL数据库本身中。
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
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
4. 启动测试
在管理服务器上面(这里是192.168.1.251
):
复制
shell>ndb_mgmd -f /var/lib/MySQL-cluster/config.ini
1.
在数据结点服务器上面(依然是192.168.1.251
and more):
复制
shell>ndbd--initial (***次时加--initial参数)
1.
SQL结点服务器上面(192.168.1.254
):
复制
shell>MySQLd &
1.
在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)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ok
关闭集群:
复制
shell>ndb_mgm -e shutdown
1.
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。 2,3维持数据相同,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
原文链接:http://blog.19lou.com/10131711/viewspace-338346
【编辑推荐】