该表包含集群中数据节点的状态信息。对于集群中每个正在运行的数据节点,该表中的一行提供了节点的节点 ID、状态和 uptime。如果节点正在启动,还显示当前启动阶段。
该 nodes
表包含以下列:
-
node_id
集群中数据节点的唯一节点 ID。
-
uptime
自节点最后启动以来经过的时间,以秒为单位。
-
status
数据节点的当前状态;见文本以获取可能的值。
-
start_phase
如果数据节点正在启动,当前启动阶段。
-
config_generation
该数据节点上使用的集群配置文件的版本。
注意
该 uptime
列显示自节点最后启动以来经过的时间,以秒为单位。这是一个 BIGINT
值。这包括启动节点所需的时间;换言之,这个计数器从 ndbd 或 ndbmtd 首次调用时开始计数;因此,即使节点尚未完成启动,uptime
也可能显示非零值。
该 status
列显示节点的当前状态。这是以下之一:NOTHING
、CMVMI
、STARTING
、STARTED
、SINGLEUSER
、STOPPING_1
、STOPPING_2
、STOPPING_3
或 STOPPING_4
。当状态为 STARTING
时,可以在 start_phase
列中看到当前启动阶段(见本节后面)。 SINGLEUSER
在集群单用户模式下(见 第 25.6.6 节,“NDB 集群单用户模式”)在所有数据节点的 status
列中显示。看到 STOPPING
状态并不一定意味着节点正在关闭,而是可能正在进入新状态。例如,如果您将集群置于单用户模式下,可能会看到数据节点报告其状态暂时为 STOPPING_2
,然后状态更改为 SINGLEUSER
。
该 start_phase
列使用与 ndb_mgm 客户端
命令(见 第 25.6.1 节,“NDB 集群管理客户端命令”)相同的值范围。如果节点当前不在启动中,则该列显示 node_id
STATUS0
。有关 NDB 集群启动阶段的列表和描述,请参阅 第 25.6.4 节,“NDB 集群启动阶段摘要”。
该 config_generation
列显示每个数据节点上当前生效的集群配置版本。这在执行集群的滚动重启以更改配置参数时非常有用。例如,从以下 SELECT
语句的输出中,可以看到节点 3 尚未使用最新的集群配置版本 (6
),尽管节点 1、2 和 4 都在使用:
mysql> USE ndbinfo;
Database changed
mysql> SELECT * FROM nodes;
+---------+--------+---------+-------------+-------------------+
| node_id | uptime | status | start_phase | config_generation |
+---------+--------+---------+-------------+-------------------+
| 1 | 10462 | STARTED | 0 | 6 |
| 2 | 10460 | STARTED | 0 | 6 |
| 3 | 10457 | STARTED | 0 | 5 |
| 4 | 10455 | STARTED | 0 | 6 |
+---------+--------+---------+-------------+-------------------+
2 rows in set (0.04 sec)
因此,在这种情况下,您应该重新启动节点 3,以完成集群的滚动重启。
已停止的节点不包括在该表中。假设您有一个 NDB 集群,具有 4 个数据节点(节点 ID 1、2、3 和 4),所有节点都在正常运行,那么该表将包含 4 行,每行对应一个数据节点:
mysql> USE ndbinfo;
Database changed
mysql> SELECT * FROM nodes;
+---------+--------+---------+-------------+-------------------+
| node_id | uptime | status | start_phase | config_generation |
+---------+--------+---------+-------------+-------------------+
| 1 | 11776 | STARTED | 0 | 6 |
| 2 | 11774 | STARTED | 0 | 6 |
| 3 | 11771 | STARTED | 0 | 6 |
| 4 | 11769 | STARTED | 0 | 6 |
+---------+--------+---------+-------------+-------------------+
4 rows in set (0.04 sec)
如果您关闭一个节点,只有仍在运行的节点将在此 SELECT
语句的输出中表示,如下所示:
ndb_mgm> 2 STOP
Node 2: Node shutdown initiated
Node 2: Node shutdown completed.
Node 2 has shutdown.
mysql> SELECT * FROM nodes;
+---------+--------+---------+-------------+-------------------+
| node_id | uptime | status | start_phase | config_generation |
+---------+--------+---------+-------------+-------------------+
| 1 | 11807 | STARTED | 0 | 6 |
| 3 | 11802 | STARTED | 0 | 6 |
| 4 | 11800 | STARTED | 0 | 6 |
+---------+--------+---------+-------------+-------------------+
3 rows in set (0.02 sec)