GreatSQL社区

搜索

[已解决] 在GreatSQL MGR集群中,新增ARBITRATOR节点时,是否一定要CLONE?

786 0 2023-10-26 10:44
问:
如题,在GreatSQL MGR集群中,新增ARBITRATOR节点时,是否一定要CLONE数据?

因为如果当前primary节点上数据量巨大时,每次都CLONE代价太高了,那么第一次加入ARBITRATOR节点的成本有点难以接受。

答:


当MGR中primary节点已有用户数据时,无论是用shell还是手动加入一个新的仲裁节点(ARBITRATOR),首次加入都需要经过CLONE的过程(即便是在启动前已经设置group_replication_arbitrator = 1)。


变通办法是:
1. 第一个加入的ARBITRATOR节点,可以在加入成功后,关闭ARBITRATOR角色,然后删除所有用户数据,这时候就变成一个空实例了,再次重启后,再开启ARBITRATOR角色,不会再次CLONE数据。
2. 在上述第一个ARBITRATOR节点的基础上,在其关闭期间,做一次物理全备,然后这个备份就可以作为未来新的ARBITRATOR节点的datadir,再次加入MGR集群也不会再次CLONE数据。

实际上,在加入MGR时,判断是否需要CLONE数据的依据是看gtid_purged,因此还有第三个办法:
3. 在完成实例初始化后,手动修改 gtid_purged,例如 set global gtid_purged = 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1:1-1449587416'; 也可以跳过数据CLONE。



全部回复(0)
yejr

36

主题

1

博客

1228

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
2366

助人雷锋社区智多星勤学好问(铜)好评如潮(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

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