3.2.6 节点启停函数

MGM API 提供了几个函数,可用于启动、停止和重新启动一个或多个集群数据节点。这些功能在本节中描述。

启动、停止和重新启动节点。  您可以使用以下功能启动、停止和重新启动集群节点,这些功能将在接下来的几节中进行更详细的描述。

ndb_mgm_start()

描述

该函数可用于启动一个或多个 Cluster 节点。要启动的节点必须已使用不启动选项 ( -n) 启动,这意味着数据节点二进制文件已启动并正在等待START实际启用该节点的管理命令。

签名
int ndb_mgm_start
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list
    )
参数

ndb_mgm_start()需要3个参数:

  • 一个NdbMgmHandle

  • number要启动的节点数 。用于0启动集群中的所有数据节点。

  • list要启动的节点的节点 ID 中的一个 。

返回值

实际启动的节点数;如果失败,-1则返回。

ndb_mgm_stop()

描述

该函数停止一个或多个数据节点。

签名
int ndb_mgm_stop
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list
    )
参数

ndb_mgm_stop()接受 3 个参数:调用此函数等同于调用 . ndb_mgm_stop2(handle, number, list, 0)

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

返回值

实际停止的节点数;如果失败,-1则返回。

ndb_mgm_stop2()

描述

与 一样ndb_mgm_stop(),此函数会停止一个或多个数据节点。但是,它提供了指定节点是否正常关闭的能力。

签名
int ndb_mgm_stop2
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list,
      int          abort
    )
参数

ndb_mgm_stop2()需要4个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

  • 的值abort 确定节点将如何关闭。 1表示节点将立即关闭;0表示节点将正常停止。

返回值

实际停止的节点数;如果失败,-1则返回。

ndb_mgm_stop3()

描述

ndb_mgm_stop()和 一样ndb_mgm_stop2(),此函数停止一个或多个数据节点。与 一样 ndb_mgm_stop2(),它提供了指定节点是否应该正常关闭的能力。此外,它提供了一种方法来检查在停止节点之前是否需要断开连接。

签名
int ndb_mgm_stop3
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list,
      int          abort,
      int*         disconnect
    )
参数

ndb_mgm_stop3()需要5个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

  • 的值abort 确定节点将如何关闭。 1表示节点将立即关闭;0表示节点将正常停止。

  • 如果disconnect返回 1( true),这意味着您必须先断开连接,然后才能应用命令停止。例如,停止连接句柄的管理服务器时需要断开连接。

返回值

实际停止的节点数;如果失败,-1则返回。

ndb_mgm_stop4()

描述

与其他 函数一样,此函数停止一个或多个数据节点。像 一样,它提供了指定节点是否应该正常关闭的能力;就像 它提供了一种方法来检查在停止节点之前是否需要断开连接。此外,可以强制节点关闭,即使这会导致集群变得不可行。 ndb_mgm_stop*()ndb_mgm_stop2()ndb_mgm_stop3()

签名
int ndb_mgm_stop4
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list,
      int          abort,
      int          force,
      int*         disconnect
    )
参数

ndb_mgm_stop4()需要6个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

  • 的值abort 确定节点将如何关闭。 1表示节点将立即关闭;0表示节点将正常停止。

  • 的值force 确定在关闭给定节点会导致集群不完整的情况下要采取的操作。1在这种情况下导致节点和整个集群关闭,0意味着节点不会关闭。

    设置force等于 1 还可以在其他节点启动时停止一个节点。(漏洞 #58451)

  • 如果disconnect返回 1( true),这意味着您必须先断开连接,然后才能应用命令停止。例如,停止连接句柄的管理服务器时需要断开连接。

返回值

实际停止的节点数;如果失败,-1则返回。

ndb_mgm_restart()

描述

该函数可用于重启一个或多个 Cluster 数据节点。

签名
int ndb_mgm_restart
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list
    )
参数

ndb_mgm_restart()需要3个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

调用这个函数等同于调用

ndb_mgm_restart2(handle, number, list, 0, 0, 0);

有关详细信息,请参阅ndb_mgm_restart2()

返回值

实际重启的节点数; -1失败时。

ndb_mgm_restart2()

描述

和 一样ndb_mgm_restart(),这个函数可以用来重启一个或多个 Cluster 数据节点。但是, ndb_mgm_restart2()提供了额外的重启选项,包括初始重启、等待启动和立即(强制)重启。

签名
int ndb_mgm_restart2
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list,
      int          initial
      int          nostart,
      int          abort
    )
参数

ndb_mgm_restart2()需要6个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

  • 如果initial为真 ( 1),则每个节点都会进行初始重启,即删除其文件系统。

  • 如果nostart为真,则节点实际上并未启动,而是为启动命令做好准备。

  • 如果abort为真,则节点将立即重新启动,绕过任何正常重新启动。

返回值

实际重启的节点数; -1失败时。

ndb_mgm_restart3()

描述

与 一样 ndb_mgm_restart2(),此函数可用于在一个或多个 Cluster 数据节点上引起初始重启、等待重启和立即(强制)重启。但是, ndb_mgm_restart3()提供了在重新启动之前检查是否需要断开连接的附加选项。

签名
int ndb_mgm_restart3
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list,
      int          initial
      int          nostart,
      int          abort,
      int*         disconnect
    )
参数

ndb_mgm_restart3()需要7个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

  • 如果initial为真 ( 1),则每个节点都会进行初始重启,即删除其文件系统。

  • 如果nostart为真,则节点实际上并未启动,而是为启动命令做好准备。

  • 如果abort为真,则强制节点立即重新启动,而不执行正常重新启动。

  • 如果disconnect返回 1( true),这意味着您必须先断开连接,然后才能应用命令重新启动。例如,停止连接句柄的管理服务器时需要断开连接。

返回值

实际重启的节点数; -1失败时。

ndb_mgm_restart4()

描述

与其他 函数一样,此函数重新启动一个或多个数据节点。像 一样 ,它可以用于在一个或多个 NDB Cluster 数据节点上引起初始重启、等待重启和立即(强制)重启;就像 它提供了一种方法来检查在停止节点之前是否需要断开连接。此外,即使这会导致集群重启,也可以强制节点重启。 ndb_mgm_restart*()ndb_mgm_restart2()ndb_mgm_stop3()

签名
int ndb_mgm_restart4
    (
      NdbMgmHandle handle,
      int          number,
      const int*   list,
      int          initial
      int          nostart,
      int          abort,
      int          force,
      int*         disconnect
    )
参数

ndb_mgm_restart4()需要7个参数:

  • 一个NdbMgmHandle

  • number要停止的节点数 。用于0停止集群中的所有数据节点。

  • list要停止的节点的节点 ID 中的一个 。

  • 如果initial为真 ( 1),则每个节点都会进行初始重启,即删除其文件系统。

  • 如果nostart为真,则节点实际上并未启动,而是为启动命令做好准备。

  • 如果abort为真,则强制节点立即重新启动,而不执行正常重新启动。

  • 的值force 决定了在由于重新启动导致给定节点丢失会导致集群不完整的情况下要采取的操作。

    1在这种情况下导致节点和整个集群重新启动, 0意味着节点不会重新启动。

    设置force等于 1 还可以在其他节点启动时重新启动一个节点。(漏洞 #58451)

  • 如果disconnect返回 1( true),这意味着您必须先断开连接,然后才能应用命令重新启动。例如,停止连接句柄的管理服务器时需要断开连接。

返回值

实际重启的节点数; -1失败时。