序章

MySQL Cluster分散データベースは、MySQLデータベース管理システムに高可用性とスループットを提供します。 MySQLクラスターは、1つ以上の管理ノードで構成されます(ndb_mgmd)クラスターの構成を保存し、データノードを制御します(ndbd)、クラスターデータが保存される場所。 管理ノードと通信した後、クライアント(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サーバー/クライアント(mysqldmysql).

同じ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—ClusterManagerのインストールと設定

まず、MySQLClusterManagerをダウンロードしてインストールします。 ndb_mgmd.

クラスタマネージャをインストールするには、最初に適切なものを取得する必要があります .deb 公式MySQLクラスターダウンロードページからのインストーラーファイル。

このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。

DEBパッケージ、NDB管理サーバーが表示されるまで下にスクロールし、含まれていないリンクのダウンロードリンクをクリックします。 dbgsym (デバッグシンボルが必要な場合を除く)。 ダウンロードの開始ページが表示されます。 ここで、を右クリックします。いいえ、ダウンロードを開始します。をクリックして、リンクをコピーします。 .deb ファイル。

次に、Cluster Managerドロップレットにログインします(このチュートリアルでは、 198.51.100.2)、これをダウンロードします .deb ファイル:

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

インストール ndb_mgmd を使用して dpkg:

  1. 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 このファイルが存在するディレクトリ:

  1. sudo mkdir /var/lib/mysql-cluster

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

  1. 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クラスター用の簡素化された最小限の構成ファイルです。 本番環境のニーズに応じて、このファイルのパラメータをカスタマイズする必要があります。 サンプルの場合、完全に構成されています ndb_mgmd 構成ファイルについては、MySQLクラスタードキュメントを参照してください。

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

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

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

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

Output
MySQL 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サービスを作成して有効にします。

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

  1. sudo pkill -f ndb_mgmd

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

  1. 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

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

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

次に、systemdのマネージャー構成を使用してリロードします daemon-reload:

  1. sudo systemctl daemon-reload

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

  1. sudo systemctl enable ndb_mgmd

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

  1. sudo systemctl start ndb_mgmd

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

  1. 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 MySQLClusterManagementサーバーがsystemdサービスとして実行されています。

クラスタマネージャを設定するための最後のステップは、プライベートネットワーク上の他のMySQLクラスタノードからの着信接続を許可することです。

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

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

  1. sudo ufw allow from 198.51.100.0
  2. sudo ufw allow from 198.51.100.1

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

Output
Rule added

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

ステップ2—データノードのインストールと構成

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

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

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

このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。

DEBパッケージ、NDBデータノードバイナリが表示されるまで下にスクロールし、が含まれていないリンクのダウンロードリンクをクリックします。 dbgsym (デバッグシンボルが必要な場合を除く)。 ダウンロードの開始ページが表示されます。 ここで、を右クリックします。いいえ、ダウンロードを開始します。をクリックして、リンクをコピーします。 .deb ファイル。

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

  1. cd ~
  2. 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:

  1. sudo apt update
  2. sudo apt install libclass-methodmaker-perl

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

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

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

  1. 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、マネージャの構成ごと。 デーモンを起動する前に、ノードに次のディレクトリを作成します。

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

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

  1. sudo ndbd

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

Output
2018-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クラスタノードからの着信接続を許可する必要があります。

構成しなかった場合 ufw このドロップレットを設定するときにファイアウォールを使用すると、systemdサービスの設定にスキップできます。 ndbd.

クラスタマネージャおよび他のデータノードからの着信接続を許可するルールを追加します。

  1. sudo ufw allow from 198.51.100.0
  2. sudo ufw allow from 198.51.100.2

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

Output
Rule added

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

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

サービスを作成する前に、実行中のユーザーを強制終了します ndbd 処理する:

  1. sudo pkill -f ndbd

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

  1. 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

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

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

次に、systemdのマネージャー構成を使用してリロードします daemon-reload:

  1. sudo systemctl daemon-reload

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

  1. sudo systemctl enable ndbd

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

  1. sudo systemctl start ndbd

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

  1. 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サービスとして実行されています。 これで、データノードが完全に機能し、MySQLClusterManagerに接続できるようになります。

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

ステップ3—MySQLサーバーとクライアントの構成と起動

UbuntuのAPTリポジトリで利用可能なものなどの標準のMySQLサーバーは、MySQLClusterエンジンNDBをサポートしていません。 これは、このチュートリアルでインストールした他のMySQLClusterソフトウェアと一緒にパッケージ化されたカスタムSQLサーバーをインストールする必要があることを意味します。

公式のMySQLClusterダウンロードページからMySQLClusterServerバイナリをもう一度取得します。

このページの[オペレーティングシステムの選択]で、 UbuntuLinuxを選択します。 次に、 OSバージョンの選択で、 Ubuntu Linux 18.04(x86、64ビット)を選択します。

DEBバンドルが表示されるまで下にスクロールし、ダウンロードリンクをクリックします(リストの最初のリンクである必要があります)。 ダウンロードの開始ページが表示されます。 ここで、を右クリックします。いいえ、ダウンロードを開始します。をクリックして、リンクをコピーします。 .tar 記録。

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

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

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

  1. mkdir install

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

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

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

  1. cd install

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

  1. sudo apt update
  2. sudo apt install libaio1 libmecab2

次に、MySQLClusterの依存関係をインストールする必要があります。 tar 抽出したばかりのアーカイブ:

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

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

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

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

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

MySQLサーバーの構成はデフォルトで保存されます /etc/mysql/my.cnf ファイル。

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

  1. 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サーバーを再起動します。

  1. sudo systemctl restart mysql

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

  1. sudo systemctl enable mysql

これで、SQLサーバーがCluster Manager / MySQLServerDropletで実行されているはずです。

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

ステップ4—MySQLクラスターのインストールを確認する

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

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

  1. mysql -u root -p

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

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

Output
Welcome 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クライアントに入ったら、次のコマンドを実行します。

  1. 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クラスターに正常に接続したことを示します。

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

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

MySQLプロンプトを終了するには、次のように入力します。 quit またはを押します CTRL-D.

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

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

  1. ndb_mgm

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

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

コンソールに入ったら、コマンドを入力します SHOW とヒット ENTER:

  1. SHOW

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

Output
Connected 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)

