0

我们有一个由 3 个节点组成的集群,其中 2 个处于脱机状态(缺失),我无法让它们自动重新加入集群,只有主节点处于联机状态。

通常,您可以使用 innodb admin:

var cluster = dba.getCluster();

但我不能使用集群实例,因为元数据不是最新的。但是我无法升级元数据,因为缺少的成员需要在线才能使用 dba.upgradeMetadata()。(第 22 条)

我尝试使用以下方法解散集群:

var cluster = dba.rebootClusterFromCompleteOutage();

cluster.dissolve({force:true});

但这也需要更新元数据。

问题是,如何完全解散集群或升级元数据以便我可以使用集群。方法。

4

2 回答 2

2

这个“鸡蛋”问题在 MySQL Shell 8.0.20 中得到修复。现在允许在这种情况下使用 dba.rebootClusterFromCompleteOutage():

BUG#30661129 – DBA.UPGRADEMETADATA() 和 DBA.REBOOTCLUSTERFROMCOMPLETEOUTAGE() 互相阻塞

更多信息:https ://mysqlserverteam.com/mysql-shell-adminapi-whats-new-in-8-0-20/

于 2020-07-13T21:31:47.797 回答
0

如果您有一个集群,其中每个节点都升级到最新版本的 mysql,并且集群未完全运行,并且您需要更新 mysqlsh 的元数据,则需要使用旧版本的 mysqlsh,例如https:/ /downloads.mysql.com/archives/shell/让集群备份并运行。一旦它启动并运行,您可以在 R/W 节点上使用 dba.upgrademetadata - 确保更新所有路由器,否则它们将失去连接。

于 2020-05-31T16:09:31.073 回答