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
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。 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