このページは機械翻訳したものです。
新しい InnoDB ReplicaSet を作成するかわりに、dba.createReplicaSet()
で adoptFromAR
オプションを使用して既存のレプリケーション設定を採用することもできます。 レプリケーション設定がスキャンされ、InnoDB ReplicaSet の前提条件 と互換性がある場合は、AdminAPI によって必要なメタデータが作成されます。 レプリケーション設定が採用されると、InnoDB ReplicaSet の管理にのみ AdminAPI を使用できます。
既存のレプリケーション設定を InnoDB ReplicaSet に変換するには、プライマリ (ソースとも呼ばれる) に接続します。 レプリケーショントポロジは、MySQL Shell グローバルセッションが接続されているインスタンスから開始して、自動的にスキャンおよび検証されます。 すべてのインスタンスの構成は、InnoDB ReplicaSet の使用と互換性があることを確認するために、採用時にチェックされます。 すべてのレプリケーションチャネルがアクティブであり、GTID セットを介して検証されたトランザクションセットに一貫性がある必要があります。 インスタンスは同じ状態であるか、収束可能であるとみなされます。 トポロジの一部であるすべてのインスタンスは、ReplicaSet に自動的に追加されます。 この操作によって採用された ReplicaSet に加えられた変更は、メタデータスキーマの作成のみです。 既存のレプリケーションチャネルは採用中に変更されませんが、後続のプライマリスイッチ操作中に変更できます。
たとえば、example1
および example2
上の MySQL サーバーインスタンスで構成されるレプリケーショントポロジを InnoDB ReplicaSet に採用するには、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.add_instance() to add more asynchronously replicated instances to
this replicaset and rs.status() to check its status.
InnoDB ReplicaSet が採用されたら、最初から作成された ReplicaSet を使用するのと同じ方法で使用できます。 この時点から、AdminAPI のみを使用して InnoDB ReplicaSet を管理する必要があります。