Рубрика:
Администрирование /
How To
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Master-Master репликация MariaDB 10.1 в Ubuntu 16.04
Репликация данных в реляционных СУБД позволяет использовать одновременно несколько серверов БД, повышая скорость работы, безопасность и отказоустойчивость
В конфигурации Master-Master каждый узел записывает информацию и распространяет по всему кластеру. Начиная с версии 10.1 набор патчей для возможности такой репликации, известный как Galera, уже входит в состав пакета, чтоупрощает настройку. Рекомендуемый минимум для такой схемы – три сервера.
Для корректной работы потребуется открыть порты 3306, 4444, 4567, 4568.
Подключаем репозиторий:
$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
$ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu xenial main'
До версии 10.1 пакет для установки назывался mariadb-galera-server, начиная с 10.1 wsrep API включен в пакет по умолчанию, поэтому команда изменилась. Также понадобится rsync:
$ sudo apt install mariadb-server rsync
Останавливаем сервисы на всех серверах (с версии 10.1 можно использовать в качестве названия сервиса mysql, mysqld и mariadb):
$ sudo systemctl stop mariadb
Для удобства все настройки кластера лучше поместить в отдельный файл:
$ sudo nano /etc/mysql/conf.d/cluster.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
query_cache_size=0
query_cache_type=0
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
#wsrep_provider_options="gcache.size=32G"
# имя кластера, IP или DNS имена узлов
wsrep_cluster_name="mysql_cluster"
wsrep_cluster_address="gcomm://srv01,srv02,srv03"
wsrep_sst_method=rsync
# IP и имя текущего узла
wsrep_node_address=192.0.0.1
wsrep_node_name=srv01
Обращаю внимание на параметр wsrep_on. В пакете mariadb-galera-server он был установлен в On по умолчанию. Так как теперь поставляется один пакет для разных ситуаций, то wsrep_on по умолчанию отключен и включать его нужно специально.
Для инициализации кластера первый узел вначале нужно запустить со специальным параметром:
$ sudo sudo systemctl start mariadb --wsrep-new-cluster
Но лучше для инициализации использовать специальный скрипт:
$ sudo /usr/bin/galera_new_cluster
Выжидаем пару минут и запускаем MariaDB на остальных серверах:
$ sudo systemctl start mariadb
Через некоторое время проверяем статус:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"
В ответ должны получить число, равное количеству узлов кластера (см. рис. 1).
Рисунок 1. Статус работы кластера MariaDB
Весь список параметров доступен по команде:
SHOW STATUS LIKE 'wsrep_%';
Если число не совпадает, в поисках проблем подскажут журналы.
Подготовил Сергей Яремчук
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|