MySQL Cluster (五) --- 动态增加数据节点配置步骤

本文介绍如何在现有MySQL集群中动态添加新的数据节点。通过更新管理节点配置文件、重启管理节点及数据节点等步骤,实现集群的平滑扩容,并确保数据的均衡分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统: Centos6.1
mysql软件: mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz

集群具体配置请参考前一篇文章 3台机器搭建集群环境


一. 原始集群配置如下
(3台机器)

管理节点: 192.168.6.134
数据节点 1192.168.6.135
数据节点 2192.168.6.136
sql节点1: 192.168.6.135
sql节点2:192.168.6.136

我使用3台机器进行配置,其中两台机器上的数据节点与sql节点在一起

现在需要动态添加二台
数据节点3:192.168.6.137
数据节点4:192.168.6.132

原始 管理节点(192.168.6.134)配置如下:
vi /var/lib/mysql-cluster/config.ini
  1. [ndbd default]
  2. NoOfReplicas=2
  3. DataMemory=80M
  4. IndexMemory=18M
  5. [ndb_mgmd]
  6. NodeId=1
  7. Hostname=192.168.6.134
  8. datadir=/usr/local/mysql/logs
  9. [ndbd]
  10. NodeId=2
  11. Hostname=192.168.6.135
  12. datadir=/usr/local/mysql/data/
  13. [ndbd]
  14. NodeId=3
  15. Hostname=192.168.6.136
  16. datadir=/usr/local/mysql/data/
  17. [MYSQLD]
  18. [MYSQLD]
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
NodeId=1
Hostname=192.168.6.134
datadir=/usr/local/mysql/logs
[ndbd]
NodeId=2
Hostname=192.168.6.135
datadir=/usr/local/mysql/data/
[ndbd]
NodeId=3
Hostname=192.168.6.136
datadir=/usr/local/mysql/data/
[MYSQLD]
[MYSQLD]

查看管理节点状态
  1. shell> /usr/local/mysql/bin/ndb_mgm
  2. ndb_mgm> show
  3. Connected to Management Server at: localhost:1186
  4. Cluster Configuration
  5. ---------------------
  6. [ndbd(NDB)] 2 node(s)
  7. id=2 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
  8. id=3 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
  9. [ndb_mgmd(MGM)] 1 node(s)
  10. id=1 @192.168.6.134 (mysql-5.5.22 ndb-7.2.6)
  11. [mysqld(API)] 2 node(s)
  12. id=4 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6)
  13. id=5 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6)
shell> /usr/local/mysql/bin/ndb_mgm
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
id=3    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)

[mysqld(API)]   2 node(s)
id=4    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)
id=5    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)


二. 进行动态添加节点

第一步:更新管理节点config.ini配置文件
  1. [ndbd default]
  2. NoOfReplicas=2
  3. DataMemory=80M
  4. IndexMemory=18M
  5. [ndb_mgmd]
  6. NodeId=1
  7. Hostname=192.168.6.134
  8. datadir=/usr/local/mysql/logs
  9. [ndbd]
  10. NodeId=2
  11. Hostname=192.168.6.135
  12. datadir=/usr/local/mysql/data/
  13. [ndbd]
  14. NodeId=3
  15. Hostname=192.168.6.136
  16. datadir=/usr/local/mysql/data/
  17. [ndbd]
  18. NodeId=4
  19. Hostname=192.168.6.137
  20. datadir=/usr/local/mysql/data/
  21. [ndbd]
  22. NodeId=5
  23. Hostname=192.168.6.132
  24. datadir=/usr/local/mysql/data/
  25. [MYSQLD]
  26. NodeId=10
  27. Hostname=192.168.6.135
  28. [MYSQLD]
  29. NodeId=11
  30. Hostname=192.168.6.136
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
NodeId=1
Hostname=192.168.6.134
datadir=/usr/local/mysql/logs
[ndbd]
NodeId=2
Hostname=192.168.6.135
datadir=/usr/local/mysql/data/
[ndbd]
NodeId=3
Hostname=192.168.6.136
datadir=/usr/local/mysql/data/
[ndbd]
NodeId=4
Hostname=192.168.6.137
datadir=/usr/local/mysql/data/
[ndbd]
NodeId=5
Hostname=192.168.6.132
datadir=/usr/local/mysql/data/
[MYSQLD]
NodeId=10
Hostname=192.168.6.135
[MYSQLD]
NodeId=11
Hostname=192.168.6.136


第二步:重新启动管理节点服务

1. 停止管理节点
  1. ndb_mgm> 1 stop
  2. Node 1 has shutdown.
  3. Disconnecting to allow Management Server to shutdown
