GreatSQL社区

搜索

[已解决] 【分享】用Shell添加新节点时,如果该节点换过IP该怎么处理

333 2 2025-2-24 14:39
相关背景信息介绍:

1. 原来已有一个三节点的MGR集群
2. 三个节点重启后,其中有两个节点IP发生变化
3. 每个节点上都设置了 group_replication_local_address 和 report_host,均使用的是旧IP地址
4. 第一个节点后,调用 dba.rebootClusterFromCompleteOutage() 重新拉起MGR集群,IP发生变化的两个节点无法加入
5. 调用 cluster.addInstance() 指定新的IP地址,想要重新将另外两个节点加进来,报告失败

解决办法
1. 由于 report_host 参数指定的还是旧IP地址,这是无法被重新加入的最主要原因
2. 修改 my.cnf 中的 report_host 参数,将 IP 地址更新为变化后的新IP地址
3. 修改 report_host 需要重启实例才能生效,不能在线动态修改
4. 重启完成后,再次调用 cluster.addInstance() 加入节点时,可以同时配置 localAddress 参数,例如 cluster.addInstance("172.17.139.2", {"localAddress":"172.17.139.2:33061"}),在加入节点的同时修改 localAddress 参数(对应到 group_replication_local_address 参数)。

提示:调佣 addInstance() 函数时修改 localAddress 参数动作会被持久化保存在 mysqld-auto.cnf 中,而不是 my.cnf 中,所以最好再手动同步修改到 my.cnf 中,保持两份配置文件的一致性。
全部回复(2)
mlovewt 2025-2-24 16:01:38
hostname 变更后咋处理?
yejr 2025-2-24 16:29:19
mlovewt 发表于 2025-2-24 16:01
hostname 变更后咋处理?

如果已经设置过 report_host 则无需处理
如果是用hostname来标记节点名,那就需要手动处理,和本文的做法差不多
yejr

45

主题

1

博客

1399

贡献

管理员

Rank: 9Rank: 9Rank: 9

金币
5310
贡献
1399

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

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