Ubuntu 18.04でマルチノードMySQL Clusterを作成する方法

前書き

MySQL Cluster分散データベースは、MySQLデータベース管理システムに高可用性とスループットを提供します。 MySQL Clusterは、クラスターの構成を格納し、クラスターデータが格納されるデータノード(ndbd)を制御する1つ以上の管理ノード(ndb_mgmd)で構成されます。 管理ノードと通信した後、クライアント(MySQLクライアント、サーバー、またはネイティブAPI)はこれらのデータノードに直接接続します。

MySQL Clusterでは通常、データの複製はありませんが、代わりにデータノードの同期があります。 この目的のために、特別なデータエンジン— NDBCluster(NDB)を使用する必要があります。 クラスターを、冗長コンポーネントを備えた単一の論理MySQL環境と考えると便利です。 したがって、MySQL Clusterは他のMySQL Clusterとのレプリケーションに参加できます。

MySQL Clusterは、シェアードナッシング環境で最適に機能します。 理想的には、2つのコンポーネントが同じハードウェアを共有することはありません。 簡単にするためとデモのために、使用するサーバーを3つに制限します。 2つのサーバーをデータノードとしてセットアップし、それらの間でデータを同期します。 3番目のサーバーはCluster Managerに使用され、MySQLサーバー/クライアントにも使用されます。 追加のサーバーを起動する場合、クラスターにデータノードを追加し、クラスターマネージャーをMySQLサーバー/クライアントから分離し、クラスターマネージャーおよびMySQLサーバー/クライアントとしてより多くのサーバーを構成できます。

前提条件

このチュートリアルを完了するには、合計3台のサーバーが必要です。冗長MySQLデータノード用に2台(ndbd)、クラスターマネージャー用に1台(ndb_mgmd)およびMySQLサーバー/クライアント( mysqldおよびmysql)。

same DigitalOcean data centerで、private networking enabledを使用して次のドロップレットを作成します。

3つのドロップレットのprivateIPアドレスを必ず書き留めてください。 このチュートリアルでは、クラスターノードに次のプライベートIPアドレスがあります。

  • 198.51.100.0が最初のMySQLClusterデータノードになります

  • 198.51.100.1は2番目のデータノードになります

  • 198.51.100.2はクラスターマネージャーとMySQLサーバーノードになります

Dropletsをスピンアップし、非ルートユーザーを構成し、3つのノードのIPアドレスを書き留めたら、このチュートリアルを開始できます。

[[step-1 -—- installing-and-configuring-the-cluster-manager]] ==ステップ1— ClusterManagerのインストールと構成

まず、MySQL Cluster Managerndb_mgmdをダウンロードしてインストールします。

Cluster Managerをインストールするには、最初に公式のMySQL Clusterdownload pageから適切な.debインストーラーファイルをフェッチする必要があります。

このページのSelect Operating Systemで、Ubuntu Linuxを選択します。 次に、Select OS Versionの下でUbuntu Linux 18.04 (x86, 64-bit)を選択します。

DEB Package, NDB Management Serverが表示されるまで下にスクロールし、notdbgsymが含まれているリンクのDownloadリンクをクリックします(デバッグシンボルが必要な場合を除く)。 Begin Your Downloadページに移動します。 ここで、No thanks, just start my download.を右クリックし、リンクを.debファイルにコピーします。

次に、クラスターマネージャードロップレット(このチュートリアルでは198.51.100.2)にログインし、次の.debファイルをダウンロードします。

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

dpkgを使用してndb_mgmdをインストールします。

sudo dpkg -i mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

最初に実行する前に、ndb_mgmdを構成する必要があります。適切な構成により、データノード間の正しい同期と負荷分散が保証されます。

Cluster Managerは、MySQLクラスターで起動される最初のコンポーネントである必要があります。 実行可能ファイルに引数として渡される構成ファイルが必要です。 次の構成ファイルを作成して使用します:/var/lib/mysql-cluster/config.ini

Cluster Managerドロップレットで、このファイルが存在する/var/lib/mysql-clusterディレクトリを作成します。

sudo mkdir /var/lib/mysql-cluster

次に、好みのテキストエディターを使用して構成ファイルを作成および編集します。

sudo nano /var/lib/mysql-cluster/config.ini

次のテキストをエディターに貼り付けます。

/var/lib/mysql-cluster/config.ini

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2  # Number of replicas

