我刚刚安装了一组新的Ubuntu 16.04节点,它们应该作为MariaDB 10.2主 - 主集群,使用XtraBackup作为SST方法。
使用命令galera_new_cluster可以很好地使用第一个节点,但由于以下错误,第二个节点无法加入群集:
Nov 15 10:59:09 mariadb10 mysqld[15664]: 2017-11-15 10:59:09 140259808827136 [Warning] WSREP: Gap in state sequence. Need state transfer.
Nov 15 10:59:09 mariadb10 mysqld[15664]: 2017-11-15 10:59:09 140259416360704 [Note] WSREP: Running: 'wsrep_sst_xtrabackup-v2 --role 'joiner' --address '10.0.0.10' --datadir '/var/lib/mysql/' --parent '15664' --binlog '/var/log/mysql/mariadb-bin' '
Nov 15 10:59:09 mariadb10 mysqld[15664]: /usr//bin/wsrep_sst_xtrabackup-v2: line 646: WSREP_SST_OPT_PORT: unbound variable
Nov 15 10:59:09 mariadb10 mysqld[15664]: 2017-11-15 10:59:09 140259416360704 [ERROR] WSREP: Failed to read 'ready <addr>' from: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '10.0.0.10' --datadir '/var/lib/mysql/' --parent '15664' --binlog '/var/log/mysql/mariadb-bin'
Nov 15 10:59:09 mariadb10 mysqld[15664]: #011Read: '(null)'
Nov 15 10:59:09 mariadb10 mysqld[15664]: 2017-11-15 10:59:09 140259416360704 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '10.0.0.10' --datadir '/var/lib/mysql/' --parent '15664' --binlog '/var/log/mysql/mariadb-bin' : 1 (Operation not permitted)
Nov 15 10:59:09 mariadb10 mysqld[15664]: 2017-11-15 10:59:09 140259808827136 [ERROR] WSREP: Failed to prepare for 'xtrabackup-v2' SST. Unrecoverable.
此记录中的主要问题是未设置的WSREP_SST_OPT_PORT。
查看/usr/bin/wsrep_sst_xtrabackup-v2
的代码&#34;包括&#34;可以用两种方式设置变量的/usr/bin/wsrep_sst_common
。
--port
命令行参数。--address
命令行参数(ip:port)由于我现在已经知道mariadb用于填充/usr/bin/wsrep_sst_xtrabackup-v2
的命令行参数的参数,我也不知道如何让它使用--port
或{{1使用正确的值。
我已经在my.cnf中为mariadb玩了一些参数而没有任何结果。我尝试过的事情是:
--address
添加到wsrep_sst_opt_port=4444
。这导致错误,因为不支持参数(但是嘿......最好的解决方案只是尝试的结果)my.cnf
的地址中添加了端口。这已被接受,但未导致portnumber成为wsrep_cluster_adress
参数的一部分。--address
的地址中添加了端口。这也被接受了,但也没有在wsrep_node_address
参数的端口号中重新使用。作为一种解决方法,我确实调整了--address
,并添加了以下代码(从评论开始):
/usr/bin/wsrep_sst_common
这至少解决了我的非启动集群,但如果没有这个解决方法,知道如何让它工作仍然会很好...
答案 0 :(得分:1)
您遇到的行为实际上是MariaDB 10.2.10中的一个错误,MariaDB团队已经提出了一个很可能在不久的将来发布的修复程序
这是MariaDB错误跟踪器上的问题的链接: