Mysql Cluster水平扩展-添加数据节点

原文地址

http://blog.csdn.net/yabingshi_tech/article/details/47953109

一:实验环境

 Mysql Cluster水平扩展-添加数据节点_第1张图片

 

已搭建好MySQL cluster(一个管理节点,2sql节点及2个数据节点),搭建步骤请参考:http://blog.csdn.net/yabingshi_tech/article/details/47952135,现要在此基础上添加

192.168.6.70,192.168.6.71作为数据节点。(由于副本集参数已经配置成了2,所以必须一次添加2个数据节点)


二:实验步骤


2.1:解压cluster安装包


tar -xvf mysql-cluster-gpl-7.2.15-linux2.6-x86_64.tar.gz 

mv mysql-cluster-gpl-7.2.15-linux2.6-x86_64 /usr/local/mysql

 

2.2:修改管理节点配置文件

cd /data/mysql/mysql-cluster

 

修改全局配置文件vi mgmd.cnf,修改后的配置文件如下:

[plain]  view plain  copy
  1. [ndbd default]  
  2.    
  3. NoOfReplicas=2  
  4.    
  5. DataMemory=80M  
  6.    
  7. IndexMemory=18M  
  8.    
  9. [ndb_mgmd]  
  10.    
  11. hostname=192.168.6.66  
  12. datadir=/data/mysql/mysql-cluster  
  13.    
  14. [ndbd]  
  15.    
  16. hostname=192.168.6.68  
  17.    
  18. datadir=/usr/local/mysql/data  
  19.    
  20. [ndbd]  
  21.    
  22. hostname=192.168.6.69  
  23.    
  24. datadir=/usr/local/mysql/data  
  25.    
  26. [ndbd]  
  27.    
  28. hostname=192.168.6.70  
  29.    
  30. datadir=/usr/local/mysql/data  
  31.    
  32. [ndbd]  
  33.    
  34. hostname=192.168.6.71  
  35.    
  36. datadir=/usr/local/mysql/data  
  37.    
  38. [mysqld]  
  39.    
  40. hostname=192.168.6.66  
  41.    
  42. [mysqld]  
  43.    
  44. hostname=192.168.6.67  
 

 

2.3重新启动管理节点服务

 

2.3.1 停止管理节点

 

ndb_mgm> 1 stop  

Node 1 has shutdown.  

Disconnecting to allow Management Server to shutdown  

 

--停止管理节点不影响sql节点的正常访问。

 

2.3.2 重新加载配置文件

[root@ser6-66 mysql-cluster]# ndb_mgmd -f mgmd.cnf --initial

MySQL Cluster Management Server mysql-5.5.35 ndb-7.2.15

/*

用initial或者reload参数重新加载

如果只在配置文件中新增一个数据节点,会报错:

[root@ser6-66 mysql-cluster]#  ndb_mgmd -f mgmd.cnf --initial

MySQL Cluster Management Server mysql-5.5.35 ndb-7.2.15

2015-08-18 16:18:37 [MgmtSrvr] ERROR    -- at line 38: Nodegroup 1 has 1 members, NoOfReplicas=2

2015-08-18 16:18:37 [MgmtSrvr] ERROR    -- Could not load configuration from 'mgmd.cnf'

*/

 

2.3.4 查看集群状态

 

[plain]  view plain  copy
  1. [root@ser6-66 mysql-cluster]# ndb_mgm 192.168.6.66  
  2. -- NDB Cluster -- Management Client --  
  3. ndb_mgm> show  
  4. Connected to Management Server at: 192.168.6.66:1186  
  5. Cluster Configuration  
  6. ---------------------  
  7. [ndbd(NDB)]4 node(s)  
  8. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)  
  9. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)  
  10. id=4 (not connected, accepting connect from 192.168.6.70)  
  11. id=5 (not connected, accepting connect from 192.168.6.71)  
  12.    
  13. [ndb_mgmd(MGM)]1 node(s)  
  14. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  15.    
  16. [mysqld(API)]2 node(s)  
  17. id=6 (not connected, accepting connect from 192.168.6.66)  
  18. id=7 (not connected, accepting connect from 192.168.6.67)  


