一切福田,不離方寸,從心而覓,感無不通。

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

一:实验环境

 

已搭建好MySQL cluster(一个管理节点,2个sql节点及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. NoOfReplicas=2
  3. DataMemory=80M
  4. IndexMemory=18M
  5. [ndb_mgmd]
  6. hostname=192.168.6.66
  7. datadir=/data/mysql/mysql-cluster
  8. [ndbd]
  9. hostname=192.168.6.68
  10. datadir=/usr/local/mysql/data
  11. [ndbd]
  12. hostname=192.168.6.69
  13. datadir=/usr/local/mysql/data
  14. [ndbd]
  15. hostname=192.168.6.70
  16. datadir=/usr/local/mysql/data
  17. [ndbd]
  18. hostname=192.168.6.71
  19. datadir=/usr/local/mysql/data
  20. [mysqld]
  21. hostname=192.168.6.66
  22. [mysqld]
  23. 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. [ndbd(NDB)]4 node(s)
  7. id=2@192.168.6.68  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)
  8. id=3@192.168.6.69  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)
  9. id=4 (not connected, accepting connect from 192.168.6.70)
  10. id=5 (not connected, accepting connect from 192.168.6.71)
  11. [ndb_mgmd(MGM)]1 node(s)
  12. id=1@192.168.6.66  (mysql-5.5.35 ndb-7.2.15)
  13. [mysqld(API)]2 node(s)
  14. id=6 (not connected, accepting connect from 192.168.6.66)
  15. 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. [root@ser6-68 ~]# /usr/local/mysql/bin/ndbd    ndb-connectstring=192.168.6.66
  6. 2015-08-18 16:56:31 [ndbd] INFO       Angel connected to  192.168.6.66:1186
  7. 2015-08-18 16:56:31 [ndbd] INFO       Angel allocated nodeid: 2
  8. ndb_mgm> show
  9. Cluster Configuration
  10. [ndbd(NDB)]4 node(s)
  11. id=2@192.168.6.68  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)
  12. id=3@192.168.6.69  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)
  13. id=4 (not connected, accepting connect from 192.168.6.70)
  14. id=5 (not connected, accepting connect from 192.168.6.71)
  15. [ndb_mgmd(MGM)]1 node(s)
  16. id=1@192.168.6.66  (mysql-5.5.35 ndb-7.2.15)
  17. [mysqld(API)]3 node(s)
  18. id=6@192.168.6.66  (mysql-5.5.35 ndb-7.2.15)
  19. id=7 (not connected, accepting connect from 192.168.6.67)
  20. id=8 (not connected, accepting connect from any host)
  21. 发现sql节点也起来了一个。
  22. ndb_mgm> 3 stop
  23. Node 3: Node shutdown initiated
  24. Node 3: Node shutdown completed.
  25. Node 3 has shutdown.
  26. [root@ser6-69 download]# /usr/local/mysql/bin/ndbd    ndb-connectstring=192.168.6.66
  27. 2015-08-18 16:57:54 [ndbd] INFO       Angel connected to  192.168.6.66:1186
  28. 2015-08-18 16:57:54 [ndbd] INFO       Angel allocated nodeid: 3
  29. ndb_mgm> show
  30. Cluster Configuration
  31. [ndbd(NDB)] 4 node(s)
  32. id=2    @192.168.6.68  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *)
  33. id=3    @192.168.6.69  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0)
  34. id=4 (not connected, accepting connect from 192.168.6.70)
  35. id=5 (not connected, accepting connect from 192.168.6.71)
  36. [ndb_mgmd(MGM)] 1 node(s)
  37. id=1    @192.168.6.66  (mysql-5.5.35 ndb-7.2.15)
  38. [mysqld(API)]   3 node(s)
  39. id=6    @192.168.6.66  (mysql-5.5.35 ndb-7.2.15)
  40. id=7    @192.168.6.67  (mysql-5.5.35 ndb-7.2.15)
  41. id=8 (not connected, accepting connect from any host)
  42. 此时发现id=7的sql节点也自动连接上了。

 

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

[plain] view plain copy

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

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