MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  NDB Cluster 管理クライアントのコマンド

23.5.1 NDB Cluster 管理クライアントのコマンド

主要な構成ファイルに加えて、管理クライアント 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 コマンドラインクライアントを使用して、ノードの起動または停止を伴う操作を実行しないことをお勧めします。 これらには、STARTSTOPRESTART、および SHUTDOWN が含まれますが、これだけに限定されません。 詳細は、MySQL Cluster Manager Process Commandsを参照してください。

管理クライアントには、次のような基本的なコマンドが用意されています。 次のリストで、node_id はデータノード ID またはキーワード ALL のいずれかを示します。これは、コマンドをすべてのクラスタデータノードに適用する必要があることを示します。

  • HELP

    使用可能なすべてのコマンドに関する情報を表示します。

  • CONNECT connection-string

    接続文字列で示される管理サーバーに接続します。 クライアントがすでにこのサーバーに接続されている場合、クライアントは再接続します。

  • SHOW

    クラスタのステータスに関する情報を表示します。 可能性のあるノードステータスの値には、UNKNOWNNO_CONTACTNOT_STARTEDSTARTINGSTARTEDSHUTTING_DOWN、および RESTARTING が含まれます。

    このコマンドからの出力には、クラスタがシングルユーザーモード (ステータス SINGLE USER MODE) になるタイミングも示されます。 NDB 8.0.17 以降では、このモードが有効な場合、どの API または SQL ノードが排他的アクセスを持つかも示します。これは、クラスタに接続されているすべてのデータノードおよび管理ノードが 8.0.17 以降のバージョンである場合にのみ機能します。

  • node_id START

    node_id によって識別されるデータノード (またはすべてのデータノード) をオンラインにします。

    ALL START はすべてのデータノードでのみ動作し、管理ノードには影響を与えません。

    重要

    このコマンドを使用してデータノードをオンラインにするには、--nostart または -n を使用してデータノードが起動されている必要があります。

  • node_id STOP [-a] [-f]

    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 STATUS

    node_id によって識別されるデータノード (またはすべてのデータノード) のステータス情報を表示します。

    このコマンドからの出力には、クラスタがシングルユーザーモードになるタイミングも示されます。

  • node_id REPORT report-type

    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 が実行されている必要があります。

  • EXIT SINGLE USER MODE

    シングルユーザーモードを終了します。これにより、すべての SQL ノード (つまり、実行中のすべての mysqld プロセス) がデータベースにアクセスできます。

    注記

    シングルユーザーモードでないときでも、EXIT SINGLE USER MODE を使用できますが、この場合、コマンドの効果はありません。

  • QUIT, EXIT

    管理クライアントを終了します。

    このコマンドは、クラスタに接続されているノードに影響を与えません。

  • SHUTDOWN

    すべてのクラスタデータノードおよび管理ノードをシャットダウンします。 これが実行されたあとに管理クライアントを終了するには、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 データノードのオンラインでの追加」を参照してください。

  • DROP NODEGROUP nodegroup_id

    指定された 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 つの場合にのみコマンドが成功することを意味します。

    1. ndb_mgm クライアントで CREATE NODEGROUP を発行した後、mysql クライアントで ALTER TABLE ... REORGANIZE PARTITION ステートメントを発行する前。

    2. DROP TABLE を使用してすべての NDBCLUSTER テーブルを削除したあと。

      TRUNCATE TABLE はテーブルデータのみを削除するため、この目的では機能しません。テーブルのメタデータが削除される DROP TABLE ステートメントが発行されるまで、データノードには引き続き NDBCLUSTER テーブルの定義が格納されます。

    DROP NODEGROUP の詳細は、セクション23.5.7「NDB Cluster データノードのオンラインでの追加」を参照してください。

  • PROMPT [prompt]

    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を参照してください。


関連キーワード:  NDB, ノード, テーブル, ndbinfo, データ, ndb, コマンド, クラスタ, 管理, グループ