MySQL 8.4 Release Notes
19.1.5.3 添加基于 GTID 的多源副本
这些步骤假设您已经在源上启用了 GTIDs,以便使用 gtid_mode=ON。创建了复制用户,确保复制服务器使用 TABLE 基于的复制元数据存储库,并为源提供了数据,如果必要。
使用 CHANGE REPLICATION SOURCE TO 配置每个源的复制通道在复制服务器上(见 第19.2.2节,“复制通道”)。使用 FOR CHANNEL 子句指定通道。在基于 GTID 的复制中,使用 GTID 自动定位来同步源(见 第19.1.3.3节,“GTID 自动定位”)。将 SOURCE_AUTO_POSITION 选项设置为指定自动定位。
例如,要将 source1 和 source2 添加到复制服务器上,使用 mysql 客户端在复制服务器上两次执行语句,如下所示:
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";
要使复制服务器只复制 db1 从 source1,并且只复制 db2 从 source2,使用 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 语句的完整语法和其他可用选项,请见 第15.4.2.1节,“CHANGE REPLICATION FILTER 语句”。