Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  MySQL Cluster 内の SQL ノードおよびその他の API ノードの定義

18.3.2.7 MySQL Cluster 内の SQL ノードおよびその他の API ノードの定義

config.ini ファイルの [mysqld] および [api] セクションでは、クラスタデータへのアクセスに使用される MySQL サーバー (SQL ノード) およびその他のアプリケーション (API ノード) が定義されます。示されているどのパラメータも必須ではありません。コンピュータ名またはホスト名が指定されていない場合は、任意のホストでこの SQL または API ノードを使用できます。

一般的には、[mysqld] セクションはクラスタへの SQL インタフェースを提供する MySQL サーバーを示すために使用され、[api] セクションはクラスタデータにアクセスする mysqld プロセス以外のアプリケーションのために使用されますが、この 2 つの指定は実際には同義です。たとえば、SQL ノードとして機能する MySQL サーバーのパラメータを [api] セクションに指定できます。

注記

MySQL Cluster 用の MySQL サーバーオプションについては、セクション18.3.4.2「MySQL Cluster 用の MySQL Server オプション」を参照してください。MySQL Cluster に関連する MySQL サーバーシステム変数については、セクション18.3.4.3「MySQL Cluster のシステム変数」を参照してください。

  • Id

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 符号なし [none] 1 - 255 IS

    Id は、すべてのクラスタ内部メッセージ内でノードを識別するために使用される整数値です。許容される値の範囲は、1-255 (これらを含む) です。この値は、ノードのタイプに関係なく、クラスタ内の各ノードで一意である必要があります。

    注記

    データノード ID は、使用する MySQL Cluster のバージョンに関係なく、49 未満である必要があります。多数のデータノードを配備する予定の場合は、API ノード (および管理ノード) のノード ID を 48 より大きい値に制限することをお勧めします。

    NodeId は、API ノードを識別するときに使用することが推奨されるパラメータ名です。(Id は、下位互換性に引き続き対応しますが、現在は非推奨であり、使用時に警告を生成します。また、これは今後削除される予定です。)

  • ConnectionMap

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 文字列 [none] ... N

    接続するデータノードを指定します。

  • NodeId

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 符号なし [none] 1 - 255 IS

    NodeId は、すべてのクラスタ内部メッセージ内でノードを識別するために使用される整数値です。許容される値の範囲は、1-255 (これらを含む) です。この値は、ノードのタイプに関係なく、クラスタ内の各ノードで一意である必要があります。

    注記

    データノード ID は、使用する MySQL Cluster のバージョンに関係なく、49 未満である必要があります。多数のデータノードを配備する予定の場合は、API ノード (および管理ノード) のノード ID を 48 より大きい値に制限することをお勧めします。

    NodeId は、管理ノードを識別するときに使用することが推奨されるパラメータ名です。MySQL Cluster の非常に古いバージョンでは、この目的のためにエイリアス (Id) が使用されていました。これは、下位互換性に引き続き対応していますが、現在は非推奨であり、使用時に警告を生成します。また、MySQL Cluster の今後のリリースで削除される予定です。

  • ExecuteOnComputer

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 name [none] ... S

    これは、構成ファイルの [computer] セクションに定義されたいずれかのコンピュータ (ホスト) に設定されている Id を参照します。

  • HostName

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 名前または IP アドレス [none] ... N

    このパラメータを指定すると、SQL ノード (API ノード) が配置されるコンピュータのホスト名が定義されます。ホスト名を指定するには、このパラメータまたは ExecuteOnComputer のいずれかが必要です。

    config.ini ファイルの特定の [mysql] または [api] セクションに HostName または ExecuteOnComputer が指定されていない場合、SQL または API ノードはネットワーク接続を確立できる任意のホストから対応するスロットを使用して管理サーバーホストマシンに接続できます。これは、ほかに指定されていない場合 localhostHostName として使用されるデータノードのデフォルトの動作とは異なります

  • ArbitrationRank

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 0-2 0 0 - 2 N

    このパラメータは、アービトレータとして機能できるノードを定義します。管理ノードと SQL ノードの両方がアービトレータになることができます。値 0 は、指定されたノードがアービトレータとして使用されないことを意味します。値 1 は、ノードにアービトレータとしての高い優先度を与えます。値 2 は低い優先度を与えます。通常の構成では、管理サーバーの ArbitrationRank が 1 (管理ノードのデフォルト) に設定され、各 SQL ノードでは 0 (SQL ノードのデフォルト) に設定されるため、管理サーバーがアービトレータとして使用されます。

    すべての管理および SQL ノードで ArbitrationRank を 0 に設定すると、アービトレーションを完全に無効化できます。このパラメーラをオーバーライドしてアービトレーションを制御することもできます。そのためには、config.ini グローバル構成ファイルの [ndbd default] セクションに Arbitration パラメータを設定します。

  • ArbitrationDelay

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 ミリ秒 0 0 - 4294967039 (0xFFFFFEFF) N

    このパラメータを 0 (デフォルト) 以外の値に設定すると、アービトレーション要求に対するアービトレータの応答が指定されたミリ秒数だけ遅延します。通常、この値を変更する必要はありません。

  • BatchByteSize

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 バイト 16K 1024 - 1M N

    フルテーブルスキャンまたはインデックスの範囲スキャンに変換されるクエリーでは、最良のパフォーマンスを得るため、適切にサイズ調整されたバッチでレコードをフェッチすることが重要です。レコード数 (BatchSize) とバイト数 (BatchByteSize) の両方で、適切なサイズを設定できます。実際のバッチサイズは両方のパラメータによって制限されます。

    このパラメータの設定方法によっては、クエリーの実行速度の変化率が 40% を超える可能性があります。

    このパラメータはバイト単位で測定されます。MySQL Cluster NDB 7.3 以降では、デフォルト値は 16K です。

  • BatchSize

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 レコード 256 1 - 992 N

    このパラメータはレコード数で測定され、デフォルトで 256 に設定されます。最大サイズは 992 です。

  • ExtraSendBufferMemory

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 バイト 0 0 - 4294967039 (0xFFFFFEFF) N

    このパラメータは、TotalSendBufferMemorySendBufferMemory、またはその両方を使用して設定されたメモリーに加えて割り当てられるトランスポータ送信バッファーメモリーの量を指定します。

  • HeartbeatThreadPriority

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 文字列 [none] ... S

    このパラメータを使用して、管理および API ノードのハートビートスレッドのスケジューリングポリシーと優先度を設定します。このパラメータを設定するための構文をここに示します。

    HeartbeatThreadPriority = policy[, priority]
    
    policy:
      {FIFO | RR}
    

    このパラメータを設定するときは、ポリシーを指定する必要があります。これは、FIFO (先入れ先出し) または RR (ラウンドロビン) のいずれかです。このあとに、オプションで優先度 (整数) を指定できます。

  • MaxScanBatchSize

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 バイト 256K 32K - 16M N

    バッチサイズは、各データノードから送信される各バッチのサイズです。多数のノードから並列で受信される過大なデータ量から MySQL サーバーを保護するため、ほとんどのスキャンは並列で実行されます。このパラメータは、すべてのノードの合計バッチサイズに対する制限を設定します。

    このパラメータのデフォルトの値は 256K バイトです。最大サイズは 16M バイトです。

  • TotalSendBufferMemory

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 バイト 256K 0 - 4294967039 (0xFFFFFEFF) N

    このパラメータは、すべての構成済みトランスポータ間で共有される送信バッファーメモリーの、このノードに割り当てられるメモリー合計量を決定するために使用されます。

    このパラメータを設定する場合、許容される最小値は 256K バイト、最大値は 4294967039 です。TotalSendBufferMemory の動作と使用、および MySQL Cluster での送信バッファーメモリーパラメータの構成の詳細は、セクション18.3.2.12「MySQL Cluster の送信バッファーパラメータの構成」を参照してください。

  • AutoReconnect

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 ブール false true、false N

    このパラメータは、デフォルトで false です。これによって、切断された API ノード (SQL ノードとして機能する MySQL サーバーを含む) が既存の接続を再使用しようとせずに、クラスタへの新しい接続を強制的に使用するようになります (接続を再使用すると、動的に割り当てられたノード ID を使用するときに問題が発生することがあるため)。(Bug #45921)

    注記

    このパラメータは、NDB API を使用してオーバーライドできます。詳細は、Ndb_cluster_connection::set_auto_reconnect() および Ndb_cluster_connection::get_auto_reconnect() を参照してください。

  • DefaultOperationRedoProblemAction

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 列挙 QUEUE ABORT、QUEUE S

    このパラメータは、(RedoOverCommitLimit および RedoOverCommitCounter とともに) Redo ログをディスクにフラッシュする時間が長すぎる場合にデータノードによる操作の処理を制御します。これは、特定の Redo ログのフラッシュが RedoOverCommitLimit 秒より長い時間をかけて RedoOverCommitCounter 回を超える回数分行われ、保留中のトランザクションが中止されたときに発生します。

    この発生時は、ノードはここに示す DefaultOperationRedoProblemAction の値に応じた 2 つの方法のいずれかで応答できます。

    • ABORT: 中止されたトランザクションに含まれる保留中の操作も中止されます。

    • QUEUE: 中止されたトランザクションに含まれる保留中の操作がキューに入れられ、再試行されます。

  • DefaultHashMapSize

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 LDM スレッド 3840 0 - 3840 N

    MySQL Cluster NDB 7.2.7 以降では、前のリリース (240) より大きなテーブルハッシュマップのデフォルトサイズ (3840) が使用されます。MySQL Cluster NDB 7.2.11 以降では、このパラメータを使用して NDB が使用するテーブルハッシュマップのサイズを構成できます (以前は、この値はハードコーディングされていました)。DefaultHashMapSize には、3 つの値 (0、240、3840) のいずれかを指定できます。これらの値とその効果について、次の表で説明します。

    説明/効果
    0 クラスタ内のすべてのデータおよび API ノードの中で、このパラメータに設定されたもっとも小さい値を (あれば) 使用します。どのデータまたは API ノードにも設定されていない場合は、デフォルト値を使用します。
    240 MySQL Cluster NDB 7.2.7 より前のすべての MySQL Cluster リリースでデフォルトで使用されていた元のハッシュマップサイズです。
    3840 MySQL Cluster NDB 7.2.7 以降でデフォルトで使用される、より大きなハッシュマップサイズ

    このパラメータの主な用途は、より大きなハッシュマップサイズ (3840) がデフォルトである MySQL Cluster NDB 7.2.7 以降の MySQL Cluster バージョンと以前のリリース (デフォルトが 240 だった) との間のアップグレードと (特に) ダウングレードを容易にすることです。これは、この変更に下位互換性がない (Bug #14800539) ためです。このパラメータを 240 に設定してから、この値を使用している古いバージョンからのアップグレードを実行すると、クラスタはテーブルハッシュマップに対して引き続き小さいサイズを使用するため、アップグレード後のテーブルでも前のバージョンとの互換性が維持されます。DefaultHashMapSize は個々のデータノード、API ノード、またはその両方で設定できますが、config.ini ファイルの [ndbd default] セクションに一度だけ設定する方法をお勧めします。

    このパラメータを増やしたあと、既存のテーブルで新しいサイズを利用するには、そのテーブルに対して ALTER TABLE ... REORGANIZE PARTITION を実行します。その後、そのテーブルでより大きなハッシュマップサイズを使用できるようになります。これは、ローリング再起動の実行に加えて行います。ローリング再起動を実行すると、より大きなハッシュマップを新しいテーブルで使用できるようになりますが、既存のテーブルでは使用できません。

    DefaultHashMapSize を 3840 に設定してテーブルを作成または変更したあと、オンラインでこのパラメータを減らす方法は、現在サポートされていません。

  • Wan

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 ブール false true、false N

    WAN の TCP 設定をデフォルトとして使用します。

  • ConnectBackoffMaxTime

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 整数 0 0 - 4294967039 (0xFFFFFEFF) N

    MySQL Cluster NDB 7.3.7 および MySQL Cluster NDB 7.4.2 以降では、MySQL Cluster 内に起動されていないデータノードが多数ある場合に、このパラメータの値を増やし、クラスタ内のまだ機能し始めていないデータノードへの接続試行を回避して、管理ノードへの大量のトラフィックを抑えることができます。API ノードが新しいデータノードに接続されていない場合は、StartConnectBackoffMaxTime パラメータの値が適用されます。それ以外の場合は、ConnectBackoffMaxTime を使用して接続試行間の待機時間の長さ (ミリ秒) が決定されます。

    このパラメータの経過時間を計算する際に、ノードの接続試行に経過する時間は考慮されません。タイムアウトは、100 ミリ秒の遅延から始まり、約 100 ミリ秒の分解能で適用されます。後続の試行のたびに、ConnectBackoffMaxTime ミリ秒 (最大 100000 ミリ秒 (100 秒)) に達するまでこの期間の長さが倍加されます。

    API ノードがデータノードに接続され、そのノードが (ハートビートメッセージで) ほかのデータノードに接続したことを報告すると、データノードに対する接続試行はこのパラメータの影響を受けなくなり、その後接続されるまで 100 ミリ秒間隔で行われます。データノードが起動すると、これが発生したことが API ノードに通知されるまでに HeartbeatIntervalDbApi を要します。

  • StartConnectBackoffMaxTime

    有効なバージョン 型/単位 デフォルト 範囲/値 再起動タイプ
    NDB 7.3.0 整数 1500 0 - 4294967039 (0xFFFFFEFF) N

    MySQL Cluster NDB 7.3.7 および MySQL Cluster NDB 7.4.2 以降では、MySQL Cluster 内に起動されていないデータノードが多数ある場合に、このパラメータの値を増やし、クラスタ内のまだ機能し始めていないデータノードへの接続試行を回避して、管理ノードへの大量のトラフィックを抑えることができます。API ノードが新しいデータノードに接続されていない場合は、StartConnectBackoffMaxTime パラメータの値が適用されます。それ以外の場合は、ConnectBackoffMaxTime を使用して接続試行間の待機時間の長さ (ミリ秒) が決定されます。

    このパラメータの経過時間を計算する際に、ノードの接続試行に経過する時間は考慮されません。タイムアウトは、100 ミリ秒の遅延から始まり、約 100 ミリ秒の分解能で適用されます。後続の試行のたびに、StartConnectBackoffMaxTime ミリ秒 (最大 100000 ミリ秒 (100 秒)) に達するまでこの期間の長さが倍加されます。

    API ノードがデータノードに接続され、そのノードが (ハートビートメッセージで) ほかのデータノードに接続したことを報告すると、データノードに対する接続試行はこのパラメータの影響を受けなくなり、その後接続されるまで 100 ミリ秒間隔で行われます。データノードが起動すると、これが発生したことが API ノードに通知されるまでに HeartbeatIntervalDbApi を要します。

ここに示すように、mysql クライアントの SHOW STATUS を使用して、MySQL Cluster SQL ノードとして実行されている MySQL サーバーから情報を取得することもできます。

mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+---------------+
| Variable_name               | Value         |
+-----------------------------+---------------+
| Ndb_cluster_node_id         | 5             |
| Ndb_config_from_host        | 192.168.0.112 |
| Ndb_config_from_port        | 1186          |
| Ndb_number_of_storage_nodes | 4             |
+-----------------------------+---------------+
4 rows in set (0.02 sec)

このステートメントの出力に表示されるステータス変数については、セクション18.3.4.4「MySQL Cluster のステータス変数」を参照してください。

注記

実行中の MySQL Cluster の構成に新しい SQL または API ノードを追加するには、config.ini ファイル (複数の管理サーバーを使用する場合は複数のファイル) に新しい [mysqld] または [api] セクションを追加したあとで、すべてのクラスタノードのローリング再起動を実行する必要があります。これは、新しい SQL または API ノードをクラスタに接続する前に実行する必要があります。

新しい SQL または API ノードがクラスタ構成内の以前に使用されていない API スロットを使用してクラスタに接続する場合、クラスタの再起動を実行する必要はありません


User Comments
Sign Up Login You must be logged in to post a comment.