此工具會從數個來源之一提取資料節點、SQL 節點和 API 節點的目前組態資訊:NDB Cluster 管理節點,或是其 config.ini
或 my.cnf
檔案。依預設,管理節點是組態資料的來源;若要覆寫預設值,請使用 --config-file
或 --mycnf
選項來執行 ndb_config。也可以使用資料節點作為來源,方法是使用 --config_from_node=
指定其節點 ID。node_id
ndb_config 也可以提供所有組態參數的離線傾印,這些參數可搭配其預設值、最大值、最小值和其他資訊一起使用。傾印可以文字或 XML 格式產生;如需更多資訊,請參閱本節稍後有關 --configinfo
和 --xml
選項的討論。
您可以使用 --nodes
、--system
或 --connections
其中一個選項,依區段 (DB
、SYSTEM
或 CONNECTIONS
) 篩選結果。
以下表格顯示所有可與 ndb_config 搭配使用的選項。表格後面接著其他描述。
-
命令列格式 --character-sets-dir=path
包含字元集的目錄。
-
命令列格式 --cluster-config-suffix=name
類型 字串 預設值 [無]
在
my.cnf
中讀取叢集組態區段時,覆寫預設值群組後綴;用於測試。 --configinfo
選項會使 ndb_config 傾印 ndb_config 所屬 NDB Cluster 發行版本支援的每個 NDB Cluster 組態參數的清單,其中包含下列資訊每個參數用途、效果和用法簡短描述
可使用參數的
config.ini
檔案區段參數的資料類型或度量單位
在適用的情況下,參數的預設值、最小值和最大值
NDB Cluster 發行版本和組建資訊
依預設,此輸出為文字格式。此處顯示部分輸出
$> ndb_config --configinfo ****** SYSTEM ****** Name (String) Name of system (NDB Cluster) MANDATORY PrimaryMGMNode (Non-negative Integer) Node id of Primary ndb_mgmd(MGM) node Default: 0 (Min: 0, Max: 4294967039) ConfigGenerationNumber (Non-negative Integer) Configuration generation number Default: 0 (Min: 0, Max: 4294967039) ****** DB ****** MaxNoOfSubscriptions (Non-negative Integer) Max no of subscriptions (default 0 == MaxNoOfTables) Default: 0 (Min: 0, Max: 4294967039) MaxNoOfSubscribers (Non-negative Integer) Max no of subscribers (default 0 == 2 * MaxNoOfTables) Default: 0 (Min: 0, Max: 4294967039) …
將此選項與
--xml
選項一起使用,以取得 XML 格式的輸出。--config-binary-file=
path-to-file
命令列格式 --config-binary-file=path/to/file
類型 檔案名稱 預設值 提供管理伺服器快取的二進位組態檔案 (
ndb_
) 的路徑。這可能是相對路徑或絕對路徑。如果管理伺服器和使用的 ndb_config 二進位檔位於不同的主機上,則必須使用絕對路徑。nodeID
_config.bin.seqno
此範例示範將
--config-binary-file
與其他 ndb_config 選項組合在一起以取得有用的輸出$> ndb_config --config-binary-file=../mysql-cluster/ndb_50_config.bin.1 --diff-default --type=ndbd config of [DB] node id 5 that is different from default CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE NodeId,5,(mandatory) BackupDataDir,/local/data/9.0,(null) DataDir,/local/data/9.0,. DataMemory,2G,98M FileSystemPath,/local/data/9.0,(null) HostName,127.0.0.1,localhost Nodegroup,0,(null) ThreadConfig,,(null) config of [DB] node id 6 that is different from default CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE NodeId,6,(mandatory) BackupDataDir,/local/data/9.0,(null) DataDir,/local/data/9.0. DataMemory,2G,98M FileSystemPath,/local/data/9.0,(null) HostName,127.0.0.1,localhost Nodegroup,0,(null) ThreadConfig,,(null) $> ndb_config --config-binary-file=../mysql-cluster/ndb_50_config.bin.1 --diff-default --system config of [SYSTEM] system CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE Name,MC_20220906060042,(mandatory) ConfigGenerationNumber,1,0 PrimaryMGMNode,50,0
此處顯示
config.ini
檔案的相關部分[ndbd default] DataMemory= 2G NoOfReplicas= 2 [ndb_mgmd] NodeId= 50 HostName= 127.0.0.1 [ndbd] NodeId= 5 HostName= 127.0.0.1 DataDir= /local/data/9.0 [ndbd] NodeId= 6 HostName= 127.0.0.1 DataDir= /local/data/9.0
藉由比較輸出與組態檔案,您可以看到檔案中的所有設定都已由管理伺服器寫入二進位快取,因此已套用至叢集。
-
命令列格式 --config-file=file_name
類型 檔案名稱 預設值 提供叢集組態檔案 (
config.ini
) 的路徑。這可能是相對路徑或絕對路徑。如果管理伺服器和使用的 ndb_config 二進位檔位於不同的主機上,則必須使用絕對路徑。 -
命令列格式 --config-from-node=#
類型 數值 預設值 無
最小值 1
最大值 48
從具有此 ID 的資料節點取得叢集的組態資料。
如果具有此 ID 的節點不是資料節點,ndb_config 會失敗並顯示錯誤。(若要改為從管理節點取得組態資料,只需省略此選項即可。)
-
命令列格式 --connect-retries=#
類型 整數 預設值 12
最小值 0
最大值 12
放棄之前重試連線的次數。
-
命令列格式 --connect-retry-delay=#
類型 整數 預設值 5
最小值 0
最大值 5
嘗試連線至管理伺服器之間等待的秒數。
-
命令列格式 --connect-string=connection_string
類型 字串 預設值 [無]
與
--ndb-connectstring
相同。 -
命令列格式 --connections
告知 ndb_config 僅列印
CONNECTIONS
資訊,也就是叢集組態檔案的[tcp]
、[tcp default]
、[shm]
或[shm default]
區段中找到的參數相關資訊 (如需更多資訊,請參閱第 25.4.3.10 節,「NDB Cluster TCP/IP 連線」 和第 25.4.3.12 節,「NDB Cluster 共用記憶體連線」)。 -
命令列格式 --core-file
發生錯誤時寫入核心檔案;用於除錯。
-
命令列格式 --defaults-extra-file=path
類型 字串 預設值 [無]
在讀取全域檔案後,讀取指定的檔案。
-
命令列格式 --defaults-file=path
類型 字串 預設值 [無]
僅從指定的檔案讀取預設選項。
-
命令列格式 --defaults-group-suffix=字串
類型 字串 預設值 [無]
同時讀取 concat(群組, 後綴) 的群組。
-
命令列格式 --diff-default
僅列印具有非預設值的配置參數。
--fields=
,分隔符號
-f
分隔符號
命令列格式 --fields=字串
類型 字串 預設值 指定用於分隔結果中欄位的
分隔符號
字串。預設值為,
(逗號字元)。注意如果
分隔符號
包含空格或跳脫字元(例如換行字元的\n
),則必須使用引號括起來。-
命令列格式 --help
顯示說明文字並結束。
-
命令列格式 --host=名稱
類型 字串 預設值 指定要取得配置資訊的節點主機名稱。
注意雖然主機名稱
localhost
通常解析為 IP 位址127.0.0.1
,但在所有作業平台和配置中,情況可能不一定如此。這表示當localhost
用於config.ini
時,如果 ndb_config--host=localhost
在另一個主機上執行時,可能會失敗,因為該主機上的localhost
會解析為不同的位址(例如,在某些版本的 SUSE Linux 上,這是127.0.0.2
)。一般而言,為了獲得最佳效果,您應該為所有與主機相關的 NDB Cluster 配置值使用數字 IP 位址,或驗證所有 NDB Cluster 主機都以相同方式處理localhost
。 -
命令列格式 --login-path=路徑
類型 字串 預設值 [無]
從登入檔案讀取給定的路徑。
-
命令列格式 --mycnf
從
my.cnf
檔案讀取配置資料。 --ndb-connectstring=
,連線字串
-c
連線字串
命令列格式 --ndb-connectstring=連線字串
類型 字串 預設值 [無]
指定連線到管理伺服器時要使用的連線字串。連線字串的格式與第 25.4.3.3 節,「NDB Cluster 連線字串」中所述的相同,預設值為
localhost:1186
。-
命令列格式 --ndb-mgm-tls=層級
類型 列舉 預設值 寬鬆
有效值 寬鬆
嚴格
設定連線到管理伺服器所需的 TLS 支援層級;
寬鬆
或嚴格
之一。寬鬆
(預設)表示會嘗試 TLS 連線,但成功並非必要;嚴格
表示必須使用 TLS 才能連線。 -
命令列格式 --ndb-mgmd-host=連線字串
類型 字串 預設值 [無]
與
--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 Cluster 來覆寫此值。 -
命令列格式 --no-defaults
除了登入檔案之外,不要從任何選項檔案讀取預設選項。
-
命令列格式 --no-login-paths
跳過從登入路徑檔案讀取選項。
-
命令列格式 --ndb-nodeid=#
類型 整數 預設值 [無]
指定要取得配置資訊的節點節點 ID。
-
命令列格式 --nodes
告知 ndb_config 僅列印與叢集配置檔案的
[ndbd]
或[ndbd default]
區段中定義的參數相關的資訊(請參閱第 25.4.3.6 節,「定義 NDB Cluster 資料節點」)。此選項與
--connections
和--system
互斥;只能使用這 3 個選項中的一個。 -
命令列格式 --print-defaults
列印程式引數清單並結束。
--query=
,查詢選項
-q
查詢選項
命令列格式 --query=字串
類型 字串 預設值 這是以逗號分隔的查詢選項清單,也就是要傳回的一個或多個節點屬性清單。這些包括
nodeid
(節點 ID)、type(節點類型,即ndbd
、mysqld
或ndb_mgmd
)和任何要取得其值的配置參數。例如,
--query=nodeid,type,datamemory,datadir
會傳回每個節點的節點 ID、節點類型、DataMemory
和DataDir
。注意如果給定的參數不適用於某種節點類型,則會針對對應的值傳回空字串。請參閱本節稍後的範例以取得更多資訊。
--query-all
,-a
命令列格式 --query-all
類型 字串 預設值 傳回所有查詢選項(節點屬性)的逗號分隔清單;請注意,此清單是單一字串。
--rows=
,分隔符號
-r
分隔符號
命令列格式 --rows=字串
類型 字串 預設值 指定用於分隔結果中列的
分隔符號
字串。預設值為空格字元。注意如果
分隔符號
包含空格或跳脫字元(例如換行字元的\n
),則必須使用引號括起來。-
命令列格式 --system
告知 ndb_config 僅列印
SYSTEM
資訊。這包含無法在執行階段變更的系統變數;因此,它們沒有叢集配置檔案的對應區段。它們可以在 ndb_config--configinfo
的輸出中看到(以****** SYSTEM ******
為前綴)。此選項與
--nodes
和--connections
互斥;只能使用這 3 個選項中的一個。 -
命令列格式 --type=名稱
類型 列舉 預設值 [無]
有效值 ndbd
mysqld
ndb_mgmd
篩選結果,以便僅傳回套用於指定
節點_類型
(ndbd
、mysqld
或ndb_mgmd
)的節點的配置值。 --usage
,--help
, 或--?
命令列格式 --help
導致 ndb_config 列印可用選項清單,然後結束。
--version
,-V
命令列格式 --version
導致 ndb_config 列印版本資訊字串,然後結束。
--configinfo
--xml
命令列格式 --configinfo --xml
透過新增此選項,使 ndb_config
--configinfo
以 XML 格式提供輸出。此範例中顯示了部分此類輸出$> ndb_config --configinfo --xml <configvariables protocolversion="1" ndbversionstring="5.7.44-ndb-7.5.35" ndbversion="460032" ndbversionmajor="7" ndbversionminor="5" ndbversionbuild="0"> <section name="SYSTEM"> <param name="Name" comment="Name of system (NDB Cluster)" type="string" mandatory="true"/> <param name="PrimaryMGMNode" comment="Node id of Primary ndb_mgmd(MGM) node" type="unsigned" default="0" min="0" max="4294967039"/> <param name="ConfigGenerationNumber" comment="Configuration generation number" type="unsigned" default="0" min="0" max="4294967039"/> </section> <section name="MYSQLD" primarykeys="NodeId"> <param name="wan" comment="Use WAN TCP setting as default" type="bool" default="false"/> <param name="HostName" comment="Name of computer for this node" type="string" default=""/> <param name="Id" comment="NodeId" type="unsigned" mandatory="true" min="1" max="255" deprecated="true"/> <param name="NodeId" comment="Number identifying application node (mysqld(API))" type="unsigned" mandatory="true" min="1" max="255"/> <param name="ExecuteOnComputer" comment="HostName" type="string" deprecated="true"/> … </section> … </configvariables>
注意通常,ndb_config
--configinfo
--xml
產生的 XML 輸出會使用每個元素一行的方式格式化;為了方便閱讀,我們在先前的範例以及下一個範例中加入了額外的空白。這不應對使用此輸出的應用程式造成任何影響,因為大多數 XML 處理器通常會忽略非必要的空白,或可以被指示這樣做。XML 輸出也會指出何時變更給定參數需要使用
--initial
選項重新啟動資料節點。這由對應的<param>
元素中存在initial="true"
屬性來表示。此外,還會顯示重新啟動類型(system
或node
);如果給定參數需要系統重新啟動,則會在對應的<param>
元素中顯示restart="system"
屬性。例如,變更Diskless
參數設定的值需要系統初始重新啟動,如下所示(restart
和initial
屬性已醒目標示以便於檢視)<param name="Diskless" comment="Run wo/ disk" type="bool" default="false" restart="system" initial="true"/>
目前,對於不需要初始重新啟動的參數所對應的
<param>
元素,XML 輸出中沒有包含initial
屬性;換句話說,initial="false"
是預設值,如果該屬性不存在,則應假定值為false
。同樣地,預設的重新啟動類型是node
(也就是叢集的線上或「滾動」重新啟動),但只有在重新啟動類型為system
時才會包含restart
屬性(表示必須同時關閉所有叢集節點,然後重新啟動)。已棄用的參數在 XML 輸出中會以
deprecated
屬性表示,如下所示<param name="NoOfDiskPagesToDiskAfterRestartACC" comment="DiskCheckpointSpeed" type="unsigned" default="20" min="1" max="4294967039" deprecated="true"/>
在這種情況下,
comment
會參考一個或多個取代已棄用參數的參數。與initial
類似,deprecated
屬性僅在參數被棄用時才會顯示,且為deprecated="true"
,對於未棄用的參數則完全不會出現。(錯誤 #21127135)必要參數會以
mandatory="true"
表示,如下所示<param name="NodeId" comment="Number identifying application node (mysqld(API))" type="unsigned" mandatory="true" min="1" max="255"/>
就像
initial
或deprecated
屬性僅針對需要初始重新啟動或已棄用的參數顯示一樣,mandatory
屬性僅在給定參數實際上為必要時才會包含。重要事項--xml
選項只能與--configinfo
選項一起使用。在沒有--configinfo
的情況下使用--xml
會失敗並顯示錯誤。與使用此程式取得目前組態資料的選項不同,
--configinfo
和--xml
使用在編譯 ndb_config 時從 NDB 叢集來源取得的資訊。因此,這兩個選項不需要連線到正在執行的 NDB 叢集或存取config.ini
或my.cnf
檔案。
不支援將其他 ndb_config 選項(例如 --query
或 --type
)與 --configinfo
(無論有無 --xml
選項)結合使用。目前,如果您嘗試這樣做,通常的結果是除了 --configinfo
或 --xml
之外的所有其他選項都會被忽略。但是,此行為不保證,並且隨時可能會變更。此外,由於 ndb_config 與 --configinfo
選項一起使用時,不會存取 NDB 叢集或讀取任何檔案,因此嘗試使用 --configinfo
指定額外選項(例如 --ndb-connectstring
或 --config-file
)沒有任何作用。
範例
要取得叢集中每個節點的節點 ID 和類型
$> ./ndb_config --query=nodeid,type --fields=':' --rows='\n' 1:ndbd 2:ndbd 3:ndbd 4:ndbd 5:ndb_mgmd 6:mysqld 7:mysqld 8:mysqld 9:mysqld
在此範例中,我們使用
--fields
選項來使用冒號字元 (:
) 分隔每個節點的 ID 和類型,並使用--rows
選項將每個節點的值放在輸出中的新行上。產生一個連線字串,資料、SQL 和 API 節點可以使用該字串連線到管理伺服器
$> ./ndb_config --config-file=usr/local/mysql/cluster-data/config.ini \ --query=hostname,portnumber --fields=: --rows=, --type=ndb_mgmd 198.51.100.179:1186
此 ndb_config 呼叫僅檢查資料節點(使用
--type
選項),並顯示每個節點的 ID 和主機名稱值,以及其DataMemory
和DataDir
參數設定的值$> ./ndb_config --type=ndbd --query=nodeid,host,datamemory,datadir -f ' : ' -r '\n' 1 : 198.51.100.193 : 83886080 : /usr/local/mysql/cluster-data 2 : 198.51.100.112 : 83886080 : /usr/local/mysql/cluster-data 3 : 198.51.100.176 : 83886080 : /usr/local/mysql/cluster-data 4 : 198.51.100.119 : 83886080 : /usr/local/mysql/cluster-data
在此範例中,我們使用短選項
-f
和-r
來設定欄位分隔符號和列分隔符號,以及短選項-q
來傳遞要取得的參數清單。要排除特定主機以外的任何主機的結果,請使用
--host
選項$> ./ndb_config --host=198.51.100.176 -f : -r '\n' -q id,type 3:ndbd 5:ndb_mgmd
在此範例中,我們也使用了短格式
-q
來確定要查詢的屬性。同樣地,您可以使用
--nodeid
選項將結果限制為具有特定 ID 的節點。