Documentation Home
MySQL 8.0 参考手册  / 第十七章复制  / 17.1 配置复制  / 17.1.5 MySQL多源复制  /  17.1.5.3 将基于 GTID 的源添加到多源副本

17.1.5.3 将基于 GTID 的源添加到多源副本

这些步骤假设您已经使用 为源上的事务启用了 GTID gtid_mode=ON,创建了一个复制用户,确保副本正在使用 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选项设置为指定使用自动定位。

例如,要将source1source2作为源添加到副本,请使用 mysql客户端在副本上发出两次语句,如下所示:

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";

要使副本仅从 复制数据库db1source1并且仅从 db2复制数据库source2,请使用 mysqlCHANGE 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 语句”