| 
                                    Рубрика: 
                                    
									Администрирование / 
									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+ 
 
                             |