MySQL Cluster篇06 —数据节点的命令与选项

概述

本章,您将学习到数据节点中使用的 ndbdndbmtd 命令。

ndbd 命令

该命令是用来处理 NDB Cluster 存储引擎中所有表数据的进程。该进程可以完成分布式事务处理、节点恢复、磁盘检查点、在线备份以及其他相关任务。

由于有多个数据节点,因此在 NDB Cluster 中,处理表数据用的是一组 ndbd 进程。

命令格式说明如下:

  • "[ ]" 表示可选
  • "{ }" 表示必须在给出的值中选择一个
  • "< >" 表示必选
  • "#" 表示需要用整数作为替换

一些常见的选项如下:

  • --bind-address=name - 将 ndbd 绑定到特定的网络接口(主机名或 IP 地址)

  • --connect-retries=# - 在放弃与管理节点连接之前,重试的连接次数。0 值表示仅尝试一次且不重试;-1 值表示无限次尝试连接。默认值为 12

  • --ndb-connectstring=string - 指向管理节点的连接字符串,若有多个管理节点,则需要使用逗号分隔连接字符串

  • --daemon - 默认启用该选项(即使未在命令行中指定),表示以守护进程(后台进程)执行 ndbd

  • --nodaemon - 不已守护进程(后台进程)执行 ndbd,常用于测试目的

  • --help - 显示帮助信息

  • --initial - 让 ndbd 执行初始化启动。初始化启动将会擦除所有的文件(包括用于 ndbd 恢复目的的文件),这一过程可能会消耗大量的时间。初始化启动后,会重新创建用于恢复的日志文件。当使用了新版本的 ndbd 并且重新启动节点时,该选项才会被需要,但为了避免数据丢失,您需要知道使用该选项带来的后果与风险。

  • --initial-start - 对部分数据节点执行初始化启动,需要与 --nowait-nodes 选项搭配使用。

  • --nowait-nodes=node_id_1[,node_id_2[,...]] - 在启动之前不需要等待的数据节点的节点 ID

  • --logbuffer-size=# - 设置数据节点的日志缓冲区大小(以字节 B 为单位)。在做调试时,会生成大量的额外日志记录,如果日志消息过多,有可能日志缓冲区会被耗尽空间,导致某些日志消息出现丢失的情况。默认值为 32768

  • --nostart - 指定 ndbd 不自动启动。当使用该选项后,您需要通过管理节点明确发出执行启动的命令

    Shell > ndb_mgm
    
    -- NDB Cluster -- Management Client --
    
    ndb_mgm> node_id start  
  • --print-defaults - 打印程序参数列表并退出

其他未涉及的部分,参阅 这里

ndbmtd 命令(ndbd 的多线程版本)

默认情况下,该命令默认运行于单线程模式。若要让该命令运行于多线程模式,需要在管理节点的 config.ini 中指定 MaxNoOfExecutionThreadsThreadConfig 配置参数。其中 MaxNoOfExecutionThreads 的配置更加简单,但 ThreadConfig 会更加精细与灵活。

ndbd 命令中的选项也适用于 ndbmtd ,参阅 这里

注意!
可以在同一个 NDB Cluster 中的不同数据节点上同时使用 ndbd 和 ndbmtd。但是此类混用操作尚未经过广泛测试。所以,不建议您在生产环境下混用这两个命令。

前面简单配置了管理节点的 config.ini 文件,其内容为:

[ndbd default]
NoOfReplicas=2
DataMemory=98M

[ndb_mgmd]
HostName=192.168.100.10
DataDir=/var/log/mysql-cluster

[ndbd]
HostName=192.168.100.12
NodeId=2
DataDir=/usr/local/mysql/data

[ndbd]
HostName=192.168.100.14
NodeId=3
DataDir=/usr/local/mysql/data

[mysqld]
HostName=192.168.100.16

若需要为每个数据节点启用多线程,则修改的位置为:

[ndbd default]
NoOfReplicas=2
DataMemory=98M
MaxNoOfExecutionThreads=3

[ndb_mgmd]
HostName=192.168.100.10
DataDir=/var/log/mysql-cluster

[ndbd]
HostName=192.168.100.12
NodeId=2
DataDir=/usr/local/mysql/data

[ndbd]
HostName=192.168.100.14
NodeId=3
DataDir=/usr/local/mysql/data

[mysqld]
HostName=192.168.100.16

通常而言,MaxNoOfExecutionThreads 的值应设置为 CPU 物理核心数的 70% ~ 90% 之间。

CPU 核心数 建议值
4 3
6 4
8 6
16 12~14
32 24~28

两个命令的对比

特性 ndbd ndbmtd
线程模型 单线程 多线程
并发能力 低,受限于单核性能 高,可充分利用多核 CPU,支持并行处理
吞吐量 适合轻量级测试或低并发场景 适合高并发、高吞吐的生产环境
资源占用 内存与 CPU 占用较低 内存开销更大,但 CPU 利用率更高
启动命令 ndbd ndbmtd
适用场景 开发、测试、单节点演示 生产环境
Avatar photo

关于 陸風睿

GNU/Linux 从业者、开源爱好者、技术钻研者,撰写文档既是兴趣也是工作内容之一。Q - "281957576";WeChat - "jiulongxiaotianci",Github - https://github.com/jimcat8
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