视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQLCluster在线添加数据节点_MySQL
2020-11-09 20:03:10 责编:小采
文档


增加或减少数据节点的数量和NoOfReplicas(即副本数,通过管理节点的config.ini配置文件来设置)有关,一般来说NoOfReplicas是2,那么增加或减少的数量也应该是成对的,否则要设置另外的NoOfReplicas。首先必须确保新加入的数据节点作为新的group加入,默认2个node为1个group,Group数量=Node总数/NoOfReplicas数。

1、修改管理节点的config.ini配置文件 ,添加如下一段:

[NDBD]

Id=6

HostName= 10.30.9.208

Datadir=/opt/mysql-cluster/data

[NDBD]

Id=7

HostName= 10.30.9.211

Datadir=/opt/mysql-cluster/data

这里的Id不能跟已有的Id重复

2、关闭管理节点,用reload方式启动管理节点

执行ndb_mgm进入管理命令界面

找到管理节点的id,然后执行管理节点id stop,退出

[root@sg204 mysql-cluster]# libexec/ndb_mgmd -f /opt/mysql-cluster/etc/config.ini --reload#加上reload参数,使得修改过的config.ini生效

启动成功后用show查看,可以 看到新加入的数据节点,并且处于未连接状态。

3、滚动重启旧的数据存储节点服务(滚动重启,不能所有节点同时重启,如果同时停止,数据库前端查询就会出现错误)

ndb_mgm> 2 RESTART

Node 2: Node shutdown initiated

Node 2: Node shutdown completed, restarting, no start.

Node 2 is being restarted

ndb_mgm> Node 2: Start initiated (version 7.1.19)

Node 2: Started (version 7.1.19)

ndb_mgm> 3 RESTART

Node 3: Node shutdown initiated

Node 3: Node shutdown completed, restarting, no start.

Node 3 is being restarted

ndb_mgm> Node 3: Start initiated (version 7.1.19)

ndb_mgm> Node 3: Started (version 7.1.19)

4. 滚动重启所有的数据查询节点服务

[root@sg204 mysql-cluster]#bin/mysqladmin -uroot -ppassword shutdown[root@sg204 mysql-cluster]# mysqld_safe --console --ndbcluster --ndb-connectstring=192.168.0.10

5、以初如化方式 启动新增加的数据存储节点

[root@sg204 mysql-cluster]#ndbd -c 10.30.9.204 --initial

启动后在管理节点上用show命令查看可以 看到新加入的节点已经启动并处于未分组状态

id=6 @10.30.9.208 (5.1.56-ndb-7.1.19, no nodegroup)id=7 @10.30.9.211 (5.1.56-ndb-7.1.19, no nodegroup)

6、为新节点增加分组,在管理节点上ndb_mgm下输入以下命令:

ndb_mgm> create nodegroup 6,7

这时在管理节点上show,可以看到新节点已经分组。

ndb_mgm> show

Connected to Management Server at: localhost:1186

Cluster Configuration

---------------------

[ndbd(NDB)] 4 node(s)

id=2 @10.30.9.206 (mysql-5.1.56 ndb-7.1.19, Nodegroup: 0, Master)

id=3 @10.30.9.207 (mysql-5.1.56 ndb-7.1.19, Nodegroup: 0)

id=6 @10.30.9.208 (mysql-5.1.56 ndb-7.1.19, Nodegroup: 1)

id=7 @10.30.9.211 (mysql-5.1.56 ndb-7.1.19, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)id=1 @10.30.9.204 (mysql-5.1.56 ndb-7.1.19)

[mysqld(API)] 4 node(s)

id=4 @10.30.9.208 (mysql-5.1.56 ndb-7.1.19)

id=5 @10.30.9.211 (mysql-5.1.56 ndb-7.1.19)

id=8 @10.30.9.206 (mysql-5.1.56 ndb-7.1.19)

id=9 @10.30.9.207 (mysql-5.1.56 ndb-7.1.19)

7、重新分配集群数据(数据量表比较大时,会出现很多问题;我当时表里数据量为三千万条,一直报错,报错解决后提示成功,但数据没有迁移过去,最后没有弄,直接把表数据删除了……现把网上找到的方法贴到下面)

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE ENGINE = 'NDBCLUSTER';

ALTER ONLINE TABLE table_name REORGANIZE PARTITION

然后通过show命令或者使用ndb_desc命令查看

ndb_desc -c 192.168.0.10 -d tuge datasource -p

-c后面跟管理节点的ip,-d跟数据库的名字,datasource为表名,-p输出分区的详细信息

迁移之后空间还没有释放出来,需要通过optimize命令优化表,释放迁移走的空间(当optimize一个ndb大表的时候很慢,很容易出问题)

表的数据量很多的时候,最好自己编写脚本,实现数据的重新分区和优化。

参考:

http://blog.csdn.net/chenxingzhen001/article/details/7598509

下载本文
显示全文
专题