Mysql 集群简介和配置

in mysql, 前端设计

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

0 Comments