Ubuntu18.04でマルチノードMySQLクラスターを作成する方法
序章
MySQL Cluster分散データベースは、MySQLデータベース管理システムに高可用性とスループットを提供します。 MySQLクラスターは、クラスターの構成を格納し、クラスターデータが格納されるデータノード(ndbd
)を制御する1つ以上の管理ノード(ndb_mgmd
)で構成されます。 管理ノードと通信した後、クライアント(MySQLクライアント、サーバー、またはネイティブAPI)はこれらのデータノードに直接接続します。
MySQL Clusterでは、通常、データのレプリケーションはありませんが、代わりにデータノードの同期があります。 この目的のために、特別なデータエンジンを使用する必要があります— NDBCluster(NDB)。 クラスタを、冗長コンポーネントを備えた単一の論理MySQL環境と考えると便利です。 したがって、MySQLクラスターは他のMySQLクラスターとのレプリケーションに参加できます。
MySQL Clusterは、シェアードナッシング環境で最適に機能します。 理想的には、2つのコンポーネントが同じハードウェアを共有しないようにする必要があります。 簡単にするために、デモンストレーションの目的で、3台のサーバーのみを使用するように制限します。 2台のサーバーをデータノードとして設定し、サーバー間でデータを同期します。 3番目のサーバーは、クラスターマネージャーとMySQLサーバー/クライアントに使用されます。 追加のサーバーを起動すると、クラスターにデータノードを追加し、クラスターマネージャーをMySQLサーバー/クライアントから切り離し、さらに多くのサーバーをクラスターマネージャーおよびMySQLサーバー/クライアントとして構成できます。
前提条件
このチュートリアルを完了するには、合計3台のサーバーが必要です。冗長MySQLデータノード用に2台のサーバー(ndbd
)、クラスターマネージャー用に1台のサーバー(ndb_mgmd
)とMySQLサーバー/クライアント(mysqld
およびmysql
)。
同じDigitalOceanデータセンターで、プライベートネットワークを有効にしたで次のドロップレットを作成します。
- プライベートネットワークが有効になっている3つのUbuntu18.04ドロップレット
- ドロップレットごとにsudo権限が設定されているroot以外のユーザー。 これを行う方法は、 Ubuntu18.04を使用したサーバーの初期設定で学ぶことができます。
3つのドロップレットのprivateIPアドレスを必ず書き留めてください。 このチュートリアルでは、クラスターノードに次のプライベートIPアドレスがあります。
198.51.100.0
が最初のMySQLクラスターデータノードになります198.51.100.1
は2番目のデータノードになります198.51.100.2
ClusterManagerとMySQLサーバーノードになります
ドロップレットを起動し、root以外のユーザーを構成し、3つのノードのIPアドレスを書き留めたら、このチュートリアルを開始する準備が整います。
ステップ1—クラスタマネージャのインストールと設定
まず、MySQL Cluster Managerndb_mgmd
をダウンロードしてインストールします。
クラスタマネージャをインストールするには、最初に、公式のMySQLクラスタダウンロードページから適切な.deb
インストーラファイルをフェッチする必要があります。
このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。
DEBパッケージ、NDB管理サーバーが表示されるまで下にスクロールし、ダウンロード