管理节点:192.168.1.10数据节点:192.168.1.15、192.168.1.16
SQL节点:192.168.1.20添加2个数据节点:192.168.1.17、192.168.1.18添加1个SQL节点:192.168.1.21--------管理节点--------
rpm -ivh MySQL-Cluster-server-gpl-7.2.7-1.rhel5.i386.rpm注意:关闭自动启动MySQL服务,因为是管理节点,不是SQL节点,只有SQL节点才启动MySQL服务。chkconfig mysql off
mkdir -p /home/mysql-cluster
cd /home/mysql-cluster/
vi config.ini
[ndb_mgmd]
id=1
hostname=192.168.1.10
datadir=/home/mysql-cluster
[ndbd default]
NoOfReplicas=2
DataMemory=100M
IndexMemory=100M
[ndbd]
id=15
hostname=192.168.1.15
datadir=/usr/local/mysql/data
[ndbd]
id=16
hostname=192.168.1.16
datadir=/usr/local/mysql/data
[mysqld]
id=20
hostname=192.168.1.20
[mysqld]
id=21
[mysqld]
id=22
[mysqld]
id=23启动管理节点ndb_mgmd -f /home/mysql-cluster/config.ini查看管理节点状态ndb_mgm> 1 status
Node 1: connected (Version 7.1.23)
--------数据节点--------
rpm -ivh MySQL-Cluster-server-gpl-7.2.7-1.rhel5.i386.rpm
mkdir -p /usr/local/mysql/data
# cat /etc/my.cnf
[mysql_cluster]
ndb-connectstring=192.168.1.10:1186开启数据节点ndbd --initial或者ndbd --initial --ndb-connectstring=192.168.1.10:1186查看数据节点状态ndb_mgm> all status
Node 15: started (mysql-5.1.63 ndb-7.1.23)
Node 16: started (mysql-5.1.63 ndb-7.1.23)
--------
SQL节点--------
rpm -ivh MySQL-Cluster-client-gpl-7.2.7-1.rhel5.i386.rpm
rpm -ivh MySQL-Cluster-server-gpl-7.2.7-1.rhel5.i386.rpm
lokkit --port=3306:tcp -q编辑配置文件:vi /etc/my.cnf
[client]
default-character-set=gbk
[mysqld]
character-set-server=gbk
skip-name-resolve
ndbcluster
ndb-connectstring=192.168.1.10
default-storage-engine=ndbcluster启动SQL节点service mysql start查看SQL节点状态mysql> show engine ndb status;创建测试表登陆SQL节点执行如下:create database cluster_test;
use cluster_test
create table ctest (i int) engine=ndbcluster;
insert into ctest values (1);
select * from ctest;
----------------在线添加数据节点----------------添加2个数据节点:192.168.1.17、192.168.1.18
1.修改config.ini,添加新的数据节点,注意:id号不能出现重复[ndbd]
id=17
hostname=192.168.1.17
datadir=/usr/local/mysql/data
[ndbd]
id=18
hostname=192.168.1.18
datadir=/usr/local/mysql/data
mkdir -p /usr/local/mysql/data
2.停止管理节点,找到管理节点ID
ndb_mgm> 1 stop
3.重新启动管理节点(使用reload选项)ndb_mgmd -f /home/mysql-cluster/config.ini --reload
4.查看管理节点状态ndb_mgm> show
[ndbd(NDB)] 2 node(s)
id=15 @192.168.1.15 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)
id=16 @192.168.1.16 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0)
id=17 (not connected, accepting connect from 192.168.1.17)
id=18 (not connected, accepting connect from 192.168.1.18)已经出现新数据节点id=17、id=18。5.对已经存在的数据节点执行环状重启,就是一个一个重启ndb_mgm> 15 restart
Node 15: Node shutdown initiated
Node 15: Node shutdown completed, restarting, no start.
Node 15 is being restarted
ndb_mgm> Node 15: Started (version 7.1.23)注意:一定要等到管理端报告Node X …,才能重启后面的数据节点。ndb_mgm> 16 restart
6.对SQL节点执行环状重启,一个一个重启service mysql restart
7.对新数据节点进行初始化启动ndbd -c 192.168.1.10 --initial注意:这里不需要一个数据节点启动后在启动另一个,可以同时启动ndb_mgm> show
id=15 @192.168.1.15 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)
id=16 @192.168.1.16 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0)
id=17 @192.168.1.17 (mysql-5.5.25 ndb-7.2.7, starting, Nodegroup: 0)
id=18 @192.168.1.18 (mysql-5.5.25 ndb-7.2.7, starting, Nodegroup: 0)
8.为新数据节点分配新的组ndb_mgm> create nodegroup 17,18
Nodegroup 1 created
9.重新分配数据当新加入数据节点时,已经存在的数据或者索引不会被自动分配到新的节点上,如下所示:ndb_mgm> all report memory使用ndb_desc -p可以看到分区信息。拿上面的那张表为例,看到它还是在使用2个分区:ndb_desc --ndb-connectstring=192.168.1.10:1186 -d cluster_test ctest -p
-d:后面是数据库名称,然后紧接着是某个表的名称。对于新增的数据节点一些访问量较高的数据和比较重要的数据需要从新分配。现在进行数据的重新分配在SQL节点上执行对所有的ndbcluster引擎的表:alter online table reorganize partition;例如:在SQL节点执行如下:use cluster_test
alter online table ctest reorganize partition;
optimize table ctest;
-----------------在线添加SQL节点-----------------添加1个SQL节点:192.168.1.21第1步、在管理节点上,修改config.ini,添加如下:[mysqld]
id=21
hostname=192.168.1.21第2步、停止管理节点ndb_mgm> show
ndb_mgm> 1 stop注意:id 1就是管理节点的id号Node 1 has shutdown.
Disconnecting to allow Management Server to shutdown第3步、启动管理节点ndb_mgmd -f /home/mysql-cluster/config.ini --reload第4步、启动新加入的SQL节点service mysql start第5步、验证是否成功加入新SQL节点ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=15 @192.168.1.15 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0, Master)
id=16 @192.168.1.16 (mysql-5.5.25 ndb-7.2.7, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.10 (mysql-5.5.25 ndb-7.2.7)
[mysqld(API)] 4 node(s)
id=20 @192.168.1.20 (mysql-5.5.25 ndb-7.2.7)
id=21 @192.168.1.21 (mysql-5.5.25 ndb-7.2.7)
id=22 (not connected, accepting connect from any host)
id=23 (not connected, accepting connect from any host)