Как создать многоузловой кластер MySQL в Ubuntu 18.04

Вступление

Распределенная база данных MySQL Cluster обеспечивает высокую доступность и пропускную способность вашей системы управления базами данных MySQL. Кластер MySQL состоит из одного или нескольких узлов управления (ndb_mgmd), которые хранят конфигурацию кластера и управляют узлами данных (ndbd), где хранятся данные кластера. После взаимодействия с узлом управления клиенты (клиенты MySQL, серверы или собственные API-интерфейсы) подключаются напрямую к этим узлам данных.

В MySQL Cluster обычно нет репликации данных, но вместо этого выполняется синхронизация узла данных. Для этого необходимо использовать специальный механизм обработки данных - NDBCluster (NDB). Полезно рассматривать кластер как единую логическую среду MySQL с избыточными компонентами. Таким образом, MySQL Cluster может участвовать в репликации с другими MySQL Clusters.

MySQL Cluster лучше всего работает в среде без общего доступа. В идеале, два компонента не должны использовать одно и то же оборудование. Для простоты и демонстрации мы ограничимся использованием только трех серверов. Мы настроим два сервера в качестве узлов данных, которые синхронизируют данные между собой. Третий сервер будет использоваться для Cluster Manager, а также для сервера / клиента MySQL. Если вы раскручиваете дополнительные серверы, вы можете добавить больше узлов данных в кластер, отделить менеджер кластера от сервера / клиента MySQL и настроить дополнительные серверы в качестве менеджеров кластера и серверов / клиентов MySQL.

Предпосылки

Для выполнения этого руководства вам потребуются три сервера: два сервера для избыточных узлов данных MySQL (ndbd) и один сервер для диспетчера кластеров (ndb_mgmd) и сервер / клиент MySQL ( mysqld иmysql).

Вsame DigitalOcean data center создайте следующие капли сprivate networking enabled:

  • Три капли Ubuntu 18.04 с включеннымprivate networking

  • Пользователь без полномочий root с правами sudo, настроенными для каждой капли. Вы можете узнать, как это сделать, вInitial Server Setup with Ubuntu 18.04.

Обязательно запишите IP-адресаprivate ваших трех капель. В этом руководстве наши узлы кластера имеют следующие частные IP-адреса:

  • 198.51.100.0 будет первым узлом данных MySQL Cluster

  • 198.51.100.1 будет вторым узлом данных

  • 198.51.100.2 будет серверным узлом Cluster Manager и MySQL

После того, как вы раскрутили свои дроплеты, настроили пользователя без полномочий root и записали IP-адреса для 3 узлов, вы готовы начать этот урок.

[[step-1 -—- install-and-configuring-the-cluster-manager]] == Шаг 1. Установка и настройка Cluster Manager

Сначала мы загрузим и установим MySQL Cluster Manager,ndb_mgmd.

Чтобы установить Cluster Manager, нам сначала нужно получить соответствующий установочный файл.deb из официального MySQL Clusterdownload page.

На этой странице в разделеSelect Operating System выберитеUbuntu Linux. Затем подSelect OS Version выберитеUbuntu Linux 18.04 (x86, 64-bit).

Прокрутите вниз, пока не увидитеDEB Package, NDB Management Server, и щелкните ссылкуDownload для той, которая содержитnotdbgsym (если вам не нужны символы отладки). Вы попадете на страницу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

Установитеndb_mgmd, используяdpkg:

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

Теперь нам нужно настроитьndb_mgmd перед первым запуском; правильная конфигурация обеспечит правильную синхронизацию и распределение нагрузки между узлами данных.

Диспетчер кластеров должен быть первым компонентом, запущенным в любом кластере MySQL. Для этого требуется файл конфигурации, передаваемый в качестве аргумента его исполняемому файлу. Мы создадим и будем использовать следующий файл конфигурации:/var/lib/mysql-cluster/config.ini.

В капле диспетчера кластеров создайте каталог/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 был успешно установлен и теперь работает на вашей Droplet.

