除了中央組態檔之外,還可以透過管理用戶端 ndb_mgm提供的命令列介面來控制叢集。這是執行中叢集的主要管理介面。
事件日誌的命令在第 25.6.3 節,「在 NDB 叢集中產生的事件報告」中給出;建立備份和從備份還原的命令在第 25.6.8 節,「NDB 叢集的線上備份」中提供。
將 ndb_mgm 與 MySQL Cluster Manager 搭配使用。 MySQL Cluster Manager 處理啟動和停止程序,並在內部追蹤其狀態,因此對於受 MySQL Cluster Manager 控制的 NDB 叢集,不需要使用 ndb_mgm 來執行這些工作。建議不要使用 NDB 叢集發行版本隨附的 ndb_mgm 命令列用戶端來執行涉及啟動或停止節點的操作。這些操作包括但不限於 START
、STOP
、RESTART
和 SHUTDOWN
命令。如需更多資訊,請參閱 MySQL Cluster Manager 程序命令。
管理用戶端具有下列基本命令。在下列清單中,node_id
表示資料節點 ID 或關鍵字 ALL
,表示該命令應套用至叢集的所有資料節點。
連線至連線字串指示的管理伺服器。如果用戶端已連線至此伺服器,則用戶端會重新連線。
CREATE NODEGROUP
nodeid
[,nodeid
, ...]建立新的 NDB 叢集節點群組,並導致資料節點加入其中。
此命令用於將新的資料節點線上新增至 NDB 叢集之後,並導致它們加入新的節點群組,從而開始完全參與叢集。該命令將逗號分隔的節點 ID 清單作為其唯一參數 — 這些是剛新增並啟動且要加入新節點群組的節點 ID。該清單不得包含重複的 ID;任何重複項的存在都會導致命令傳回錯誤。清單中的節點數必須與叢集中已存在的每個節點群組中的節點數相同(每個 NDB 叢集節點群組必須具有相同數量的節點)。換句話說,如果 NDB 叢集由 2 個各具有 2 個資料節點的節點群組組成,則新的節點群組也必須有 2 個資料節點。
此命令建立的新節點群組的節點群組 ID 會自動決定,且永遠是叢集中下一個最高未使用的節點群組 ID;無法手動設定。
如需更多資訊,請參閱第 25.6.7 節,「線上新增 NDB 叢集資料節點」。
移除具有指定
nodegroup_id
的 NDB 叢集節點群組。此命令可用於從 NDB 叢集中移除節點群組。
DROP NODEGROUP
將要移除的節點群組的節點群組 ID 作為其唯一引數。DROP NODEGROUP
的作用僅是將受影響節點群組中的資料節點從該節點群組中移除。它不會停止資料節點、將其指派給不同的節點群組或從叢集的組態中移除它們。不屬於節點群組的資料節點會在管理用戶端SHOW
命令的輸出中以no nodegroup
取代節點群組 ID 來指示,如下所示(以粗體文字表示)id=3 @10.100.2.67 (8.4.0-ndb-8.4.0, no nodegroup)
DROP NODEGROUP
只有在要移除的節點群組中的所有資料節點完全沒有任何表格資料和表格定義時才會運作。由於目前無法使用 ndb_mgm 或 mysql 用戶端從特定的資料節點或節點群組移除所有資料,這表示該命令僅在下列兩種情況下成功在 ndb_mgm 用戶端中發出
CREATE NODEGROUP
之後,但在 mysql 用戶端中發出任何ALTER TABLE ... REORGANIZE PARTITION
陳述式之前。在使用
DROP TABLE
移除所有NDBCLUSTER
表格之後。TRUNCATE TABLE
對於此目的不起作用,因為這只會移除表格資料;資料節點會繼續儲存NDBCLUSTER
表格的定義,直到發出導致移除表格中繼資料的DROP TABLE
陳述式。
如需有關
DROP NODEGROUP
的更多資訊,請參閱第 25.6.7 節,「線上新增 NDB 叢集資料節點」。ENTER SINGLE USER MODE
node_id
進入單一使用者模式,在此模式下,只允許由節點 ID
node_id
識別的 MySQL 伺服器存取資料庫。ndb_mgm 用戶端會提供明確的確認,表明已發出此命令且已生效,如下所示
ndb_mgm> ENTER SINGLE USER MODE 100 Single user mode entered Access is granted for API node 100 only.
此外,在單一使用者模式下具有獨佔存取權的 API 或 SQL 節點會在
SHOW
命令的輸出中指出,如下所示ndb_mgm> SHOW Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=5 @127.0.0.1 (mysql-8.4.0 ndb-8.4.0, single user mode, Nodegroup: 0, *) id=6 @127.0.0.1 (mysql-8.4.0 ndb-8.4.0, single user mode, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=50 @127.0.0.1 (mysql-8.4.0 ndb-8.4.0) [mysqld(API)] 2 node(s) id=100 @127.0.0.1 (mysql-8.4.0 ndb-8.4.0, allowed single user) id=101 (not connected, accepting connect from any host)
結束單一使用者模式,使所有 SQL 節點(即所有執行中的 mysqld 程序)都可以存取資料庫。
注意即使不在單一使用者模式下也可以使用
EXIT SINGLE USER MODE
,但此命令在此情況下無效。顯示所有可用命令的相關資訊。
切換節點日誌中的除錯記錄,效果如同使用
--verbose
選項啟動受影響的資料節點一樣。NODELOG DEBUG ON
開啟除錯記錄;NODELOG DEBUG OFF
關閉除錯記錄。將 ndb_mgm 顯示的提示字元變更為字串文字
提示字元
。提示字元
不應使用引號 (除非您希望提示字元包含引號)。與 mysql 用戶端不同,特殊字元序列和跳脫字元不被識別。如果未帶任何引數呼叫,此命令會將提示字元重設為預設值 (ndb_mgm>
)。此處顯示一些範例
ndb_mgm> PROMPT mgm#1: mgm#1: SHOW Cluster Configuration ... mgm#1: PROMPT mymgm > mymgm > PROMPT 'mymgm:' 'mymgm:' PROMPT mymgm: mymgm: PROMPT ndb_mgm> EXIT $>
請注意,
提示字元
字串中開頭的空格和內部的空格不會被刪除。尾隨的空格會被刪除。終止管理用戶端。
此命令不影響任何連接到叢集的節點。
顯示由
節點ID
識別的資料節點,或使用ALL
顯示所有資料節點的報告類型
報告。目前,
報告類型
接受三個值BackupStatus
提供正在進行的叢集備份的狀態報告MemoryUsage
顯示每個資料節點正在使用的資料記憶體和索引記憶體數量,如下例所示ndb_mgm> ALL REPORT MEMORY Node 1: Data usage is 5%(177 32K pages of total 3200) Node 1: Index usage is 0%(108 8K pages of total 12832) Node 2: Data usage is 5%(177 32K pages of total 3200) Node 2: Index usage is 0%(108 8K pages of total 12832)
此資訊也可從
ndbinfo.memoryusage
資料表取得。EventLog
報告來自一個或多個資料節點的事件日誌緩衝區中的事件。
報告類型
不區分大小寫,且是「模糊」;對於MemoryUsage
,您可以使用MEMORY
(如先前範例所示)、memory
甚至是簡單的MEM
(或mem
)。您可以使用類似的方式縮寫BackupStatus
。節點ID
RESTART [-n] [-i] [-a] [-f]重新啟動由
節點ID
識別的資料節點(或所有資料節點)。將
-i
選項與RESTART
一起使用會導致資料節點執行初始重新啟動;也就是說,節點的檔案系統會被刪除並重新建立。其效果與停止資料節點程序,然後使用系統 Shell 中的 ndbd--initial
重新啟動它所獲得的效果相同。注意使用此選項時,不會移除備份檔案和磁碟資料檔案。
使用
-n
選項會導致重新啟動資料節點程序,但直到發出適當的START
命令後,資料節點才會實際連線。此選項的效果與停止資料節點,然後使用系統 Shell 中的 ndbd--nostart
或 ndbd-n
重新啟動它所獲得的效果相同。使用
-a
會導致中止所有目前依賴此節點的交易。節點重新加入叢集時,不會執行 GCP 檢查。通常,如果讓節點離線會導致叢集不完整,
RESTART
會失敗。-f
選項會強制節點重新啟動,而不檢查此情況。如果使用此選項且結果是叢集不完整,則會重新啟動整個叢集。顯示關於叢集和叢集節點的基本資訊。對於所有節點,輸出會包括節點的 ID、類型和
NDB
軟體版本。如果節點已連線,也會顯示其 IP 位址;否則輸出會顯示not connected, accepting connect from
,對於允許從任何位址連線的節點,則使用ip_address
any host
。此外,對於資料節點,如果節點尚未啟動,輸出會包括
starting
,並顯示節點所屬的節點群組。如果資料節點作為主要節點,則會以星號 (*
) 表示。考慮一個其組態檔案包含此處所示資訊的叢集 (為了清楚起見,省略了其他可能的設定)
[ndbd default] DataMemory= 128G NoOfReplicas= 2 [ndb_mgmd] NodeId=50 HostName=198.51.100.150 [ndbd] NodeId=5 HostName=198.51.100.10 DataDir=/var/lib/mysql-cluster [ndbd] NodeId=6 HostName=198.51.100.20 DataDir=/var/lib/mysql-cluster [ndbd] NodeId=7 HostName=198.51.100.30 DataDir=/var/lib/mysql-cluster [ndbd] NodeId=8 HostName=198.51.100.40 DataDir=/var/lib/mysql-cluster [mysqld] NodeId=100 HostName=198.51.100.100 [api] NodeId=101
在啟動此叢集 (包括一個 SQL 節點) 之後,
SHOW
會顯示以下輸出ndb_mgm> SHOW Connected to Management Server at: localhost:1186 (using cleartext) Cluster Configuration --------------------- [ndbd(NDB)] 4 node(s) id=5 @198.51.100.10 (mysql-8.4.0 ndb-8.4.0, Nodegroup: 0, *) id=6 @198.51.100.20 (mysql-8.4.0 ndb-8.4.0, Nodegroup: 0) id=7 @198.51.100.30 (mysql-8.4.0 ndb-8.4.0, Nodegroup: 1) id=8 @198.51.100.40 (mysql-8.4.0 ndb-8.4.0, Nodegroup: 1) [ndb_mgmd(MGM)] 1 node(s) id=50 @198.51.100.150 (mysql-8.4.0 ndb-8.4.0) [mysqld(API)] 2 node(s) id=100 @198.51.100.100 (mysql-8.4.0 ndb-8.4.0) id=101 (not connected, accepting connect from any host)
此命令的輸出也會指出叢集何時處於單一使用者模式 (請參閱
ENTER SINGLE USER MODE
命令以及 第 25.6.6 節「NDB 叢集單一使用者模式」 的描述)。它也會指出當此模式生效時,哪個 API 或 SQL 節點具有獨佔存取權。關閉所有叢集資料節點和管理節點。完成此操作後,若要結束管理用戶端,請使用
EXIT
或QUIT
。此命令不會關閉任何連線到叢集的 SQL 節點或 API 節點。
使由
節點ID
識別的資料節點(或所有資料節點)連線。ALL START
僅適用於所有資料節點,且不影響管理節點。重要事項若要使用此命令讓資料節點連線,必須使用
--nostart
或-n
啟動資料節點。顯示由
節點ID
識別的資料節點(或所有資料節點)的狀態資訊。可能的節點狀態值包括
UNKNOWN
、NO_CONTACT
、NOT_STARTED
、STARTING
、STARTED
、SHUTTING_DOWN
和RESTARTING
。此命令的輸出也會指出叢集何時處於單一使用者模式。
停止由
節點ID
識別的資料節點或管理節點。注意ALL STOP
僅適用於停止所有資料節點,且不影響管理節點。受此命令影響的節點會從叢集中斷連線,且其相關聯的 ndbd 或 ndb_mgmd 程序會終止。
-a
選項會導致立即停止節點,而不等待任何擱置交易完成。通常,如果結果會導致叢集不完整,
STOP
會失敗。-f
選項會強制節點關閉,而不檢查此情況。如果使用此選項且結果是叢集不完整,則會立即關閉叢集。警告使用
-a
選項也會停用在呼叫STOP
時執行,以確保停止節點不會導致叢集不完整的安全檢查。換句話說,您在使用具有STOP
命令的-a
選項時應格外小心,因為此選項可能會導致叢集強制關閉,因為它不再具有儲存在NDB
中的所有資料的完整副本。顯示叢集 TLS 資訊,例如目前連線是否使用 TLS、管理節點目前已知的 TLS 憑證,以及管理節點的總連線數、升級至 TLS 的連線數和授權失敗次數。此處顯示範例輸出
ndb_mgm> TLS INFO Session ID: 1 Peer address: 127.0.0.1 Certificate name: NDB Management Node Jun 2023 Certificate serial: B5:23:8F:D1:11:85:E5:93:ED Certificate expires: 23-Nov-2023 Server statistics since restart Total accepted connections: 6 Total connections upgraded to TLS: 2 Current connections: 3 Current connections using TLS: 2 Authorization failures: 0 ndb_mgm>
如需詳細資訊,請參閱第 25.6.15 節「NDB 叢集的 TLS 連結加密」。
其他命令。ndb_mgm 用戶端中可用的許多其他命令會在其他地方說明,如下列清單所示
可以使用
START BACKUP
命令,在 ndb_mgm 客戶端中執行線上備份;而ABORT BACKUP
命令則用於取消正在進行中的備份。欲瞭解更多資訊,請參閱 第 25.6.8 節,「NDB Cluster 的線上備份」。可以使用
CLUSTERLOG
命令來執行各種記錄功能。請參閱 第 25.6.3 節,「在 NDB Cluster 中產生的事件報告」,以取得更多資訊和範例。如本節前面所述,NODELOG DEBUG
可以啟用或停用節點日誌中的除錯輸出。為了測試和診斷工作,客戶端支援
DUMP
命令,可用於在叢集上執行內部命令。除非 MySQL 支援部門指示,否則絕不應在生產環境中使用。欲瞭解更多資訊,請參閱 NDB Cluster 管理客戶端 DUMP 命令。