我在 Ubuntu 18.04 上有 3 节点 Galera 集群。作为 Ubuntu LCM 的一部分,我将安装程序升级到 22.04,Galera MariaDB 集群也将升级。
我设计了以下计划来使用滚动升级来升级我的集群。
触发备份以获取最新的生产备份。
使用 wsrep_desync 命令停止集群之间的同步
升级操作系统和 MariaDB 并在 Node-1 上设置 Galera
在 Node-1 上启动 Mysqld 作为主要组件。
恢复 Node-1 上的备份
验证节点 1
在node-2和node-3上一一进行升级。
将节点 2 和节点 3 与节点 1 连接。
请告知我是否遗漏了某些内容,我的基础设施受到限制,因此我只能以最少的停机时间执行滚动升级。
如果目标是以最少的停机时间进行滚动升级,并且您打算对数据库和操作系统进行就地升级,我强烈建议单独进行升级。我认为同时升级两者会很好,但我不会冒险。
我还认为使用“wsrep_desync”是不必要的,甚至可能会导致问题。
对于数据库升级,过程概述如下(有关详细说明,请参阅 MariaDB 文档:
这允许集群始终保留 2 个活动节点。该集群预计将在不同 SQL 版本混合参与的情况下保持运行。但是,如果遇到问题,您始终可以手动或通过快照、虚拟机导出、磁盘映像等进行恢复。您还应该注意,重新加入集群时,可能需要一些额外的时间才能恢复同步。
操作系统过程大致相同,但请注意,升级后您可能需要重新安装 MariaDB。到目前为止,在我的测试中,集群似乎非常乐意在其成员之间拥有混合操作系统版本。