GreatSQL社区

搜索

[已解决] 怎么平滑的将MGR集群从GreatSQL-8.0.25升级到GreatSQL-8.0.32

1409 14 2023-11-28 11:40
我看了官网提供的文档,好像没有详细的操作步骤。

同时还说8.0.25升级到8.0.32,需要重新搭建MGR集群,通过构建复制通道才能平滑升级。
请问有更加详细的文档操作说明吗?
全部回复(14)
yejr 2023-11-28 13:51:28
从secondary节点开始,逐个节点inplace方式滚动升级
驭无殇1998 2023-11-28 14:07:30
本帖最后由 驭无殇1998 于 2023-11-29 08:54 编辑
yejr 发表于 2023-11-28 13:51
从secondary节点开始,逐个节点inplace方式滚动升级

这个不停机升级好像不行,会报错:

2023-11-28T18:02:48.371253+08:00 0 [Warning] [MY-013737] [Repl] Plugin group_replication reported: 'This member joined a group on which all members do not support member actions, as such it did reset its member configuration to the default one.'
2023-11-28T18:02:48.374989+08:00 0 [Warning] [MY-013783] [Repl] This member joined a group on which all members do not support replication failover channels integration on Group Replication, as such it did reset its replication failover channels configuration to the default one.
2023-11-28T18:02:48.378290+08:00 0 [Warning] [MY-013426] [Repl] Plugin group_replication reported: 'Member version is read compatible with the group.'
2023-11-28T18:02:48.378372+08:00 0 [ERROR] [MY-013753] [Repl] Plugin group_replication reported: 'The member is configured with a group_replication_view_change_uuid option value 'AUTOMATIC' different from the group ''. The member will now exit the group.'
2023-11-28T18:02:48.378396+08:00 0 [Note] [MY-000000] [Repl] Plugin group_replication reported: 'Set cancelled_view_change true'


所以直接MGR集群停机逐个节点完成升级,然后再恢复MGR集群?
yejr 2023-11-29 09:12:04
驭无殇1998 发表于 2023-11-28 14:07
这个不停机升级好像不行,会报错:

2023-11-28T18:02:48.371253+08:00 0 [Warning] [MY-013737] [Repl] P ...

抱歉,忘了这茬。

记得是8.0.26还是8.0.27,新增了group_replication_view_change_uuid,导致在跑MGR的情况下,不能实现滚动升级。

这种情况下,可以这么做:

1. 当前8.0.25版本的MGR对外停止服务;

2. 选取某个节点A作为donor,复制数据到新的8.0.32版本的节点B上;

3. 以节点B为primary节点,重新构建MGR集群。
驭无殇1998 2023-11-29 10:06:44
yejr 发表于 2023-11-29 09:12
抱歉,忘了这茬。

记得是8.0.26还是8.0.27,新增了group_replication_view_change_uuid,导致在跑MGR的 ...

那我直接在现有的8.0.25的集群下,将所有节点都停机,然后单独每个节点根据文档直接升级到8.0.32,再重建可以嘛?不再另起新的8.0.32节点
yejr 2023-11-29 10:39:29
驭无殇1998 发表于 2023-11-29 10:06
那我直接在现有的8.0.25的集群下,将所有节点都停机,然后单独每个节点根据文档直接升级到8.0.32,再重建 ...

你这种做法也是可以的,记得每个节点都要正确配置 group_replication_view_change_uuid 即可
驭无殇1998 2023-11-30 16:45:16
yejr 发表于 2023-11-29 10:39
你这种做法也是可以的,记得每个节点都要正确配置 group_replication_view_change_uuid 即可 ...

经过测试,这种方法是可行的,具体的操作步骤为:
1.停止MGR集群所有节点
2.修改my.cnf配置文件的“basedir”,将其指向8.0.32版本的二进制安装目录
3.若配置systemd启动命令不是指向8.032版本的也要修改指向8.0.32版本
4.启动所有节点
这个时候,因为前面关闭了所有节点,所以此时MGR集群是不会自动恢复的,需要手动恢复
5.用mysqlsh连接MGR集群的主节点
6.执行dba.reboot_cluster_from_complete_outage()命令进行恢复即可
大致流程是这样,做之前最好备份一份主节点的数据,以防出现升级失败的情况。
目前平滑升级的办法尚未进行尝试,不过目前的停机升级办法也可以满足我的需求。
驭无殇1998 2023-11-30 16:48:45
yejr 发表于 2023-11-29 10:39
你这种做法也是可以的,记得每个节点都要正确配置 group_replication_view_change_uuid 即可 ...

根据实际测试结果,升级完成后,如果未配置group_replication_view_change_uuid ,会自动设置为“AUTOMATIC”,然后使用mysqlsh恢复集群,这个值会自动出来。如果事先在配置文件配置了,则使用配置文件所配置的值
yejr 2023-12-1 09:23:26
驭无殇1998 发表于 2023-11-30 16:45
经过测试,这种方法是可行的,具体的操作步骤为:
1.停止MGR集群所有节点
2.修改my.cnf配置文件的“based ...

赞,感谢分享
earl86 2024-7-19 17:53:37

dba.rebootClusterFromCompleteOutage('cluster集群名',{switchCommunicationStack: "mysql"})  这个最好加上这个参数.
12下一页
驭无殇1998

22

主题

0

博客

181

贡献

中级会员

Rank: 3Rank: 3

积分
297

勤学好问(铜)助人为乐(银)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-12-4 02:02 , Processed in 0.025362 second(s), 23 queries , Redis On.
快速回复 返回顶部 返回列表