Инструменты пользователя

Инструменты сайта


mariadb_galera_cluster

Это старая версия документа!


MariaDB Galera Cluster


Подготовка

Разворачиваем три сервера ubuntu последней версии, назначаем статические ip (для трёх серверов понадобиться 4 штуки).

Для удобства папку /var/lib/mysql делаем отдельным диском, чтобы всегда наглядно знать сколько занимают базы данных и сколько осталось, командой:

df -h | grep --color=never 'mysql\|Filesystem'

Пусть мы развернули три сервера:

mdb01 192.168.7.32
mdb02 192.168.7.33
mdb03 192.168.7.34

Общим ip будет:

mdbc01 192.168.7.35

на каждом начальная инициализация:

dpkg-reconfigure tzdata && dpkg-reconfigure locales
apt update && apt upgrade -y
rm -Rf /var/lib/mysql/lost+found

На случай полной деградации сети в hosts прописываем все три сервера:

cat >> /etc/hosts << 'EOT'
192.168.7.32 mdb01.mosigra.su mdb01
192.168.7.33 mdb02.mosigra.su mdb02
192.168.7.34 mdb03.mosigra.su mdb03
EOT

проверяем, перезагружаем:

cat /etc/hosts
reboot

Установка MariaDB

добавление репозитория, установка curl, mariadb, мне нравится ещё устанавливать tree, но это по желанию

apt install -y curl
curl -LSsO https://r.mariadb.com/downloads/mariadb_repo_setup
chmod u+x ./mariadb_repo_setup
./mariadb_repo_setup
apt install -y mariadb-server mariadb-client mariadb-common tree

проверяем версию MariaDB:

mariadb --version
Настройка Galera
cat >> /etc/mysql/mariadb.conf.d/60-galera.cnf << 'EOT'
wsrep_on                 = ON
wsrep_provider           = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name       = "MariaDB Galera Cluster 01"
wsrep_cluster_address    = "gcomm://mdb01,mdb02,mdb03"
binlog_format            = row
default_storage_engine   = InnoDB
innodb_autoinc_lock_mode = 2
innodb_force_primary_key = 1
innodb_doublewrite       = 1

# Allow server to accept connections on all interfaces.
bind-address = 0.0.0.0
port         = 13306

# Optional settings
wsrep_slave_threads            = 2
innodb_flush_log_at_trx_commit = 0
wsrep_node_name                = mdb01
wsrep_node_address             = "192.168.7.32"

# By default, MariaDB error logs are sent to journald, which can be hard to digest sometimes.
# The following line will save error messages to a plain file.
log_error = /var/log/mysql/error.log
EOT

Обратите внимание, параметры: wsrep_node_name и wsrep_node_address для каждого сервера должны быть свои

mariadb_galera_cluster.1756277866.txt.gz · Последнее изменение: Валерий