MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

23.4.1 ndbd — NDB Cluster データノードデーモン

ndbd は、NDB Cluster ストレージエンジンを使用してテーブル内のすべてのデータを処理するために使用されるプロセスです。 これは、分散型トランザクションの処理、ノードのリカバリ、ディスクでのチェックポイントの実行、オンラインバックアップ、および関連するタスクをデータノードが行うことができるようにするプロセスです。

NDB Cluster では、一連の ndbd プロセスが連携してデータを処理します。 これらのプロセスは、同じコンピュータ (ホスト) 上または別個のコンピュータ上で実行できます。 データノードと Cluster ホストの通信は詳細に構成できます。

次のテーブルに、NDB Cluster データノードプログラム ndbd に固有のコマンドオプションを示します。 追加説明が表のあとにあります。 ほとんどの NDB Cluster プログラム (ndbd を含む) に共通のオプションについては、セクション23.4.32「NDB Cluster プログラムに共通のオプション — NDB Cluster プログラムに共通のオプション」 を参照してください。

表 23.24 プログラムで使用されるコマンドライン・オプション ndbd

形式 説明 追加、非推奨、または削除された

--bind-address=name

ローカルバインドアドレス

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--connect-delay=#

管理サーバーへの接続を試行する間隔 (秒)。0 は試行の間待機しないことを意味

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--connect-retries=#

中止する前に接続を再試行する回数を設定します。0 は 1 回の試行のみを意味し、再試行は行われません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--connect-retry-delay=#

管理サーバーへの接続を試行する間隔 (秒)。0 は試行の間待機しないことを意味

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--daemon,

-d

ndbd をデーモンとして開始します (デフォルト)。オーバーライドするには --nodaemon を指定します

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--foreground

ndbd をフォアグラウンドで実行します。デバッグのために提供されています (--nodaemon の意味を含みます)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--initial

ndbd の初期起動 (ファイルシステムのクリーンアップを含む) を実行します。このオプションを使用する前にドキュメントを参照してください

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--initial-start

部分的な初期起動を実行します (--nowait-nodes が必要です)

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--install[=name]

データノードプロセスを Windows サービスとしてインストールするために使用します。他のプラットフォームには適用されません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--logbuffer-size=#

ログバッファのサイズを制御します。多くのログメッセージを生成してデバッグする場合に使用します。通常の操作にはデフォルトで十分です

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--nodaemon

ndbd をデーモンとして開始しません。テストのために提供されています

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--nostart,

-n

ndbd をすぐに起動しないでください。ndbd はコマンドが ndb_mgm から起動するまで待機

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--nowait-nodes=list

これらのデータノードが起動するまで待機しないでください (ノード ID のコンマ区切りリストを取ります)。--ndb-nodeid が必要です

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--remove[=name]

以前に Windows サービスとしてインストールされたデータノードプロセスを削除するために使用します。他のプラットフォームには適用されません

(MySQLに基づくすべてのNDBリリースでサポート 8.0)

--verbose,

-v

追加のデバッグ情報をノードログに書き込みます

(MySQLに基づくすべてのNDBリリースでサポート 8.0)


注記

これらのオプションはすべて、このプログラム (ndbmtd) のマルチスレッドバージョンにも適用され、このセクションで後者が発生した場合は常に、ndbd のかわりに ndbmtd を使用できます。

ndbd は、config.ini 構成ファイルの DataDir で指定されているディレクトリに配置される一連のログファイルを生成します。

これらのログファイルを次に示します。node_id は、ノードの一意の識別子です。 たとえば、ndb_2_error.log はノード ID が 2 のデータノードによって生成されたエラーログです。

NFS を使用してマウントしたディレクトリは使用しないことをお勧めします。一部の環境では、プロセスが終了しても .pid ファイルに対するロックが有効なままとなる問題が発生することがあるためです。

ndbd を開始する場合、管理サーバーのホスト名およびそれが待機するポートも指定する必要があることがあります。 必要に応じて、プロセスが使用するノード ID を指定することもできます。

shell> ndbd --connect-string="nodeid=2;host=ndb_mgmd.mysql.com:1186"

これについての詳細は、セクション23.3.3.3「NDB Cluster 接続文字列」を参照してください。セクション23.4.32「NDB Cluster プログラムに共通のオプション — NDB Cluster プログラムに共通のオプション」では、ndbd で使用できるその他のコマンド行オプションについて説明しています。 データノード構成パラメータについては、セクション23.3.3.6「NDB Cluster データノードの定義」を参照してください。

ndbd が開始されると、実際には 2 つのプロセスが開始されます。 最初のプロセスはエンジェルプロセスと呼ばれ、その唯一の役割は実行プロセスが完了したときにそれを検出し、ndbd プロセスを再起動することです (そのように構成されている場合)。 このため、UNIX の kill コマンドを使用して ndbd を強制終了しようとする場合は、両方のプロセスを強制終了する必要があります (エンジェルプロセスが最初)。 ndbd プロセスを終了させるための推奨される方法は、管理クライアントを使用してそこからプロセスを停止することです。

実行プロセスは、データの読み取り、書き込み、スキャン、およびほかのすべてのアクティビティーに 1 つのスレッドを使用します。 数千の同時アクションを容易に処理できるように、このスレッドは非同期に実装されます。 また、監視スレッドは実行スレッドが無限ループでハングアップしないように管理します。 スレッドのプールによってファイル I/O が処理され、各スレッドは 1 つのオープンファイルを処理できます。 スレッドは ndbd プロセスのトランスポーターによるトランスポーター接続に使用することもできます。 多数の操作 (更新を含む) を実行するマルチプロセッサーシステムの場合、ndbd プロセスは最大 2 つの CPU を使用できます (許可されている場合)。

多数の CPU を持つマシンの場合は、異なるノードグループに属する複数の ndbd プロセスを使用できます。ただし、そのような構成はまだ実験的と見なされ、MySQL 8.0 の本番設定ではサポートされません。 セクション23.1.7「NDB Cluster の既知の制限事項」を参照してください。