ndb_mgm> 1 stop
Node 1 has shutdown.
Disconnecting to allow Management Server to shutdown

2. 重新加载配置文件
  1. shell> /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload
  2. MySQL Cluster Management Server mysql-5.5.22 ndb-7.2.6
shell> /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --reload
MySQL Cluster Management Server mysql-5.5.22 ndb-7.2.6

3. 查看集群状态
  1. ndb_mgm> show
  2. Connected to Management Server at: localhost:1186
  3. Cluster Configuration
  4. ---------------------
  5. [ndbd(NDB)] 4 node(s)
  6. id=2 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
  7. id=3 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
  8. id=4 (not connected, accepting connect from 192.168.6.137)
  9. id=5 (not connected, accepting connect from 192.168.6.132)
  10. [ndb_mgmd(MGM)] 1 node(s)
  11. id=1 @192.168.6.134 (mysql-5.5.22 ndb-7.2.6)
  12. [mysqld(API)] 2 node(s)
  13. id=10 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6)
  14. id=11 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6)
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     4 node(s)
id=2    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
id=3    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
id=4 (not connected, accepting connect from 192.168.6.137)
id=5 (not connected, accepting connect from 192.168.6.132)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)

[mysqld(API)]   2 node(s)
id=10   @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)
id=11   @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)

第三步:轮流重新启动连接的数据节点
在ndg_mgm(192.168.6.134)控制台
重启节点2
  1. ndb_mgm> 2 restart
  2. Node 2: Node shutdown initiated
  3. Node 2: Node shutdown completed, restarting, no start.
  4. Node 2 is being restarted
ndb_mgm> 2 restart
Node 2: Node shutdown initiated
Node 2: Node shutdown completed, restarting, no start.
Node 2 is being restarted
显示结果:
  1. ndb_mgm> Node 2: Started (version 7.2.6)
ndb_mgm> Node 2: Started (version 7.2.6)

重启节点3
  1. ndb_mgm> 3 restart
  2. Node 3: Node shutdown initiated
  3. Node 3: Node shutdown completed, restarting, no start.
  4. Node 3 is being restarted
ndb_mgm> 3 restart
Node 3: Node shutdown initiated
Node 3: Node shutdown completed, restarting, no start.
Node 3 is being restarted
显示结果:
  1. ndb_mgm> Node 3: Started (version 7.2.6)
ndb_mgm> Node 3: Started (version 7.2.6)

第四步:轮流重新启动连接的数据节点
在192.168.6.135与192.168.6.136
  1. shell> service mysqld restart
shell> service mysqld restart

第五步:初始化新的数据节点
在新增的数据节点上192.168.6.137和192.168.6.132上执行安装启动操作,安装步骤,详见上一篇文章
启动数据节点
  1. shell> /usr/local/mysql/bin/ndbd -c 192.168.6.134 --initial
shell> /usr/local/mysql/bin/ndbd -c 192.168.6.134 --initial

登陆管理节点查看集群状态
  1. ndb_mgm> show
  2. Cluster Configuration
  3. ---------------------
  4. [ndbd(NDB)] 4 node(s)
  5. id=2 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
  6. id=3 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
  7. id=4 @192.168.6.137 (mysql-5.5.22 ndb-7.2.6, starting, no nodegroup) //这两个是新添加的,no nodegroup
  8. id=5 @192.168.6.132 (mysql-5.5.22 ndb-7.2.6, starting, no nodegroup)
  9. [ndb_mgmd(MGM)] 1 node(s)
  10. id=1 @192.168.6.134 (mysql-5.5.22 ndb-7.2.6)
  11. [mysqld(API)] 2 node(s)
  12. id=10 @192.168.6.135 (mysql-5.5.22 ndb-7.2.6)
  13. id=11 @192.168.6.136 (mysql-5.5.22 ndb-7.2.6)
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     4 node(s)
id=2    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
id=3    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
id=4    @192.168.6.137  (mysql-5.5.22 ndb-7.2.6, starting, no nodegroup)  //这两个是新添加的,no nodegroup
id=5    @192.168.6.132  (mysql-5.5.22 ndb-7.2.6, starting, no nodegroup)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)

[mysqld(API)]   2 node(s)
id=10   @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)
id=11   @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)

第六步: 创建一个新的节点组
  1. ndb_mgm>CREATE NODEGROUP 4,5
  2. Nodegroup 1 created
ndb_mgm>CREATE NODEGROUP 4,5
Nodegroup 1 created

第七步: 数据重新分配
对于新增的数据节点一些访问量较高的数据和比较重要的数据需要从新分配。

分发数据命令:

Alter online table ips reorganize partition;

查看数据的分配情况:

ndb_mgm>ALL REPORT MEMORY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值