增加或减少数据节点的数量和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
相关推荐
MySQL Cluster采用分布式共享无单点故障的设计,由三部分组成:管理节点(NDP),数据节点(Data Node)和SQL节点(SQL Node)。管理节点负责集群的配置和监控,数据节点存储实际数据并执行数据分区,SQL节点处理...
Mysql 高可用 InnoDB Cluster 多节点搭建过程 Mysql 高可用 InnoDB Cluster 多节点搭建过程是指使用 Mysql 的 InnoDB Cluster 功能来搭建一个高可用性的集群环境。在这个过程中,我们将使用四台服务器,node01、...
- **集群架构**:MySQL Cluster 由一组计算机组成,每台计算机运行着不同的进程,包括 MySQL 服务器、NDB Cluster 数据节点、管理服务器等。这些组件之间的关系如下: - **数据节点**:存储集群的数据,其数量通常...
MySQL Cluster架构中,管理节点、数据节点和SQL节点构成了一个完整的集群系统,其中数据节点和SQL节点可以根据需要进行横向扩展。 #### 二、案例分析 本案例将详细介绍如何在一个测试环境中搭建一个最小规模的...
- **作用**:管理MySQL Cluster内的其他节点,如提供配置数据、启动和停止节点、运行备份等。 - **启动方式**:通过命令`ndb_mgmd`启动。 - **特点**:硬件要求较低,适合使用配置较低的机器。默认监听端口为1186。 ...
MySQL Cluster按照节点类型可以分为3类:管理节点(对其他节点进行管理)、数据节点(存放cluster中的数据,可以有多个)和SQL节点(存放表结构,可以有多个)。Cluster中的某计算机可以是某一种节点,也可以是2种或...
MySQL Cluster支持水平扩展,即通过添加更多的节点来提高处理能力。由于数据分布在多个节点上,查询可以并行执行,提高了处理速度。同时,通过调整数据分区策略,可以优化集群的性能。 **五、应用场景** MySQL ...
每个环境都有多个IP地址对应不同的角色,包括管理节点、数据节点和SQL节点,它们共同构成了MySQL Cluster的基本架构。管理节点负责管理整个集群,数据节点负责存储数据,而SQL节点则是用户连接和执行SQL语句的接口。...
MySQL Cluster支持动态添加或移除节点,无需停机,便于根据业务需求调整资源,实现平滑扩容或缩容。 **3. 性能优化** 通过数据分区和并行处理,MySQL Cluster能够在大规模并发场景下提供高效的读写性能,尤其适用...
典型的MySQL Cluster集群由两个管理节点(Management Nodes)、两个数据节点(Data Nodes)和至少一个SQL节点(SQL Node)组成。每个节点分别对应不同的IP地址,以保证在集群中能准确地识别和定位各个节点。 在开始...
### MySQL Cluster 集群...通过合理的配置和管理,MySQL Cluster 可以有效应对大规模在线事务处理 (OLTP) 场景下的挑战。对于需要高度可靠和高性能数据库解决方案的应用场景来说,MySQL Cluster 是一个值得考虑的选择。
这里,`ndbcluster=1` 指定了使用MySQL Cluster,`socket` 设置了套接字文件的位置,而`datadir` 指定了数据节点的数据存储位置。 然后,我们关注config.ini文件,这是MySQL Cluster的全局配置文件,定义了集群的...
一个 MySQL Cluster 由多个主机(hosts)组成,每个主机运行着不同类型的节点(nodes),包括 MySQL 服务器(SQL nodes)、数据节点(Data nodes)和管理服务器(Management servers)。SQL 节点用于执行 SQL 查询并...
MySQL Cluster采用了NDB(New Database)存储引擎,它将数据分散在多个数据节点上,实现了数据的冗余和负载均衡。NDB引擎采用共享无盘(Shared Nothing)架构,每个节点都包含完整的数据副本,确保了高可用性。此外...
1. **MySQL Cluster架构**:MySQL Cluster由三个主要组件构成:SQL节点(NDP - Native Data Node)、数据节点(Data Node)和管理节点(Management Node)。SQL节点负责处理SQL查询,数据节点存储和处理数据,管理...
MySQL Cluster 是一种分布式事务处理系统,它通过将数据分布在多个节点上,提供实时的数据访问和高度的容错能力。NDB 存储引擎是其核心组成部分,它将数据分布在数据节点(ndbd)之间,并由管理节点(ndb_mgmd)协调...