Як встановити кластер MariaDB Galera на Ubuntu 16.04

Як встановити кластер MariaDB Galera на Ubuntu 16.04

MariaDB Galera - це кластер з декількома майстрами для MariaDB. Оскільки MariaDB 10.1, пакунки MariaDB Server і MariaDB Galera Server були об'єднані, а пакети Galera та їх залежності встановлюються автоматично під час встановлення MariaDB. Наразі кластер кластера MariaDB Galera підтримує лише механізм зберігання InnoDB / XtraDB. У MariaDB 10.0 і 5.5 вам потрібно завантажити окремо. MariaDB Galera додає надмірність для бази даних сайту. У кластері MariaDB Galera декілька серверів баз даних взаємопов'язані один з одним і зберігають синхронізацію.

MariaDB Galera надає безліч функцій, деякі з них наведено нижче.

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

У цьому підручнику ми пояснимо, як налаштувати MariaDB Galera Cluster 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-get update-y
sudo apt-get upgrade-я

Далі, перезапустіть усі вузли, щоб застосувати ці зміни. Потім увійдіть із користувачем sudo і переходьте до наступного кроку.

Встановити MariaDB Galera

Пакети MariaDB Server і MariaDB Galera Server поєднуються в версії MariaDB 10.1. За замовчуванням MariaDB 10.1 недоступний в сховищах Ubuntu за замовчуванням, тому вам потрібно буде додати репозиторій MariaDB на всі вузли.

Спочатку додайте ключ репозиторію MariaDB за допомогою наступної команди:

sudo apt-key adv -recv-keys -keyserver hkp: //keyserver.ubuntu.com: 80 0xF1656F24C74CD1D8

Далі додати сховище та оновити кеш APT за допомогою такої команди:

sudo add-apt-repository 'deb [arch = amd64, i386, ppc64el]
sudo apt-get update-y

Після оновлення сховища встановіть MariaDB за допомогою такої команди:

sudo apt-get install mariadb-сервер rsync -y

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

За замовчуванням установка MariaDB не захищена, тому вам потрібно буде забезпечити встановлення MariaDB. Ви можете зробити це за допомогою сценарію mysql_secure_installation:

sudo mysql_secure_installation

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

Введіть поточний пароль для кореня (введіть для неї): змінити пароль адміністратора? [Y / n] n Видалити анонімних користувачів? [Y / n] Y Відключити кореневий авторизацію віддалено? [Y / n] Y Вилучити тестову базу даних та доступ до неї? [Y / n] Y Перезавантажити таблиці привілеїв зараз? [Y / n] Y

Як тільки MariaDB захищений на всіх вузлах, ви можете перейти до наступного кроку.

Встановити кластер MariaDB на Node1

Спочатку перейдіть до Node1 і створіть файл конфігурації для Galera. За замовчуванням MariaDB читає конфігурацію з каталогу /etc/mysql/conf.d/. Для цього виконайте таку команду:

sudo nano /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 Налаштування постачальника wsrep_on = ВКЛ wsrep_provider = / usr / lib / galera / libgalera_smm.so # Конфігурація кластеру Galera wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Конфігурація синхронізації Galera wsrep_sst_method = rsync # Конфігурація вузла Galera wsrep_node_address = "192.168.0.102" wsrep_node_name = "Node1"

Зберегти файл після завершення.

Примітка: 192.168.0.102 - це IP-адреса Node1

Додати Node2 на кластер Galera

Потім перейдіть до Node2 і створіть файл конфігурації для Galera:

sudo nano /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 Налаштування постачальника wsrep_on = ВКЛ wsrep_provider = / usr / lib / galera / libgalera_smm.so # Конфігурація кластеру Galera wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Конфігурація синхронізації Galera wsrep_sst_method = rsync # Конфігурація вузла Galera wsrep_node_address = "192.168.0.103" wsrep_node_name = "Node2"

Зберегти файл після завершення.

Примітка: 192.168.0.103 - це IP-адреса Node2.

Додати Node3 на кластер Galera

Потім перейдіть до Node3 і створіть файл конфігурації для Galera:

sudo nano /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 Налаштування постачальника wsrep_on = ВКЛ wsrep_provider = / usr / lib / galera / libgalera_smm.so # Конфігурація кластеру Galera wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # Конфігурація синхронізації Galera wsrep_sst_method = rsync # Конфігурація вузла Galera wsrep_node_address = "192.168.0.104" wsrep_node_name = "Node3"

Зберегти файл після завершення.

Примітка: 192.168.0.104 - це IP-адреса Node3.

Налаштувати брандмауер

