查看原文
其他

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

叶金荣 GreatSQL社区 2024-07-08
* GreatSQL使
用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...
...

Enjoy GreatSQL :)



点击小程序留言


《零基础学习MySQL》视频课程


  • https://ke.qq.com/course/4333819?tuin=d30dd11f


文章推荐:




关于 GreatSQL


GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。


Gitee: 
https://gitee.com/GreatSQL/GreatSQL

GitHub: 
https://github.com/GreatSQL/GreatSQL

 Bilibili

https://space.bilibili.com/1363850082/video


微信&QQ群:

可扫码添加GreatSQL社区助手微信好友,送验证信息“加群”加入GreatSQL/MGR交流微信群,亦可直接扫码加入GreatSQL/MGR交流QQ群



QQ



想看更多技术好文,点个“在看”吧!

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存