2013-12-02 4 views
0

Все действия выполняются на виртуальных машинах debian 7. Установлены два узла: galera replicator, mysql galera из кода, percona-xtrabackup, netcat-openbsd (recruried percona-xtrabackup). Третий узел имеет только репликатор galera и действует как арбитр с запуском garbd.Не удается запустить второй узел в кластере MySQL Galera

Config на узле # 1 (192.168.0.102)

wsrep_provider=/usr/lib/galera/libgalera_smm.so 
wsrep_provider_options="gcache.size=2G" 
wsrep_cluster_name="clusterTest" 
wsrep_cluster_address="gcomm://" 
wsrep_node_name="node-1" 
wsrep_node_address=192.168.0.102 
wsrep_node_incoming_address=192.168.0.102 
wsrep_slave_threads=16 
wsrep_sst_method=xtrabackup 
wsrep_sst_receive_address=192.168.0.102 
wsrep_sst_auth=root:somepass 

Config на узле # 2 (192.168.0.103)

wsrep_provider=/usr/lib/galera/libgalera_smm.so 
wsrep_provider_options="gcache.size=2G" 
wsrep_cluster_name="clusterTest" 
wsrep_cluster_address="gcomm://192.168.0.102" 
wsrep_node_name="node-2" 
wsrep_node_address=192.168.0.103 
wsrep_node_incoming_address=192.168.0.103 
wsrep_slave_threads=16 
wsrep_sst_method=xtrabackup 
wsrep_sst_receive_address=192.168.0.103 
wsrep_sst_auth=root:somepass 
wsrep_sst_donor="node-1" 

На первом запуске только узел-1 имеет базу данных для тестирования , назовем это testDB.

Что я делаю:

1. node-1> service mysql start 
Result: node is working, testDB is accessible from any host and the node itself. 
2. node-3> garbd --address gcomm://192.168.0.102,192.168.0.103 --group "clusterTest" 
Resutl: the cluster size is 2. 
3. node-2> service mysql start 
Result: the cluster size is 3, but the init-script reports that service start failed, however the processes are running, the sst is performed. 

Кроме того, я не могу получить доступ к MySQL работает на узле-2:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) 

И с удаленного хоста:

PHP Warning: mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on '192.168.0.103' (111) 

состояния кластера из узел-1:

wsrep_local_state_comment | Donor/Desynced 
wsrep_incoming_addresses  | 192.168.0.102:3306,,192.168.0.103:3306 
wsrep_cluster_conf_id  | 3          
wsrep_cluster_size   | 3 

Если я запустил mysql на узле-2 с параметром wsrep_provider, установленным в «none», база данных полностью доступна с локального и удаленного хоста и равна базе данных на узле-1. Если я снова запустил кластер, ситуация повторяется, узел-2 видится только другими узлами, кластер становится desynced, а узел-2 недоступен ни с консоли, ни с удаленных хостов.

+0

Точно такая же ситуация с MariaDB Galera Cluster. С Percona XtraDB Cluster все работает так, как ожидалось, без единого изменения конфигурации. Любые дополнительные настройки для серверов без Percona MySQL? – Lisio

ответ

0

Ваш самый полезный инструмент при устранении проблем с Galera - это журналы ошибок MySQL. В Debian они по умолчанию находятся в/var/log/syslog.

Похоже, вы используете Node 1 для загрузки вашего кластера. Очень важно правильно настроить параметры wsrep_cluster_address. Настройки для обоих узлов должны быть следующими:

Node 1 

wsrep_cluster_address=gcomm:// 


Node 2 

wsrep_cluster_address=gcomm://192.168.0.102,192.168.0.103 
Смежные вопросы