管理伺服器是讀取叢集組態檔案並將此資訊分發給叢集中所有請求此資訊節點的程序。它還維護叢集活動的日誌。管理用戶端可以連接到管理伺服器並檢查叢集的狀態。
下表顯示了與 ndb_mgmd 一起使用的所有選項。其他說明如下表所示。
-
命令列格式 --bind-address=主機類型 字串 預設值 [無]導致管理伺服器綁定到特定的網路介面(主機名稱或 IP 位址)。此選項沒有預設值。
-
命令列格式 --character-sets-dir=路徑包含字元集的目錄。
-
命令列格式 --cluster-config-suffix=名稱類型 字串 預設值 [無]在讀取
my.cnf中的叢集組態區段時覆寫預設群組後綴;用於測試。 -
命令列格式 --config-cache[=TRUE|FALSE]類型 布林值 預設值 TRUE此選項的預設值為
1(或TRUE,或ON),可用於停用管理伺服器的組態快取,以便每次啟動時都從config.ini讀取其組態(請參閱 第 25.4.3 節「NDB 叢集組態檔案」)。您可以透過使用以下任何一個選項啟動 ndb_mgmd 程序來執行此操作--config-cache=0--config-cache=FALSE--config-cache=OFF
僅當管理伺服器在啟動時沒有儲存的組態時,才有效使用剛剛列出的選項之一。如果管理伺服器找到任何組態快取檔案,則會忽略
--config-cache選項或--skip-config-cache選項。因此,若要停用組態快取,應在 第一次 啟動管理伺服器時使用該選項。否則,也就是說,如果您希望對 已經 建立組態快取的管理伺服器停用組態快取,您必須停止管理伺服器,手動刪除任何現有的組態快取檔案,然後使用--skip-config-cache(或使用設定等於 0、OFF或FALSE的--config-cache)重新啟動管理伺服器。組態快取檔案通常在安裝目錄下的
mysql-cluster目錄中建立(除非使用--configdir選項覆寫了此位置)。每次管理伺服器更新其組態資料時,它都會寫入一個新的快取檔案。這些檔案以建立順序依序命名,格式如下ndb_node-id_config.bin.seq-numbernode-id是管理伺服器的節點 ID;seq-number是一個從 1 開始的序號。例如,如果管理伺服器的節點 ID 為 5,則前三個組態快取檔案在建立時會分別命名為ndb_5_config.bin.1、ndb_5_config.bin.2和ndb_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或--reload,ndb_mgmd 將拒絕啟動。如果 ndb_mgmd 是以
--config-cache=OFF啟動的,也會讀取--config-file選項。如需更多資訊,請參閱 第 25.4.3 節「NDB 叢集組態檔案」。-
命令列格式 --configdir=目錄--config-dir=目錄類型 檔案名稱 預設值 $INSTALLDIR/mysql-cluster指定叢集管理伺服器的組態快取目錄。這必須是絕對路徑。否則,管理伺服器將拒絕啟動。
--config-dir是此選項的別名。 -
命令列格式 --connect-retries=#類型 整數 預設值 12最小值 0最大值 12放棄之前重試連線的次數。
-
命令列格式 --connect-retry-delay=#類型 整數 預設值 5最小值 0最大值 5嘗試聯絡管理伺服器之間等待的秒數。
-
命令列格式 --connect-string=連線字串類型 字串 預設值 [無]與 --ndb-connectstring 相同。
-
命令列格式 --core-file發生錯誤時寫入核心檔案;用於偵錯。
--daemon、-d命令列格式 --daemon指示 ndb_mgmd 作為精靈程序啟動。這是預設行為。
在 Windows 平台上執行 ndb_mgmd 時,此選項沒有任何作用。
-
命令列格式 --defaults-extra-file=路徑類型 字串 預設值 [無]讀取全域檔案後讀取給定的檔案。
-
命令列格式 --defaults-file=路徑類型 字串 預設值 [無]僅從給定的檔案讀取預設選項。
-
命令列格式 --defaults-group-suffix=字串類型 字串 預設值 [無]也讀取 concat(群組, 後綴) 的群組。
-
命令列格式 --help顯示說明文字並結束。
-
命令列格式 --initial組態資料會快取於內部,而不是在每次啟動管理伺服器時都從叢集全域組態檔案讀取(請參閱第 25.4.3 節「NDB 叢集組態檔案」)。使用
--initial選項會覆寫此行為,方法是強制管理伺服器刪除任何現有的快取檔案,然後從叢集組態檔案重新讀取組態資料,並建立新的快取。這與
--reload選項有兩個不同之處。首先,--reload強制伺服器檢查組態檔案與快取,且僅在檔案內容與快取不同時才重新載入其資料。其次,--reload不會刪除任何現有的快取檔案。如果使用
--initial叫用 ndb_mgmd,但找不到全域組態檔案,則管理伺服器無法啟動。當管理伺服器啟動時,它會檢查同一 NDB 叢集中是否有另一個管理伺服器,並嘗試使用另一個管理伺服器的組態資料。當使用多個管理節點執行 NDB 叢集的滾動重新啟動時,此行為會產生影響。如需更多資訊,請參閱第 25.6.5 節「執行 NDB 叢集的滾動重新啟動」。
當與
--config-file選項一起使用時,僅當實際找到組態檔案時才會清除快取。 -
命令列格式 --install[=名稱]平台特定 Windows 類型 字串 預設值 ndb_mgmd導致 ndb_mgmd 安裝為 Windows 服務。您可以選擇性地指定服務的名稱;如果未設定,則服務名稱預設為
ndb_mgmd。雖然最好在my.ini或my.cnf組態檔案中指定其他 ndb_mgmd 程式選項,但也可以將它們與--install一起使用。但是,在這種情況下,--install選項必須先指定,才能指定任何其他選項,Windows 服務安裝才能成功。通常不建議將此選項與
--initial選項一起使用,因為這會導致每次停止和啟動服務時都清除並重建組態快取。如果您打算使用任何其他會影響管理伺服器啟動的 ndb_mgmd 選項,也應謹慎處理,並且您應該完全理解並考慮這樣做的任何可能後果。--install選項對非 Windows 平台沒有影響。 -
命令列格式 --interactive以互動模式啟動 ndb_mgmd;也就是說,一旦管理伺服器執行,就會啟動 ndb_mgm 用戶端工作階段。此選項不會啟動任何其他 NDB 叢集節點。
-
命令列格式 --log-name=名稱類型 字串 預設值 MgmtSrvr提供要在叢集日誌中用於此節點的名稱。
-
命令列格式 --login-path=路徑類型 字串 預設值 [無]從登入檔案讀取給定的路徑。
-
命令列格式 --no-login-paths跳過從登入路徑檔案讀取選項。
-
命令列格式 --mycnf從
my.cnf檔案讀取組態資料。 -
命令列格式 --ndb-connectstring=connection_string類型 字串 預設值 [無]設定連線字串。語法:
[nodeid=。覆寫id;][host=]hostname[:port]NDB_CONNECTSTRING和my.cnf中的項目。如果指定--config-file,則會忽略;如果同時使用這兩個選項,則會發出警告。 -
命令列格式 --ndb-mgm-tls=層級類型 列舉 預設值 寬鬆有效值 寬鬆嚴格設定連線到管理伺服器所需的 TLS 支援層級;
寬鬆或嚴格之一。寬鬆(預設值)表示會嘗試 TLS 連線,但不需要成功;嚴格表示需要 TLS 才能連線。 -
命令列格式 --ndb-mgmd-host=connection_string類型 字串 預設值 [無]與 --ndb-connectstring 相同。
-
命令列格式 --ndb-nodeid=#類型 整數 預設值 [無]設定此節點的節點 ID,覆寫 --ndb-connectstring 設定的任何 ID。
--ndb-optimized-node-selection命令列格式 --ndb-optimized-node-selection啟用交易節點選擇的優化。預設為啟用;使用
--skip-ndb-optimized-node-selection停用。-
命令列格式 --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不執行任何節點 ID 的檢查。
-
命令列格式 --nodaemon指示 ndb_mgmd 不要以精靈程序啟動。
Windows 上 ndb_mgmd 的預設行為是在前景中執行,這使得在 Windows 平台上不需要此選項。
-
命令列格式 --no-defaults不從登入檔案以外的任何選項檔案讀取預設選項。
-
命令列格式 --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選項混淆,該選項與 ndbd 或 ndbmtd 一起使用,以允許叢集以少於其完整數量的資料節點啟動;當與資料節點一起使用時,此選項僅影響它們關於其他資料節點的行為。可以將多個管理節點 ID 以逗號分隔的列表形式傳遞給此選項。每個節點 ID 必須不小於 1 且不大於 255。實際上,對於同一個 NDB 叢集使用兩個以上的管理伺服器(或有這樣做的任何需要)是相當罕見的;在大多數情況下,您只需要將一個管理伺服器的單個節點 ID 傳遞給此選項,而您不希望在啟動叢集時使用該管理伺服器。
注意當您稍後啟動 “遺失” 的管理伺服器時,其配置必須與叢集已使用的管理伺服器配置相符。否則,它將無法通過現有管理伺服器執行的配置檢查,並且不會啟動。
-
命令列格式 --print-defaults列印程式引數列表並退出。
-
命令列格式 --print-full-config顯示關於叢集配置的擴充資訊。在命令列中使用此選項時,ndb_mgmd 程序會列印關於叢集設定的資訊,包括叢集配置區段以及參數及其值的完整列表。通常與
--config-file(-f) 選項一起使用。 -
命令列格式 --reloadNDB 叢集配置資料是儲存在內部,而不是每次啟動管理伺服器時都從叢集全域設定檔讀取(請參閱第 25.4.3 節,「NDB 叢集設定檔」)。使用此選項會強制管理伺服器根據叢集設定檔檢查其內部資料儲存,並且如果它發現設定檔與快取不符,則重新載入配置。現有的配置快取檔會被保留,但不會被使用。
這與
--initial選項有兩個不同之處。首先,--initial會導致所有快取檔被刪除。其次,--initial會強制管理伺服器重新讀取全域設定檔並建構新的快取。如果管理伺服器找不到全域設定檔,則會忽略
--reload選項。當使用
--reload時,管理伺服器必須能夠在嘗試讀取全域設定檔之前,與叢集中的資料節點和任何其他管理伺服器進行通訊;否則,管理伺服器將無法啟動。這可能會因網路環境的變更而發生,例如節點的新 IP 位址或變更的防火牆配置。在這種情況下,您必須改用--initial來強制捨棄現有的快取配置並從檔案重新載入。如需其他資訊,請參閱第 25.6.5 節,「執行 NDB 叢集的滾動重新啟動」。 -
命令列格式 --remove[=name]平台特定 Windows 類型 字串 預設值 ndb_mgmd移除已安裝為 Windows 服務的管理伺服器程序,可選擇指定要移除的服務名稱。僅適用於 Windows 平台。
-
命令列格式 --skip-config-file -
命令列格式 --usage顯示說明文字並退出;與 --help 相同。
--verbose,-v命令列格式 --verbose移除已安裝為 Windows 服務的管理伺服器程序,可選擇指定要移除的服務名稱。僅適用於 Windows 平台。
-
命令列格式 --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_是叢集事件記錄檔。此類事件的範例包括檢查點啟動和完成、節點啟動事件、節點失敗以及記憶體使用率。帶有描述的叢集事件完整列表可以在 第 25.6 節,「NDB 叢集的管理」中找到。node_id_cluster.log預設情況下,當叢集記錄檔的大小達到 100 萬位元組時,該檔案會重新命名為
ndb_,其中node_id_cluster.log.seq_idseq_id是叢集記錄檔的序號。(例如:如果已經存在序號為 1、2 和 3 的檔案,則下一個記錄檔將使用數字4來命名。)您可以使用LogDestination配置參數來變更檔案的大小和數量,以及叢集記錄檔的其他特性。ndb_是當以精靈形式執行管理伺服器時用於node_id_out.logstdout和stderr的檔案。ndb_是當以精靈形式執行管理伺服器時使用的程序 ID 檔案。node_id.pid