Я обновляю кластер MariaDB Galera с MariaDB 10.1.44 до MariaDB 10.4.13 в Red Hat. Я обновил 1 член кластера и, конечно, запустил mysql_upgrade --skip-write-binlog
когда программное обеспечение было завершено обновление. Затем я повторно добавил его в кластер.
На первый взгляд кажется, что узел синхронизирован с кластером. show status like 'wsrep_local_state_comment'
установлен на Synced
, show global status like 'wsrep_cluster_status'
установлен на Primary
, и show 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_version
является: 9
.
Проверяя работоспособность кластера MariaDB 10.4.13 в моей лабораторной среде, где все 3 узла работают на MariaDB 10.4, я вижу, что их wsrep_protocol_version
значение: 10
.
я прочитал Вот и Вот что рекомендуется установить следующие параметры в соответствующем файле my.cnf во время обновления. Это заставляет "версию EVS" оставаться совместимой со старыми узлами кластера Galera до тех пор, пока Galera не будет обновлена на оставшихся узлах: wsrep_provider_options="evs.version=0"
(См. Также: MariaDB evs.version)
Однако это, похоже, не решает мою проблему. Буквально КАЖДАЯ транзакция производит впечатление WSREP: trx protocol
предупреждение, т.е. я вижу, как в файл журнала попадает несколько строк в секунду (это загруженный кластер).
Есть ли способ решить эту проблему, не отключая кластер, или мне нужно будет снять весь кластер и обновить все узлы в кластере, прежде чем вернуть его в оперативный режим?