Назад | Перейти на главную страницу

MariaDB Galera SST не работает

Я использую 3-узловой кластер MariaDB 10 Galera на CentOS 6. Я использовал эту настройку раньше без проблем, где-либо еще, но теперь при добавлении 3-го узла SST не работает с этой ошибкой в ​​журналах:

150212 18:03:02 [Warning] WSREP: 1.0 (server1.example.com): State transfer to 0.0 (server3.example.com) failed: -22 (Invalid argument)
150212 18:03:02 [ERROR] WSREP: gcs/src/gcs_group.c:gcs_group_handle_join_msg():723: Will never receive state. Need to abort.

Проверка логов узла-донора показывает:

150212 18:03:01 [ERROR] WSREP: Failed to read from: wsrep_sst_xtrabackup-v2 --role 'donor' --address '192.168.0.3:4444/xtrabackup_sst' --auth 'wsrep_sst:wsrep_pass' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/' --defaults-file '/etc/my.cnf'  --binlog 'mysql-bin' --gtid '8561e69a-9beb-11e4-825a-f2380deeda3b:18365'
150212 18:03:01 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup-v2 --role 'donor' --address '192.168.0.3:4444/xtrabackup_sst' --auth 'wsrep_sst:wsrep_pass' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/' --defaults-file '/etc/my.cnf'  --binlog 'mysql-bin' --gtid '8561e69a-9beb-11e4-825a-f2380deeda3b:18365': 22 (Invalid argument)
150212 18:03:01 [ERROR] WSREP: Command did not run: wsrep_sst_xtrabackup-v2 --role 'donor' --address '192.168.0.3:4444/xtrabackup_sst' --auth 'wsrep_sst:wsrep_pass' --socket '/var/lib/mysql/mysql.sock' --datadir '/var/lib/mysql/' --defaults-file '/etc/my.cnf'  --binlog 'mysql-bin' --gtid '8561e69a-9beb-11e4-825a-f2380deeda3b:18365'

Мой конфиг выглядит так:

[server]
wsrep_provider="/usr/lib64/galera/libgalera_smm.so"
wsrep_cluster_address="gcomm://192.168.0.1,192.168.0.2,192.168.0.3"
wsrep_cluster_name='MY_CLUSTER'
wsrep_sst_auth=wsrep_sst:wsrep_pass
wsrep_sst_method=xtrabackup-v2
wsrep_sst_receive_address=192.168.0.3
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
innodb_file_per_table=1
query_cache_size=0
binlog_format=ROW
log-bin=mysql-bin

[mysqld]
datadir=/var/lib/mysql
tmpdir=/tmp
user=mysql
bind-address=0.0.0.0

Узлы отличаются только своими wsrep_sst_receive_address стоимость.

Вы уверены, что используете одну и ту же версию на всех узлах? В какой-то момент в методах SST произошли несовместимые с версиями изменения, которые привели к сбою SST между разными версиями.

Был вариант конфигурации для wsrep_sst_method это позволило двум различным версиям установить SST между собой.