このセクションでは、MySQL Cluster ノードをオンラインで追加する際の動作および現在の制限事項に関する一般的な情報を示します。
データの再配布
新しいノードをオンラインで追加する機能には、ALTER ONLINE TABLE ... REORGANIZE PARTITION
ステートメントを使用して、すべてのデータノード (新しいものを含む) 間で配布されるように NDBCLUSTER
テーブルデータおよびインデックスを再編成する手段も含まれます。インメモリーとディスクデータの両方のテーブルの再編成がサポートされています。現在、この再配布には一意のインデックスが含まれていません (順序付きインデックスのみが再配布されます)。MySQL Cluster NDB 7.3.3 より前では、この方法を使用して BLOB
テーブルデータも再配布されません (Bug #13714148)。
新しいデータノードが追加される前にすでに存在していた NDBCLUSTER
テーブルの再配布は、自動的に実行されませんが、mysql または別の MySQL クライアントアプリケーションで単純な SQL ステートメントを使用して実現できます。ただし、新しいノードグループが追加されたあとに作成されたテーブルに追加されたすべてのデータおよびインデックスは、すべてのクラスタデータノード (新しいノードグループの一部として追加されたものを含む) 間で自動的に配布されます。
部分的な起動 新しいデータノードがすべて起動されていなくても、新しいノードグループを追加できます。また、新しいノードグループを機能低下状態のクラスタ (つまり、部分的にしか起動されていないクラスタや、1 つ以上のデータノードが実行されていないクラスタ) に追加することもできます。後者の場合、新しいノードグループを追加する前に、クラスタで十分な数のノードが実行可能になっている必要があります。
進行中の操作への影響
新しいノードグループを作成または追加したり、テーブルを再編成したりしても、MySQL Cluster データを使用する通常の DML 操作は妨げられません。ただし、テーブルの再編成と同時に DDL を実行することはできません。つまり、ALTER TABLE ... REORGANIZE PARTITION
ステートメントの実行中は、ほかの DDL ステートメントを発行できません。さらに、ALTER TABLE ... REORGANIZE PARTITION
の実行 (またはその他の DDL ステートメントの実行) 中は、クラスタデータノードを再起動できません。
エラー処理 ノードグループの作成時およびテーブルの再編成時のデータノードのエラーは、次の表に示すように処理されます。
エラーが発生するタイミング: | エラーが発生する場所: | ||
---|---|---|---|
「古い」データノード | 「新しい」データノード | システム | |
ノードグループの作成 |
|
|
|
テーブルの再編成 |
|
|
|
ノードグループの削除
ndb_mgm クライアントは、DROP NODEGROUP
コマンドをサポートしていますが、ノードグループ内のデータノードにどのデータも含まれていない場合にのみ削除できます。現在、特定のデータノードまたはノードグループを「空にする」方法がないため、このコマンドは次の 2 つのケースでしか機能しません。
ndb_mgm クライアントで
CREATE NODEGROUP
を発行してから、mysql クライアントで任意のALTER ONLINE TABLE ... REORGANIZE PARTITION
ステートメントを発行するまでの間。-
DROP TABLE
を使用してすべてのNDBCLUSTER
テーブルを削除したあと。データノードには引き続きテーブルの定義が格納されるため、この目的では
TRUNCATE TABLE
は機能しません。