В идеале мы хотели бы автоматически запускать сервер управления кластерами при загрузке. Для этого мы собираемся создать и включить сервис systemd.

Прежде чем мы создадим сервис, нам нужно убить работающий сервер:

sudo pkill -f ndb_mgmd

Теперь откройте и отредактируйте следующий системный файл модуля, используя ваш любимый редактор:

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. Чтобы узнать больше об опциях, используемых в этой конфигурации устройства, обратитесь к systemdmanual.

Сохраните и закройте файл.

Теперь перезагрузите конфигурацию менеджера systemd, используяdaemon-reload:

sudo systemctl daemon-reload

Мы включим только что созданный сервис, чтобы MySQL Cluster Manager запускался при перезагрузке:

sudo systemctl enable ndb_mgmd

Наконец, мы запустим сервис:

sudo systemctl start ndb_mgmd

Вы можете проверить, что служба управления кластерами NDB работает:

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

Это означает, что сервер управления кластером MySQLndb_mgmd теперь работает как служба systemd.

Последний шаг для настройки Cluster Manager - разрешить входящие соединения от других узлов MySQL Cluster в нашей частной сети.

Если вы не настраивали брандмауэрufw при настройке этой капли, вы можете перейти к следующему разделу.

Мы добавим правила, разрешающие локальные входящие соединения с обоих узлов данных:

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.1

После ввода этих команд вы должны увидеть следующий вывод:

OutputRule added

Диспетчер кластеров теперь должен быть запущен и иметь возможность взаимодействовать с другими узлами кластера по частной сети.

[[step-2 -—- install-and-configuring-the-data-nodes]] == Шаг 2 - Установка и настройка узлов данных

[.note] #Note: Все команды в этом разделе должны выполняться на обоих узлах данных.
#

На этом этапе мы установим демон узла данных MySQL Clusterndbd и настроим узлы, чтобы они могли взаимодействовать с диспетчером кластеров.

Чтобы установить двоичные файлы узла данных, нам сначала нужно получить соответствующий установочный файл.deb из официального MySQLdownload page.

На этой странице в разделеSelect Operating System выберитеUbuntu Linux. Затем подSelect OS Version выберитеUbuntu Linux 18.04 (x86, 64-bit).

Прокрутите вниз, пока не увидитеDEB Package, NDB Data Node Binaries, и щелкните ссылкуDownload для той, которая содержитnotdbgsym (если вам не нужны символы отладки). Вы попадете на страницу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

Указание местоположения узла диспетчера кластеров - единственная конфигурация, необходимая для запуска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 при настройке этой капли, вы можете сразу перейти к настройке службы systemd дляndbd.

Мы добавим правила, разрешающие входящие соединения от Cluster Manager и других узлов данных:

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.2

После ввода этих команд вы должны увидеть следующий вывод:

OutputRule added

Теперь ваш узел данных MySQL Droplet может взаимодействовать как с Cluster Manager, так и с другим узлом данных через частную сеть.

Наконец, нам также хотелось бы, чтобы демон узла данных запускался автоматически при загрузке сервера. Мы будем следовать той же процедуре, что и для Cluster Manager, и создадим службу systemd.

Перед тем, как создать сервис, мы остановим запущенный процессndbd:

sudo pkill -f ndbd

Теперь откройте и отредактируйте следующий системный файл модуля, используя ваш любимый редактор:

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. Чтобы узнать больше об опциях, используемых в этой конфигурации устройства, обратитесь к systemdmanual.

Сохраните и закройте файл.

Теперь перезагрузите конфигурацию менеджера systemd, используяdaemon-reload:

sudo systemctl daemon-reload

Теперь мы включим только что созданную службу, чтобы демон узла данных запускался при перезагрузке:

sudo systemctl enable ndbd

Наконец, мы запустим сервис:

sudo systemctl start ndbd

Вы можете проверить, что служба управления кластерами NDB работает:

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

