前書き
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を使用して次のドロップレットを作成します。
-
private networkingが有効になっている3つのUbuntu18.04ドロップレット
-
各ドロップレットにsudo特権が設定されている非ルートユーザー。 これを行う方法はInitial Server Setup with Ubuntu 18.04で学ぶことができます。
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が表示されるまで下にスクロールし、notにdbgsym
が含まれているリンクの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が表示されるまで下にスクロールし、notにdbgsym
が含まれているリンクの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-id
4に接続された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を参照してください。