本节简要介绍了启动 NDB Cluster 数据节点时所涉及的步骤。更完整的信息可以在内部指南中的NDB Cluster Start Phases中找到。
NDB
这些阶段与管理客户端命令输出中报告的阶段相同
(请参阅
第 23.6.1 节,“NDB Cluster 管理客户端中的命令”)。这些开始阶段也在表的node_id
STATUSstart_phase
列中报告ndbinfo.nodes
。
启动类型。 有几种不同的启动类型和模式,如下表所示:
设置和初始化(阶段 -1)。 在启动之前, 必须初始化每个数据节点( ndbd进程)。初始化包括以下步骤:
获取节点ID
获取配置数据
分配用于节点间通信的端口
根据从配置文件中获取的设置分配内存
当一个数据节点或SQL节点第一次连接到管理节点时,它会保留一个集群节点ID。为确保没有其他节点分配相同的节点 ID,该 ID 会一直保留,直到该节点设法连接到集群并且至少有一个 ndbd报告该节点已连接。节点 ID 的保留由相关节点与ndb_mgmd之间的连接保护。
每个数据节点都初始化完成后,集群启动过程就可以进行了。此处列出了集群在此过程中经历的阶段:
Phase 1. 在这个阶段,所有剩余的
NDB
内核块都被启动。建立 NDB Cluster 连接,建立块间通信,并启动心跳。在节点重启的情况下,还会检查 API 节点连接。笔记当一个或多个节点在第 1 阶段挂起而其余节点或多个节点在第 2 阶段挂起时,这通常表示网络出现问题。此类问题的一个可能原因是一台或多台集群主机具有多个网络接口。导致这种情况的另一个常见问题来源是群集节点之间通信所需的 TCP/IP 端口被阻塞。在后一种情况下,这通常是由于防火墙配置错误造成的。
阶段 2. 内核
NDBCNTR
块检查所有现有节点的状态。选择主节点,并初始化集群模式文件。阶段 3. 和内核块在它们
DBLQH
之间DBTC
建立通信。启动类型确定;如果这是重新启动,则DBDIH
块获得执行重新启动的权限。第 4 阶段 。对于初始启动或初始节点重新启动,创建重做日志文件。这些文件的数量等于
NoOfFragmentLogFiles
.对于系统重启:
读取模式或模式。
从本地检查点读取数据。
应用所有重做信息,直到达到最新的可恢复全局检查点。
对于节点重启,找到重做日志的尾部。
阶段 5。 数据节点启动的大部分与数据库相关的部分都在此阶段执行。对于初始启动或系统重启,先执行本地检查点,然后执行全局检查点。在此阶段开始定期检查内存使用情况,并执行任何所需的节点接管。
阶段 6。 在此阶段,定义和设置节点组。
Phase 7. The arbitrator node is selected and begins to function. The next backup ID is set, as is the backup disk write speed. Nodes reaching this start phase are marked as
Started
. It is now possible for API nodes (including SQL nodes) to connect to the cluster.Phase 8. If this is a system restart, all indexes are rebuilt (by
DBDIH
).Phase 9. The node internal startup variables are reset.
Phase 100 (OBSOLETE). Formerly, it was at this point during a node restart or initial node restart that API nodes could connect to the node and begin to receive events. Currently, this phase is empty.
Phase 101. At this point in a node restart or initial node restart, event delivery is handed over to the node joining the cluster. The newly-joined node takes over responsibility for delivering its primary data to subscribers. This phase is also referred to as
SUMA
handover phase.
在初始启动或系统重启完成此过程后,将启用事务处理。对于节点重启或初始节点重启,启动过程的完成意味着该节点现在可以充当事务协调器。