MariaDB Galera 集群滚动升级 - 复制警告 WSREP tx 协议版本

MariaDB Galera 集群滚动升级 - 复制警告 WSREP tx 协议版本

我正在将 Red Hat 上的 MariaDB Galera 集群从 MariaDB 10.1.44 升级到 MariaDB 10.4.13。我升级了集群的 1 个成员,当然,mysql_upgrade --skip-write-binlog在软件更新完成后运行。然后我将其重新添加到集群中。

乍一看,似乎节点已同步到集群。 show status like 'wsrep_local_state_comment'设置为Syncedshow global status like 'wsrep_cluster_status'设置为Primaryshow status like 'wsrep_evs_state设置为Operational

但是,每当我们开始向该节点发送流量时,它似乎都会失败。它暂时与集群的其余部分不同步。但是,一旦我们停止发送流量,它就会再次显示为同步。

检查日志发现,每次交易时似乎都会出现以下警告:

[警告] WSREP:trx 协议版本:4 与认证协议版本:-1 不匹配

SHOW GLOBAL STATUS LIKE 'wsrep_protocol_version'当前值为:-1

SHOW GLOBAL STATUS LIKE如果我在尚未升级且仍在 MariaDB 10.1.44 上运行的集群成员之一上运行相同的命令,我会看到wsrep_protocol_version9

在我的实验室环境中检查健康的 MariaDB 10.4.13 集群,其中所有 3 个节点都在 MariaDB 10.4 上运行,我发现它们的wsrep_protocol_version值为:10

我读过了这里这里在升级过程中,最好在相应的 my.cnf 文件中设置以下内容。这会强制“EVS 版本”与 Galera 集群的旧节点保持兼容,直到 Galera 可以在其余节点上升级:(wsrep_provider_options="evs.version=0"另请参阅:MariaDBevs.版本

但是,这似乎并没有解决我的问题。实际上,每个事务似乎都在产生警告WSREP: trx protocol,即我看到每秒有几行写入日志文件(这是一个繁忙的集群)。

有没有办法在不关闭集群的情况下解决这个问题,或者我需要关闭整个集群并升级集群中的所有节点,然后才能重新上线?

相关内容