MySQL Shell无法拉起MGR集群解决办法

 原文出处: https://mp.weixin.qq.com/s?__biz=MzkzMTIzMDgwMg==&mid=2247488646&idx=1&sn=de6e1d4b423bd03f1e10d7e30a7b7e6ficon-default.png?t=M276https://mp.weixin.qq.com/s?__biz=MzkzMTIzMDgwMg==&mid=2247488646&idx=1&sn=de6e1d4b423bd03f1e10d7e30a7b7e6f&utm_source=tuicool&utm_medium=referral

用MySQL Shell要重新拉起一个MGR集群时,可能会提示下面的错误信息:

Dba.rebootClusterFromCompleteOutage: Unable to get an InnoDB cluster handle. The instance '172.16.130.197:3306' may belong to a different cluster from the one registered in the Metadata since the value of 'group_replication_group_name' does not match the one registered in the Metadata: possible split-brain scenario. Please retry while connected to another member of the cluster. (RuntimeError)

意思是该节点属于其他MGR集群(从元数据读取到的 group_replication_group_name 值判断的),因此不能直接拉起。

这种错误常见于MySQL  5.7版本构建的MGR集群环境下,如果是运行MySQL 8.0的话则一般很少见。

之所以会这样,是因为MySQL 5.7中还不支持 SET PERSIST 功能。

在MySQL 8.0中,用MySQL Shell构建MGR集群时,会随机生成一个UUID作为 group_replication_group_name ,并以 SET PERSIST 的方式持久化(保存到 mysqld-auto.cnf 文件中),实例重启时还能继续读取。

而在MySQL 5.7中,因为没有这个功能,实例重启时还会从原来的 my.cnf 中读取旧的 group_replication_group_name 值,导致被判断为该节点属于另一个集群。

现在已经知道问题的原因了,解决办法也简单。

  1. 获取正确的 group_replication_group_name 。实例重启完成后,读取 mysql_innodb_cluster_metadata.clusters 这个元数据表,获取正确的 group name。

mysql> select attributes->'$.group_replication_group_name' from clusters;
+----------------------------------------------+
| attributes->'$.group_replication_group_name' |
+----------------------------------------------+
| "bc664a9b-9b5b-11ec-8a73-525400c5601a"       |
+----------------------------------------------+
  1. 在每个节点上手动修改 group_replication_group_name 。

mysql> set global group_replication_group_name = "bc664a9b...";
  1. 再次执行 dba.rebootClusterFromCompleteOutage() 就行了。

 MySQL  172.16.130.197:3306 ssl  JS > dba.rebootClusterFromCompleteOutage()
Restoring the default cluster from complete outage...
...

  最新2021整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等,需要获取这些内容的朋友点【关注】后添加VX:leftbaby999
添加备注暗号【555】 记得一定要备注暗号【555】不然领不到资料

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值