[ndb_mgmd]
# Management process options:
hostname=198.51.100.2 # Hostname of the manager
datadir=/var/lib/mysql-cluster  # Directory for the log files

[ndbd]
hostname=198.51.100.0 # Hostname/IP of the first data node
NodeId=2            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[ndbd]
hostname=198.51.100.1 # Hostname/IP of the second data node
NodeId=3            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[mysqld]
# SQL node options:
hostname=198.51.100.2 # In our case the MySQL server/client is on the same Droplet as the cluster manager

このテキストを貼り付けた後、上記のhostnameの値を、構成したドロップレットの正しいIPアドレスに置き換えてください。 このhostnameパラメータを設定することは、他のサーバーがクラスタマネージャに接続するのを防ぐ重要なセキュリティ対策です。

ファイルを保存し、テキストエディターを閉じます。

これは、MySQL Clusterの簡略化された最小構成ファイルです。 本番環境のニーズに応じて、このファイルのパラメーターをカスタマイズする必要があります。 完全に構成されたndb_mgmd構成ファイルのサンプルについては、MySQL Clusterdocumentationを参照してください。

上記のファイルでは、適切なセクションにインスタンスを追加することで、データノード(ndbd)やMySQLサーバーノード(mysqld)などのコンポーネントを追加できます。

これで、ndb_mgmdバイナリを実行し、-fフラグを使用してその構成ファイルを指定することにより、マネージャーを起動できます。

sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini

次のような出力が表示されるはずです。

OutputMySQL Cluster Management Server mysql-5.7.22 ndb-7.6.6
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- Successfully created config directory

これは、MySQL Cluster Managementサーバーが正常にインストールされ、Dropletで実行されていることを示しています。

理想的には、ブート時にクラスター管理サーバーを自動的に開始したいと考えています。 これを行うには、systemdサービスを作成して有効にします。

サービスを作成する前に、実行中のサーバーを強制終了する必要があります。

sudo pkill -f ndb_mgmd

ここで、お気に入りのエディターを使用して、次のsystemd Unitファイルを開いて編集します。

sudo nano /etc/systemd/system/ndb_mgmd.service

次のコードを貼り付けます。

/etc/systemd/system/ndb_mgmd.service

[Unit]
Description=MySQL NDB Cluster Management Server
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

ここでは、ndb_mgmdプロセスを開始、停止、再開する方法をsystemdに指示する最小限のオプションセットを追加しました。 このユニット構成で使用されるオプションの詳細については、systemdmanualを参照してください。

ファイルを保存して閉じます。

ここで、daemon-reloadを使用してsystemdのマネージャー構成をリロードします。

sudo systemctl daemon-reload

MySQL Cluster Managerが再起動時に起動するように、作成したサービスを有効にします。

sudo systemctl enable ndb_mgmd

最後に、サービスを開始します。

sudo systemctl start ndb_mgmd

NDB Cluster Managementサービスが実行されていることを確認できます。

sudo systemctl status ndb_mgmd

次のような出力が表示されるはずです。

● ndb_mgmd.service - MySQL NDB Cluster Management Server
   Loaded: loaded (/etc/systemd/system/ndb_mgmd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 21:23:37 UTC; 3s ago
  Process: 11184 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS)
 Main PID: 11193 (ndb_mgmd)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/ndb_mgmd.service
           └─11193 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

これは、ndb_mgmd MySQL ClusterManagementサーバーがsystemdサービスとして実行されていることを示しています。

Cluster Managerをセットアップする最後の手順は、プライベートネットワーク上の他のMySQL Clusterノードからの着信接続を許可することです。

このドロップレットの設定時にufwファイアウォールを構成しなかった場合は、次のセクションにスキップできます。

両方のデータノードからのローカル着信接続を許可するルールを追加します。

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.1

これらのコマンドを入力すると、次の出力が表示されます。

OutputRule added

Cluster Managerが起動し、実行され、プライベートネットワークを介して他のクラスタノードと通信できるようになります。

[[step-2 -—- installing-and-configuring-the-data-nodes]] ==ステップ2—データノードのインストールと構成

[.note]#Note:このセクションのすべてのコマンドは、両方のデータノードで実行する必要があります。

このステップでは、ndbd MySQL Clusterデータノードデーモンをインストールし、クラスターマネージャーと通信できるようにノードを構成します。

データノードバイナリをインストールするには、最初に公式のMySQLdownload pageから適切な.debインストーラーファイルをフェッチする必要があります。

