Bug #108373 ability to remove an instance from all cluster metadata but keep GTID
Submitted: 2 Sep 2022 19:30 Modified: 10 Jun 2024 10:18
Reporter: Jay Janssen Email Updates:
Status: Closed Impact on me:
None 
Category:Shell AdminAPI InnoDB Cluster / ReplicaSet Severity:S4 (Feature request)
Version:8.0 OS:Any
Assigned to: CPU Architecture:Any

[2 Sep 2022 19:30] Jay Janssen
Description:
I can't get my clusters to reform after some bad OOM errors.  See my other bugs, but 'rebootcluster'  and 'force quorum' are not currently allowing me to reform my clusters properly.  Granted those issues will be fixed, but I still think there needs to be a way to nuke everything about cluster/clusterset on an instance so I can at least use whatever data is on the instance to avoid cloning if possible.

You might say 'use removeMetadataSchema', but that complains if the node is in a clusterset.  I could try 'cluster.dissolve', but that also complains if the node is in the clusterset.  I can't find any way to dissolve a clusterset.

I suspect removing the metadataschema is what I need, and maybe I can just manually drop that schema, but I'd rather have a fairly bulletproof adminAPI command on the dba object that ensures I can reset everything about the instance belonging to a cluster/clusterset.  

Again, I can rebuild/reclone the instance from scratch, but I'm trying to avoid that if the instance already has a datadir and GTID info.  I want something to reset the instance enough that using 'addInstance' against it will allow it to join a new cluster.  

How to repeat:
N/A

Suggested fix:
This may be as simple as making the 'force' option on dropmetadataschema actually work when there is a clusterset.
[2 Sep 2022 19:40] Jay Janssen
Maybe to put it another way:  I want a big red button to convert an instance that is a cluster/clusterset member back to a standalone instance again.
[5 Sep 2022 5:51] MySQL Verification Team
Hello Jay Janssen,

Thank you for the feature request!

regards,
Umesh
[10 Jun 2024 10:18] Edward Gilmore
Posted by developer:
 
Added the following note to the MySQL Shell 9.0.0 release notes:
  
 It is now possible to dissolve a ClusterSet, partially or completely, using the following methods:

clusterSet.dissolve(): dissolves the ClusterSet completely by stopping replication between each replica 
and primary Cluster and removing any metadata related to the ClusterSet. Each cluster of the ClusterSet is also dissolved.

The dissolve option of clusterSet.removeCluster(): removes the specified Cluster from the ClusterSet, 
enabling it to function as a standalone Cluster.

Thank you for the bug report.