MySQL Cluster 7.2.7
管理节点: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)
MySQL Cluster 7.2 配置
原创
©著作权归作者所有:来自51CTO博客作者ohio的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
redis cluster 异常处理
redis cluster 异常处理
redis 重启 配置文件 -
Mysql Cluster配置笔记
刚入门,对数据库不是很熟悉,参照了网上各前辈的配置文档,实现了基本的功能。相比于看书学习,期间的收获还是很多的。仅在此记录下,以备忘。
虚拟机 数据库集群 MySQL Cluster -
mysql-cluster详细配置
mysql集群
mysql 服务器