このページのSelect Operating Systemで、Ubuntu Linuxを選択します。 次に、Select OS Versionの下でUbuntu Linux 18.04 (x86, 64-bit)を選択します。

DEB Package, NDB Data Node Binariesが表示されるまで下にスクロールし、notdbgsymが含まれているリンクのDownloadリンクをクリックします(デバッグシンボルが必要な場合を除く)。 Begin Your Downloadページに移動します。 ここで、No thanks, just start my download.を右クリックし、リンクを.debファイルにコピーします。

ここで、最初のデータノードDroplet(このチュートリアルでは198.51.100.0)にログインし、次の.debファイルをダウンロードします。

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

データノードバイナリをインストールする前に、依存関係libclass-methodmaker-perlをインストールする必要があります。

sudo apt update
sudo apt install libclass-methodmaker-perl

これで、dpkgを使用してデータノートバイナリをインストールできます。

sudo dpkg -i mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

データノードは、MySQLの標準の場所である/etc/my.cnfから構成をプルします。 お気に入りのテキストエディターを使用してこのファイルを作成し、編集を開始します。

sudo nano /etc/my.cnf

以下の構成パラメーターをファイルに追加します。

/etc/my.cnf

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of cluster manager

Cluster Managerノードの場所を指定することは、ndbdを開始するために必要な唯一の構成です。 残りの構成は、マネージャーから直接取得されます。

ファイルを保存して終了します。

この例では、データノードは、マネージャーの構成に従って、そのデータディレクトリが/usr/local/mysql/dataであることを検出します。 デーモンを起動する前に、ノードに次のディレクトリを作成します。

sudo mkdir -p /usr/local/mysql/data

これで、次のコマンドを使用してデータノードを開始できます。

sudo ndbd

次のような出力が表示されるはずです。

Output2018-07-18 19:48:21 [ndbd] INFO     -- Angel connected to '198.51.100.2:1186'
2018-07-18 19:48:21 [ndbd] INFO     -- Angel allocated nodeid: 2

NDBデータノードデーモンが正常にインストールされ、サーバーで実行されています。

また、プライベートネットワークを介した他のMySQL Clusterノードからの着信接続を許可する必要があります。

このドロップレットのセットアップ時にufwファイアウォールを構成しなかった場合は、スキップしてndbdのsystemdサービスのセットアップに進むことができます。

Cluster Managerおよびその他のデータノードからの着信接続を許可するルールを追加します。

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.2

これらのコマンドを入力すると、次の出力が表示されます。

OutputRule added

MySQLデータノードドロップレットは、プライベートネットワークを介してCluster Managerと他のデータノードの両方と通信できるようになりました。

最後に、サーバーの起動時にデータノードデーモンが自動的に起動するようにします。 Cluster Managerと同じ手順に従い、systemdサービスを作成します。

サービスを作成する前に、実行中のndbdプロセスを強制終了します。

sudo pkill -f ndbd

ここで、お気に入りのエディターを使用して、次のsystemd Unitファイルを開いて編集します。

sudo nano /etc/systemd/system/ndbd.service

次のコードを貼り付けます。

/etc/systemd/system/ndbd.service

[Unit]
Description=MySQL NDB Data Node Daemon
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndbd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

ここでは、ndbdプロセスを開始、停止、再開する方法をsystemdに指示する最小限のオプションセットを追加しました。 このユニット構成で使用されるオプションの詳細については、systemdmanualを参照してください。

ファイルを保存して閉じます。

ここで、daemon-reloadを使用してsystemdのマネージャー構成をリロードします。

sudo systemctl daemon-reload

データノードデーモンが再起動時に開始されるように、作成したサービスを有効にします。

sudo systemctl enable ndbd

最後に、サービスを開始します。

sudo systemctl start ndbd

NDB Cluster Managementサービスが実行されていることを確認できます。

sudo systemctl status ndbd

次のような出力が表示されるはずです。

Output● ndbd.service - MySQL NDB Data Node Daemon
   Loaded: loaded (/etc/systemd/system/ndbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 20:56:29 UTC; 8s ago
  Process: 11972 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS)
 Main PID: 11984 (ndbd)
    Tasks: 46 (limit: 4915)
   CGroup: /system.slice/ndbd.service
           ├─11984 /usr/sbin/ndbd
           └─11987 /usr/sbin/ndbd

これは、ndbd MySQLClusterデータノードデーモンがsystemdサービスとして実行されていることを示しています。 これで、データノードは完全に機能し、MySQL Cluster Managerに接続できるはずです。