Galera Cluster використовує чотири порти 3306 для клієнтського підключення MySQL, 4444 для передавання знімків у країні, 4567 для трафіку реплікації кластерів Galera і 4568 для додаткового державного передавання. Тому вам потрібно дозволити всі ці порти за допомогою брандмауера UFW. Ви можете це зробити, запустивши таку команду на всіх вузлах:

Спочатку увімкніть брандмауер UFW за допомогою такої команди:

sudo ufw enable

Далі, дозвольте всім портам виконати таку команду:

sudo ufw дозволити 3306 / tcp
sudo ufw дозволити 4444 / tcp
sudo ufw дозволити 4567 / tcp
sudo ufw дозволити 4568 / tcp
sudo ufw дозволити 4567 / UDP

Потім можна перевірити стан брандмауера за допомогою такої команди:

Sudo UFW статус

Після того, як брандмауер UFW налаштовано на всіх вузлах, ви можете перейти до наступного кроку.

Запустіть MariaDB Galera Cluster

Після успішного налаштування всіх вузлів перейдіть до Node1 і запустіть кластер Galera.

Перш ніж почати роботу з Galera, вам слід переконатися, що служба MariaDB зупинена на всіх вузлах.

Виконайте наступну команду на всіх вузлах:

sudo systemctl stop mysql

Тепер запустіть кластер Galera на Node1 за допомогою наступної команди:

sudo galera_new_cluster

Тепер перевірте, чи працює кластер чи ні, за допомогою такої команди:

mysql -u root -p -e "показувати статус як" wsrep_cluster_size ""

Якщо все добре, ви повинні побачити наступний висновок:

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

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

sudo systemctl почати mysql

Ви можете перевірити стан служби MariaDB незалежно від того, працює він чи ні з такою командою:

sudo systemctl status mysql

Якщо все добре, ви повинні побачити наступний висновок:

?? mariadb.service - сервер бази даних MariaDB Завантажений: завантажений (/lib/systemd/system/mariadb.service; ввімкнений; попередній параметр постачальника: ввімкнено) Активний: активний (працює) від Sun 2017-09-17 10: 11: 20 EDT; 10 мінус тому Процес: 715 ExecStartPost = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (code = exited, status = 0 / SUCCESS) Процес: 713 ExecStartPost = / etc / mysql / debian-start (код = вихід, статус = 0 / SUCCESS) Процес: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || VAR = `/ usr / bin / galera_recovery`; [$? -eq 0] && systemctl set Процес: 535 ExecStartPre = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (код = вихід, статус = 0 / SUCCESS) Процес: 514 ExecStartPre = / usr / bin / install -m 755 -o Основний PID: 0 (mysqld) Статус: "Взяття ваших SQL-запитів зараз ..." Завдання: 661 (межа: 26): mysql-g root -d / var / run / mysqld (код = вихід, статус = 4915 / SUCCESS) CGroup: /system.slice/mariadb.service ?????? 661 / usr / sbin / mysqld вересень 17 10: 11: 11 debian systemd [1]: запуск бази даних сервера MariaDB ... Січ 17 10: 11: 15 debian mysqld [661]: 2017-09-17 10: 11: 15 140287134630464 [Примітка] / usr / sbin / mysqld (mysqld 10.1.26-MariaDB-0 + deb9u1), починаючи процес Sep 17 10: 11: 20 debian systemd [1 ]: Запущений сервер бази даних MariaDB.

Тепер ваш другий вузол повинен бути автоматично пов'язаний з кластером. Це можна перевірити за допомогою такої команди:

mysql -u root -p -e "показувати статус як" wsrep_cluster_size ""

Якщо все працює добре, розмір кластера повинен бути встановлений на два:

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

На Node3 запустіть службу MariaDB:

sudo systemctl почати mysql
mysql -u root -p -e "показувати статус як" wsrep_cluster_size ""

Якщо все працює добре, розмір кластера повинен бути встановлений до трьох:

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

Ви зараз працюєте і спілкуєтеся один з одним.

Тестування реплікації бази даних

Тепер всі вузли в мережі, настав час перевірити реплікацію бази даних через кластер Galera. Почнемо з створення бази даних на Node1 і перевіримо, чи вона реплікується на всіх вузлах.

По-перше, увійдіть до консолі MariaDb за допомогою такої команди:

mysql -u root -p

Введіть пароль root і створіть базу даних з назвою test_db:

MariaDB [(none)]> створити базу даних test_db;
MariaDB [(none)]> показати бази даних;

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

Тепер перейдіть до Node2 та Node3, а потім перевірте, чи працює реплікація.

mysql -u root -p
MariaDB [(none)]> показати бази даних;

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

Вітаю! Ви успішно встановили та налаштували кластер MariaDB Galera на сервері Ubuntu 16.04.

Висновок

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

джерело

Схожі теми

залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.