Как установить кластер Galera MariaDB на Ubuntu 16.04

Как установить кластер Galera MariaDB на Ubuntu 16.04

Галера MariaDB является кластер несколькими хозяевами для MariaDB. Начиная с MariaDB 10.1, MariaDB и MariaDB Galera сервером пакетов были объединены и Галера пакеты и их зависимости устанавливаются автоматически при установке MariaDB. В настоящее время, MariaDB Галера кластера поддерживает только механизм хранения InnoDB / XtraDB. В MariaDB 10.0 и 5.5, вам нужно будет скачать отдельно. MariaDB Галера добавляет избыточность базы данных сайта;. В MariaDB Галера кластера, несколько серверов база данных взаимосвязаны друг с другом и держать синхронные.

MariaDB Галера предоставляет множество функций, Некоторые из них перечислены ниже:

  1. Синхронная репликация.
  2. Автоматический узел присоединения.
  3. Активный-активный мульти-мастер топологии.
  4. Правда параллельно репликации, на уровне строк.
  5. Чтение и запись масштабируемость, Меньший клиент латентности.
  6. Неудачные узлы, автоматическое падение из кластера.

В этом руководстве, мы объясним, как настроить MariaDB Галера кластера 10.1 с 3 узлы, работающие на Ubuntu 16.04 сервера. Мы также проверить репликацию базы данных между всеми узлами.

Требования к

  • Три Вершины под управлением Ubuntu 16.04 сервера.
  • Node1 со статическим IP-адресом 192.168.0.102, Node2 со статическим IP-адресом 192.168.0.103 и node3 со статическим IP-адресом 192.168.0.104 настроить на сервере.
  • Некорневые пользователи с привилегиями настройки Суда на всех узлах.

Приступая к работе

Первый, вам необходимо обновить все узлы с последней версией. Вы можете обновить все из них с помощью следующей команды:

sudo apt получить обновление -y
sudo apt получить обновления -y

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

Установить MariaDB Галера

пакеты MariaDB сервера и MariaDB Галера сервера объединены в версии MariaDB 10.1. По умолчанию, MariaDB 10.1 не доступен в репозиториях Ubuntu по умолчанию, так что вам нужно будет добавить репозиторий MariaDB на всех узлах.

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

sudo apt-key adv –ПРИЕМ-ключи –сервера ключей HKP: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

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

