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

原文地址

http://blog.csdn.net/chengfei112233/article/details/7706275

系统: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
[plain]  view plain  copy
 print ?
  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]  

查看管理节点状态
[plain]  view plain  copy
 print ?
  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.   
  10. [ndb_mgmd(MGM)] 1 node(s)  
  11. id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)  
  12.   
  13. [mysqld(API)]   2 node(s)  
  14. id=4    @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)  
  15. id=5    @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)  


二. 进行动态添加节点

第一步:更新管理节点config.ini配置文件
[plain]  view plain  copy
 print ?
  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  


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

1. 停止管理节点
[plain]  view plain  copy
 print ?
  1. ndb_mgm> 1 stop  
  2. Node 1 has shutdown.  
  3. Disconnecting to allow Management Server to shutdown  

2. 重新加载配置文件
[plain]  view plain  copy
 print ?
  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  

3. 查看集群状态
[plain]  view plain  copy
 print ?
  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.   
  11. [ndb_mgmd(MGM)] 1 node(s)  
  12. id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)  
  13.   
  14. [mysqld(API)]   2 node(s)  
  15. id=10   @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)  
  16. id=11   @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)  

第三步:轮流重新启动连接的数据节点
在ndg_mgm(192.168.6.134)控制台
重启节点2
[plain]  view plain  copy
 print ?
  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  
显示结果:
[plain]  view plain  copy
 print ?
  1. ndb_mgm> Node 2: Started (version 7.2.6)  

重启节点3
[plain]  view plain  copy
 print ?
  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  
显示结果:
[plain]  view plain  copy
 print ?
  1. ndb_mgm> Node 3: Started (version 7.2.6)  

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

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

登陆管理节点查看集群状态
[plain]  view plain  copy
 print ?
  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.   
  10. [ndb_mgmd(MGM)] 1 node(s)  
  11. id=1    @192.168.6.134  (mysql-5.5.22 ndb-7.2.6)  
  12.   
  13. [mysqld(API)]   2 node(s)  
  14. id=10   @192.168.6.135  (mysql-5.5.22 ndb-7.2.6)  
  15. id=11   @192.168.6.136  (mysql-5.5.22 ndb-7.2.6)  

第六步: 创建一个新的节点组
[plain]  view plain  copy
 print ?
  1. ndb_mgm>CREATE NODEGROUP 4,5  
  2. Nodegroup 1 created  

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

分发数据命令:

Alter online table ips reorganize partition;

查看数据的分配情况:

ndb_mgm>ALL REPORT MEMORY




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接 MySQL Cluster 集群可以通过两种方式:使用 MySQL Shell 或者使用 MySQL Connector/Net。以下是连接 MySQL Cluster 集群步骤: ### 使用 MySQL Shell 连接 1. 打开 MySQL Shell,输入以下命令连接到 MySQL Cluster: ``` mysqlsh root@<ndb_mgmd_ip>:<ndb_mgmd_port> ``` 其中,`root` 是 MySQL 的用户名,`<ndb_mgmd_ip>` 是 MySQL Cluster Management Server 的 IP 地址,`<ndb_mgmd_port>` 是 MySQL Cluster Management Server 的端口号(默认为 1186)。 2. 输入密码登录 MySQL。 3. 输入以下命令查看 MySQL Cluster 集群节点的状态: ``` dba.getCluster().status() ``` 如果输出的信息包含了所有的 MySQL Cluster 节点,说明连接成功。 ### 使用 MySQL Connector/Net 连接 1. 在 Visual Studio 中创建一个新的 C# 项目。 2. 在项目中添加 MySQL Connector/Net。 3. 在代码中引入 MySQL Connector/Net 的命名空间: ``` using MySql.Data.MySqlClient; ``` 4. 使用以下代码连接到 MySQL Cluster: ``` string connectionString = "server=<ndb_mgmd_ip>;port=<ndb_mgmd_port>;database=<database_name>;uid=<username>;pwd=<password>"; MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); ``` 其中,`<ndb_mgmd_ip>` 是 MySQL Cluster Management Server 的 IP 地址,`<ndb_mgmd_port>` 是 MySQL Cluster Management Server 的端口号(默认为 1186),`<database_name>` 是要连接的数据库名称,`<username>` 是 MySQL 的用户名,`<password>` 是 MySQL 的密码。 5. 使用 `connection` 对象执行 SQL 查询等操作。 以上是连接 MySQL Cluster 集群的方法,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值