Привіт, Гість

dsoft blog

Налаштування кластеру баз даних Mariadb (Galera Cluster ) на Ubuntu

Published by ds

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

Одним з популярних рішень для Galera Cluster є MariaDB, яка пропонує готовий до використання пакет, який дозволяє легко налаштувати та розгорнути кластер. У цій статті ми розглянемо детальніше налаштування Galera Cluster з використанням MariaDB та навчимося створювати резервні копії та відновлювати дані у разі необхідності.

З метою забезпечення високої продуктивності та безпеки бази даних, правильне налаштування Galera Cluster відіграє ключову роль. У цій статті ми розкажемо про основні налаштування, які необхідно виконати, щоб забезпечити безперебійну роботу кластера та максимальну продуктивність.

sudo apt update
sudo apt upgrade

Після оновлення пакетів, встановіть необхідні пакети для MariaDB Galera Cluster:

sudo apt install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64] Index of /mariadb/repo/10.6/ubuntu bionic main'
sudo apt update
sudo apt install mariadb-server galera-4 rsync

Налаштування файрволу

sudo ufw allow 3306/tcp
sudo ufw allow 4444/tcp
sudo ufw allow 4567/tcp

Налаштування MariaDB Galera Cluster

/etc/mysql/mariadb.conf.d/50-server.cnf

Додайте наступний вміст у файл:

[mysqld]: під цим текстом додайте:
performance_schema=ON

performance-schema-instrument='statement/%=ON'

performance-schema-consumer-statements-digest=ON

innodb_monitor_enable=all

server-id=1
log-bin=master-bin
binlog-format=ROW
log-basename=master
#log-slave-updates=1
#binlog-do-db=test

bind-address = 0.0.0.0
#binlog_format = ROW
#default_storage_engine = InnoDB
#innodb_autoinc_lock_mode = 2
#innodb_flush_log_at_trx_commit = 0
#wsrep_on = ON
#wsrep_provider = /usr/lib/galera-4/libgalera_smm.so
#wsrep_cluster_name = "crm_cluster"
#wsrep_cluster_address = "gcomm://crm,crm2"
#wsrep_node_name = "crm"
#wsrep_node_address = "94.131.247.67"
#wsrep_sst_method = rsync

Зайдіть на сервер 1.

sudo mysql -u root -p

Створіть користувача для реплікації та додайте йому необхідні привілеї:

CREATE USER '<користувач реплікації>'@'%' IDENTIFIED BY '<пароль користувача реплікації>';
GRANT REPLICATION SLAVE ON . TO '<користувач реплікації>'@'%';
FLUSH PRIVILEGES;

Визначте поточну позицію реплікації, виконавши команду:

SHOW MASTER STATUS;

Зайдіть на сервер 2.

sudo mysql -u root -p

Вимкніть службу wsrep перед додаванням реплікації, виконавши команду:

SET GLOBAL wsrep_on=OFF;

Відкрийте конфігураційний файл MariaDB на сервері 2 для редагування:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Вставте наступні рядки в кінець файлу, щоб налаштувати сервер 2 як слейв:

[mysqld]

performance_schema=ON

performance-schema-instrument='statement/%=ON'

performance-schema-consumer-statements-digest=ON

innodb_monitor_enable=all

server-id=2
relay-log=slave-relay-bin
log-basename=slave
binlog-format=row
slave-skip-errors =1396

Перезапускаємо службу MariaDB на серверах.

sudo systemctl restart mariadb

Створіть користувача, який буде використовуватися для реплікації на сервері 1. У цьому прикладі ми називаємо його "replication_user" і даємо йому пароль "password".

GRANT REPLICATION SLAVE ON . TO 'replication_user'@'%' IDENTIFIED BY 'password';

Отримайте значення параметрів MASTER_LOG_FILE та MASTER_LOG_POS на сервері 1, виконавши наступну команду:

SHOW MASTER STATUS;

Запишіть значення MASTER_LOG_FILE та MASTER_LOG_POS, вони нам знадобляться на наступному етапі.

На сервері 2 запустіть наступну команду для налаштування реплікації з сервером 1:

CHANGE MASTER TO MASTER_HOST='<IP адреса сервера 1>', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='<значення MASTER_LOG_FILE>', MASTER_LOG_POS=<значення MASTER_LOG_POS>;

Потім запустіть команду для запуску реплікації:

START SLAVE;

SHOW MASTER STATUS;

 

На сервері-слейві відкрийте конфігураційний файл MariaDB:
read_only = 1

Запустіть сервіс MariaDB на сервері-слейві:

sudo systemctl start mariadb

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

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='<IP адреса сервера-мастера>', MASTER_USER='replication', MASTER_PASSWORD='<пароль>', MASTER_LOG_FILE='<назва файлу бінлогу>', MASTER_LOG_POS=<позиція>;
START SLAVE;

в наступній статті ми змінимо схемі з master-slave на master-master

Ще немає коментарів.

Авторизуйтесь, щоб залишити коментар.

Про нас

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

Ми в соцемережах

  1. GitHub
  2. Twitter