MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  マルチソースレプリカへのバイナリログベースレプリケーションソースの追加

17.1.5.4 マルチソースレプリカへのバイナリログベースレプリケーションソースの追加

これらのステップでは、バイナリロギングがソース (デフォルト) で有効になっており、レプリカが TABLE ベースのレプリケーションアプライアンスメタデータリポジトリ (MySQL 8.0 のデフォルト) を使用しており、レプリケーションユーザーを有効にして現在のバイナリログファイルの名前と位置をメモしていることを前提としています。

CHANGE REPLICATION SOURCE TO ステートメント (MySQL 8.0.23 の場合) または CHANGE MASTER TO ステートメント (MySQL 8.0.23 の場合) を使用して、レプリカ上の各ソースのレプリケーションチャネルを構成します (セクション17.2.2「レプリケーションチャネル」 を参照)。 FOR CHANNEL 句を使用してチャネルを指定します。 たとえば、source1 および source2 をソースとしてレプリカに追加するには、mysql クライアントを使用して、次のようにレプリカでステートメントを 2 回発行します:

mysql> CHANGE MASTER TO MASTER_HOST="source1", MASTER_USER="ted", MASTER_PASSWORD="password", \
MASTER_LOG_FILE='source1-bin.000006', MASTER_LOG_POS=628 FOR CHANNEL "source_1";
mysql> CHANGE MASTER TO MASTER_HOST="source2", MASTER_USER="ted", MASTER_PASSWORD="password", \
MASTER_LOG_FILE='source2-bin.000018', MASTER_LOG_POS=104 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_LOG_FILE='source1-bin.000006', SOURCE_LOG_POS=628 FOR CHANNEL "source_1";
mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST="source2", SOURCE_USER="ted", SOURCE_PASSWORD="password", \
SOURCE_LOG_FILE='source2-bin.000018', SOURCE_LOG_POS=104 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 ステートメント」 を参照してください。


関連キーワード:  ソース, ステートメント, SOURCE, MASTER, バイナリ, ベース, チャネル, 構成, GTID, トランザクション