管理伺服器是讀取叢集組態檔案並將此資訊分發給叢集中所有請求此資訊節點的程序。它還維護叢集活動的日誌。管理用戶端可以連接到管理伺服器並檢查叢集的狀態。
下表顯示了與 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-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
選項之一啟動 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
) 選項一起使用。 -
命令列格式 --reload
NDB 叢集配置資料是儲存在內部,而不是每次啟動管理伺服器時都從叢集全域設定檔讀取(請參閱第 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_id
seq_id
是叢集記錄檔的序號。(例如:如果已經存在序號為 1、2 和 3 的檔案,則下一個記錄檔將使用數字4
來命名。)您可以使用LogDestination
配置參數來變更檔案的大小和數量,以及叢集記錄檔的其他特性。ndb_
是當以精靈形式執行管理伺服器時用於node_id
_out.logstdout
和stderr
的檔案。ndb_
是當以精靈形式執行管理伺服器時使用的程序 ID 檔案。node_id
.pid