主要な構成ファイルに加えて、管理クライアント ndb_mgm から使用可能なコマンド行インタフェースによって、クラスタを制御することもできます。これは、実行中のクラスタへのプライマリ管理インタフェースです。
イベントログのコマンドは、セクション18.5.6「MySQL Cluster で生成されたイベントレポート」に示しています。バックアップを作成するためのコマンドと、バックアップからリストアするためのコマンドは、セクション18.5.3「MySQL Cluster のオンラインバックアップ」で説明しています。
MySQL Cluster Manager での ndb_mgm の使用
MySQL Cluster Manager では、プロセスの起動と停止が処理され、プロセスの状態が内部で追跡されるため、MySQL Cluster Manager の制御下にある MySQL Cluster では、これらのタスクに、ndb_mgm を使用する必要がありません。ノードの起動または停止が伴う操作を実行する際には、MySQL 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
) になるタイミングも示されます。 -
node_id
によって識別されるデータノード (またはすべてのデータノード) をオンラインにします。ALL START
はすべてのデータノードでのみ動作し、管理ノードには影響を与えません。重要このコマンドを使用してデータノードをオンラインにするには、ndbd
--nostart
または ndbd-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
には次の 2 つの値が許可されています。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
テーブルから取得することもできます。
report-type
は大文字と小文字が区別されず、「あいまい」です。MemoryUsage
では、MEMORY
(前述の例で示すとおり)、memory
、または単にMEM
(またはmem
) を使用できます。BackupStatus
も同様に短縮できます。 -
ENTER SINGLE USER MODE
node_id
シングルユーザーモードを開始します。これにより、ノード ID
node_id
によって識別される MySQL サーバーにのみデータベースへのアクセスが許可されます。現在、シングルユーザーモードで実行しているときは、データノードが MySQL Cluster に参加できません。(Bug #20395)
-
シングルユーザーモードを終了します。これにより、すべての SQL ノード (つまり、実行中のすべての mysqld プロセス) がデータベースにアクセスできます。
注記シングルユーザーモードでないときでも、
EXIT SINGLE USER MODE
を使用できますが、この場合、コマンドの効果はありません。 -
管理クライアントを終了します。
このコマンドは、クラスタに接続されているノードに影響を与えません。
-
すべてのクラスタデータノードおよび管理ノードをシャットダウンします。これが実行されたあとに管理クライアントを終了するには、
EXIT
またはQUIT
を使用します。このコマンドは、クラスタに接続しているどの SQL ノードまたは API ノードもシャットダウンしません。
-
CREATE NODEGROUP
nodeid
[,nodeid
, ...]新しい MySQL Cluster ノードグループを作成し、これにデータノードを参加させます。
このコマンドは、新しいデータノードをオンラインで MySQL Cluster に追加したあとに使用し、それらを新しいノードグループに参加させ、それによってクラスタへの完全な参加を開始します。このコマンドは唯一のパラメータとして、ノード ID をカンマで区切ったリストを取りますが、これらは、先ほど追加した、新しいノードグループに参加することになるノードの ID です。ノードの数は、すでにクラスタの一部になっている各ノードグループ内のノードの数と同じである必要があります (各 MySQL Cluster ノードグループは、同じ数のノードを持つ必要があります)。言い換えると、MySQL Cluster にそれぞれ 2 つのデータノードを持つ 2 つのノードグループが含まれている場合は、新しいノードグループも 2 つのデータノードを持つ必要があります。
このコマンドで作成された新しいノードグループのノードグループ ID は自動的に決定され、常に、クラスタ内で次に最大の未使用のノードグループ ID となり、手動で設定することはできません。
詳細は、セクション18.5.13「MySQL Cluster データノードのオンライン追加」を参照してください。
-
指定された
nodegroup_id
を持つ MySQL Cluster ノードグループを削除します。このコマンドを使用すると、MySQL Cluster からノードグループを削除できます。
DROP NODEGROUP
は唯一の引数として、削除するノードグループのノードグループ ID を取ります。DROP NODEGROUP
は、影響を受けるノードグループ内のデータグループをそのノードグループから削除するためにのみ機能します。データノードは停止されず、別のノードグループにも割り当てられず、クラスタの構成からも削除されません。ノードグループに属さないデータノードは、次のように (太字のテキストを使用して示すように)、ノードグループ ID の代わりに、no nodegroup
を付けた管理クライアントのSHOW
コマンドの出力に表示されます。id=3 @10.100.2.67 (5.6.22-ndb-7.4.4, no nodegroup)
MySQL Cluster NDB 7.0.4 よりも前では、
DROP NODEGROUP
のあとにSHOW
の出力が正しく更新されませんでした。(Bug #43413)DROP NODEGROUP
は、削除されるノードグループ内のすべてのデータノードに、テーブルデータやテーブル定義がまったく存在しない場合にのみ機能します。現在は、ndb_mgm または mysql クライアントを使用して、特定のデータノードやノードグループからすべてのデータを削除する方法がないため、これは次のような 2 つの場合にのみコマンドが成功することを意味します。ndb_mgm クライアントで
CREATE NODEGROUP
を発行してから、mysql クライアントで任意のALTER ONLINE TABLE ... REORGANIZE PARTITION
ステートメントを発行するまでの間。-
DROP TABLE
を使用してすべてのNDBCLUSTER
テーブルを削除したあと。TRUNCATE TABLE
はテーブルデータのみを削除するため、この目的では機能しません。テーブルのメタデータが削除されるDROP TABLE
ステートメントが発行されるまで、データノードには引き続きNDBCLUSTER
テーブルの定義が格納されます。
DROP NODEGROUP
の詳細は、セクション18.5.13「MySQL Cluster データノードのオンライン追加」を参照してください。