最初のデータノードの設定が完了したら、他のデータノード(このチュートリアルの198.51.100.1)でこのセクションの手順を繰り返します。

[[step-3 -—- configuring-and-starting-the-mysql-server-and-client]] ==ステップ3—MySQLサーバーとクライアントの構成と起動

UbuntuのAPTリポジトリで利用できるような標準のMySQLサーバーは、MySQL ClusterエンジンNDBをサポートしていません。 つまり、このチュートリアルでインストールした他のMySQL Clusterソフトウェアにパッケージ化されたカスタムSQLサーバーをインストールする必要があります。

公式のMySQLClusterdownload pageからMySQL ClusterServerバイナリをもう一度取得します。

このページのSelect Operating Systemで、Ubuntu Linuxを選択します。 次に、Select OS Versionの下でUbuntu Linux 18.04 (x86, 64-bit)を選択します。

DEB Bundleが表示されるまで下にスクロールし、Downloadリンクをクリックします(リストの最初のリンクになります)。 Begin Your Downloadページに移動します。 ここで、No thanks, just start my download.を右クリックし、リンクを.tarアーカイブにコピーします。

ここで、Cluster Managerドロップレット(このチュートリアルでは198.51.100.2)にログインし、この.tarアーカイブをダウンロードします(本番環境では、クラスターマネージャーと同じノードにMySQLサーバーをインストールしていることを思い出してください)。これらのデーモンを異なるノードで実行する必要がある設定):

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar

このアーカイブをinstallというディレクトリに抽出します。 まず、ディレクトリを作成します。

mkdir install

次に、このディレクトリにアーカイブを抽出します。

tar -xvf mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar -C install/

抽出されたMySQL Clusterコンポーネントバイナリを含むこのディレクトリに移動します。

cd install

MySQLサーバーバイナリをインストールする前に、いくつかの依存関係をインストールする必要があります。

sudo apt update
sudo apt install libaio1 libmecab2

次に、抽出したtarアーカイブにバンドルされているMySQLClusterの依存関係をインストールする必要があります。

sudo dpkg -i mysql-common_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-server_7.6.6-1ubuntu18.04_amd64.deb

mysql-cluster-community-serverをインストールすると、MySQLデータベースのrootアカウントのパスワードを設定するように求める構成プロンプトが表示されます。 強力で安全なパスワードを選択し、<Ok>を押します。 プロンプトが表示されたら、このrootパスワードを再入力し、もう一度<Ok>を押してインストールを完了します。

これで、dpkgを使用してMySQLサーバーバイナリをインストールできます。

sudo dpkg -i mysql-server_7.6.6-1ubuntu18.04_amd64.deb

次に、このMySQLサーバーのインストールを構成する必要があります。

MySQL Serverの構成は、デフォルトの/etc/mysql/my.cnfファイルに保存されます。

お気に入りのエディターを使用してこの構成ファイルを開きます。

sudo nano /etc/mysql/my.cnf

次のテキストが表示されます。

/etc/mysql/my.cnf

# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
# The MySQL Cluster Community Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

次の構成を追加します。

/etc/mysql/my.cnf

