文档章节

18.5.13.3 在线增加 MySQL Cluster 数据节点: 详细例子

l
 liangkiller
发布于 2015/05/11 16:51
字数 862
阅读 32
收藏 1

18.5.13.3 在线增加 MySQL Cluster 数据节点: 详细例子
https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-online-add-node-example.html

MySQL Cluster开始有1个组2个节点,增加到2个组4个节点。

开始的配置

[ndbd default]
DataMemory = 100M
IndexMemory = 100M
NoOfReplicas = 2
DataDir = /usr/local/mysql/var/mysql-cluster

[ndbd]
Id = 1
Hostname = x.1

[ndbd]
Id = 2
Hostname = x.2

[ndb_mgmd]
Id = 10
Hostname = x.10

[mysqld]
Id = 20
Hostname = x.20

[mysqld]
Id = 21
Hostname = x.21

在数据节点ID段和其他节点ID段留下一段空白。为新加节点留下空间。
x 表示:192.168.0


Step 1: 修改config.ini

[ndbd default]
DataMemory = 100M
IndexMemory = 100M
NoOfReplicas = 2
DataDir = /usr/local/mysql/var/mysql-cluster

[ndbd]
Id = 1
Hostname = x.1

[ndbd]
Id = 2
Hostname = x.2

[ndbd]
Id = 3
Hostname = x.3

[ndbd]
Id = 4
Hostname = x.4

[ndb_mgmd]
Id = 10
Hostname = x.10

[mysqld]
Id = 20
Hostname = x.20

[mysqld]
Id = 21
Hostname = x.21


Step 2:重启管理节点

(1)使用管理客户端停止管理节点

ndb_mgm> 10 STOP


(2) 从shell启动管理节点。使用--reload或--initial选项来重载配置文件。

shell> ndb_mgmd -f config.ini --reload


Step 3:滚动重启现有的数据节点

ndb_mgm> 1 RESTART
ndb_mgm> 2 RESTART


可以通过检查ndbinfo.nodes表来查看数据节点是否使用新的配置。

Step 4:滚动重启API节点

shell> mysqladmin shutdown
shell> mysqld_safe --ndbcluster --ndb-connectstring=x.10 &


Step 5:使用--initial启动新的数据节点

shell> ndbd -c x.10 --initial


不同于重启已存在的数据节点要等待一个数据节点启动好,可以并行启动新数据节点。

查看新节点是否启动好

ndb_mgm> SHOW


Step 6:创建节点组,使用CREATE NODEGROUP,参数是数据节点ID

ndb_mgm> CREATE NODEGROUP 3,4
ndb_mgm> SHOW


Step 7:重分配集群数据
当创建一个新节点组时,现有的数据和索引不会自动分配到新的节点组数据节点

ndb_mgm> ALL REPORT MEMORY


使用ndb_desc查看分区信息。查看ips表的情况

shell> ndb_desc -c x.10 -d n ips -p


可以在mysqld里运行ALTER ONLINE TABLE table_name  REORGANIZE PARTITION 语句来重分配数据。

另外,对每一张,ALTER ONLINE TABLE 语句要跟着OPTIMIZE TABLE 回收浪费的空间。可以从INFORMATION_SCHEMA.TABLES里获取所有NDBCLUSTER的表。

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

NDBCLUSTER只有DDL操作能一次执行。必须等一个ALTER ONLINE TABLE ... REORGANIZE PARTITION 语句运行完才能运行下一个。

在新数据节点增加好后,新创建的表就不用ALTER ONLINE TABLE ...REORGANIZE PARTITION,会自动分发到所有节点。然后,之前的表如果没有ALTER ONLINE TABLE ... REORGANIZE PARTITION ,添加的新数据也不会分发到新数据节点。

可选过程,不用滚动重启

在配置时就先定义好节点组,但不使用。

[ndbd default]
DataMemory = 100M
IndexMemory = 100M
NoOfReplicas = 2
DataDir = /var/lib/mysql/
[ndbd]
Id = 1
Hostname = x.1
[ndbd]
Id = 2
Hostname = x.2
[ndbd]
Id = 3
Hostname = x.3
Nodegroup = 65536
[ndbd]
Id = 4
Hostname = x.4
Nodegroup = 65536
[ndb_mgmd]
Id = 10
Hostname = x.10
[mysqld]
Id = 20
Hostname = x.20
[mysqld]
Id = 21
Hostname = x.21

稍后上线的node 3,4可以配置为NodeGroup = 65536,node1,2启动

shell> ndbd -c 192.168.0.10 --initial

在管理节点配置NodeGroup=65536的数据节点就像 等待StartNoNodeGroupTimeout时间(默认15秒)后使用--nowait-nodes=3,4启动node1,2。

当想要增加第二节点组时,只需进行以下操作:

1 启动数据节点3,4

shell> ndbd -c 192.168.0.10 --initial


2 在管理节点使用CREATE NODEGROUP

ndb_mgm> CREATE NODEGROUP 3,4


3 在MYSQLD,为NDBCLUSTER表使用ALTER ONLINE TABLE ... REORGANIZE PARTITIION 和 OPTIMIZE TABLE 语句。


© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 1
码字总数 862
作品 0
厦门
私信 提问
MySQL Cluster 7.0 GA 发布

MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的...

红薯
2009/04/29
554
0
MySQL集群安装、负载均衡及备份恢复

MYSQL集群安装学习笔记 【一】服务器准备(操作系统linux皆可,我用的是RHEL6.4): 一个管理节点 10.101.4.32 两个数据节点 10.101.4.33 10.101.4.34 两个查询节点 10.101.4.36 10.101.4.3...

howlshadow
2015/01/16
0
0
[转载] MySQL Cluster 配置指南

网上看到一篇介绍 MySQL Cluster 配置指南的文章,发现真的很有参考价值,马上转录下来以供日后参考(本文出自 “ 持久之战的战场” 博客,请务必保留此出处 http://vdata.blog.51cto.com/27...

长平狐
2012/11/19
906
0
MySQL Cluster(MySQL 集群) 初试

MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的...

红薯
2009/04/29
11.2K
12
MySQL Cluster 7.2 配置

MySQL Cluster 7.2.7 管理节点:192.168.1.10 数据节点:192.168.1.15、192.168.1.16 SQL 节点:192.168.1.20 添加 2 个数据节点:192.168.1.17、192.168.1.18 添加 1 个 SQL节点:192.168.1......

ohio
2013/02/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-7(静态代理和JDK代理)

静态代理 我们平时去餐厅吃饭,不是直接告诉厨师做什么菜的,而是先告诉服务员点什么菜,然后由服务员传到给厨师,相当于服务员是厨师的代理,我们通过代理让厨师炒菜,这就是代理模式。代理...

白话
今天
21
0
Flink Window

1.Flink窗口 Window Assigner分配器。 窗口可以是时间驱动的(Time Window,例如:每30秒钟),也可以是数据驱动的(Count Window,例如:每一百个元素)。 一种经典的窗口分类可以分成: 翻...

满小茂
今天
17
0
my.ini

1

architect刘源源
今天
14
0
docker dns

There is a opensource application that solves this issue, it's called DNS Proxy Server It's a DNS server that solves containers hostnames, if could not found a hostname that mat......

kut
今天
15
0
寻找数学的广度——《这才是数学》读书笔记2700字

寻找数学的广度——《这才是数学》读书笔记2700字: 文|程哲。数学学习方式之广:国内外数学教育方面的专家,进行了很多种不同的数学学习方式尝试,如数学绘本、数学游戏、数学实验、数学步道...

原创小博客
今天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部