MySQL NDB 集群 API 开发者指南  /  ...  /  用于启动和停止节点的函数

3.2.6 用于启动和停止节点的函数

MGM API 提供了几个函数,可用于启动、停止和重启一个或多个集群数据节点。本节将对这些函数进行介绍。

**启动、停止和重启节点。** 您可以使用以下函数来启动、停止和重启集群节点,这些函数将在接下来的几节中详细介绍。

ndb_mgm_start()

描述

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

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

ndb_mgm_start() 接受 3 个参数

  • 一个 NdbMgmHandle

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

  • 要启动的节点的节点 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

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

  • 要停止的节点的节点 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

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

  • 要停止的节点的节点 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

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

  • 要停止的节点的节点 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

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

  • 要停止的节点的节点 ID 的 列表

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

  • force 的值决定了如果关闭给定节点会导致集群不完整时要采取的操作。1 表示在这种情况下关闭节点(以及整个集群),0 表示不会关闭节点。

    force 设置为 1 还可以实现在其他节点正在启动时停止节点。(错误 #58451)

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

返回值

实际停止的节点数;如果发生故障,则返回 -1

ndb_mgm_restart()

描述

此函数可用于重启一个或多个集群数据节点。

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

ndb_mgm_restart() 接受 3 个参数

  • 一个 NdbMgmHandle

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

  • 要停止的节点的节点 ID 的 列表

调用此函数等同于调用

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

有关更多信息,请参阅 ndb_mgm_restart2()

返回值

实际重启的节点数;如果发生故障,则返回 -1

ndb_mgm_restart2()

描述

ndb_mgm_restart() 类似,此函数可用于重启一个或多个集群数据节点。但是,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

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

  • 要停止的节点的节点 ID 的 列表

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

  • 如果 nostart 为 true,则节点实际上不会启动,而是保持准备接收启动命令的状态。

  • 如果 abort 为 true,则节点会立即重启,绕过任何正常重启。

返回值

实际重启的节点数;如果发生故障,则返回 -1

ndb_mgm_restart3()

描述

ndb_mgm_restart2() 类似,此函数可用于在一个或多个集群数据节点上执行初始重启、等待重启和立即(强制)重启。但是,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

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

  • 要停止的节点的节点 ID 的 列表

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

  • 如果 nostart 为 true,则节点实际上不会启动,而是保持准备接收启动命令的状态。

  • 如果 abort 为 true,则节点会被迫立即重启,而不会执行正常重启。

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

返回值

实际重启的节点数;如果发生故障,则返回 -1

ndb_mgm_restart4()

描述

与其他 ndb_mgm_restart*() 函数类似,此函数重启一个或多个数据节点。与 ndb_mgm_restart2() 类似,它可用于在一个或多个 NDB 集群数据节点上执行初始重启、等待重启和立即(强制)重启;与 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

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

  • 要停止的节点的节点 ID 的 列表

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

  • 如果 nostart 为 true,则节点实际上不会启动,而是保持准备接收启动命令的状态。

  • 如果 abort 为 true,则节点会被迫立即重启,而不会执行正常重启。

  • force 的值决定了如果由于重启导致丢失给定节点而导致集群不完整时要采取的操作。

    1 表示在这种情况下重启节点(以及整个集群),0 表示不会重启节点。

    force 设置为 1 还可以实现在其他节点正在启动时重启节点。(错误 #58451)

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

返回值

实际重启的节点数;如果发生故障,则返回 -1