これらのステップでは、gtid_mode=ON
を使用してソースのトランザクションに対して GTID を有効にし、レプリケーションユーザーを作成し、レプリカが TABLE
ベースのレプリケーションアプライヤメタデータリポジトリを使用していることを確認し、必要に応じてレプリカにソースのデータをプロビジョニングしていることを前提としています。
CHANGE REPLICATION SOURCE TO
ステートメント (MySQL 8.0.23 の場合) または CHANGE MASTER TO
ステートメント (MySQL 8.0.23 の場合) を使用して、レプリカ上の各ソースのレプリケーションチャネルを構成します (セクション17.2.2「レプリケーションチャネル」 を参照)。 FOR CHANNEL
句を使用してチャネルを指定します。 GTID ベースのレプリケーションでは、GTID 自動配置を使用してソースと同期されます (セクション17.1.3.3「GTID 自動配置」 を参照)。 SOURCE_AUTO_POSITION
| MASTER_AUTO_POSITION
オプションは、自動配置の使用を指定するために設定されます。
たとえば、source1
および source2
をソースとしてレプリカに追加するには、mysql クライアントを使用して、次のようにレプリカでステートメントを 2 回発行します:
mysql> CHANGE MASTER TO MASTER_HOST="source1", MASTER_USER="ted", \
MASTER_PASSWORD="password", MASTER_AUTO_POSITION=1 FOR CHANNEL "source_1";
mysql> CHANGE MASTER TO MASTER_HOST="source2", MASTER_USER="ted", \
MASTER_PASSWORD="password", MASTER_AUTO_POSITION=1 FOR CHANNEL "source_2";
Or from MySQL 8.0.23:
mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST="source1", SOURCE_USER="ted", \
SOURCE_PASSWORD="password", SOURCE_AUTO_POSITION=1 FOR CHANNEL "source_1";
mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST="source2", SOURCE_USER="ted", \
SOURCE_PASSWORD="password", SOURCE_AUTO_POSITION=1 FOR CHANNEL "source_2";
レプリカが source1
からデータベース db1
のみをレプリケートし、source2
からデータベース db2
のみをレプリケートするようにするには、mysql クライアントを使用して、次のように各チャネルに対して CHANGE REPLICATION FILTER
ステートメントを発行します:
mysql> CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db1.%') FOR CHANNEL "source_1";
mysql> CHANGE REPLICATION FILTER REPLICATE_WILD_DO_TABLE = ('db2.%') FOR CHANNEL "source_2";
CHANGE REPLICATION FILTER
ステートメントの完全な構文およびその他の使用可能なオプションについては、セクション13.4.2.2「CHANGE REPLICATION FILTER ステートメント」 を参照してください。