文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  ndb_mgmd — NDB 叢集管理伺服器精靈

25.5.4 ndb_mgmd — NDB 叢集管理伺服器精靈

管理伺服器是讀取叢集組態檔案並將此資訊分發給叢集中所有請求此資訊節點的程序。它還維護叢集活動的日誌。管理用戶端可以連接到管理伺服器並檢查叢集的狀態。

下表顯示了與 ndb_mgmd 一起使用的所有選項。其他說明如下表所示。

  • --bind-address=主機

    命令列格式 --bind-address=主機
    類型 字串
    預設值 [無]

    導致管理伺服器綁定到特定的網路介面(主機名稱或 IP 位址)。此選項沒有預設值。

  • --character-sets-dir

    命令列格式 --character-sets-dir=路徑

    包含字元集的目錄。

  • cluster-config-suffix

    命令列格式 --cluster-config-suffix=名稱
    類型 字串
    預設值 [無]

    在讀取 my.cnf 中的叢集組態區段時覆寫預設群組後綴;用於測試。

  • --config-cache

    命令列格式 --config-cache[=TRUE|FALSE]
    類型 布林值
    預設值 TRUE

    此選項的預設值為 1(或 TRUE,或 ON),可用於停用管理伺服器的組態快取,以便每次啟動時都從 config.ini 讀取其組態(請參閱 第 25.4.3 節「NDB 叢集組態檔案」)。您可以透過使用以下任何一個選項啟動 ndb_mgmd 程序來執行此操作

    僅當管理伺服器在啟動時沒有儲存的組態時,才有效使用剛剛列出的選項之一。如果管理伺服器找到任何組態快取檔案,則會忽略 --config-cache 選項或 --skip-config-cache 選項。因此,若要停用組態快取,應在 第一次 啟動管理伺服器時使用該選項。否則,也就是說,如果您希望對 已經 建立組態快取的管理伺服器停用組態快取,您必須停止管理伺服器,手動刪除任何現有的組態快取檔案,然後使用 --skip-config-cache(或使用設定等於 0、OFFFALSE--config-cache)重新啟動管理伺服器。

    組態快取檔案通常在安裝目錄下的 mysql-cluster 目錄中建立(除非使用 --configdir 選項覆寫了此位置)。每次管理伺服器更新其組態資料時,它都會寫入一個新的快取檔案。這些檔案以建立順序依序命名,格式如下

    ndb_node-id_config.bin.seq-number

    node-id 是管理伺服器的節點 ID;seq-number 是一個從 1 開始的序號。例如,如果管理伺服器的節點 ID 為 5,則前三個組態快取檔案在建立時會分別命名為 ndb_5_config.bin.1ndb_5_config.bin.2ndb_5_config.bin.3

    如果您的目的是清除或重新載入組態快取,而不實際停用快取,您應該使用 --reload--initial 選項之一啟動 ndb_mgmd,而不是 --skip-config-cache

    若要重新啟用組態快取,只需重新啟動管理伺服器,但不要使用先前用於停用組態快取的 --config-cache--skip-config-cache 選項。

    ndb_mgmd 不檢查組態目錄(--configdir),也不會在使用 --skip-config-cache 時嘗試建立一個。(錯誤 #13428853)

  • --config-file=檔案名稱-f 檔案名稱

    命令列格式 --config-file=檔案
    由以下項停用 skip-config-file
    類型 檔案名稱
    預設值 [無]

    指示管理伺服器應使用哪個檔案作為其組態檔案。依預設,管理伺服器會在與 ndb_mgmd 可執行檔相同的目錄中尋找名為 config.ini 的檔案;否則必須明確指定檔案名稱和位置。

    此選項沒有預設值,除非管理伺服器被迫讀取組態檔案,否則會忽略此選項,原因可能是 ndb_mgmd 使用 --reload--initial 選項啟動,或是因為管理伺服器找不到任何組態快取。如果指定了 --config-file 而沒有 --initial--reloadndb_mgmd 將拒絕啟動。

    如果 ndb_mgmd 是以 --config-cache=OFF 啟動的,也會讀取 --config-file 選項。如需更多資訊,請參閱 第 25.4.3 節「NDB 叢集組態檔案」

  • --configdir=目錄名稱

    命令列格式

    --configdir=目錄

    --config-dir=目錄

    類型 檔案名稱
    預設值 $INSTALLDIR/mysql-cluster

    指定叢集管理伺服器的組態快取目錄。這必須是絕對路徑。否則,管理伺服器將拒絕啟動。

    --config-dir 是此選項的別名。

  • --connect-retries

    命令列格式 --connect-retries=#
    類型 整數
    預設值 12
    最小值 0
    最大值 12

    放棄之前重試連線的次數。

  • --connect-retry-delay

    命令列格式 --connect-retry-delay=#
    類型 整數
    預設值 5
    最小值 0
    最大值 5

    嘗試聯絡管理伺服器之間等待的秒數。

  • --connect-string

    命令列格式 --connect-string=連線字串
    類型 字串
    預設值 [無]

    與 --ndb-connectstring 相同。

  • --core-file

    命令列格式 --core-file

    發生錯誤時寫入核心檔案;用於偵錯。

  • --daemon-d

    命令列格式 --daemon

    指示 ndb_mgmd 作為精靈程序啟動。這是預設行為。

    在 Windows 平台上執行 ndb_mgmd 時,此選項沒有任何作用。

  • --defaults-extra-file

    命令列格式 --defaults-extra-file=路徑
    類型 字串
    預設值 [無]

    讀取全域檔案後讀取給定的檔案。

  • --defaults-file

    命令列格式 --defaults-file=路徑
    類型 字串
    預設值 [無]

    僅從給定的檔案讀取預設選項。

  • --defaults-group-suffix

    命令列格式 --defaults-group-suffix=字串
    類型 字串
    預設值 [無]

    也讀取 concat(群組, 後綴) 的群組。

  • --help

    命令列格式 --help

    顯示說明文字並結束。

  • --initial

    命令列格式 --initial

    組態資料會快取於內部,而不是在每次啟動管理伺服器時都從叢集全域組態檔案讀取(請參閱第 25.4.3 節「NDB 叢集組態檔案」)。使用 --initial 選項會覆寫此行為,方法是強制管理伺服器刪除任何現有的快取檔案,然後從叢集組態檔案重新讀取組態資料,並建立新的快取。

    這與 --reload 選項有兩個不同之處。首先,--reload 強制伺服器檢查組態檔案與快取,且僅在檔案內容與快取不同時才重新載入其資料。其次,--reload 不會刪除任何現有的快取檔案。

    如果使用 --initial 叫用 ndb_mgmd,但找不到全域組態檔案,則管理伺服器無法啟動。

    當管理伺服器啟動時,它會檢查同一 NDB 叢集中是否有另一個管理伺服器,並嘗試使用另一個管理伺服器的組態資料。當使用多個管理節點執行 NDB 叢集的滾動重新啟動時,此行為會產生影響。如需更多資訊,請參閱第 25.6.5 節「執行 NDB 叢集的滾動重新啟動」

    當與 --config-file 選項一起使用時,僅當實際找到組態檔案時才會清除快取。

  • --install[=名稱]

    命令列格式 --install[=名稱]
    平台特定 Windows
    類型 字串
    預設值 ndb_mgmd

    導致 ndb_mgmd 安裝為 Windows 服務。您可以選擇性地指定服務的名稱;如果未設定,則服務名稱預設為 ndb_mgmd。雖然最好在 my.inimy.cnf 組態檔案中指定其他 ndb_mgmd 程式選項,但也可以將它們與 --install 一起使用。但是,在這種情況下,--install 選項必須先指定,才能指定任何其他選項,Windows 服務安裝才能成功。

    通常不建議將此選項與 --initial 選項一起使用,因為這會導致每次停止和啟動服務時都清除並重建組態快取。如果您打算使用任何其他會影響管理伺服器啟動的 ndb_mgmd 選項,也應謹慎處理,並且您應該完全理解並考慮這樣做的任何可能後果。

    --install 選項對非 Windows 平台沒有影響。

  • --interactive

    命令列格式 --interactive

    以互動模式啟動 ndb_mgmd;也就是說,一旦管理伺服器執行,就會啟動 ndb_mgm 用戶端工作階段。此選項不會啟動任何其他 NDB 叢集節點。

  • --log-name=名稱

    命令列格式 --log-name=名稱
    類型 字串
    預設值 MgmtSrvr

    提供要在叢集日誌中用於此節點的名稱。

  • --login-path

    命令列格式 --login-path=路徑
    類型 字串
    預設值 [無]

    從登入檔案讀取給定的路徑。

  • --no-login-paths

    命令列格式 --no-login-paths

    跳過從登入路徑檔案讀取選項。

  • --mycnf

    命令列格式 --mycnf

    my.cnf 檔案讀取組態資料。

  • --ndb-connectstring

    命令列格式 --ndb-connectstring=connection_string
    類型 字串
    預設值 [無]

    設定連線字串。語法:[nodeid=id;][host=]hostname[:port]。覆寫 NDB_CONNECTSTRINGmy.cnf 中的項目。如果指定 --config-file,則會忽略;如果同時使用這兩個選項,則會發出警告。

  • --ndb-mgm-tls

    命令列格式 --ndb-mgm-tls=層級
    類型 列舉
    預設值 寬鬆
    有效值

    寬鬆

    嚴格

    設定連線到管理伺服器所需的 TLS 支援層級;寬鬆嚴格 之一。寬鬆(預設值)表示會嘗試 TLS 連線,但不需要成功;嚴格 表示需要 TLS 才能連線。

  • --ndb-mgmd-host

    命令列格式 --ndb-mgmd-host=connection_string
    類型 字串
    預設值 [無]

    與 --ndb-connectstring 相同。

  • --ndb-nodeid

    命令列格式 --ndb-nodeid=#
    類型 整數
    預設值 [無]

    設定此節點的節點 ID,覆寫 --ndb-connectstring 設定的任何 ID。

  • --ndb-optimized-node-selection

    命令列格式 --ndb-optimized-node-selection

    啟用交易節點選擇的優化。預設為啟用;使用 --skip-ndb-optimized-node-selection 停用。

  • --ndb-tls-search-path

    命令列格式 --ndb-tls-search-path=清單
    類型 路徑名稱
    預設值 (Unix) $HOME/ndb-tls
    預設值 (Windows) $HOMEDIR/ndb-tls

    指定要搜尋 CA 檔案的目錄清單。在 Unix 平台上,目錄名稱以冒號 (:) 分隔;在 Windows 系統上,分號字元 (;) 用作分隔符號。目錄參照可以是相對的或絕對的;它可以包含一個或多個環境變數,每個環境變數都以帶有前置美元符號 ($) 表示,並在使用前展開。

    搜尋從最左邊的具名目錄開始,並從左到右進行,直到找到檔案為止。空字串表示空的搜尋路徑,這會導致所有搜尋失敗。由單個點 (.) 組成的字串表示搜尋路徑限制為目前的工作目錄。

    如果未提供搜尋路徑,則會使用編譯後的預設值。此值取決於所使用的平台:在 Windows 上,它是 \ndb-tls;在其他平台(包括 Linux)上,它是 $HOME/ndb-tls。這可以使用 -DWITH_NDB_TLS_SEARCH_PATH 編譯 NDB 叢集來覆寫。

  • --no-nodeid-checks

    命令列格式 --no-nodeid-checks

    不執行任何節點 ID 的檢查。

  • --nodaemon

    命令列格式 --nodaemon

    指示 ndb_mgmd 不要以精靈程序啟動。

    Windows 上 ndb_mgmd 的預設行為是在前景中執行,這使得在 Windows 平台上不需要此選項。

  • --no-defaults

    命令列格式 --no-defaults

    不從登入檔案以外的任何選項檔案讀取預設選項。

  • --nowait-nodes

    命令列格式 --nowait-nodes=清單
    類型 數值
    預設值 [無]
    最小值 1
    最大值 255

    當啟動使用兩個管理節點設定的 NDB 叢集時,每個管理伺服器通常會檢查另一個 ndb_mgmd 是否也在運作,以及另一個管理伺服器的組態是否與自己的組態相同。但是,有時只需要啟動一個管理節點來啟動叢集(並且可能允許稍後啟動另一個 ndb_mgmd)。此選項會使管理節點繞過對任何其他管理節點的檢查,這些管理節點的節點 ID 會傳遞給此選項,允許叢集啟動,就像設定為僅使用已啟動的管理節點一樣。

    為了說明起見,請考慮 config.ini 檔案的以下部分(其中我們省略了與此範例無關的大部分組態參數)

    [ndbd]
    NodeId = 1
    HostName = 198.51.100.101
    
    [ndbd]
    NodeId = 2
    HostName = 198.51.100.102
    
    [ndbd]
    NodeId = 3
    HostName = 198.51.100.103
    
    [ndbd]
    NodeId = 4
    HostName = 198.51.100.104
    
    [ndb_mgmd]
    NodeId = 10
    HostName = 198.51.100.150
    
    [ndb_mgmd]
    NodeId = 11
    HostName = 198.51.100.151
    
    [api]
    NodeId = 20
    HostName = 198.51.100.200
    
    [api]
    NodeId = 21
    HostName = 198.51.100.201

    假設您希望僅使用具有節點 ID 10 且在具有 IP 位址 198.51.100.150 的主機上執行的管理伺服器來啟動此叢集。(例如,假設您打算將另一個管理伺服器所在的電腦由於硬體故障而暫時無法使用,並且您正在等待修復它。)若要以此方式啟動叢集,請在 198.51.100.150 的機器上使用命令列輸入以下命令

    $> ndb_mgmd --ndb-nodeid=10 --nowait-nodes=11

    如上一個範例所示,當使用 --nowait-nodes 時,您還必須使用 --ndb-nodeid 選項來指定此 ndb_mgmd 程序的節點 ID。

    然後,您可以像平常一樣啟動叢集的每個資料節點。如果您希望在稍後啟動並使用第二個管理伺服器(除了第一個管理伺服器之外),而無需重新啟動資料節點,您必須使用參考兩個管理伺服器的連線字串來啟動每個資料節點,如下所示

    $> ndbd -c 198.51.100.150,198.51.100.151

    對於您想要啟動為連接到此叢集的 NDB 叢集 SQL 節點的任何 mysqld 程序所使用的連線字串,情況也是如此。如需更多資訊,請參閱第 25.4.3.3 節「NDB 叢集連線字串」

    當與 ndb_mgmd 一起使用時,此選項僅影響管理節點關於其他管理節點的行為。請勿將其與 --nowait-nodes 選項混淆,該選項與 ndbdndbmtd 一起使用,以允許叢集以少於其完整數量的資料節點啟動;當與資料節點一起使用時,此選項僅影響它們關於其他資料節點的行為。

    可以將多個管理節點 ID 以逗號分隔的列表形式傳遞給此選項。每個節點 ID 必須不小於 1 且不大於 255。實際上,對於同一個 NDB 叢集使用兩個以上的管理伺服器(或有這樣做的任何需要)是相當罕見的;在大多數情況下,您只需要將一個管理伺服器的單個節點 ID 傳遞給此選項,而您不希望在啟動叢集時使用該管理伺服器。

    注意

    當您稍後啟動 遺失 的管理伺服器時,其配置必須與叢集已使用的管理伺服器配置相符。否則,它將無法通過現有管理伺服器執行的配置檢查,並且不會啟動。

  • --print-defaults

    命令列格式 --print-defaults

    列印程式引數列表並退出。

  • --print-full-config, -P

    命令列格式 --print-full-config

    顯示關於叢集配置的擴充資訊。在命令列中使用此選項時,ndb_mgmd 程序會列印關於叢集設定的資訊,包括叢集配置區段以及參數及其值的完整列表。通常與 --config-file (-f) 選項一起使用。

  • --reload

    命令列格式 --reload

    NDB 叢集配置資料是儲存在內部,而不是每次啟動管理伺服器時都從叢集全域設定檔讀取(請參閱第 25.4.3 節,「NDB 叢集設定檔」)。使用此選項會強制管理伺服器根據叢集設定檔檢查其內部資料儲存,並且如果它發現設定檔與快取不符,則重新載入配置。現有的配置快取檔會被保留,但不會被使用。

    這與 --initial 選項有兩個不同之處。首先,--initial 會導致所有快取檔被刪除。其次,--initial 會強制管理伺服器重新讀取全域設定檔並建構新的快取。

    如果管理伺服器找不到全域設定檔,則會忽略 --reload 選項。

    當使用 --reload 時,管理伺服器必須能夠在嘗試讀取全域設定檔之前,與叢集中的資料節點和任何其他管理伺服器進行通訊;否則,管理伺服器將無法啟動。這可能會因網路環境的變更而發生,例如節點的新 IP 位址或變更的防火牆配置。在這種情況下,您必須改用 --initial 來強制捨棄現有的快取配置並從檔案重新載入。如需其他資訊,請參閱第 25.6.5 節,「執行 NDB 叢集的滾動重新啟動」

  • --remove[=name]

    命令列格式 --remove[=name]
    平台特定 Windows
    類型 字串
    預設值 ndb_mgmd

    移除已安裝為 Windows 服務的管理伺服器程序,可選擇指定要移除的服務名稱。僅適用於 Windows 平台。

  • --skip-config-file

    命令列格式 --skip-config-file

    不讀取叢集設定檔;如果指定,則忽略 --initial--reload 選項。

  • --usage

    命令列格式 --usage

    顯示說明文字並退出;與 --help 相同。

  • --verbose, -v

    命令列格式 --verbose

    移除已安裝為 Windows 服務的管理伺服器程序,可選擇指定要移除的服務名稱。僅適用於 Windows 平台。

  • --version

    命令列格式 --version

    顯示版本資訊並退出。

啟動管理伺服器時,不一定必須指定連線字串。但是,如果您使用多個管理伺服器,則應提供連線字串,並且叢集中的每個節點都應明確指定其節點 ID。

如需關於使用連線字串的資訊,請參閱第 25.4.3.3 節,「NDB 叢集連線字串」第 25.5.4 節,「ndb_mgmd — NDB 叢集管理伺服器精靈」,說明了 ndb_mgmd 的其他選項。

下列檔案由 ndb_mgmd 在其啟動目錄中建立或使用,並放置在 config.ini 設定檔中指定的 DataDir 中。在以下列表中,node_id 是唯一的節點識別碼。

  • config.ini 是整個叢集的設定檔。此檔案由使用者建立,並由管理伺服器讀取。 第 25.4 節,「NDB 叢集的配置」,討論了如何設定此檔案。

  • ndb_node_id_cluster.log 是叢集事件記錄檔。此類事件的範例包括檢查點啟動和完成、節點啟動事件、節點失敗以及記憶體使用率。帶有描述的叢集事件完整列表可以在 第 25.6 節,「NDB 叢集的管理」中找到。

    預設情況下,當叢集記錄檔的大小達到 100 萬位元組時,該檔案會重新命名為 ndb_node_id_cluster.log.seq_id,其中 seq_id 是叢集記錄檔的序號。(例如:如果已經存在序號為 1、2 和 3 的檔案,則下一個記錄檔將使用數字 4 來命名。)您可以使用 LogDestination 配置參數來變更檔案的大小和數量,以及叢集記錄檔的其他特性。

  • ndb_node_id_out.log 是當以精靈形式執行管理伺服器時用於 stdoutstderr 的檔案。

  • ndb_node_id.pid 是當以精靈形式執行管理伺服器時使用的程序 ID 檔案。