ndbmtd是
ndbd的多线程版本,该进程用于使用
NDBCLUSTER
存储引擎处理表中的所有数据。
ndbmtd旨在用于具有多个 CPU 内核的主机。除非另有说明,否则
ndbmtd的功能与ndbd相同
;因此,在本节中,我们专注于ndbmtd
与ndbd的不同之处,您应该查阅
第 18.5.1 节,“ndbd — NDB Cluster 数据节点守护程序”,有关运行适用于数据节点进程的单线程和多线程版本的 NDB Cluster 数据节点的其他信息。
与ndbd 一起使用的命令行选项和配置参数 也适用于ndbmtd。有关这些选项和参数的更多信息,请分别参阅 第 18.5.1 节,“ndbd - NDB Cluster 数据节点守护程序”和 第 18.4.3.6 节,“定义 NDB Cluster 数据节点”。
ndbmtd也与文件系统兼容
ndbd。换句话说,
可以停止
运行ndbd的数据节点,用ndbmtd替换二进制文件,然后重新启动而不会丢失任何数据。MaxNoOfExecutionThreads
(但是,在执行此操作时,如果您希望ndbmtd以多线程方式运行必须确保
只需停止节点即可将ndbmtd二进制文件替换为ndbd并且然后启动ndbd代替多线程二进制文件。在两者之间切换时没有必要使用启动数据节点二进制文件
--initial
。
因为ndbmtd默认以单线程模式运行(也就是说,它的行为类似于 ndbd),您必须将其配置为使用多线程。这可以通过在
config.ini
文件中为MaxNoOfExecutionThreads
配置参数或ThreadConfig
配置参数设置适当的值来完成。使用 起来MaxNoOfExecutionThreads
更简单,但ThreadConfig
提供了更大的灵活性。有关这些配置参数及其使用的更多信息,请参阅 多线程配置参数 (ndbmtd)。跟踪文件是由 ndbmtd进程中的严重错误生成的,其方式与ndbd故障生成这些文件的方式有些不同 。这些差异将在接下来的几段中进行更详细的讨论。
与ndbd一样,ndbmtd
生成一组日志文件,这些文件放置在配置文件中指定的目录DataDir
中config.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_t1
、
ndb_3_trace.log.1_t2
、
ndb_3_trace.log.1_t3
和
ndb_3_trace.log.1_t4
。在内部,这些跟踪文件遵循与ndbd跟踪文件相同的格式
。