MySQL Shell 8.4  /  ...  /  采用组复制部署

7.4.7 采用组复制部署

如果您有现有的组复制部署,并且想要使用它来创建集群,请将 adoptFromGR 选项传递给 dba.createCluster() 函数。创建的 InnoDB 集群与复制组是作为单主还是多主运行相匹配。

要采用现有的组复制组,请使用 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 会提示您确认是否要采用复制组。如果您指定 adoptFromGR: false,如果发现实例属于复制组,则操作将停止,不会显示提示。

新集群与组的模式相匹配。如果采用的组以单主模式运行,则会创建单主集群。如果采用的组以多主模式运行,则会创建多主集群。

注意

无法在与 adoptFromGR 相同的命令中定义集群使用的通信栈,集群必须最初使用采用的组使用的通信栈。如有必要,您可以在采用组后使用 rebootClusterFromCompleteOutage 更改通信栈。请参阅 第 7.5.9 节,“配置组复制通信栈”