管理伺服器是讀取叢集組態檔案,並將此資訊分發給叢集中所有請求它的節點的程序。它還維護叢集活動的日誌。管理用戶端可以連線到管理伺服器,並檢查叢集的狀態。
以下表格顯示可以與 ndb_mgmd 搭配使用的所有選項。其他說明在表格之後。
-
命令列格式 --bind-address=host
類型 字串 預設值 [無]
使管理伺服器繫結到特定的網路介面(主機名稱或 IP 位址)。此選項沒有預設值。
-
命令列格式 --character-sets-dir=path
包含字元集的目錄。
-
命令列格式 --cluster-config-suffix=name
類型 字串 預設值 [無]
在
my.cnf
中讀取叢集組態區段時,覆寫預設群組尾碼;用於測試。 -
命令列格式 --config-cache[=TRUE|FALSE]
類型 布林值 預設值 TRUE
此選項的預設值為
1
(或TRUE
,或ON
),可用於停用管理伺服器的組態快取,使其每次啟動時都從config.ini
讀取其組態(請參閱第 25.4.3 節「NDB Cluster 組態檔案」)。您可以透過使用下列任何選項啟動 ndb_mgmd 程序來執行此操作--config-cache=0
--config-cache=FALSE
--config-cache=OFF
只有在管理伺服器在啟動時沒有儲存的組態時,使用剛才列出的其中一個選項才有效。如果管理伺服器找到任何組態快取檔案,則會忽略
--config-cache
選項或--skip-config-cache
選項。因此,若要停用組態快取,應該在管理伺服器第一次啟動時使用此選項。否則,如果您想要為已經建立組態快取的管理伺服器停用組態快取,則必須停止管理伺服器,手動刪除任何現有的組態快取檔案,然後使用--skip-config-cache
(或將--config-cache
設定為等於 0、OFF
或FALSE
)重新啟動管理伺服器。組態快取檔案通常會在安裝目錄下的名為
mysql-cluster
的目錄中建立(除非使用--configdir
選項覆寫此位置)。每次管理伺服器更新其組態資料時,都會寫入新的快取檔案。這些檔案會使用下列格式,依建立順序循序命名ndb_node-id_config.bin.seq-number
node-id
是管理伺服器的節點 ID;seq-number
是序號,從 1 開始。例如,如果管理伺服器的節點 ID 為 5,則前三個組態快取檔案在建立時,會命名為ndb_5_config.bin.1
、ndb_5_config.bin.2
和ndb_5_config.bin.3
。如果您想要清除或重新載入組態快取,而不是實際停用快取,則應該使用選項
--reload
或--initial
而不是--skip-config-cache
啟動 ndb_mgmd。若要重新啟用組態快取,只需重新啟動管理伺服器,但不要使用先前用於停用組態快取的
--config-cache
或--skip-config-cache
選項。使用
--skip-config-cache
時,ndb_mgmd 不會檢查組態目錄 (--configdir
) 或嘗試建立一個。(錯誤 #13428853) --config-file=
,filename
-f
filename
命令列格式 --config-file=file
由下列選項停用 skip-config-file
類型 檔案名稱 預設值 [無]
指示管理伺服器應使用哪個檔案作為其組態檔案。根據預設,管理伺服器會在與 ndb_mgmd 可執行檔相同的目錄中尋找名為
config.ini
的檔案;否則必須明確指定檔案名稱和位置。此選項沒有預設值,除非強制管理伺服器讀取組態檔案,否則將會忽略此選項,原因是使用 ndb_mgmd 啟動時使用了
--reload
或--initial
選項,或因為管理伺服器找不到任何組態快取。如果在未指定--initial
或--reload
的情況下指定--config-file
,則 ndb_mgmd 會拒絕啟動。如果使用 ndb_mgmd 啟動時使用了
--config-cache=OFF
,也會讀取--config-file
選項。如需更多資訊,請參閱第 25.4.3 節「NDB Cluster 組態檔案」。-
命令列格式 --configdir=directory
--config-dir=directory
類型 檔案名稱 預設值 $INSTALLDIR/mysql-cluster
指定叢集管理伺服器的組態快取目錄。這必須是絕對路徑。否則,管理伺服器會拒絕啟動。
--config-dir
是此選項的別名。 -
命令列格式 --connect-retries=#
類型 整數 預設值 12
最小值 0
最大值 12
放棄前重試連線的次數。
-
命令列格式 --connect-retry-delay=#
類型 整數 預設值 5
最小值 0
最大值 5
嘗試連絡管理伺服器之間的等待秒數。
-
命令列格式 --connect-string=connection_string
類型 字串 預設值 [無]
與 --ndb-connectstring 相同。
-
命令列格式 --core-file
發生錯誤時寫入核心檔案;用於除錯。
--daemon
,-d
命令列格式 --daemon
指示 ndb_mgmd 以精靈程序啟動。這是預設行為。
在 Windows 平台上執行 ndb_mgmd 時,此選項無效。
-
命令列格式 --defaults-extra-file=path
類型 字串 預設值 [無]
在讀取全域檔案後讀取指定的檔案。
-
命令列格式 --defaults-file=path
類型 字串 預設值 [無]
僅從指定的檔案讀取預設選項。
-
命令列格式 --defaults-group-suffix=string
類型 字串 預設值 [無]
同時讀取 concat(group, suffix) 的群組。
-
命令列格式 --help
顯示說明文字並結束。
-
命令列格式 --initial
組態資料會快取在內部,而不是每次啟動管理伺服器時都從叢集全域組態檔案讀取 (請參閱 第 25.4.3 節「NDB 叢集組態檔案」)。使用
--initial
選項會覆寫此行為,強制管理伺服器刪除任何現有的快取檔案,然後從叢集組態檔案重新讀取組態資料,並建立新的快取。這與
--reload
選項有兩個不同之處。首先,--reload
強制伺服器檢查組態檔案與快取,且僅在檔案內容與快取不同時重新載入其資料。其次,--reload
不會刪除任何現有的快取檔案。如果使用
--initial
叫用 ndb_mgmd,但找不到全域組態檔案,則管理伺服器將無法啟動。當管理伺服器啟動時,它會檢查同一個 NDB 叢集中是否有另一個管理伺服器,並嘗試使用另一個管理伺服器的組態資料。當對具有多個管理節點的 NDB 叢集執行滾動重新啟動時,此行為會造成影響。請參閱 第 25.6.5 節「執行 NDB 叢集的滾動重新啟動」,以取得更多資訊。
當與
--config-file
選項一起使用時,只有在實際找到組態檔案時才會清除快取。 -
命令列格式 --install[=name]
特定平台 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=name
類型 字串 預設值 MgmtSrvr
提供要在叢集記錄中用於此節點的名稱。
-
命令列格式 --login-path=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=level
類型 列舉 預設值 relaxed
有效值 relaxed
strict
設定連線到管理伺服器所需的 TLS 支援層級;
relaxed
或strict
其中之一。relaxed
(預設)表示嘗試 TLS 連線,但並非必須成功;strict
表示必須使用 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=list
類型 路徑名稱 預設值 (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 Cluster 時,每個管理伺服器通常會檢查另一個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 Cluster SQL 節點啟動的任何 mysqld 程序的連線字串也是如此。 請參閱 第 25.4.3.3 節「NDB Cluster 連線字串」,以取得更多資訊。
當與 ndb_mgmd 一起使用時,此選項僅影響管理節點相對於其他管理節點的行為。請勿將其與
--nowait-nodes
選項混淆,後者與 ndbd 或 ndbmtd 一起使用,以允許叢集啟動時資料節點少於完整數量;當與資料節點一起使用時,此選項僅影響它們相對於其他資料節點的行為。可以將多個管理節點 ID 作為逗號分隔的列表傳遞給此選項。每個節點 ID 必須不小於 1 且不大於 255。在實踐中,對於同一個 NDB Cluster 而言,使用超過兩個管理伺服器(或需要這樣做)的情況非常少見;在大多數情況下,您只需將一個管理伺服器的單個節點 ID 傳遞給此選項,您不希望在啟動叢集時使用該伺服器。
注意當您稍後啟動「遺失」的管理伺服器時,其配置必須與叢集已使用的管理伺服器配置相符。否則,它會無法通過現有管理伺服器執行的配置檢查,並且不會啟動。
-
命令列格式 --print-defaults
列印程式引數清單並結束。
-
命令列格式 --print-full-config
顯示有關叢集配置的擴展資訊。在命令列中使用此選項時,ndb_mgmd 程序會列印有關叢集設定的資訊,包括叢集配置區段的廣泛清單以及參數及其值。通常與
--config-file
(-f
) 選項一起使用。 -
命令列格式 --reload
NDB Cluster 配置資料儲存在內部,而不是每次啟動管理伺服器時都從叢集全域設定檔讀取(請參閱 第 25.4.3 節「NDB Cluster 設定檔」)。使用此選項會強制管理伺服器檢查其內部資料儲存區是否與叢集設定檔一致,如果發現設定檔與快取不符,則會重新載入配置。現有的配置快取檔案會被保留,但不會被使用。
這與
--initial
選項有兩個不同之處。首先,--initial
會導致所有快取檔案被刪除。其次,--initial
會強制管理伺服器重新讀取全域設定檔並建構新的快取。如果管理伺服器找不到全域設定檔,則會忽略
--reload
選項。當使用
--reload
時,管理伺服器必須能夠在嘗試讀取全域設定檔之前與資料節點和叢集中的任何其他管理伺服器進行通訊;否則,管理伺服器會無法啟動。這可能是由於網路環境的變更所致,例如節點的新 IP 位址或已變更的防火牆配置。在這種情況下,您必須改用--initial
來強制捨棄現有的快取配置並從檔案重新載入。請參閱 第 25.6.5 節「執行 NDB Cluster 的滾動重新啟動」,以取得更多資訊。 -
命令列格式 --remove[=名稱]
特定平台 Windows 類型 字串 預設值 ndb_mgmd
移除已安裝為 Windows 服務的管理伺服器程序,並選擇性地指定要移除的服務名稱。僅適用於 Windows 平台。
-
命令列格式 --skip-config-file
-
命令列格式 --usage
顯示說明文字並結束;與 --help 相同。
--verbose
,-v
命令列格式 --verbose
移除已安裝為 Windows 服務的管理伺服器程序,並選擇性地指定要移除的服務名稱。僅適用於 Windows 平台。
-
命令列格式 --version
顯示版本資訊並結束。
啟動管理伺服器時,嚴格來說不必指定連線字串。但是,如果您使用多個管理伺服器,則應提供連線字串,並且叢集中的每個節點都應明確指定其節點 ID。
請參閱 第 25.4.3.3 節「NDB Cluster 連線字串」,以取得有關使用連線字串的資訊。第 25.5.4 節「ndb_mgmd — NDB Cluster 管理伺服器守護程式」,說明了 ndb_mgmd 的其他選項。
以下檔案由 ndb_mgmd 在其啟動目錄中建立或使用,並放置在 config.ini
設定檔中指定的 DataDir
中。在下面的清單中,node_id
是唯一的節點識別碼。
config.ini
是整個叢集的設定檔。此檔案由使用者建立並由管理伺服器讀取。 第 25.4 節「NDB Cluster 的配置」,討論如何設定此檔案。ndb_
是叢集事件記錄檔。此類事件的範例包括檢查點啟動和完成、節點啟動事件、節點故障和記憶體使用率。叢集事件的完整清單及其描述可以在 第 25.6 節「NDB Cluster 的管理」中找到。node_id
_cluster.log預設情況下,當叢集記錄的大小達到一百萬位元組時,該檔案會重新命名為
ndb_
,其中node_id
_cluster.log.seq_id
seq_id
是叢集記錄檔的序號。(例如:如果已經存在序號為 1、2 和 3 的檔案,則下一個記錄檔會使用數字4
來命名。)您可以使用LogDestination
配置參數變更檔案的大小和數量,以及叢集記錄的其他特性。ndb_
是在將管理伺服器作為守護程式執行時用於node_id
_out.logstdout
和stderr
的檔案。ndb_
是在將管理伺服器作為守護程式執行時使用的程序 ID 檔案。node_id
.pid