MySQL NDB Cluster API 开发者指南  /  ...  /  集群状态函数

3.2.5 集群状态函数

本节提供有关用于从 NDB 集群节点获取状态信息的 MGM API 函数的信息。

ndb_mgm_get_status()

描述

该函数用于获取 NDB 集群中节点的状态。

注意

调用者必须释放该函数返回的指针。

签名
struct ndb_mgm_cluster_state* ndb_mgm_get_status
    (
      NdbMgmHandle handle
    )
参数

该函数接受一个参数,一个管理服务器 句柄

返回值

指向 ndb_mgm_cluster_state 数据结构的指针。

ndb_mgm_get_status2()

描述

该函数与 ndb_mgm_get_status() 相似,因为它用于获取 NDB 集群中节点的状态。但是,ndb_mgm_get_status2() 允许指定要检查的节点类型。这些类型是 ndb_mgm_node_type 值。该数组应以类型为 NDB_MGM_NODE_TYPE_UNKNOWN 的元素结尾。

注意

调用者必须释放该函数返回的指针。

签名
struct ndb_mgm_cluster_state* ndb_mgm_get_status2
    (
      NdbMgmHandle handle,
      const enum ndb_mgm_node_type types[]
    )
参数

该函数接受两个参数

  • 一个管理服务器 句柄

  • 指向要检查的节点类型的数组的指针。这些是 ndb_mgm_node_type 值。该数组应以类型为 NDB_MGM_NODE_TYPE_UNKNOWN 的元素结尾。

返回值

指向 ndb_mgm_cluster_state 数据结构的指针。

ndb_mgm_get_status3()

描述

该函数与 ndb_mgm_get_status2() 相似,用于通过指定要检查的节点类型 (ndb_mgm_node_type) 来获取 NDB 集群中节点的状态。与该函数(以及 ndb_mgm_get_status())不同,ndb_mgm_get_status3() 在集群使用 IPv6 地址时有效。

注意

调用者必须释放该函数返回的指针。

签名
struct ndb_mgm_cluster_state2 *ndb_mgm_get_status3
    (
      NdbMgmHandle handle,
      const enum ndb_mgm_node_type types[]
    );
参数

该函数接受两个参数

  • 一个管理服务器 句柄

  • 指向要检查的节点类型的数组的指针。这些是 ndb_mgm_node_type 值。该数组应以类型为 NDB_MGM_NODE_TYPE_UNKNOWN 的元素结尾。

返回值

指向 ndb_mgm_cluster_state2 数据结构的指针。

ndb_mgm_dump_state()

描述

该函数可用于将调试信息转储到集群日志。NDB 集群管理客户端 DUMP 命令是该函数的包装器。

ndb_mgm_dump_state()DUMP 命令一样,如果使用不当,可能会导致正在运行的 NDB 集群出现故障,甚至完全崩溃。在使用该函数之前,请务必查看相关文档。有关 DUMP 命令的更多信息,以及当前 DUMP 代码及其影响的列表,请参见 NDB 集群管理客户端 DUMP 命令

签名
int ndb_mgm_dump_state
    (
      NdbMgmHandle handle,
      int nodeId,
      const int* arguments,
      int numberOfArguments,
      struct ndb_mgm_reply* reply
    )
参数

该函数接受以下参数

  • 一个管理服务器句柄 (NdbMgmHandle)

  • 集群数据节点的 nodeId

  • 一个 arguments 数组。第一个参数是将要执行的 DUMP 代码。如果相应的 DUMP 命令需要,则可以在该数组中传递后续参数。

  • 要传递的 numberOfArguments

  • 一个 ndb_mgm_reply,其中包含返回值以及响应或错误消息。

返回值

0 表示成功;否则,表示错误代码。

示例。  以下示例与在管理客户端中运行 2 DUMP 1000 的结果相同

//  [...]
#include <mgmapi_debug.h>
//  [...]
struct ndb_mgm_reply reply;
int args[1];
int stat, arg_count, node_id;

args[0] = 1000;
arg_count = 1;
node_id = 2;

stat = ndb_mgm_dump_state(h, node_id, args, arg_count, &reply);