MariaDB 10.2 Xtrabackup。 / usr // bin / wsrep_sst_xtrabackup-v2 WSREP_SST_OPT_PORT:未绑定变量

时间:2017-11-15 10:37:24

标签: mariadb

我刚刚安装了一组新的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

  1. 使用--port命令行参数。
  2. 使用--address命令行参数(ip:port)
  3. 中的端口

    由于我现在已经知道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

    这至少解决了我的非启动集群,但如果没有这个解决方法,知道如何让它工作仍然会很好...

1 个答案:

答案 0 :(得分:1)

您遇到的行为实际上是MariaDB 10.2.10中的一个错误,MariaDB团队已经提出了一个很可能在不久的将来发布的修复程序

这是MariaDB错误跟踪器上的问题的链接:

https://jira.mariadb.org/browse/MDEV-14256