MySQL Cluster在线添加数据节点
增加或减少数据节点的数量和 NoOfReplicas(即副本数,通过管理节点的config.ini配置文件来设置)有关,一般来说NoOfReplicas是2,那么增加或减少的数量也应该是成对的,否则要设置另外的NoOfReplicas。首先必须确保新加入的数据节点作为新的group加入,默认2个node为1个group,Group数量 = NDB节点总数 / NoOfReplicas数。
1、修改管理节点的config.ini配置文件 ,添加如下一段:
[ndbd]
NodeId = 13
HostName = 192.168.137.106[ndbd]
NodeId = 14
HostName = 192.168.137.107
这里的NodeId不能跟已有的NodeId重复
2、配置节点
# 拷贝文件
- \cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 修改配置文件
- vim /etc/my.cnf
# my.cnf内容如下:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/datandbcluster
ndb-connectstring = 192.168.137.101[mysql_cluster]
ndb-connectstring = 192.168.137.101
3、关闭管理节点,用reload方式启动管理节点:
#执行ndb_mgm进入管理命令界面
#找到管理节点的id,然后执行 管理节点id stop,退出
/usr/local/mysql/bin/ndb_mgmd -f /usr/local/mysql/etc/config.ini --reload #加上reload参数,使得修改过的config.ini生效
启动成功后用show查看,可以 看到新加入的数据节点,并且处于未连接状态。
4、滚动重启旧的数据存储节点服务(滚动重启,不能所有节点同时重启,如果同时停止,数据库前端查询就会出现错误)
ndb_mgm> 11 restart
Node 11: Node shutdown initiated
Node 11: Node shutdown completed, restarting, no start.
Node 11 is being restarted
ndb_mgm> Node 11: Start initiated (version 7.3.5)
Node 11: Started (version 7.3.5)
ndb_mgm> 12 restart
Node 12: Node shutdown initiated
Node 12: Node shutdown completed, restarting, no start.
Node 12 is being restarted
ndb_mgm> Node 12: Start initiated (version 7.3.5)
ndb_mgm> Node 12: Started (version 7.3.5)
5、滚动重启所有的数据查询节点服务
service mysqld restart
6、以初如化方式 启动新增加的数据存储节点
/usr/local/mysql/bin/ndbd --initial
启动后在管理节点上用show命令查看可以 看到新加入的节点已经启动并处于未分组状态
id=13 @192.168.137.106 (5.6.17-ndb-7.3.5, no nodegroup)
id=14 @192.168.137.107 (5.6.17-ndb-7.3.5, no nodegroup)
7、为新节点增加分组,在管理节点上ndb_mgm下输入以下命令:
ndb_mgm> create nodegroup 13,14
这时在管理节点上show,可以看到新节点已经分组。
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 4 node(s)
id=11 @192.168.137.102 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0, Master)
id=12 @192.168.137.103 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0)
id=13 @192.168.137.106 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 1)
id=14 @192.168.137.107 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 1)[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.137.101 (mysql-5.6.17 ndb-7.3.5)[mysqld(API)] 2 node(s)
id=81 @192.168.137.104 (mysql-5.6.17 ndb-7.3.5)
id=82 @192.168.137.105 (mysql-5.6.17 ndb-7.3.5)
8、重新分配集群数据(数据量表比较大时,会出现很多问题;我当时表里数据量为三千万条,一直报错,报错解决后提示成功,但数据没有迁移过去,最后没有弄,直接把表数据删除了……
现把网上找到的方法贴到下面:
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.137.101 -d tuge datasource -p
-c后面跟管理节点的ip,-d跟数据库的名字,datasource为表名,-p输出分区的详细信息
迁移之后空间还没有释放出来,需要通过optimize命令优化表,释放迁移走的空间(当optimize一个ndb大表的时候很慢,很容易出问题)
表的数据量很多的时候,最好自己编写脚本,实现数据的重新分区和优化。
参考:
http://blog.csdn.net/chenxingzhen001/article/details/7598509
MySQL Cluster在线添加数据节点的更多相关文章
- MySQL Cluster 4个数据节点压力测试--mysqlslap工具压400W写
锅巴哥的个人建议:cluster叫电信运营商版本,所以基本上在很大的用户并发量的情况下才会用到,对连接数的线性增长要求高的场景,千兆就不用想了, 没万兆就不用玩了. 很不幸,我的就是千兆网络,我的数据 ...
- KingbaseES R6 集群通过备库clone在线添加新节点
案例说明: KingbaseES R6集群可以通过图形化方式在线添加新节点,但是在添加新节点clone环节时,是从主库copy数据到新的节点,这样在生产环境,如果数据量大,将会对主库的网络I/O造成压 ...
- Windows Server 2008R2配置MySQL Cluster并将管理节点和数据节点配置成windows服务
说明:将mysql的管理节点和数据节点配置成windows服务是为了防止有人手误关闭管理节点或数据节点的dos命令窗口,管理节点或数据节点的命令窗口误关闭可能会造成mysql某台或某几台mysql不能 ...
- MySQL Cluster在线备份和恢复
备份方式 一般MySQL数据库都是用mysqldump命令进行数据备份,其生成的文件实际上是创建对象和导入对象的sql语句. 在MySQL Cluster集群上,可以在管理节点上使用start bac ...
- KingbaseES R3集群在线删除数据节点案例
案例说明: kingbaseES R3集群一主多从的架构,一般有两个节点是集群的管理节点,所有的节点都可以为数据节点:对于非管理节点的数据节点可以在线删除:但是对于管理节点,无法在线删除,如果删除管理 ...
- CentOS上安装Hadoop2.7,添加数据节点,运行wordcount
安装hadoop的步骤比较繁琐,但是并不难. 在CentOS上安装Hadoop2.7 1. 安装 CentOS,注:图形界面并无必要 2. 在CentOS里设置静态IP,手工编辑如下4个文件 /etc ...
- MyBatis+mysql查询和添加数据
项目结构: Menu package com.mstf.dao; import java.util.Scanner; import org.apache.ibatis.session.SqlSessi ...
- (转载)MySQl数据库-批量添加数据的两种方法
方法一:使用excel表格 方法二:使用insert语句(FileWriter批量写入) 使用excel表格 1.打开数据表,按照表的字段在excel中添加数据.注意:表中字段名必须和excel中的名 ...
- mysql 向字段添加数据或者删除数据
UPDATE table SET cids = CONCAT(cids , ',12') where id=id //向字段添加数据 //因为要用逗号分隔 所以在在前面加了一个逗号 UPDATE ta ...
随机推荐
- Struts2 自定义MVC框架
一.Model1与Model2: Model1:就是一种纯jsp开发技术,将业务逻辑代码和视图渲染代码杂糅在一起. Model2:Model2是在Model1的基础上,将业务逻辑的代码分离开来,单独形 ...
- 简单的angular购物车商品小计
<!DOCTYPE html> <html lang="en" ng-app="shopApp"> <head> <m ...
- Linux 进程间通讯详解一
进程间的通讯 两台主机间的进程通讯 --socket 一台主机间的进程通讯 --管道(匿名管道,有名管道) --System V进程间通信(IPC)包括System V消息队列,System V信号量 ...
- maven中央仓库访问速度太慢的解决办法
方法一:修改settings.xml eclipse中集成的maven的settings.xml文件,找了半年也没找到,我们放弃eclipse中的maven,下一个最新的maven,并在eclipse ...
- 转 Android RadioButton设置选中时文字和背景颜色同时改变
主要应用在购物车,像淘宝的那样,点击以后弹出一个选择种类颜色这样的popuwindow以后,然后这个选择种类的地方要用到类似这个玩意儿. 搜了一下,效果和这个文章一致.转了. 原文地址:http:// ...
- Css--深入学习之三角形气泡窗
本文是作者从别的网站和文章学习了解的知识,简单做了个笔记,想要学习更多的可以参考这里:[css进阶]伪元素的妙用--单标签之美,奇思妙想 一.三角形的实现 首先,先画了三角形,后面二.三都是根据这个 ...
- 79 umount-卸除目前挂在Linux目录中的文件系统
Linux umount命令用于卸除文件系统. umount可卸除目前挂在Linux目录中的文件系统. 语法 umount [-ahnrvV][-t <文件系统类型>][文件系统] 参数: ...
- jQuery之XML的加载和解析
1.XML(eXtensible Markup Language)即可扩展标记语言,与HTML一样,都是SGML标准通用语言.语法如下: 任何起始标签都必须有一个结束标签. 可以采用另一种简化语法,即 ...
- Oracle 11g导出空表、少表的解决办法
ORACLE 11G中有个新特性,当表无数据时,不分配segment,以节省空间. 解决方法: 1)insert一行,再rollback就产生segment了 该方法是在在空表中插入数据,再删除,则产 ...
- 【USACO 2.3】Cow Pedigrees(DP)
问n个结点深度为k且只有度为2或0的二叉树有多少种. dp[i][j]=dp[lk][ln]*dp[rk][j-1-ln],max(lk,rk)=i-1. http://train.usaco.org ...