MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む
このページは機械翻訳したものです。
config.ini
ファイルの
[mysqld]
および [api]
セクションでは、クラスタデータへのアクセスに使用される
MySQL サーバー (SQL ノード)
およびその他のアプリケーション (API ノード)
が定義されます。
示されているどのパラメータも必須ではありません。
コンピュータ名またはホスト名が指定されていない場合は、任意のホストでこの
SQL または API ノードを使用できます。
一般的には、[mysqld]
セクションはクラスタへの SQL
インタフェースを提供する MySQL
サーバーを示すために使用され、[api]
セクションはクラスタデータにアクセスする
mysqld
プロセス以外のアプリケーションのために使用されますが、この
2 つの指定は実際には同義です。たとえば、SQL
ノードとして機能する MySQL
サーバーのパラメータを [api]
セクションに指定できます。
NDB Cluster の MySQL サーバーオプションについては、セクション23.3.3.9.1「NDB Cluster の MySQL Server オプション」 を参照してください。 NDB Cluster に関連する MySQL サーバーシステム変数については、セクション23.3.3.9.2「NDB Cluster システム変数」 を参照してください。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | unsigned |
デフォルト | [...] |
範囲 | 1 - 255 |
再起動タイプ | IS (NDB 8.0.13) |
Id
は、すべてのクラスタ内部メッセージ内でノードを識別するために使用される整数値です。
許容される値の範囲は、1-255 (これらを含む)
です。
この値は、ノードのタイプに関係なく、クラスタ内の各ノードで一意である必要があります。
NDB 8.0.18 以降では、データノード ID は 145 未満である必要があります。 多数のデータノードを配備する予定の場合は、API ノード (および管理ノード) のノード ID を 144 より大きい値に制限することをお勧めします。 (NDB 8.0.18 より前では、データノード ID でサポートされる最大値は 48 でした。)
NodeId
は、API
ノードを識別するときに使用することが推奨されるパラメータ名です。
(Id
は、下位互換性に引き続き対応しますが、現在は非推奨であり、使用時に警告を生成します。
また、これは今後削除される予定です。)
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | string |
デフォルト | [...] |
範囲 | ... |
再起動タイプ | N (NDB 8.0.13) |
接続するデータノードを指定します。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | unsigned |
デフォルト | [...] |
範囲 | 1 - 255 |
再起動タイプ | IS (NDB 8.0.13) |
NodeId
は、すべてのクラスタ内部メッセージ内でノードを識別するために使用される整数値です。
許容される値の範囲は、1-255 (これらを含む)
です。
この値は、ノードのタイプに関係なく、クラスタ内の各ノードで一意である必要があります。
NDB 8.0.18 以降では、データノード ID は 145 未満である必要があります。 多数のデータノードを配備する予定の場合は、API ノード (および管理ノード) のノード ID を 144 より大きい値に制限することをお勧めします。 (NDB 8.0.18 より前では、データノード ID でサポートされる最大値は 48 でした。)
NodeId
は、管理ノードを識別するときに使用することが推奨されるパラメータ名です。
エイリアス Id
は、NDB Cluster
の非常に古いバージョンでこの目的に使用され、下位互換性のために引き続きサポートされています。現在は非推奨になっており、使用時に警告が生成され、NDB
Cluster
の将来のリリースで削除される可能性があります。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | name |
デフォルト | [...] |
範囲 | ... |
非推奨 | Yes (in NDB 7.5) |
再起動タイプ | S (NDB 8.0.13) |
これは、構成ファイルの
[computer]
セクションに定義されたいずれかのコンピュータ
(ホスト) に設定されている Id
を参照します。
このパラメータは非推奨であり、将来のリリースで削除される予定です。
かわりに
HostName
パラメータを使用してください。
このノードのノード ID
は、明示的にリクエストする接続にのみ指定できます。
ノード ID
をリクエストする管理サーバーは、このノード
ID を使用できません。
このパラメータは、同じホストで複数の管理サーバーを実行していて、HostName
でプロセスを区別するのに十分でない場合に使用できます。
テストで使用するためのものです。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | name or IP address |
デフォルト | [...] |
範囲 | ... |
再起動タイプ | N (NDB 8.0.13) |
このパラメータを指定すると、SQL ノード (API
ノード)
が配置されるコンピュータのホスト名が定義されます。
ホスト名を指定するには、このパラメータまたは
ExecuteOnComputer
のいずれかが必要です。
config.ini
ファイルの特定の
[mysql]
または
[api]
セクションに
HostName
または
ExecuteOnComputer
が指定されていない場合、SQL または API
ノードはネットワーク接続を確立できる任意のホストから対応する「スロット」を使用して管理サーバーホストマシンに接続できます。
これは、ほかに指定されていない場合
localhost
が HostName
として使用されるデータノードのデフォルトの動作とは異なります。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | integer |
デフォルト | 0 |
範囲 | 0 - 16 |
再起動タイプ |
クラウド内の特定の「可用性ドメイン」
(可用性ゾーンとも呼ばれる) に SQL
またはその他の API ノードを割り当てます。
どのノードがどの可用性ドメインにあるかを
NDB
に通知することで、次の方法でクラウド環境のパフォーマンスを向上させることができます:
リクエストされたデータが同じノードで見つからない場合、読取りは同じ可用性ドメイン内の別のノードに転送できます。
異なる可用性ドメイン内のノード間の通信では、それ以上の手動操作なしで
NDB
トランスポータ WAN
サポートを使用することが保証されています。
トランスポータグループ番号は、SQL および他の API ノードが可能な場合は常に同じ可用性ドメイン内のローカルデータノードと通信するように、使用される可用性ドメインに基づくことができます。
アービトレータは、データノードが存在しない可用性ドメインから選択することも、そのような可用性ドメインが見つからない場合は 3 番目の可用性ドメインから選択することもできます。
LocationDomainId
は 0 以上 16
以下の整数値を取り、0 がデフォルトです。0
を使用することは、パラメータを未設定のままにすることと同じです。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | 0-2 |
デフォルト | 0 |
範囲 | 0 - 2 |
再起動タイプ | N (NDB 8.0.13) |
このパラメータは、アービトレータとして機能できるノードを定義します。
管理ノードと SQL
ノードの両方がアービトレータになることができます。
値 0
は、指定されたノードがアービトレータとして使用されないことを意味します。値
1
は、ノードにアービトレータとしての高い優先度を与えます。値
2 は低い優先度を与えます。
通常の構成では、管理サーバーの
ArbitrationRank
が 1
(管理ノードのデフォルト) に設定され、各
SQL ノードでは 0 (SQL ノードのデフォルト)
に設定されるため、管理サーバーがアービトレータとして使用されます。
すべての管理および SQL ノードで
ArbitrationRank
を 0
に設定すると、アービトレーションを完全に無効化できます。
このパラメーラをオーバーライドしてアービトレーションを制御することもできます。そのためには、config.ini
グローバル構成ファイルの [ndbd
default]
セクションに
Arbitration
パラメータを設定します。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | milliseconds |
デフォルト | 0 |
範囲 | 0 - 4294967039 (0xFFFFFEFF) |
再起動タイプ | N (NDB 8.0.13) |
このパラメータを 0 (デフォルト) 以外の値に設定すると、アービトレータによるアービトレーションリクエストへのレスポンスは、指定されたミリ秒数遅延されます。 通常、この値を変更する必要はありません。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | bytes |
デフォルト | 16K |
範囲 | 1K - 1M |
再起動タイプ | N (NDB 8.0.13) |
フルテーブルスキャンまたはインデックスの範囲スキャンに変換されるクエリーでは、最良のパフォーマンスを得るため、適切にサイズ調整されたバッチでレコードをフェッチすることが重要です。
レコード数
(BatchSize
)
とバイト数 (BatchByteSize
)
の両方で、適切なサイズを設定できます。
実際のバッチサイズは両方のパラメータによって制限されます。
このパラメータの設定方法によっては、クエリーの実行速度の変化率が 40% を超える可能性があります。
このパラメータはバイト単位で測定されます。 デフォルト値は 16K です。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | records |
デフォルト | 256 |
範囲 | 1 - 992 |
再起動タイプ | N (NDB 8.0.13) |
このパラメータはレコード数で測定され、デフォルトで 256 に設定されます。 最大サイズは 992 です。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | bytes |
デフォルト | 0 |
範囲 | 0 - 4294967039 (0xFFFFFEFF) |
再起動タイプ | N (NDB 8.0.13) |
このパラメータは、TotalSendBufferMemory
、SendBufferMemory
、またはその両方を使用して設定されたメモリーに加えて割り当てられるトランスポータ送信バッファーメモリーの量を指定します。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | string |
デフォルト | [...] |
範囲 | ... |
再起動タイプ |
このパラメータを使用して、管理および API ノードのハートビートスレッドのスケジューリングポリシーと優先度を設定します。 このパラメータを設定するための構文をここに示します。
HeartbeatThreadPriority =policy
[,priority
]policy
: {FIFO | RR}
このパラメータを設定するときは、ポリシーを指定する必要があります。
これは、FIFO
(先入れ先出し)
または RR
(ラウンドロビン)
のいずれかです。
このあとに、オプションで優先度 (整数)
を指定できます。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | bytes |
デフォルト | 256K |
範囲 | 32K - 16M |
再起動タイプ | N (NDB 8.0.13) |
バッチサイズは、各データノードから送信される各バッチのサイズです。 多数のノードから並列で受信される過大なデータ量から MySQL サーバーを保護するため、ほとんどのスキャンは並列で実行されます。このパラメータは、すべてのノードの合計バッチサイズに対する制限を設定します。
このパラメータのデフォルトの値は 256K バイトです。 最大サイズは 16M バイトです。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | bytes |
デフォルト | 0 |
範囲 | 256K - 4294967039 (0xFFFFFEFF) |
再起動タイプ | N (NDB 8.0.13) |
このパラメータは、すべての構成済みトランスポータ間で共有される送信バッファーメモリーの、このノードに割り当てられるメモリー合計量を決定するために使用されます。
このパラメータが設定されている場合、許可される最小値は 256KB です。0 はパラメータが設定されていないことを示します。 詳細は、セクション23.3.3.14「NDB Cluster 送信バッファーパラメータの構成」 を参照してください。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | boolean |
デフォルト | false |
範囲 | true, false |
再起動タイプ | N (NDB 8.0.13) |
このパラメータは、デフォルトで
false
です。
これによって、切断された API ノード (SQL
ノードとして機能する MySQL サーバーを含む)
が既存の接続を再使用しようとせずに、クラスタへの新しい接続を強制的に使用するようになります
(接続を再使用すると、動的に割り当てられたノード
ID
を使用するときに問題が発生することがあるため)。
(Bug #45921)
このパラメータは、NDB API を使用してオーバーライドできます。 詳細は、Ndb_cluster_connection::set_auto_reconnect() および Ndb_cluster_connection::get_auto_reconnect() を参照してください。
DefaultOperationRedoProblemAction
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | enumeration |
デフォルト | QUEUE |
範囲 | ABORT, QUEUE |
再起動タイプ |
このパラメータは、(RedoOverCommitLimit
および
RedoOverCommitCounter
とともに) Redo
ログをディスクにフラッシュする時間が長すぎる場合にデータノードによる操作の処理を制御します。
これは、特定の Redo ログのフラッシュが
RedoOverCommitLimit
秒より長い時間をかけて
RedoOverCommitCounter
回を超える回数分行われ、保留中のトランザクションが中止されたときに発生します。
この発生時は、ノードはここに示す
DefaultOperationRedoProblemAction
の値に応じた 2
つの方法のいずれかで応答できます。
ABORT
:
中止されたトランザクションに含まれる保留中の操作も中止されます。
QUEUE
:
中止されたトランザクションに含まれる保留中の操作がキューに入れられ、再試行されます。
これはデフォルトです。 redo
ログの領域が不足した場合、つまり
P_TAIL_PROBLEM
エラーが発生した場合、保留中の操作は中断されます。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | buckets |
デフォルト | 3840 |
範囲 | 0 - 3840 |
再起動タイプ | N (NDB 8.0.13) |
NDB
で使用されるテーブルハッシュマップのサイズは、このパラメータを使用して構成できます。
DefaultHashMapSize
には、3 つの値
(0、240、3840) のいずれかを指定できます。
これらの値とその効果について、次の表で説明します。
表 23.17 DefaultHashMapSize パラメータ値
値 | 説明/効果 |
---|---|
0 |
クラスタ内のすべてのデータおよび API ノードの中で、このパラメータに設定されたもっとも小さい値を (あれば) 使用します。どのデータまたは API ノードにも設定されていない場合は、デフォルト値を使用します。 |
240 |
古いデフォルトハッシュマップサイズ |
3840 |
NDB 8.0 でデフォルトで使用されるハッシュマップサイズ |
このパラメータの元の使用目的は、ハッシュマップのサイズが異なる古い NDB Cluster バージョンとの間のアップグレードおよびダウングレードを容易にすることでした。これは、この変更に後方互換性がないためです。 NDB Cluster 8.0 へのアップグレードまたは NDB Cluster 8.0 からのダウングレードでは、これは問題になりません。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | boolean |
デフォルト | false |
範囲 | true, false |
再起動タイプ | N (NDB 8.0.13) |
WAN の TCP 設定をデフォルトとして使用します。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | integer |
デフォルト | 0 |
範囲 | 0 - 4294967039 (0xFFFFFEFF) |
再起動タイプ | N (NDB 8.0.13) |
多数の未起動のデータノードがある NDB Cluster
では、このパラメータの値を上げて、クラスタ内でまだ機能していないデータノードへの接続試行を回避したり、管理ノードへの高トラフィックを中程度にしたりできます。
API
ノードが新しいデータノードに接続されていない場合は、StartConnectBackoffMaxTime
パラメータの値が適用されます。それ以外の場合は、ConnectBackoffMaxTime
を使用して接続試行間の待機時間の長さ
(ミリ秒) が決定されます。
このパラメータの経過時間を計算する際に、ノードの接続試行中に経過する時間は考慮されません。
タイムアウトは、100
ミリ秒の遅延から始まり、約 100
ミリ秒の分解能で適用されます。後続の試行のたびに、ConnectBackoffMaxTime
ミリ秒 (最大 100000 ミリ秒 (100 秒))
に達するまでこの期間の長さが倍加されます。
API
ノードがデータノードに接続され、そのノードが
(ハートビートメッセージで)
ほかのデータノードに接続したことを報告すると、データノードに対する接続試行はこのパラメータの影響を受けなくなり、その後接続されるまで
100 ミリ秒間隔で行われます。
データノードが起動すると、これが発生したことを
API ノードに通知するために
HeartbeatIntervalDbApi
を使用できます。
バージョン (またはそれ以降) | NDB 8.0.13 |
---|---|
タイプまたは単位 | integer |
デフォルト | 0 |
範囲 | 0 - 4294967039 (0xFFFFFEFF) |
再起動タイプ | N (NDB 8.0.13) |
多数の未起動のデータノードがある NDB Cluster
では、このパラメータの値を上げて、クラスタ内でまだ機能していないデータノードへの接続試行を回避したり、管理ノードへの高トラフィックを中程度にしたりできます。
API
ノードが新しいデータノードに接続されていない場合は、StartConnectBackoffMaxTime
パラメータの値が適用されます。それ以外の場合は、ConnectBackoffMaxTime
を使用して接続試行間の待機時間の長さ
(ミリ秒) が決定されます。
このパラメータの経過時間を計算する際に、ノードの接続試行中に経過する時間は考慮されません。
タイムアウトは、100
ミリ秒の遅延から始まり、約 100
ミリ秒の分解能で適用されます。後続の試行のたびに、StartConnectBackoffMaxTime
ミリ秒 (最大 100000 ミリ秒 (100 秒))
に達するまでこの期間の長さが倍加されます。
API
ノードがデータノードに接続され、そのノードが
(ハートビートメッセージで)
ほかのデータノードに接続したことを報告すると、データノードに対する接続試行はこのパラメータの影響を受けなくなり、その後接続されるまで
100 ミリ秒間隔で行われます。
データノードが起動すると、これが発生したことを
API ノードに通知するために
HeartbeatIntervalDbApi
を使用できます。
API ノードのデバッグパラメータ.
ApiVerbose
構成パラメータを使用して、特定の API
ノードからのデバッグ出力を有効にできます。
このパラメータは整数値を取ります。デフォルトは
0
で、このようなデバッグは無効になります。1
ではクラスタログへのデバッグ出力が有効になり、2
では DBDICT
デバッグ出力も追加されます。 (Bug #20638450)
DUMP 1229
も参照してください。
次に示すように、mysql
クライアントで SHOW STATUS
を使用して NDB Cluster SQL
ノードとして実行されている MySQL
サーバーから情報を取得することもできます:
mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+----------------+
| Variable_name | Value |
+-----------------------------+----------------+
| Ndb_cluster_node_id | 5 |
| Ndb_config_from_host | 198.51.100.112 |
| Ndb_config_from_port | 1186 |
| Ndb_number_of_storage_nodes | 4 |
+-----------------------------+----------------+
4 rows in set (0.02 sec)
このステートメントの出力に表示されるステータス変数については、セクション23.3.3.9.3「NDB Cluster ステータス変数」を参照してください。
実行中の NDB Cluster の構成に新しい SQL または
API
ノードを追加するには、新しい[mysqld]
または[api]
セクションを
config.ini
ファイル
(または、複数の管理サーバーを使用している場合はファイル)
に追加したあとで、すべてのクラスタノードのローリング再起動を実行する必要があります。
これは、新しい SQL または API
ノードをクラスタに接続する前に実行する必要があります。
新しい SQL または API ノードがクラスタ構成内の以前に使用されていない API スロットを使用してクラスタに接続する場合、クラスタの再起動を実行する必要はありません。
再起動のタイプ. このセクションのパラメータの説明で使用される再起動タイプに関する情報を次のテーブルに示します:
表 23.18 NDB Cluster の再起動タイプ
シンボル | 再起動タイプ | 説明 |
---|---|---|
N | ノード | パラメータはローリング再起動を使用して更新できます (セクション23.5.5「NDB Cluster のローリング再起動の実行」 を参照) |
S | システム | このパラメータの変更を有効にするには、すべてのクラスタノードを完全に停止してから再起動する必要があります |
I | Initial | --initial
オプションを使用してデータノードを再起動する必要があります |