Documentation Home
MySQL 8.0 参考手册  / 第 23 章 MySQL NDB Cluster 8.0  / 23.5 NDB 集群程序  /  23.5.3 ndbmtd — NDB Cluster 数据节点守护进程(多线程)

23.5.3 ndbmtd — NDB Cluster 数据节点守护进程(多线程)

ndbmtdndbd的多线程版本,该进程用于使用 NDBCLUSTER存储引擎处理表中的所有数据。 ndbmtd旨在用于具有多个 CPU 内核的主机。除非另有说明,否则 ndbmtd的功能与ndbd相同 ;因此,在本节中,我们专注于ndbmtdndbd的不同之处,您应该查阅 第 23.5.1 节,“ndbd — NDB Cluster 数据节点守护程序”,有关运行适用于数据节点进程的单线程和多线程版本的 NDB Cluster 数据节点的其他信息。

与ndbd 一起使用的命令行选项和配置参数 也适用于ndbmtd。有关这些选项和参数的更多信息,请分别参阅 第 23.5.1 节,“ndbd - NDB Cluster 数据节点守护程序”第 23.4.3.6 节,“定义 NDB Cluster 数据节点”

ndbmtd也与文件系统兼容 ndbd。换句话说, 可以停止 运行ndbd的数据节点,用ndbmtd替换二进制文件,然后重新启动而不会丢失任何数据。(但是,在执行此操作时,如果您希望ndbmtd以多线程方式运行必须确保 MaxNoOfExecutionThreads 在重新启动节点之前将其设置为适当的值只需停止节点即可将ndbmtd二进制文件替换为ndbd并且然后启动ndbd代替多线程二进制文件。在两者之间切换时没有必要使用启动数据节点二进制文件 --initial

在两个关键方面 使用ndbmtd与使用 ndbd不同:

  1. 因为ndbmtd默认以单线程模式运行(也就是说,它的行为类似于 ndbd),您必须将其配置为使用多线程。这可以通过在config.ini文件中为 MaxNoOfExecutionThreads 配置参数或 ThreadConfig 配置参数设置适当的值来完成。使用 起来MaxNoOfExecutionThreads更简单,但 ThreadConfig提供了更大的灵活性。有关这些配置参数及其使用的更多信息,请参阅 多线程配置参数 (ndbmtd)

  2. 跟踪文件是由 ndbmtd进程中的严重错误生成的,其方式与ndbd故障生成这些文件的方式有些不同 。这些差异将在接下来的几段中进行更详细的讨论。

ndbd一样,ndbmtd 生成一组日志文件,这些文件放置在配置文件中指定的目录DataDirconfig.ini。除了跟踪文件,这些文件的生成方式和名称与ndbd生成的文件相同。

如果出现严重错误,ndbmtd 会 生成跟踪文件,描述错误发生之前发生的情况。这些文件可以在数据节点中找到, DataDir对于 NDB Cluster 开发和支持团队分析问题很有用。为每个 ndbmtd线程生成一个跟踪文件。这些文件的名称具有以下模式:

ndb_node_id_trace.log.trace_id_tthread_id,

在这个模式中,node_id代表数据节点在集群中的唯一节点ID, trace_id是跟踪序列号,thread_id是线程ID。例如,如果 作为节点 ID 为 3 且 等于 4的 NDB Cluster 数据节点运行 的ndbmtd进程出现故障,则会在数据节点的数据目录中生成四个跟踪文件。MaxNoOfExecutionThreads如果这是此节点第一次出现故障,则这些文件将命名为 ndb_3_trace.log.1_t1ndb_3_trace.log.1_t2ndb_3_trace.log.1_t3ndb_3_trace.log.1_t4在内部,这些跟踪文件遵循与ndbd跟踪文件相同的格式 。

ndbmtd也使用数据节点进程过早关闭时生成 的ndbd退出代码和消息。有关这些的列表, 请参阅 数据节点错误消息。

笔记

可以在同一 NDB Cluster 中的不同数据节点上同时 使用ndbdndbmtd 。但是,此类配置尚未经过广泛测试;因此,我们目前不建议在生产环境中这样做。