如果您已经部署了 Group Replication,并且想要使用它来创建集群,请将
adoptFromGR
选项传递给该
dba.createCluster()
函数。创建的 InnoDB Cluster 匹配复制组是作为单主还是多主运行。
要采用现有的组复制组,请使用 MySQL Shell 连接到组成员。在以下示例中,采用了单一主组。我们连接到
gr-member-2
一个辅助实例,同时
gr-member-1
作为该组的主要实例运行。dba.createCluster()
使用传递
adoptFromGR
选项创建集群
。例如:
mysql-js> var cluster = dba.createCluster('prodCluster', {adoptFromGR: true});
A new InnoDB cluster will be created on instance 'root@gr-member-2:3306'.
Creating InnoDB cluster 'prodCluster' on 'root@gr-member-2:3306'...
Adding Seed Instance...
Cluster successfully created. Use cluster.addInstance() to add MySQL instances.
At least 3 instances are needed for the cluster to be able to withstand up to
one server failure.
如果实例有,
super_read_only=ON
那么您可能需要确认 AdminAPI 可以设置
super_read_only=OFF
。更多信息请参见
超级只读模式下的实例配置。
如果不指定adoptFromGR: true
,并且目标服务器实例属于一个复制组,MySQL Shell会提示您确认是否要采用复制组。从 MySQL Shell 8.0.29 开始,如果您指定
adoptFromGR: false
,则如果发现实例属于复制组,则操作将停止且不提示。
新集群与组的模式相匹配。如果采用的组在单主模式下运行,则会创建一个单主集群。如果采用的组在多主模式下运行,则会创建一个多主集群。
无法在与 相同的命令中定义
adoptFromGR
集群使用的通信堆栈,集群必须最初使用采用的组使用的通信堆栈。如有必要,您可以在采用组后使用更改通信堆栈
rebootClusterFromCompleteOutage
。请参阅
第 7.5.9 节,“配置组复制通信堆栈”。