Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  ndbmtd — The NDB Cluster Data Node Daemon (Multi-Threaded)

25.5.3 ndbmtd — NDB 集群数据节点守护进程(多线程)

ndbmtdndbd 的多线程版本,该进程用于处理使用 NDBCLUSTER 存储引擎的所有数据表中的数据。 ndbmtd旨在用于具有多个 CPU 核心的主机计算机上。 除了在其他地方另有说明外, ndbmtd 的功能与 ndbd 相同;因此,在本节中,我们将集中讨论 ndbmtdndbd 之间的差异,并且您应该查看 第 25.5.1 节,“ndbd — NDB 集群数据节点守护进程”,以获取关于运行 NDB 集群数据节点的更多信息,该信息适用于单线程和多线程版本的数据节点进程。

ndbd 一起使用的命令行选项和配置参数也适用于 ndbmtd。有关这些选项和参数的更多信息,请查看 第 25.5.1 节,“ndbd — NDB 集群数据节点守护进程”第 25.4.3.6 节,“定义 NDB 集群数据节点”

ndbmtd 也与 ndbd 兼容文件系统。换言之,运行 ndbd 的数据节点可以停止,二进制文件替换为 ndbmtd,然后重新启动,而不丢失任何数据。(但是,当这样做时,您必须在重新启动节点之前将 MaxNoOfExecutionThreads 设置为适当的值,以便 ndbmtd 以多线程方式运行。)同样,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 集群开发和支持团队进行问题分析非常有用。每个 ndbmtd 线程生成一个跟踪文件。这些文件的名称遵循以下模式:

ndb_node_id_trace.log.trace_id_tthread_id,

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

ndbd 退出代码和消息在数据节点进程意外关闭时生成,也被 ndbmtd 使用。请参阅 数据节点错误消息,以获取这些消息的列表。

Note

可以在同一个 NDB 集群中的不同数据节点上同时使用 ndbdndbmtd。然而,这种配置尚未经过广泛测试,因此我们目前不建议在生产环境中使用。