Это означает, что демон узла данных MySQL Clusterndbd теперь работает как служба systemd. Теперь ваш узел данных должен быть полностью функциональным и иметь возможность подключения к MySQL Cluster Manager.

После того, как вы закончите настройку первого узла данных, повторите шаги, описанные в этом разделе, на другом узле данных (198.51.100.1 в этом руководстве).

[[step-3 -—- configuring-and-start-the-mysql-server-and-client]] == Шаг 3 - Настройка и запуск сервера и клиента MySQL

Стандартный сервер MySQL, например, доступный в репозитории Ubuntu APT, не поддерживает NDB механизма MySQL Cluster. Это означает, что нам нужно установить собственный SQL-сервер, упакованный с другим программным обеспечением MySQL Cluster, которое мы установили в этом руководстве.

Мы снова возьмем двоичный файл MySQL Cluster Server из официального MySQL Clusterdownload page.

На этой странице в разделе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.

Теперь войдите в каплю диспетчера кластеров (в этом руководстве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

Теперь нам нужно установить зависимости MySQL Cluster, включенные в только что извлеченный архивtar:

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 должно появиться окно конфигурации с просьбой установить пароль для учетной записиroot вашей базы данных MySQL. Выберите надежный и надежный пароль и нажмите<Ok>. При появлении запроса повторно введите этот парольroot и еще раз нажмите<Ok>, чтобы завершить установку.

Теперь мы можем установить двоичный файл сервера MySQL, используяdpkg:

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

Теперь нам нужно настроить установку этого сервера MySQL.

Конфигурация сервера MySQL хранится в файле по умолчанию/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 теперь должен быть запущен на вашем Cluster Manager / MySQL Server Droplet.

На следующем шаге мы запустим несколько команд, чтобы убедиться, что наша установка MySQL Cluster работает должным образом.

[[step-4 -—- verifying-mysql-cluster-installation]] == Шаг 4. Проверка установки кластера MySQL

Чтобы проверить установку 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 продолжать работать, даже если один из узлов данных выходит из строя. Это также означает, что ваши SQL-запросы будут сбалансированы по нагрузке между двумя узлами данных.

Вы можете попробовать отключить один из узлов данных, чтобы проверить стабильность кластера. Простейшим тестом будет перезапуск узла данных Droplet, чтобы полностью протестировать процесс восстановления. Вы должны увидеть, как значение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, и один сервер MySQL сnode-id 4. Вы можете отобразить дополнительную информацию о каждом идентификаторе, набрав его номер с помощью командыSTATUS следующим образом:

2 STATUS

Приведенная выше команда показывает вам статус, версию MySQL и версию NDB узла 2:

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

Чтобы выйти из консоли управления, введитеquit, а затем нажмитеENTER.

Консоль управления очень мощная и предоставляет множество других возможностей для администрирования кластера и его данных, включая создание оперативной резервной копии. Для получения дополнительной информации обратитесь кofficial MySQL documentation.

На данный момент вы полностью протестировали установку MySQL Cluster. Завершающий шаг этого руководства показывает, как создавать и вставлять тестовые данные в этот MySQL Cluster.

[[step-5 -—- insert-data-into-mysql-cluster]] == Шаг 5 - Вставка данных в кластер MySQL

Чтобы продемонстрировать функциональность кластера, давайте создадим новую таблицу с использованием механизма 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.

Вы также можете установить механизм хранения по умолчанию наndbcluster в файлеmy.cnf, который мы редактировали ранее. Если вы сделаете это, вам не нужно будет указывать параметрENGINE при создании таблиц. Чтобы узнать больше, обратитесь к MySQLReference Manual.

Заключение

В этом руководстве мы продемонстрировали, как установить и настроить MySQL Cluster на серверах Ubuntu 18.04. Важно отметить, что это минимальная, урезанная архитектура, используемая для демонстрации процедуры установки, и есть много расширенных опций и функций, которые стоит изучить перед развертыванием MySQL Cluster в рабочей среде (например, создание резервных копий). Чтобы узнать больше, обратитесь к официальномуMySQL Cluster documentation.

Related