除了中央組態檔之外,叢集也可以透過管理用戶端ndb_mgm提供的命令列介面進行控制。這是執行中叢集的主要管理介面。
事件日誌的命令在第 25.6.3 節,「在NDB叢集中產生的事件報告」中給出;建立備份和從備份還原的命令在第 25.6.8 節,「NDB叢集的線上備份」中提供。
使用ndb_mgm與MySQL叢集管理器。 MySQL叢集管理器處理啟動和停止程序,並在內部追蹤其狀態,因此對於在MySQL叢集管理器控制下的NDB叢集,無需使用ndb_mgm來執行這些任務。建議不要使用NDB叢集發行版本隨附的ndb_mgm命令列用戶端來執行涉及啟動或停止節點的操作。這些操作包括但不限於START
、STOP
、RESTART
和SHUTDOWN
命令。如需更多資訊,請參閱MySQL叢集管理器程序命令。
管理用戶端具有以下基本命令。在下面的列表中,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 (9.0.0-ndb-9.0.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-9.0.0 ndb-9.0.0, single user mode, Nodegroup: 0, *) id=6 @127.0.0.1 (mysql-9.0.0 ndb-9.0.0, single user mode, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=50 @127.0.0.1 (mysql-9.0.0 ndb-9.0.0) [mysqld(API)] 2 node(s) id=100 @127.0.0.1 (mysql-9.0.0 ndb-9.0.0, allowed single user) id=101 (not connected, accepting connect from any host)
結束單一使用者模式,讓所有SQL節點(即所有執行的mysqld程序)存取資料庫。
注意即使不在單一使用者模式下,也可以使用
EXIT SINGLE USER MODE
,儘管在這種情況下該命令沒有任何作用。顯示所有可用命令的資訊。
node_id
NODELOG DEBUG {ON|OFF}切換節點日誌中的除錯記錄,如同受影響的資料節點已使用
--verbose
選項啟動一樣。NODELOG DEBUG ON
會開始除錯記錄;NODELOG DEBUG OFF
會關閉除錯記錄。將 ndb_mgm 顯示的提示符號變更為字串常值
prompt
。prompt
不應加上引號(除非您希望提示符號包含引號)。與 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 $>
請注意,前導空格和
prompt
字串內的空格不會被修剪。尾隨空格會被移除。終止管理用戶端。
此指令不會影響連線到叢集的任何節點。
顯示由
node_id
識別的資料節點,或使用ALL
顯示所有資料節點的report-type
類型的報告。目前,
report-type
接受三個值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
從一或多個資料節點的事件日誌緩衝區報告事件。
report-type
不區分大小寫,並且是「模糊的」;對於MemoryUsage
,您可以使用MEMORY
(如先前的範例所示)、memory
,甚至簡稱MEM
(或mem
)。您可以類似的方式縮寫BackupStatus
。node_id
RESTART [-n] [-i] [-a] [-f]重新啟動由
node_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-9.0.0 ndb-9.0.0, Nodegroup: 0, *) id=6 @198.51.100.20 (mysql-9.0.0 ndb-9.0.0, Nodegroup: 0) id=7 @198.51.100.30 (mysql-9.0.0 ndb-9.0.0, Nodegroup: 1) id=8 @198.51.100.40 (mysql-9.0.0 ndb-9.0.0, Nodegroup: 1) [ndb_mgmd(MGM)] 1 node(s) id=50 @198.51.100.150 (mysql-9.0.0 ndb-9.0.0) [mysqld(API)] 2 node(s) id=100 @198.51.100.100 (mysql-9.0.0 ndb-9.0.0) id=101 (not connected, accepting connect from any host)
此指令的輸出也會指示叢集何時處於單一使用者模式(請參閱
ENTER SINGLE USER MODE
指令的描述,以及 第 25.6.6 節「NDB 叢集單一使用者模式」)。它也會指示此模式生效時哪個 API 或 SQL 節點具有獨佔存取權。關閉所有叢集資料節點和管理節點。若要在此完成後結束管理用戶端,請使用
EXIT
或QUIT
。此指令不會關閉連線到叢集的任何 SQL 節點或 API 節點。
將由
node_id
識別的資料節點(或所有資料節點)上線。ALL START
僅適用於所有資料節點,並且不會影響管理節點。重要若要使用此指令讓資料節點上線,資料節點必須已使用
--nostart
或-n
啟動。顯示由
node_id
識別的資料節點(或所有資料節點)的狀態資訊。可能的節點狀態值包括
UNKNOWN
、NO_CONTACT
、NOT_STARTED
、STARTING
、STARTED
、SHUTTING_DOWN
和RESTARTING
。此指令的輸出也會指示叢集何時處於單一使用者模式。
停止由
node_id
識別的資料或管理節點。注意ALL STOP
僅適用於停止所有資料節點,並且不會影響管理節點。受此指令影響的節點會與叢集斷線,且其相關聯的 ndbd 或 ndb_mgmd 程序終止。
-a
選項會導致立即停止節點,而不會等待任何擱置交易完成。通常,如果結果會導致叢集不完整,則
STOP
會失敗。-f
選項會強制節點關閉,而無需檢查這一點。如果使用此選項且結果導致叢集不完整,則叢集會立即關閉。警告使用
-a
選項也會停用在呼叫STOP
時執行的安全檢查,以確保停止節點不會導致叢集不完整。換句話說,當將-a
選項與STOP
指令搭配使用時,應格外小心,因為此選項可能會強制叢集關閉,原因是它不再具有儲存在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 叢集的線上備份」。