发现我的两个sql节点not connect了,网上别人的都没断啊。以保万一,这个还是晚上访问量比较少的时候添数据节点加比较好。


2.4:修改配置文件/etc/my.cnf

192.168.6.70,192.168.6.71

编辑/etc/my.cnf

内容如下:

[plain]  view plain  copy
  1. [mysqld]  
  2. ndbcluster                          #运行NDB存储引擎  
  3. ndb-connectstring=192.168.6.66    #定位管理节点  
  4. [mysql_cluster]  
  5. ndb-connectstring=192.168.6.66    #定位管理节点  


2.5轮流重新启动已连接的数据节点

[plain]  view plain  copy
  1. ndb_mgm> 2 stop  
  2. Node 2: Node shutdown initiated  
  3. Node 2: Node shutdown completed.  
  4. Node 2 has shutdown.  
  5.   
  6. [root@ser6-68 ~]# /usr/local/mysql/bin/ndbd   --ndb-connectstring=192.168.6.66  
  7. 2015-08-18 16:56:31 [ndbd] INFO     -- Angel connected to '192.168.6.66:1186'  
  8. 2015-08-18 16:56:31 [ndbd] INFO     -- Angel allocated nodeid: 2  
  9. ndb_mgm> show  
  10. Cluster Configuration  
  11. ---------------------  
  12. [ndbd(NDB)]4 node(s)  
  13. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)  
  14. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)  
  15. id=4 (not connected, accepting connect from 192.168.6.70)  
  16. id=5 (not connected, accepting connect from 192.168.6.71)  
  17.    
  18. [ndb_mgmd(MGM)]1 node(s)  
  19. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  20.    
  21. [mysqld(API)]3 node(s)  
  22. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  23. id=7 (not connected, accepting connect from 192.168.6.67)  
  24. id=8 (not connected, accepting connect from any host)  
  25. --发现sql节点也起来了一个。  
  26. ndb_mgm> 3 stop  
  27. Node 3: Node shutdown initiated  
  28. Node 3: Node shutdown completed.  
  29. Node 3 has shutdown.  
  30. [root@ser6-69 download]# /usr/local/mysql/bin/ndbd   --ndb-connectstring=192.168.6.66  
  31. 2015-08-18 16:57:54 [ndbd] INFO     -- Angel connected to '192.168.6.66:1186'  
  32. 2015-08-18 16:57:54 [ndbd] INFO     -- Angel allocated nodeid: 3  
  33.    
  34. ndb_mgm> show  
  35. Cluster Configuration  
  36. ---------------------  
  37. [ndbd(NDB)] 4 node(s)  
  38. id=2    @192.168.6.68  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)  
  39. id=3    @192.168.6.69  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)  
  40. id=4 (not connected, accepting connect from 192.168.6.70)  
  41. id=5 (not connected, accepting connect from 192.168.6.71)  
  42.    
  43. [ndb_mgmd(MGM)] 1 node(s)  
  44. id=1    @192.168.6.66  (mysql-5.5.35 ndb-7.2.15)  
  45.    
  46. [mysqld(API)]   3 node(s)  
  47. id=6    @192.168.6.66  (mysql-5.5.35 ndb-7.2.15)  
  48. id=7    @192.168.6.67  (mysql-5.5.35 ndb-7.2.15)  
  49. id=8 (not connected, accepting connect from any host)  
  50.    
  51. 此时发现id=7的sql节点也自动连接上了。  

 

2.6轮流重新启动连接的sql节点

