主要な構成ファイルに加えて、管理クライアント ndb_mgm から使用可能なコマンド行インタフェースによって、クラスタを制御することもできます。 これは、実行中のクラスタへのプライマリ管理インタフェースです。
イベントログのコマンドは、セクション23.5.3「NDB Cluster で生成されるイベントレポート」に示しています。バックアップを作成するためのコマンドと、バックアップからリストアするためのコマンドは、セクション23.5.8「NDB Cluster のオンラインバックアップ」で説明しています。
MySQL Cluster Manager での ndb_mgm の使用.
MySQL Cluster Manager 1.4.8 は NDB 8.0 を完全にサポートします。MySQL Cluster Manager はプロセスの起動と停止を内部的に処理し、その状態を追跡するため、MySQL Cluster Manager 制御下にある NDB Cluster のこれらのタスクに ndb_mgm を使用する必要はありません。 NDB Cluster 配布に付属の ndb_mgm コマンドラインクライアントを使用して、ノードの起動または停止を伴う操作を実行しないことをお勧めします。 これらには、START
、STOP
、RESTART
、および SHUTDOWN
が含まれますが、これだけに限定されません。 詳細は、MySQL Cluster Manager Process Commandsを参照してください。
管理クライアントには、次のような基本的なコマンドが用意されています。 次のリストで、node_id
はデータノード ID またはキーワード ALL
のいずれかを示します。これは、コマンドをすべてのクラスタデータノードに適用する必要があることを示します。
-
使用可能なすべてのコマンドに関する情報を表示します。
-
接続文字列で示される管理サーバーに接続します。 クライアントがすでにこのサーバーに接続されている場合、クライアントは再接続します。
-
クラスタのステータスに関する情報を表示します。 可能性のあるノードステータスの値には、
UNKNOWN
、NO_CONTACT
、NOT_STARTED
、STARTING
、STARTED
、SHUTTING_DOWN
、およびRESTARTING
が含まれます。このコマンドからの出力には、クラスタがシングルユーザーモード (ステータス
SINGLE USER MODE
) になるタイミングも示されます。 NDB 8.0.17 以降では、このモードが有効な場合、どの API または SQL ノードが排他的アクセスを持つかも示します。これは、クラスタに接続されているすべてのデータノードおよび管理ノードが 8.0.17 以降のバージョンである場合にのみ機能します。 -
node_id
によって識別されるデータノード (またはすべてのデータノード) をオンラインにします。ALL START
はすべてのデータノードでのみ動作し、管理ノードには影響を与えません。重要このコマンドを使用してデータノードをオンラインにするには、
--nostart
または-n
を使用してデータノードが起動されている必要があります。 -
node_id
によって識別されるデータノードまたは管理ノードを停止します。注記ALL STOP
は、すべてのデータノードのみを停止するように機能し、管理ノードには影響しません。このコマンドの影響を受けるノードはクラスタから切断され、それに関連付けられた ndbd または ndb_mgmd プロセスは終了します。
-a
オプションを使用すると、保留中のトランザクションが完了するまで待機せずに、すぐにノードが停止されます。通常、結果として不完全なクラスタが生成される場合は、
STOP
に失敗します。-f
オプションを使用すると、これをチェックせずに、強制的にノードがシャットダウンされます。 このオプションが使用され、結果が不完全なクラスタである場合は、すぐにクラスタがシャットダウンします。警告また、
-a
オプションを使用すると、ノードが停止されても不完全なクラスタが生成されないように、STOP
の呼び出し時に本来実行される安全性チェックも無効になります。 つまり、STOP
コマンドで-a
オプションを使用すると、クラスタはNDB
に格納されたすべてのデータの完全なコピーを保持しなくなるため、強制的にシャットダウンされる可能性があることにより、このオプションを使用する際は、細心の注意を払うようにしてください。 -
node_id
RESTART [-n] [-i] [-a] [-f]node_id
によって識別されるデータノード (またはすべてのデータノード) を再起動します。RESTART
で-i
オプションを使用すると、データノードは初期再起動を実行します。つまり、ノードファイルシステムが削除され、再作成されます。 この効果は、データノードのプロセスを停止してから、システムシェルから ndbd--initial
を使用して再起動した場合と同じです。注記このオプションを使用した場合、バックアップファイルおよびディスクデータファイルは削除されません。
-n
オプションを使用するとデータノードプロセスが再起動されますが、実際には、適切なSTART
コマンドが発行されるまでデータノードはオンラインになりません。 このオプションの効果は、データノードを停止してから、システムシェルから ndbd--nostart
または ndbd-n
を使用して再起動した場合と同じです。-a
を使用すると、このノードに依存している現在のトランザクションがすべて中止されます。 ノードがクラスタに再度参加するときは、GCP チェックが実行されません。通常、ノードをオフラインにしたことで不完全なクラスタが生成される場合は、
RESTART
が失敗します。-f
オプションを使用すると、これをチェックせずに、強制的にノードが再起動されます。 このオプションが使用され、結果が不完全なクラスタである場合は、クラスタ全体が再起動されます。 -
node_id
によって識別されるデータノード (またはすべてのデータノード) のステータス情報を表示します。このコマンドからの出力には、クラスタがシングルユーザーモードになるタイミングも示されます。
-
node_id
によって識別されるデータノード、またはALL
を使用するすべてのデータノードに対するreport-type
タイプのレポートを表示します。現在、
report-type
には次の 3 つの許容値があります: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
は、1 つ以上のデータノードのイベントログバッファーからイベントを報告します。
report-type
は大文字と小文字が区別されず、「あいまい」です。MemoryUsage
では、MEMORY
(前述の例で示すとおり)、memory
、または単にMEM
(またはmem
) を使用できます。BackupStatus
も同様に短縮できます。 -
ENTER SINGLE USER MODE
node_id
シングルユーザーモードを開始します。これにより、ノード ID
node_id
によって識別される MySQL サーバーにのみデータベースへのアクセスが許可されます。NDB 8.0.17 以降、ndb_mgm クライアントは、次に示すように、このコマンドが発行されて有効になったことを明確に確認します:
ndb_mgm> ENTER SINGLE USER MODE 100 Single user mode entered Access is granted for API node 100 only.
また、NDB 8.0.17 以降では、シングルユーザーモードのときに排他的アクセスを持つ API または SQL ノードは、次のように
SHOW
コマンドの出力に示されます:ndb_mgm> SHOW Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=5 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17, single user mode, Nodegroup: 0, *) id=6 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17, single user mode, Nodegroup: 0) [ndb_mgmd(MGM)] 1 node(s) id=50 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17) [mysqld(API)] 2 node(s) id=100 @127.0.0.1 (mysql-8.0.17 ndb-8.0.17, allowed single user) id=101 (not connected, accepting connect from any host)
注記この機能を有効にするには、すべてのデータおよび管理ノードで NDB Cluster ソフトウェアのバージョン 8.0.17 が実行されている必要があります。
-
シングルユーザーモードを終了します。これにより、すべての SQL ノード (つまり、実行中のすべての mysqld プロセス) がデータベースにアクセスできます。
注記シングルユーザーモードでないときでも、
EXIT SINGLE USER MODE
を使用できますが、この場合、コマンドの効果はありません。 -
管理クライアントを終了します。
このコマンドは、クラスタに接続されているノードに影響を与えません。
-
すべてのクラスタデータノードおよび管理ノードをシャットダウンします。 これが実行されたあとに管理クライアントを終了するには、
EXIT
またはQUIT
を使用します。このコマンドは、クラスタに接続しているどの SQL ノードまたは API ノードもシャットダウンしません。
-
CREATE NODEGROUP
nodeid
[,nodeid
, ...]新しい NDB Cluster ノードグループを作成し、データノードを結合させます。
このコマンドは、NDB Cluster に新しいデータノードをオンラインで追加したあとに使用され、新しいノードグループに参加してクラスタへの参加を完全に開始します。 このコマンドは唯一のパラメータとして、ノード ID をカンマで区切ったリストを取りますが、これらは、先ほど追加した、新しいノードグループに参加することになるノードの ID です。 ノードの数は、すでにクラスタの一部である各ノードグループ内のノードの数と同じである必要があります (NDB Cluster ノードグループごとに同じ数のノードを持つ必要があります)。 つまり、NDB Cluster にそれぞれ 2 つのデータノードの 2 つのノードグループがある場合、新しいノードグループにも 2 つのデータノードが必要です。
このコマンドで作成された新しいノードグループのノードグループ ID は自動的に決定され、常に、クラスタ内で次に最大の未使用のノードグループ ID となり、手動で設定することはできません。
詳細は、セクション23.5.7「NDB Cluster データノードのオンラインでの追加」を参照してください。
-
指定された
nodegroup_id
の NDB Cluster ノードグループを削除します。このコマンドを使用すると、NDB Cluster からノードグループを削除できます。
DROP NODEGROUP
は唯一の引数として、削除するノードグループのノードグループ ID を取ります。DROP NODEGROUP
は、影響を受けるノードグループ内のデータグループをそのノードグループから削除するためにのみ機能します。 データノードは停止されず、別のノードグループにも割り当てられず、クラスタの構成からも削除されません。 ノードグループに属さないデータノードは、次のように (太字のテキストを使用して示すように)、ノードグループ ID の代わりに、no nodegroup
を付けた管理クライアントのSHOW
コマンドの出力に表示されます。id=3 @10.100.2.67 (8.0.23-ndb-8.0.23, no nodegroup)
DROP NODEGROUP
は、削除されるノードグループ内のすべてのデータノードに、テーブルデータやテーブル定義がまったく存在しない場合にのみ機能します。 現在は、ndb_mgm または mysql クライアントを使用して、特定のデータノードやノードグループからすべてのデータを削除する方法がないため、これは次のような 2 つの場合にのみコマンドが成功することを意味します。ndb_mgm クライアントで
CREATE NODEGROUP
を発行した後、mysql クライアントでALTER TABLE ... REORGANIZE PARTITION
ステートメントを発行する前。-
DROP TABLE
を使用してすべてのNDBCLUSTER
テーブルを削除したあと。TRUNCATE TABLE
はテーブルデータのみを削除するため、この目的では機能しません。テーブルのメタデータが削除されるDROP TABLE
ステートメントが発行されるまで、データノードには引き続きNDBCLUSTER
テーブルの定義が格納されます。
DROP NODEGROUP
の詳細は、セクション23.5.7「NDB Cluster データノードのオンラインでの追加」を参照してください。 -
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 jon@valhaj:~/bin>
prompt
文字列内の先頭の空白および空白は切り捨てられないことに注意してください。 末尾のスペースは削除されます。 -
node_id
NODELOG DEBUG {ON|OFF}影響を受けるデータノードが
--verbose
オプションで起動されたかのように、ノードログ内のデバッグロギングを切り替えます。NODELOG DEBUG ON
はデバッグロギングを開始します。NODELOG DEBUG OFF
はデバッグロギングをオフに切り替えます。
その他のコマンド. 次のリストに示すように、ndb_mgm クライアントで使用可能なその他の多くのコマンドについては、別の場所で説明します:
START BACKUP
は、ndb_mgm クライアントでオンラインバックアップを実行するために使用されます。ABORT BACKUP
コマンドは、すでに進行中のバックアップを取り消すために使用されます。 詳細は、セクション23.5.8「NDB Cluster のオンラインバックアップ」を参照してください。CLUSTERLOG
コマンドは、様々なロギング機能を実行するために使用します。 詳細および例については、セクション23.5.3「NDB Cluster で生成されるイベントレポート」を参照してください。 このセクションで前述したように、NODELOG DEBUG
はノードログのデバッグ出力をアクティブ化または非アクティブ化します。テストおよび診断作業のために、クライアントは、クラスタで内部コマンドを実行するために使用できる
DUMP
コマンドをサポートしています。 MySQL サポートから指示されないかぎり、本番設定では使用しないでください。 詳細は、MySQL NDB Cluster Internals Manualを参照してください。