文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (美国信纸) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
信息 (Gzip) - 4.0Mb
信息 (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  NDB Cluster 启动阶段概述

25.6.4 NDB Cluster 启动阶段概述

本节简要概述 NDB Cluster 数据节点启动时涉及的步骤。更完整的信息可以在 NDB Cluster 启动阶段 中找到,该信息位于 NDB 内部指南 中。

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

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

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

    注意

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

  • 系统重启。  集群启动并读取存储在数据节点中的数据。当集群在使用后关闭时,或需要集群从上次离开的地方恢复操作时,就会发生这种情况。

  • 节点重启。  这是在集群本身正在运行时,对集群节点进行在线重启。

  • 初始节点重启。  这与节点重启相同,只是节点被重新初始化并使用干净的文件系统启动。

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

  1. 获取节点 ID

  2. 获取配置数据

  3. 为节点间通信分配端口

  4. 根据从配置文件获得的设置分配内存

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

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

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

  • 阶段 1。  在此阶段,所有剩余的 NDB 内核块将启动。NDB Cluster 连接将建立,块间通信将建立,并且心跳将启动。对于节点重启,API 节点连接也将被检查。

    注意

    当一个或多个节点在阶段 1 挂起,而其余节点在阶段 2 挂起时,这通常表明存在网络问题。此类问题的一个可能原因是,一个或多个集群主机具有多个网络接口。导致这种情况的另一个常见问题来源是,集群节点之间通信所需的 TCP/IP 端口被阻塞。在后一种情况下,这通常是由于防火墙配置错误造成的。

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

  • 阶段 3。  DBLQHDBTC 内核块在它们之间建立通信。启动类型将被确定;如果这是重启,DBDIH 块将获得执行重启的权限。

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

    对于系统重启:

    • 读取模式或模式。

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

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

    对于节点重启,找到重做日志的尾部。

  • 阶段 5。  数据节点启动中与数据库相关的部分大部分将在此阶段执行。对于初始启动或系统重启,将执行本地检查点,然后执行全局检查点。在此阶段将开始定期检查内存使用情况,并将执行任何必要的节点接管操作。

  • 阶段 6。  在此阶段,节点组将被定义和设置。

  • 阶段 7。  仲裁节点将被选择并开始运行。下一个备份 ID 将被设置,备份磁盘写入速度也将被设置。达到此启动阶段的节点将被标记为 已启动。现在 API 节点(包括 SQL 节点)可以连接到集群了。

  • 阶段 8。  如果这是系统重启,所有索引将被重建(由 DBDIH)。

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

  • 阶段 100(已弃用)。  以前,在节点重启或初始节点重启期间,API 节点可以连接到节点并开始接收事件。目前,此阶段为空。

  • 阶段 101。  在节点重启或初始节点重启的此时,事件传递将被移交给加入集群的节点。新加入的节点将承担其主要数据传递给订阅者的责任。此阶段也称为 SUMA 交接阶段

在完成初始启动或系统重启后的此过程后,事务处理将被启用。对于节点重启或初始节点重启,启动过程的完成意味着该节点现在可以充当事务协调器了。