[plain]  view plain  copy
  1. service mysql restart  
  2. ndb_mgm> show  
  3. Cluster Configuration  
  4. ---------------------  
  5. [ndbd(NDB)]4 node(s)  
  6. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)  
  7. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)  
  8. id=4 (not connected, accepting connect from 192.168.6.70)  
  9. id=5 (not connected, accepting connect from 192.168.6.71)  
  10.    
  11. [ndb_mgmd(MGM)]1 node(s)  
  12. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  13.    
  14. [mysqld(API)]3 node(s)  
  15. id=6 (not connected, accepting connect from 192.168.6.66)  
  16. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  17. [email protected]  (mysql-5.5.35 ndb-7.2.15)  

 

2.7初始化新的数据节点

[plain]  view plain  copy
  1. 在192.168.6.70,192.168.6.71上分别:  
  2.  /usr/local/mysql/bin/ndbd  --initial --ndb-connectstring=192.168.6.66  
  3. ndb_mgm> show  
  4. Cluster Configuration  
  5. ---------------------  
  6. [ndbd(NDB)]4 node(s)  
  7. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)  
  8. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)  
  9. [email protected]  (mysql-5.5.35 ndb-7.2.15, no nodegroup)  
  10. [email protected]  (mysql-5.5.35 ndb-7.2.15, no nodegroup)  
  11.    
  12. [ndb_mgmd(MGM)]1 node(s)  
  13. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  14.    
  15. [mysqld(API)]3 node(s)  
  16. id=6 (not connected, accepting connect from 192.168.6.66)  
  17. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  18. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  19. /*  
  20. mycluster 中没有参数设置节点组数. 节点组数=节点数/NoOfReplicas.  
  21. 所以你如果总共有两个数据节点,如果NoOfReplicas设为2, 那么意味着只有一个节点组. 如果NoOfReplicas=1,那么就有两个节点组。  
  22. */  
  23.    
  24. ndb_mgm> CREATE NODEGROUP 4,5  
  25. Nodegroup 1 created  
  26.    
  27. 这个数字不是随意设置的,是指你要添加哪些node到nodegroup中,这里是id=4,id=5的数据节点。  
  28.    
  29. ndb_mgm> show  
  30. Cluster Configuration  
  31. ---------------------  
  32. [ndbd(NDB)]4 node(s)  
  33. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)  
  34. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)  
  35. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 1)  
  36. [email protected]  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 1)  
  37.    
  38. [ndb_mgmd(MGM)]1 node(s)  
  39. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  40.    
  41. [mysqld(API)]3 node(s)  
  42. id=6 (not connected, accepting connect from 192.168.6.66)  
  43. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  44. [email protected]  (mysql-5.5.35 ndb-7.2.15)  
  45.    
  46. mysql> ALTER ONLINE TABLE t2 REORGANIZE PARTITION;  
  47. Query OK, 0 rows affected (7.99 sec)  
  48. Records: 0  Duplicates: 0  Warnings: 0  
  49.    
  50. mysql> select partition_name,table_rows from information_schema.PARTITIONS where     table_name='t2' and table_schema='dba';  
  51. +----------------+------------+  
  52. | partition_name | table_rows |  
  53. +----------------+------------+  
  54. | p0             |          3 |  
  55. | p1             |          0 |  
  56. | p2             |          1 |  
  57. | p3             |          2 |  
  58. +----------------+------------+  
  59. 4 rows in set (0.02 sec)  


原先t2分布在p0,p1,现在也能分布在p2,p3啦。成功啦!嘎嘎!

 

注意:如果配置过程中出现问题,记得将防火墙给关闭。

 /*

以下是我在配置过程中遇到的问题:

ndb_mgm>  create nodegroup 6,7

*   110: Error

*        Time out talking to management server


mysql> ALTER ONLINE TABLE t2 REORGANIZE PARTITION;

ERROR 1297 (HY000): Got temporary error 711 'System busy with node restart, schema operations not allowed' from NDBCLUSTER


出错原因:192.168.6.70,192.168.6.71的防火墙处于开启状态

解决办法:关闭防火墙

*/

本篇文章参考:

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


你可能感兴趣的:(mysql)