Documentation Home
MySQL 8.0 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 36.1Mb
PDF (A4) - 36.2Mb


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

23.1 NDB Cluster の概要

NDB Cluster は、共有なしシステムでインメモリーデータベースのクラスタリングを可能にするテクノロジです。 シェアードナッシングアーキテクチャーでは、非常に安価なハードウェアでシステムが動作し、ハードウェアやソフトウェアの要件が最小限に抑えられます。

NDB Cluster は、単一点障害を持たないように設計されています。 シェアードナッシングシステムでは、各コンポーネントに固有のメモリーとディスクが用意され、ネットワーク共有、ネットワークファイルシステム、SAN などの共有ストレージメカニズムの使用は推奨またはサポートされません。

NDB Cluster は、標準の MySQL サーバーを NDB (N etwork D ata B ase を表す) と呼ばれるメモリー内クラスタ化ストレージエンジンと統合します。 このドキュメントでは、NDB という用語はストレージエンジンに固有の設定部分を指しますが、MySQL NDB Cluster とは、1 つ以上の MySQL サーバーと NDB ストレージエンジンの組み合わせを指します。

NDB Cluster は、ホストと呼ばれる一連のコンピュータで構成され、それぞれが 1 つ以上のプロセスを実行しています。 ノードと呼ばれるこれらのプロセスには、MySQL Server (NDB データへのアクセス用)、データノード (データのストレージ用)、1 つ以上の管理サーバー、および場合によってはその他の特殊なデータアクセスプログラムが含まれます。 NDB Cluster 内のこれらのコンポーネントの関係を次に示します:

図 23.1 NDB Cluster コンポーネント

このクラスタでは、3 つの MySQL サーバー (mysqld プログラム) が、データを格納する 4 つのデータノード (ndbd プログラム) へのアクセスを提供する SQL ノードです。 SQL ノードとデータノードは NDB 管理サーバー (ndb_mgmd プログラム) の制御下にあります。 様々なクライアントおよび API が SQL ノードと対話できます - mysql クライアント、MySQL C API、PHP、Connector/J、および Connector/NET。 NDB API を使用してカスタムクライアントを作成して、データノードまたは NDB 管理サーバーと対話することもできます。 NDB 管理クライアント (ndb_mgm プログラム) は NDB 管理サーバーと対話します。

これらのプログラムはすべて連携して NDB Cluster を形成します (セクション23.4「NDB Cluster プログラム」 を参照)。 NDB ストレージエンジンによってデータが格納されると、データノードにテーブル (およびテーブルデータ) が格納されます。 このようなテーブルには、クラスタ内のほかのすべての MySQL Server (SQL ノード) から直接アクセスできます。 したがって、クラスタにデータを格納する給料計算アプリケーションでは、あるアプリケーションが社員の給料を更新すると、このデータをクエリーするほかのすべての MySQL サーバーがこの変更をただちに認識できます。

NDB Cluster SQL ノードは mysqld サーバーデーモンを使用しますが、MySQL 8.0 ディストリビューションで提供される mysqld バイナリと多くの重要な点で異なり、2 つのバージョンの mysqld は交換できません。

また、NDB Cluster に接続されていない MySQL サーバーは、NDB ストレージエンジンを使用できず、NDB Cluster データにアクセスできません。

NDB Cluster のデータノードに格納されているデータはミラー化できます。クラスタは、トランザクションの状態が失われたために少数のトランザクションが中止されること以外に影響を与えることなく、個々のデータノードの障害を処理できます。 トランザクションの失敗はトランザクションアプリケーションが処理すると想定されるため、これが問題の原因になることはないはずです。

個々のノードは、停止して再起動したあと、システム (クラスタ) に再度参加できます。 構成の変更やソフトウェアのアップグレードを行うときは、ローリング再起動 (すべてのノードが順に再起動される) が使用されます (セクション23.5.5「NDB Cluster のローリング再起動の実行」を参照してください)。 ローリング再起動は、新しいデータノードをオンラインで追加するプロセスの一部としても使用されます (セクション23.5.7「NDB Cluster データノードのオンラインでの追加」を参照してください)。 データノード、NDB Cluster 内での編成方法、および NDB Cluster データの処理方法と格納方法の詳細は、セクション23.1.2「NDB Cluster ノード、ノードグループ、フラグメントレプリカ、およびパーティション」 を参照してください。

NDB Cluster データベースのバックアップと復元は、NDB Cluster 管理クライアントにある NDB ネイティブ機能と NDB Cluster 配布に含まれる ndb_restore プログラムを使用して実行できます。 詳細は、セクション23.5.8「NDB Cluster のオンラインバックアップ」およびセクション23.4.23「ndb_restore — NDB Cluster バックアップの復元」を参照してください。 mysqldump および MySQL Server でこの目的のために用意されている標準の MySQL 機能を使用することもできます。 詳細は、セクション4.5.4「mysqldump — データベースバックアッププログラム」を参照してください。

NDB Cluster ノードは、ノード間通信にさまざまなトランスポートメカニズムを採用できます。ほとんどの実際の配備では、標準 100 Mbps 以上の TCP/IP または高速 Ethernet ハードウェアが使用されます。