PDF (US Ltr) - 2.2Mb
PDF (A4) - 2.3Mb
作为从头创建副本集的替代方法,您可以使用 adoptFromAR
选项和 dba.createReplicaSet()
采用现有的复制设置。将扫描复制设置,如果它与 InnoDB 副本集限制 兼容,则 AdminAPI 会创建必要的元数据。采用复制设置后,您只能使用 AdminAPI 来管理 InnoDB 副本集。
要将现有的复制设置转换为 InnoDB 副本集,请连接到主服务器(也称为源)。将自动扫描和验证复制拓扑,从连接的 MySQL Shell 实例的全局会话开始。在采用过程中,将检查所有实例的配置,以确保它们与 InnoDB 副本集的使用兼容
所有复制通道必须处于活动状态,并且必须通过 GTID 集验证其事务集是否一致。
假定实例具有相同的状态或能够收敛。
注意
所有新的复制通道都将在启用 SSL 的情况下创建。对于使用 MySQL Shell 8.0.32 采用的复制组,情况并非如此。它们的复制通道保持未加密状态。
将自动扫描和验证复制拓扑,从 MySQL Shell 的全局会话连接到的实例开始。此操作对已采用副本集的唯一更改是创建元数据架构。在采用过程中,现有的复制通道不会更改,但您可以在后续的主交换操作中更改它们。
例如,要将包含 example1
和 example2
上的 MySQL 服务器实例的复制拓扑采用到 InnoDB 副本集。
连接到 example1
上的主服务器并发出
mysql-js> rs = dba.createReplicaSet('testadopt', {'adoptFromAR':1})
A new replicaset with the topology visible from 'example1:3306' will be created.
* Scanning replication topology...
** Scanning state of instance example1:3306
** Scanning state of instance example2:3306
* Discovering async replication topology starting with example1:3306
Discovered topology:
- example1:3306: uuid=00371d66-3c45-11ea-804b-080027337932 read_only=no
- example2:3306: uuid=59e4f26e-3c3c-11ea-8b65-080027337932 read_only=no
- replicates from example1:3306
source="localhost:3310" channel= status=ON receiver=ON applier=ON
* Checking configuration of discovered instances...
This instance reports its own address as example1:3306
example1:3306: Instance configuration is suitable.
This instance reports its own address as example2:3306
example2:3306: Instance configuration is suitable.
* Checking discovered replication topology...
example1:3306 detected as the PRIMARY.
Replication state of example2:3306 is OK.
Validations completed successfully.
* Updating metadata...
ReplicaSet object successfully created for example1:3306.
Use rs.addInstance() to add more asynchronously replicated instances to
this replicaset and rs.status() to check its status.
采用 InnoDB 副本集后,您可以像使用创建的副本集一样使用它。
警告
从现在开始,您必须仅使用 AdminAPI 管理 InnoDB 副本集。