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),這表示您必須先斷開連線,才能套用重新啟動的命令。例如,當停止處理連線的 Management Server 時,需要斷開連線。

傳回值

實際重新啟動的節點數量;如果失敗,則為 -1

ndb_mgm_restart4()

說明

與其他 ndb_mgm_restart*() 函式一樣,此函式會重新啟動一個或多個資料節點。與 ndb_mgm_restart2() 類似,它可用於對一個或多個 NDB Cluster 資料節點執行初始重新啟動、等待重新啟動和立即(強制)重新啟動;與 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),這表示您必須先斷開連線,才能套用重新啟動的命令。例如,當停止處理連線的 Management Server 時,需要斷開連線。

傳回值

實際重新啟動的節點數量;如果失敗,則為 -1