. . .
[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of management server

ファイルを保存して終了します。

これらの変更を有効にするには、MySQLサーバーを再起動します。

sudo systemctl restart mysql

デフォルトでは、MySQLはサーバーの再起動時に自動的に起動します。 解決しない場合、次のコマンドでこれを修正する必要があります。

sudo systemctl enable mysql

これで、SQL ServerがCluster Manager / MySQL Server Dropletで実行されているはずです。

次のステップでは、いくつかのコマンドを実行して、MySQL Clusterインストールが期待どおりに機能していることを確認します。

[[step-4 -—- verifying-mysql-cluster-installation]] ==ステップ4—MySQLClusterのインストールを確認する

MySQL Clusterのインストールを確認するには、Cluster Manager / SQL Serverノードにログインします。

コマンドラインからMySQLクライアントを開き、次のコマンドを入力して、構成したばかりのrootアカウントに接続します。

mysql -u root -p

プロンプトが表示されたらパスワードを入力し、ENTERを押します。

次のような出力が表示されます。

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22-ndb-7.6.6 MySQL Cluster Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQLクライアント内で、次のコマンドを実行します。

SHOW ENGINE NDB STATUS \G

接続パラメーターから始まるNDBクラスターエンジンに関する情報が表示されます。

Output
*************************** 1. row ***************************
  Type: ndbcluster
  Name: connection
Status: cluster_node_id=4, connected_host=198.51.100.2, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0
. . .

これは、MySQL Clusterに正常に接続されたことを示しています。

ここで、ready_data_nodesの数に注意してください:2。 この冗長性により、MySQLクラスターは、データノードの1つに障害が発生した場合でも動作を継続できます。 また、2つのデータノード間でSQLクエリの負荷が分散されることも意味します。

データノードの1つをシャットダウンして、クラスターの安定性をテストできます。 最も簡単なテストは、リカバリプロセスを完全にテストするために、データノードドロップレットを再起動することです。 ノードが再起動してクラスターマネージャーに再接続すると、number_of_ready_data_nodesの値が1に変更され、再び2に戻ることがわかります。

MySQLプロンプトを終了するには、quitと入力するか、CTRL-Dを押します。

これは、MySQLクラスター、サーバー、およびクライアントが機能していることを示す最初のテストです。 ここで、クラスターが適切に機能していることを確認するための追加テストを実施します。

次のコマンドを使用して、クラスター管理コンソールndb_mgmを開きます。

ndb_mgm

次のような出力が表示されるはずです。

Output-- NDB Cluster -- Management Client --
ndb_mgm>

コンソールに入ったら、コマンドSHOWを入力し、ENTERを押します。

SHOW

次のような出力が表示されるはずです。

OutputConnected to Management Server at: 198.51.100.2:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2    @198.51.100.0  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *)
id=3    @198.51.100.1  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

[mysqld(API)]   1 node(s)
id=4    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

上記は、node-id+`s 2 and 3. There is also one management node with `+node-id 1に接続された2つのデータノードとnode-id4に接続された1つのMySQLサーバーがあることを示しています。 次のようにコマンドSTATUSで番号を入力すると、各IDに関する詳細情報を表示できます。

2 STATUS

上記のコマンドは、ノード2のステータス、MySQLバージョン、およびNDBバージョンを表示します。

OutputNode 2: started (mysql-5.7.22 ndb-7.6.6)

管理コンソールを終了するには、quitと入力し、ENTERを押します。

管理コンソールは非常に強力で、オンラインバックアップの作成など、クラスターとそのデータを管理するための多くの他のオプションを提供します。 詳細については、official MySQL documentationを参照してください。

この時点で、MySQL Clusterインストールを完全にテストしました。 このガイドの最後のステップでは、テストデータを作成してこのMySQL Clusterに挿入する方法を示します。

[[step-5 --- inserting-data-into-mysql-cluster]] ==ステップ5—MySQLClusterへのデータの挿入

クラスターの機能を実証するために、NDBエンジンを使用して新しいテーブルを作成し、サンプルデータを挿入します。 クラスタ機能を使用するには、エンジンをNDBとして明示的に指定する必要があることに注意してください。 InnoDB(デフォルト)または他のエンジンを使用する場合、クラスターを使用しません。

まず、次のコマンドを使用してclustertestというデータベースを作成しましょう。

CREATE DATABASE clustertest;

次に、新しいデータベースに切り替えます。

USE clustertest;

次に、次のようなtest_tableという単純なテーブルを作成します。

CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;

クラスターを利用するために、エンジンndbclusterを明示的に指定しました。

これで、次のSQLクエリを使用してデータの挿入を開始できます。

INSERT INTO test_table (name,value) VALUES('some_name','some_value');

データが挿入されたことを確認するには、次の選択クエリを実行します。

SELECT * FROM test_table;

ndbclusterテーブルにデータを挿入し、そこからデータを選択すると、クラスターは使用可能なすべてのデータノード間でクエリの負荷を分散します。 これにより、MySQLデータベースのインストールの安定性とパフォーマンスが向上します。

以前に編集したmy.cnfファイルでデフォルトのストレージエンジンをndbclusterに設定することもできます。 これを行う場合、テーブルを作成するときにENGINEオプションを指定する必要はありません。 詳細については、MySQLReference Manualを参照してください。

結論

このチュートリアルでは、Ubuntu 18.04サーバーでMySQL Clusterを設定および構成する方法を示しました。 これはインストール手順を示すために使用される最小限の簡略化されたアーキテクチャであり、MySQL Clusterを実稼働環境にデプロイする前に(バックアップの実行など)学ぶ価値のある多くの高度なオプションと機能があることに注意することが重要です。 詳細については、公式のMySQL Cluster documentationを参照してください。

Related