Суда надстройка apt-репозиторий «DEB [арка = amd64, i386, ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu основной дружественный’
sudo apt получить обновление -y

После того, как хранилище обновляется, установить MariaDB с помощью следующей команды:

Sudo APT-получить установку MariaDB-сервер Rsync -y

Вышеприведенная команда установит MariaDB с Галерой и несколько зависимостей. Части Галера остаются в состоянии покоя до тех пор, пока настроен, как плагин или хранение двигатель. После того, как MariaDB устанавливается на всех узлах, Вы можете продолжить, чтобы обеспечить MariaDB.

По умолчанию не защищена MariaDB установки, так что вам будет нужно обеспечить MariaDB установки. Вы можете сделать это путем запуска скрипта mysql_secure_installation:

sudo mysql_secure_installation

В этом процессе, Вам будет предложено задать пароль пользователя root, Удаление анонимных пользователей, запретить корень логин удаленно и удаление тестовой базы данных. Ответьте на все вопросы как показано ниже:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

После того, как MariaDB обеспечивается на всех узлах, Вы можете перейти к следующему шагу.

Настройка MariaDB кластера на Node1

Первый, перейти к Node1 и создать файл конфигурации для Галера. По умолчанию, MariaDB считывает конфигурацию из /etc/mysql/conf.d/ каталога. Для этого, выполните следующую команду:

Судо нано /etc/mysql/conf.d/galera.cnf

Добавьте следующие строки:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

Сохраните файл, когда вы закончите.

Примечание: 192.168.0.102 является IP-адрес Node1

Добавить Node2 на Галера кластера

Следующая, перейти к Node2 и создать файл конфигурации для Галера:

Судо нано /etc/mysql/conf.d/galera.cnf

Добавьте следующие строки:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

Сохраните файл, когда вы закончите.

Примечание: 192.168.0.103 является IP-адрес Node2.

Добавить node3 на Галера кластера

Следующая, перейти к node3 и создать файл конфигурации для Галера:

Судо нано /etc/mysql/conf.d/galera.cnf

Добавьте следующие строки:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

Сохраните файл, когда вы закончите.

Примечание: 192.168.0.104 является IP-адрес node3.

Настройка брандмауэра

Галера Cluster использует четыре порта 3306 для подключения клиента MySQL, 4444 для государственной Snapshot передачи, 4567 для Галера трафика репликации кластера и 4568 для инкрементного State Transfer. Так что вам нужно будет, чтобы все эти порты с помощью брандмауэров UFW. Вы можете сделать это, выполнив следующую команду на всех узлах:

Первый, включить брандмауэр UFW с помощью следующей команды:

Включение sudo ufw

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

Sudo UFW позволит 3306 / TCP
Sudo UFW позволит 4444 / TCP
Sudo UFW позволит 4567 / TCP
Sudo UFW позволит 4568 / TCP
Sudo UFW позволяют 4567 / ПДП

Вы можете проверить состояние брандмауэра с помощью следующей команды:

sudo статус ufw

После того, как брандмауэр UFW настроен на всех узлах, Вы можете перейти к следующему шагу.

Начало MariaDB Галера кластера

После успешного завершения настройки всех узлов, перейти к Node1 и начать Галера кластера.

Перед Галера может начать, Вы должны убедиться, что служба MariaDB останавливается на всех узлах.

Выполните следующую команду на всех узлах:

sudo systemctl остановки mysql

Теперь, начать Галера кластера на Node1 с помощью следующей команды:

Суд galera_new_cluster

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

MySQL -u -p -e корень “показать статус как «wsrep_cluster_size»”

Если все в порядке, вы должны увидеть следующий вывод:

+--------------------+-------+
| Variable_name | Значение |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

На Node2, запустить службу MariaDB:

sudo systemctl начало mysql

Вы можете проверить состояние службы MariaDB ли она работает или нет с помощью следующей команды:

sudo systemctl статус mysql

Если все в порядке, Вы должны увидеть следующий вывод:

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / бен / ш -с systemctl незадана-среда _WSREP_START_POSITION (код = возбужденном, status=0/SUCCESS)
  Process: 713 ExecStartPost = / и т.д. / MySQL / Debian-старт (код = возбужденном, status=0/SUCCESS)
  Process: 545 ExecStartPre = / бен / ш -с [! -e / USR / бен / galera_recovery] && VAR = || VAR = `/ USR / бен / galera_recovery`; [ $? -экв 0 ]   && systemctl set
  Process: 535 ExecStartPre = / бен / ш -с systemctl незадана-среда _WSREP_START_POSITION (код = возбужденном, status=0/SUCCESS)
  Process: 514 ExecStartPre = / USR / бен / установить -m 755 -о MySQL -g корень -d / вар / запустить / туздЫ (код = возбужденном, status=0/SUCCESS)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (ограничение: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10: 11: 11 Debian Systemd [1]: Запуск сервера базы данных MariaDB ...
Me. 17 10: 11: 15 Debian туздЫ [661]: 2017-09-17 10: 11: 15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10: 11: 20 Debian Systemd [1]: Начало работы сервера базы данных MariaDB.

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

MySQL -u -p -e корень “показать статус как «wsrep_cluster_size»”

Если все работает хорошо, размер кластера должен быть установлен на две части:

+--------------------+-------+
| Variable_name | Значение |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

На node3, запустить службу MariaDB:

sudo systemctl начало mysql
MySQL -u -p -e корень “показать статус как «wsrep_cluster_size»”

Если все работает хорошо, размер кластера должен быть установлен на три части:

+--------------------+-------+
| Variable_name | Значение |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Вы кластер сейчас работают и общения друг с другом.

Тест репликации баз данных

Теперь, все узлы в Интернете, это время, чтобы проверить репликацию базы данных в кластере Галера. Давайте начнем с создания базы данных по Node1 и проверить, является ли она реплицируется на всех узлах.

Первый, войти в MariaDB консоль с помощью следующей команды:

MySQL -u корень -p

Введите пароль суперпользователя и создать базу данных с именем test_db:

MariaDB [(нет)]> создание test_db базы данных;
MariaDB [(нет)]> Показать баз данных;

+--------------------+
| База данных |
+--------------------+
| test_db |
+--------------------+

Теперь переходим к Node2 и node3, а затем проверить репликации работают или нет:

MySQL -u корень -p
MariaDB [(нет)]> Показать баз данных;

+--------------------+
| База данных |
+--------------------+
| test_db |
+--------------------+

Поздравления! Вы успешно установили и настроили MariaDB Галера кластера на Ubuntu 16.04 сервера.

Заключение

Я надеюсь, что вы теперь достаточно знаний, чтобы установить и настроить MariaDB Галера кластера на Ubuntu 16.04. Теперь вы можете легко масштабируется до нескольких, или даже десятки, из различных узлов. Если у вас есть какие-либо сомнения или больше запросов, затем обратитесь по ссылке Галера Cluster Doc

Источник