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  /  ...  /  Summary of NDB Cluster Start Phases

25.6.4 NDB 集群启动阶段概述

本节提供了 NDB 集群数据节点启动时涉及的步骤的简化概述。更多完整的信息可以在 NDB 集群启动阶段 中的 NDB Internals 指南 中找到。

这些阶段与管理客户端中的 node_id STATUS 命令的输出相同(见 第 25.6.1 节,“NDB 集群管理客户端中的命令”)。这些启动阶段也在 start_phase 列的 ndbinfo.nodes 表中报告。

启动类型。 有多种不同的启动类型和模式,如下列表所示:

  • 初始启动。 集群以所有数据节点的干净文件系统启动。这发生在集群首次启动时,或者所有数据节点使用 --initial 选项重新启动时。

    Note

    使用 --initial 选项重新启动节点时,不会删除磁盘数据文件。

  • 系统重新启动。 集群启动并读取数据节点中的数据。这发生在集群关闭后重新启动,以便从离开的点继续操作。

  • 节点重新启动。 这是集群节点的在线重新启动,而集群本身正在运行。

  • 初始节点重新启动。 这与节点重新启动相同,除了节点被重新初始化并以干净的文件系统启动。

设置和初始化(阶段 -1)。 在启动之前,每个数据节点 (ndbd 进程) 必须被初始化。初始化包括以下步骤:

  1. 获取节点 ID

  2. 获取配置数据

  3. 分配用于节点间通信的端口

  4. 根据配置文件中的设置分配内存

当数据节点或 SQL 节点首次连接到管理节点时,它保留了集群节点 ID,以确保没有其他节点分配相同的节点 ID。这个节点 ID 保留直到节点连接到集群并且至少有一个 ndbd 报告该节点已连接。这个节点 ID 的保留由该节点与 ndb_mgmd 之间的连接所保护。

每个数据节点初始化后,集群启动过程可以继续。集群启动过程中的阶段如下所示:

  • 阶段 0。 NDBFSNDBCNTR 块启动。在使用 --initial 选项启动的数据节点上,数据节点文件系统被清除。

  • 阶段 1。 在这个阶段,所有剩余的 NDB 内核块启动。NDB 集群连接被设置,inter-block 通信被建立,心跳被启动。在节点重新启动的情况下,API 节点连接也被检查。

    Note

    如果一个或多个节点在阶段 1 中挂起,而其他节点在阶段 2 中挂起,这通常表明网络问题。这种情况的一个可能原因是集群主机具有多个网络接口。另一个常见的问题来源是集群节点之间通信所需的 TCP/IP 端口被阻止。在后一种情况下,这通常是由于防火墙配置不正确。

  • 阶段 2。 NDBCNTR 内核块检查所有现有节点的状态。主节点被选择,集群模式文件被初始化。

  • 第 3 阶段.  DBLQHDBTC 内核块设置它们之间的通信。确定启动类型;如果这是一个重新启动,则 DBDIH 块获取执行重新启动的权限。

  • 第 4 阶段.  对于初始启动或初始节点重新启动,redo 日志文件被创建。这些文件的数量等于 NoOfFragmentLogFiles

    对于系统重新启动:

    • 读取模式或模式。

    • 从本地检查点读取数据。

    • 应用所有 redo 信息,直到最新的可恢复的全局检查点被达到。

    对于节点重新启动,找到 redo 日志的尾部。

  • 第 5 阶段.  在这个阶段,大多数数据库相关的数据节点启动部分被执行。对于初始启动或系统重新启动,本地检查点被执行,接着是全局检查点。在这个阶段,内存使用情况的周期性检查开始,并执行所需的节点接管。

  • 第 6 阶段.  在这个阶段,节点组被定义和设置。

  • 第 7 阶段.  仲裁节点被选定并开始功能。下一个备份 ID 被设置,备份磁盘写入速度也被设置。达到这个启动阶段的节点被标记为 Started。现在,API 节点(包括 SQL 节点)可以连接到集群。

  • 第 8 阶段.  如果这是一个系统重新启动,则所有索引被重建(由 DBDIH)。

  • 第 9 阶段.  节点内部启动变量被重置。

  • 第 100 阶段( OBSOLETE)。  以前,在节点重新启动或初始节点重新启动时,API 节点可以连接到节点并开始接收事件。目前,这个阶段为空。

  • 第 101 阶段.  在节点重新启动或初始节点重新启动时,事件交付被移交给加入集群的节点。新加入的节点接管了将其主要数据交付给订阅者的责任。这阶段也被称为 SUMA 交付阶段

在初始启动或系统重新启动后完成这个过程,事务处理被启用。对于节点重新启动或初始节点重新启动,启动过程的完成意味着节点现在可以作为事务协调器。