上記は、2つのデータノードが接続されていることを示しています node-id■2および3。 1つの管理ノードもあります node-id 1台のMySQLサーバーと1台のMySQLサーバー node-id 4. コマンドで番号を入力すると、各IDに関する詳細情報を表示できます。 STATUS 次のように:

  1. 2 STATUS
  2. ```
  3. The above command shows you the status, MySQL version, and NDB version of node 2:
  4. ```
  5. [secondary_label Output]
  6. Node 2: started (mysql-5.7.22 ndb-7.6.6)
  7. ```
  8. To exit the management console type `quit`, and then hit `ENTER`.
  9. The management console is very powerful and gives you many other options for administering the cluster and its data, including creating an online backup. For more information consult the [official MySQL documentation](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-management.html).
  10. At this point, you’ve fully tested your MySQL Cluster installation. The concluding step of this guide shows you how to create and insert test data into this MySQL Cluster.
  11. ## Step 5 — Inserting Data into MySQL Cluster
  12. To demonstrate the cluster’s functionality, let's create a new table using the NDB engine and insert some sample data into it. Note that in order to use cluster functionality, the engine must be specified explicitly as **NDB**. If you use InnoDB (default) or any other engine, you will not make use of the cluster.
  13. First, let's create a database called `clustertest` with the command:
  14. ```custom_prefix(mysql>)
  15. CREATE DATABASE clustertest;
  16. ```
  17. Next, switch to the new database:
  18. ```custom_prefix(mysql>)
  19. USE clustertest;
  20. ```
  21. Now, create a simple table called `test_table` like this:
  22. ```custom_prefix(mysql>)
  23. CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;
  24. ```
  25. We have explicitly specified the engine `ndbcluster` in order to make use of the cluster.
  26. Now, we can start inserting data using this SQL query:
  27. ```custom_prefix(mysql>)
  28. INSERT INTO test_table (name,value) VALUES('some_name','some_value');
  29. ```
  30. To verify that the data has been inserted, run the following select query:
  31. ```custom_prefix(mysql>)
  32. SELECT * FROM test_table;
  33. ```
  34. When you insert data into and select data from an `ndbcluster` table, the cluster load balances queries between all the available data nodes. This improves the stability and performance of your MySQL database installation.
  35. You can also set the default storage engine to `ndbcluster` in the `my.cnf` file that we edited previously. If you do this, you won’t need to specify the `ENGINE` option when creating tables. To learn more, consult the MySQL [Reference Manual](https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html).
  36. ## Conclusion
  37. In this tutorial, we’ve demonstrated how to set up and configure a MySQL Cluster on Ubuntu 18.04 servers. It’s important to note that this is a minimal, pared-down architecture used to demonstrate the installation procedure, and there are many advanced options and features worth learning about before deploying MySQL Cluster in production (for example, performing backups). To learn more, consult the official [MySQL Cluster documentation](https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html).